summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessio Treglia <quadrispro@ubuntu.com>2009-12-03 13:03:13 +0100
committerAlessio Treglia <quadrispro@ubuntu.com>2009-12-03 13:03:13 +0100
commit8b022ab680a3f5e374a44f2c05c1671cfb2bc799 (patch)
treeaf20b9a16eeca697a1d30a554d8d1b31ae9c1e4f
parent5cd66eecc95be11cacc5aaf4db8c67a499bb2d4d (diff)
Imported Upstream version 11.1
-rw-r--r--ABOUT-NLS1095
-rw-r--r--HISTORY.Snd10
-rw-r--r--NEWS58
-rw-r--r--README.Snd47
-rw-r--r--_sndlib.h3
-rw-r--r--bess.scm105
-rw-r--r--bird.fsm450
-rw-r--r--clm-ins.fs6
-rw-r--r--clm.c103
-rw-r--r--clm.fs48
-rw-r--r--clm.h478
-rw-r--r--clm.html4790
-rw-r--r--clm.rb19
-rw-r--r--clm2xen.c44
-rw-r--r--clm2xen.h2
-rwxr-xr-xconfigure240
-rw-r--r--configure.ac106
-rw-r--r--dlocsig.html703
-rw-r--r--dlocsig.scm12
-rw-r--r--draw.fs7
-rw-r--r--dsp.fs264
-rw-r--r--edit123.scm4
-rw-r--r--effects.fs352
-rw-r--r--enved.fs26
-rw-r--r--examp.fs36
-rw-r--r--examp.rb2967
-rw-r--r--examp.scm4
-rw-r--r--extensions.fs30
-rw-r--r--extensions.rb4
-rw-r--r--extensions.scm5
-rw-r--r--extsnd.html535
-rw-r--r--fm.html2
-rw-r--r--freeverb-readme.txt67
-rw-r--r--freeverb.html85
-rw-r--r--gl.c2
-rw-r--r--grfsnd.html34
-rw-r--r--gtk-effects.scm4
-rw-r--r--gtk-popup.scm18
-rw-r--r--headers.c33
-rw-r--r--heart.scm64
-rw-r--r--index.html567
-rw-r--r--io.c1
-rw-r--r--marks.fs4
-rw-r--r--marks.rb4
-rw-r--r--marks.scm9
-rw-r--r--mix.fs6
-rw-r--r--mix.scm66
-rwxr-xr-xmkinstalldirs156
-rw-r--r--mus-config.h.in5
-rw-r--r--new-effects.scm4
-rw-r--r--noise.scm2
-rw-r--r--old-mac-audio.c938
-rw-r--r--peak-env.fs13
-rw-r--r--peak-phases.scm1139
-rw-r--r--pix/mixdialog.pngbin0 -> 8190 bytes
-rw-r--r--pix/peak-path.pngbin0 -> 2628 bytes
-rw-r--r--pix/phase-paths.pngbin0 -> 3796 bytes
-rw-r--r--pix/rr2.pngbin0 -> 424391 bytes
-rw-r--r--pix/s65536.pngbin4219 -> 0 bytes
-rw-r--r--pix/sqrt.pngbin7321 -> 6828 bytes
-rw-r--r--pix/sqrt1.pngbin4271 -> 3585 bytes
-rw-r--r--play.rb10
-rw-r--r--play.scm18
-rw-r--r--po/Makefile.in317
-rw-r--r--po/POTFILES.in~1
-rw-r--r--po/de.gmobin0 -> 34124 bytes
-rw-r--r--po/snd.pot521
-rw-r--r--popup.fs275
-rw-r--r--popup.rb36
-rw-r--r--popup.scm22
-rw-r--r--pretty-print.scm300
-rw-r--r--pvoc.rb4
-rw-r--r--quick.html16
-rw-r--r--rgb.fs18
-rw-r--r--rgb.rb18
-rw-r--r--rgb.scm20
-rw-r--r--rubber.fs6
-rw-r--r--run.c15
-rw-r--r--s7.c804
-rw-r--r--s7.h889
-rw-r--r--s7.html1651
-rw-r--r--s7.tar.gzbin629468 -> 0 bytes
-rw-r--r--s7test.scm346
-rw-r--r--snd-0.h32
-rw-r--r--snd-1.h43
-rw-r--r--snd-axis.c211
-rw-r--r--snd-chn.c470
-rw-r--r--snd-completion.c2
-rw-r--r--snd-contents.html4
-rw-r--r--snd-dac.c621
-rw-r--r--snd-edits.c31
-rw-r--r--snd-env.c1
-rw-r--r--snd-fft.c392
-rw-r--r--snd-file.c57
-rw-r--r--snd-forth-docs.fs324
-rw-r--r--snd-forth-init.fs17
-rw-r--r--snd-g0.h8
-rw-r--r--snd-gchn.c46
-rw-r--r--snd-gdraw.c31
-rw-r--r--snd-ghelp.c10
-rw-r--r--snd-gmain.c7
-rw-r--r--snd-gmix.c143
-rw-r--r--snd-gutils.c6
-rw-r--r--snd-gxcolormaps.c314
-rw-r--r--snd-gxutils.c11
-rw-r--r--snd-help.c174
-rw-r--r--snd-ladspa.c2
-rw-r--r--snd-main.c86
-rw-r--r--snd-marks.c17
-rw-r--r--snd-mix.c818
-rw-r--r--snd-nogui.c22
-rw-r--r--snd-nogui0.h2
-rw-r--r--snd-region.c34
-rw-r--r--snd-select.c353
-rw-r--r--snd-sig.c1165
-rw-r--r--snd-snd.c184
-rw-r--r--snd-strings.h12
-rw-r--r--snd-test.fs380
-rw-r--r--snd-test.rb855
-rw-r--r--snd-test.scm979
-rw-r--r--snd-utils.c4
-rw-r--r--snd-x0.h3
-rw-r--r--snd-xchn.c60
-rw-r--r--snd-xen.c24
-rw-r--r--snd-xfile.c10
-rw-r--r--snd-xhelp.c62
-rw-r--r--snd-xlistener.c16
-rw-r--r--snd-xm.fs16
-rw-r--r--snd-xmain.c11
-rw-r--r--snd-xmenu.c66
-rw-r--r--snd-xmix.c172
-rw-r--r--snd-xprefs.c2
-rw-r--r--snd-xref.c73
-rw-r--r--snd.c2
-rw-r--r--snd.h6
-rw-r--r--snd.html313
-rw-r--r--snd11.scm140
-rw-r--r--snd_conffile.scm14
-rw-r--r--snd_frg.scm2635
-rw-r--r--sndclm.html628
-rw-r--r--sndinfo.c15
-rw-r--r--sndins/README122
-rw-r--r--sndlib.html97
-rw-r--r--sndlib2xen.c9
-rw-r--r--sndscm.html263
-rw-r--r--sound.c11
-rw-r--r--spokenword.scm6
-rw-r--r--tools/README10
-rwxr-xr-xtools/compsnd34
-rw-r--r--tools/crossref.c4
-rw-r--r--tools/gldata.scm164
-rw-r--r--tools/index.cl42
-rwxr-xr-x[-rw-r--r--]tools/makegl.scm107
-rwxr-xr-x[-rw-r--r--]tools/makexg.scm569
-rwxr-xr-xtools/sarchive8
-rw-r--r--tools/snd-index.cl321
-rwxr-xr-xtools/testsnd30
-rw-r--r--tools/xgdata.scm69
-rw-r--r--tutorial/1_intro_and_build_snd.html2
-rw-r--r--tutorial/1_intro_and_build_snd.html~211
-rw-r--r--vct.c19
-rw-r--r--ws.rb6
-rw-r--r--ws.scm166
-rw-r--r--wz_data.js27
-rw-r--r--xen.c5
-rw-r--r--xen.h48
-rw-r--r--xg.c368
-rw-r--r--xm-enved.fs20
-rw-r--r--xm-enved.rb9
-rw-r--r--xm.c10
170 files changed, 14152 insertions, 21804 deletions
diff --git a/ABOUT-NLS b/ABOUT-NLS
index d528f9c..b3049ec 100644
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -1,10 +1,11 @@
-Notes on the Free Translation Project
-*************************************
+1 Notes on the Free Translation Project
+***************************************
- Free software is going international! The Free Translation Project
-is a way to get maintainers of free software, translators, and users all
-together, so that will gradually become able to speak many languages.
-A few packages already provide translations for their messages.
+Free software is going international! The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages. A few packages already provide translations for their
+messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
@@ -15,17 +16,17 @@ this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
-work at translations should contact the appropriate team.
+work on translations can contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
-Quick configuration advice
-==========================
+1.1 Quick configuration advice
+==============================
- If you want to exploit the full power of internationalization, you
+If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
@@ -45,37 +46,37 @@ to change to GNU `gettext' as soon as possible.
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
-INSTALL Matters
-===============
+1.2 INSTALL Matters
+===================
- Some packages are "localizable" when properly installed; the
-programs they contain can be made to speak your own native language.
-Most such packages use GNU `gettext'. Other packages have their own
-ways to internationalization, predating GNU `gettext'.
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language. Most such
+packages use GNU `gettext'. Other packages have their own ways to
+internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system already
-provides the GNU `gettext' functions. If not, the GNU `gettext' own
-library will be used. This library is wholly contained within this
-package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is _not_ required. Installers may use
-special options at configuration time for changing the default
-behaviour. The commands:
+provides the GNU `gettext' functions. If not, the included GNU
+`gettext' library will be used. This library is wholly contained
+within this package, usually in the `intl/' subdirectory, so prior
+installation of the GNU `gettext' package is _not_ required.
+Installers may use special options at configuration time for changing
+the default behaviour. The commands:
./configure --with-included-gettext
./configure --disable-nls
-will respectively bypass any pre-existing `gettext' to use the
+will, respectively, bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
-will decide to use this. This might be not what is desirable. You
-should use the more recent version of the GNU `gettext' library. I.e.
-if the file `intl/VERSION' shows that the library which comes with this
-package is more recent, you should use
+will decide to use this. This might not be desirable. You should use
+the more recent version of the GNU `gettext' library. I.e. if the file
+`intl/VERSION' shows that the library which comes with this package is
+more recent, you should use
./configure --with-included-gettext
@@ -86,7 +87,7 @@ and therefore it will not be used. The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.
- Internationalized packages have usually many `po/LL.po' files, where
+ Internationalized packages usually have many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
@@ -95,10 +96,10 @@ may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
-Using This Package
-==================
+1.3 Using This Package
+======================
- As a user, if your language has been installed for this package, you
+As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
and `CC' is an ISO 3166 two-letter country code. For example, let's
@@ -131,16 +132,23 @@ system libraries. For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+ Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003). During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
-Translating Teams
-=================
+1.4 Translating Teams
+=====================
- For the Free Translation Project to be a success, we need interested
+For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list. The up-to-date list of
@@ -167,236 +175,789 @@ coordinator for all translator teams.
the terminology in use. Proven linguistic skill are praised more than
programming skill, here.
-Available Packages
-==================
+1.5 Available Packages
+======================
- Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of August
-2002. The matrix shows, in regard of each package, for which languages
+Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of February
+2005. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
- Ready PO files be bg ca cs da de el en eo es et fi fr
- +----------------------------------------+
- a2ps | [] [] [] [] |
- ap-utils | |
- bash | [] [] [] [] |
- bfd | [] [] |
- binutils | [] [] |
- bison | [] [] [] [] |
- clisp | |
- clisp | [] [] [] [] |
- clisplow | |
- cpio | [] [] [] [] |
- darkstat | () |
- diffutils | [] [] [] [] [] [] |
- enscript | [] [] |
- error | [] [] [] |
- fetchmail | [] () [] [] [] () |
- fileutils | [] [] [] [] [] |
- findutils | [] [] [] [] [] [] |
- flex | [] [] [] [] [] |
- gas | [] [] |
- gawk | [] [] [] |
- gcal | [] [] |
- gcc | [] [] |
- gettext | [] [] [] [] [] |
- gnupg | [] [] [] [] [] [] [] |
- gprof | [] [] |
- gpsdrive | () () () () () |
- grep | [] [] [] [] [] [] [] [] |
- gretl | [] |
- gthumb | () () () |
- hello | [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] [] |
- indent | [] [] [] [] [] |
- jpilot | () [] [] [] |
- jwhois | [] [] |
- kbd | [] [] [] |
- ld | [] [] |
- libc | [] [] [] [] [] [] [] [] |
- libiconv | [] [] [] [] |
- lifelines | () () |
- lilypond | [] [] |
- lingoteach | [] [] |
- lingoteach_lessons| () () |
- lynx | [] [] [] [] [] |
- m4 | [] [] [] [] [] |
- make | [] [] [] [] |
- man-db | [] () () [] () () |
- mysecretdiary | [] [] [] |
- nano | [] () [] [] [] [] |
- nano_1_0 | [] () [] [] [] [] |
- opcodes | [] [] [] |
- parted | [] [] [] [] [] |
- ptx | [] [] [] [] [] [] [] |
- python | |
- recode | [] [] [] [] [] [] |
- sed | [] [] [] [] [] [] [] [] [] [] |
- sh-utils | [] [] [] [] |
- sharutils | [] [] [] [] [] [] [] |
- sketch | () [] () |
- soundtracker | [] [] [] |
- sp | [] |
- tar | [] [] [] [] [] [] |
- texinfo | [] [] [] [] [] |
- textutils | [] [] [] [] [] |
- util-linux | [] [] [] [] [] [] |
- vorbis-tools | [] |
- wastesedge | |
- wdiff | [] [] [] [] [] [] |
- wget | [] [] [] [] [] [] [] [] [] [] |
- +----------------------------------------+
- be bg ca cs da de el en eo es et fi fr
- 0 2 19 10 30 44 9 1 12 44 17 6 53
-
- gl he hr hu id it ja ko lv nb nl nn
- +-------------------------------------+
- a2ps | () () [] |
- ap-utils | |
- bash | [] |
- bfd | [] |
- binutils | [] |
- bison | [] [] [] [] |
- clisp | |
- clisp | [] |
- clisplow | |
- cpio | [] [] [] [] |
- darkstat | |
- diffutils | [] [] [] [] [] |
- enscript | [] [] |
- error | [] |
- fetchmail | [] |
- fileutils | [] [] [] |
- findutils | [] [] [] [] [] [] [] [] |
- flex | [] |
- gas | |
- gawk | [] |
- gcal | |
- gcc | [] |
- gettext | [] [] |
- gnupg | [] [] [] [] |
- gprof | [] |
- gpsdrive | [] () () |
- grep | [] [] [] [] [] [] [] |
- gretl | |
- gthumb | () () |
- hello | [] [] [] [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] |
- indent | [] [] [] [] |
- jpilot | () () |
- jwhois | [] [] |
- kbd | |
- ld | |
- libc | [] [] [] [] |
- libiconv | [] [] [] |
- lifelines | |
- lilypond | [] |
- lingoteach | [] |
- lingoteach_lessons| |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- make | [] [] [] [] [] [] |
- man-db | () () |
- mysecretdiary | [] |
- nano | [] [] [] [] |
- nano_1_0 | [] [] [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] |
- ptx | [] [] [] [] [] |
- python | |
- recode | [] [] [] |
- sed | [] [] [] [] [] [] [] [] |
- sh-utils | [] [] [] |
- sharutils | [] [] [] |
- sketch | () |
- soundtracker | [] [] |
- sp | |
- tar | [] [] [] [] [] [] |
- texinfo | [] [] [] |
- textutils | [] [] [] [] |
- util-linux | () [] |
- vorbis-tools | [] |
- wastesedge | |
- wdiff | [] [] [] |
- wget | [] [] [] [] [] [] |
- +-------------------------------------+
- gl he hr hu id it ja ko lv nb nl nn
- 23 9 12 19 16 13 26 9 1 7 19 3
-
- no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW
- +----------------------------------------------+
- a2ps | () () () [] [] [] [] [] | 10
- ap-utils | () | 0
- bash | [] | 6
- bfd | [] [] | 5
- binutils | [] [] | 5
- bison | [] [] [] [] | 12
- clisp | | 0
- clisp | | 5
- clisplow | | 0
- cpio | [] [] [] [] | 12
- darkstat | [] [] () () | 2
- diffutils | [] [] [] [] [] [] | 17
- enscript | [] [] [] [] | 8
- error | [] [] [] | 7
- fetchmail | () () [] | 6
- fileutils | [] [] [] [] [] [] | 14
- findutils | [] [] [] [] [] [] [] | 21
- flex | [] [] [] | 9
- gas | [] | 3
- gawk | [] [] | 6
- gcal | [] [] | 4
- gcc | [] | 4
- gettext | [] [] [] [] [] [] | 13
- gnupg | [] [] [] | 14
- gprof | [] [] | 5
- gpsdrive | [] [] | 3
- grep | [] [] [] [] [] | 20
- gretl | | 1
- gthumb | () () [] | 1
- hello | [] [] [] [] [] [] [] | 28
- id-utils | [] [] [] [] | 9
- indent | [] [] [] [] [] | 14
- jpilot | () () [] [] | 5
- jwhois | [] () () [] [] | 7
- kbd | [] [] | 5
- ld | [] [] | 4
- libc | [] [] [] [] [] [] | 18
- libiconv | [] [] [] [] [] | 12
- lifelines | [] | 1
- lilypond | [] | 4
- lingoteach | [] [] | 5
- lingoteach_lessons| () | 0
- lynx | [] [] [] [] | 13
- m4 | [] [] [] [] | 13
- make | [] [] [] [] [] | 15
- man-db | | 3
- mysecretdiary | [] [] [] | 7
- nano | [] [] [] [] | 13
- nano_1_0 | [] [] [] [] | 14
- opcodes | [] [] [] | 8
- parted | [] [] [] [] | 12
- ptx | [] [] [] [] [] [] [] | 19
- python | | 0
- recode | [] [] [] [] [] [] | 15
- sed | [] [] [] [] [] [] | 24
- sh-utils | [] [] | 9
- sharutils | [] [] [] [] | 14
- sketch | [] () [] | 4
- soundtracker | [] | 6
- sp | | 1
- tar | [] [] [] [] [] [] [] | 19
- texinfo | [] [] | 10
- textutils | [] [] [] [] [] | 14
- util-linux | [] [] [] | 10
- vorbis-tools | [] | 3
- wastesedge | | 0
- wdiff | [] [] [] [] [] | 14
- wget | [] [] [] [] [] [] [] [] | 24
- +----------------------------------------------+
- 37 teams no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW
- 68 domains 4 15 2 28 28 12 10 49 43 4 1 9 609
+ Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB
+ +-------------------------------------------------+
+ GNUnet | |
+ a2ps | [] [] [] [] [] |
+ aegis | () |
+ ant-phone | () |
+ anubis | [] |
+ ap-utils | |
+ aspell | [] [] [] [] |
+ bash | [] [] |
+ batchelor | [] |
+ bfd | [] |
+ bibshelf | [] |
+ binutils | [] |
+ bison | [] [] |
+ bluez-pin | [] [] [] [] |
+ clisp | [] [] |
+ console-tools | [] [] |
+ coreutils | [] [] [] [] |
+ cpio | |
+ cpplib | [] [] [] |
+ darkstat | [] () [] |
+ dialog | [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] |
+ doodle | [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] |
+ error | [] [] [] [] |
+ fetchmail | [] () [] [] [] |
+ fileutils | [] [] |
+ findutils | [] [] [] |
+ flex | [] [] [] |
+ fslint | [] |
+ gas | |
+ gawk | [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] |
+ gettext-runtime | [] [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] [] [] |
+ gip | |
+ gliv | [] |
+ glunarclock | [] |
+ gmult | [] [] |
+ gnubiff | () |
+ gnucash | [] () () [] |
+ gnucash-glossary | [] () |
+ gnupg | [] () [] [] |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | [] [] |
+ gpe-clock | [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | |
+ gpe-edit | [] |
+ gpe-go | [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] |
+ gpe-taskmanager | [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | [] [] |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] |
+ gpsdrive | () () |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] |
+ gretl | |
+ gsasl | [] |
+ gss | |
+ gst-plugins | [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] |
+ gtick | [] () |
+ gtkspell | [] [] [] |
+ hello | [] [] [] [] |
+ id-utils | [] [] |
+ impost | |
+ indent | [] [] |
+ iso_3166 | |
+ iso_3166_1 | [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_3166_3 | [] |
+ iso_4217 | |
+ iso_639 | |
+ jpilot | [] |
+ jtag | |
+ jwhois | |
+ kbd | [] [] [] [] |
+ latrine | () |
+ ld | [] |
+ libc | [] [] [] [] [] |
+ libextractor | |
+ libgpewidget | [] [] [] |
+ libgsasl | |
+ libiconv | [] [] [] [] [] |
+ libidn | |
+ lifelines | [] () |
+ lilypond | [] |
+ lingoteach | |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | [] |
+ make | [] [] |
+ man-db | [] () [] [] |
+ minicom | [] [] |
+ mysecretdiary | [] [] |
+ nano | [] () [] |
+ nano_1_0 | [] () [] [] |
+ opcodes | [] |
+ parted | [] [] [] [] |
+ psmisc | |
+ ptx | [] [] [] |
+ pwdutils | |
+ python | |
+ radius | [] |
+ recode | [] [] [] [] [] |
+ rpm | [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] [] |
+ sed | [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] |
+ sharutils | [] [] [] [] [] |
+ silky | () |
+ skencil | [] () |
+ sketch | [] () |
+ solfege | [] [] |
+ soundtracker | [] [] |
+ sp | [] |
+ stardict | [] |
+ tar | |
+ texinfo | [] [] |
+ textutils | [] [] [] |
+ tin | () () |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] [] |
+ vorbis-tools | [] [] [] [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] |
+ wget | [] [] [] [] [] [] |
+ xchat | [] [] [] [] |
+ xfree86_xkb_xml | [] [] [] [] |
+ xkeyboard-config | |
+ xpad | |
+ +-------------------------------------------------+
+ af am ar az be bg bs ca cs cy da de el en en_GB
+ 11 0 0 3 7 4 0 42 44 3 55 92 21 1 15
+
+ eo es et eu fa fi fr ga gl he hr hu id is it
+ +-----------------------------------------------+
+ GNUnet | |
+ a2ps | [] [] [] () |
+ aegis | |
+ ant-phone | [] |
+ anubis | [] |
+ ap-utils | [] |
+ aspell | [] [] |
+ bash | [] [] [] [] |
+ batchelor | [] [] |
+ bfd | [] [] |
+ bibshelf | [] [] [] |
+ binutils | [] [] |
+ bison | [] [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] |
+ clisp | [] [] |
+ console-tools | |
+ coreutils | [] [] [] [] [] |
+ cpio | [] [] |
+ cpplib | [] [] |
+ darkstat | [] () [] [] [] |
+ dialog | [] [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] [] [] [] [] |
+ doodle | [] [] |
+ e2fsprogs | [] [] [] |
+ enscript | [] [] |
+ error | [] [] [] [] [] |
+ fetchmail | [] |
+ fileutils | [] [] [] [] [] [] |
+ findutils | [] [] [] [] [] |
+ flex | [] [] [] |
+ fslint | [] |
+ gas | [] [] |
+ gawk | [] [] [] |
+ gbiff | [] |
+ gcal | [] [] |
+ gcc | |
+ gettext-examples | [] [] [] |
+ gettext-runtime | [] [] [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] |
+ gip | [] [] [] |
+ gliv | () |
+ glunarclock | [] [] [] |
+ gmult | [] [] [] |
+ gnubiff | [] [] () |
+ gnucash | [] () [] |
+ gnucash-glossary | [] [] |
+ gnupg | [] [] [] [] [] [] [] [] |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | [] [] [] [] |
+ gpe-clock | [] [] |
+ gpe-conf | [] |
+ gpe-contacts | [] |
+ gpe-edit | [] [] |
+ gpe-go | [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] |
+ gpe-taskmanager | [] [] |
+ gpe-timesheet | [] [] [] [] |
+ gpe-today | [] [] [] |
+ gpe-todo | [] [] [] |
+ gphoto2 | [] [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | () () [] () |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] [] [] [] [] [] [] |
+ gretl | [] [] [] |
+ gsasl | [] [] [] |
+ gss | [] |
+ gst-plugins | [] [] [] |
+ gstreamer | [] |
+ gtick | [] [] [] [] [] |
+ gtkspell | [] [] [] [] [] [] |
+ hello | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] |
+ impost | [] [] |
+ indent | [] [] [] [] [] [] [] [] [] [] [] |
+ iso_3166 | [] [] |
+ iso_3166_1 | [] [] [] [] [] [] |
+ iso_3166_2 | [] |
+ iso_3166_3 | [] |
+ iso_4217 | [] [] |
+ iso_639 | [] [] [] |
+ jpilot | [] [] |
+ jtag | [] |
+ jwhois | [] [] [] [] [] |
+ kbd | [] [] |
+ latrine | [] [] [] |
+ ld | [] [] |
+ libc | [] [] [] [] [] |
+ libextractor | |
+ libgpewidget | [] [] [] [] [] |
+ libgsasl | [] [] |
+ libiconv | [] [] [] [] [] [] [] [] [] [] [] |
+ libidn | [] [] |
+ lifelines | () |
+ lilypond | [] |
+ lingoteach | [] [] [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | [] [] |
+ make | [] [] [] [] [] [] [] |
+ man-db | () |
+ minicom | [] [] [] [] |
+ mysecretdiary | [] [] [] |
+ nano | [] [] () [] [] |
+ nano_1_0 | [] [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] [] [] [] |
+ psmisc | [] |
+ ptx | [] [] [] [] [] [] [] [] [] |
+ pwdutils | |
+ python | |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] [] |
+ rpm | [] |
+ screem | |
+ scrollkeeper | [] [] |
+ sed | [] [] [] [] [] |
+ sh-utils | [] [] [] [] [] [] [] |
+ shared-mime-info | [] [] [] [] [] [] |
+ sharutils | [] [] [] [] [] [] [] |
+ silky | () [] () () |
+ skencil | [] [] |
+ sketch | [] [] |
+ solfege | [] [] [] |
+ soundtracker | [] [] [] |
+ sp | [] |
+ stardict | [] |
+ tar | [] [] [] [] [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] [] [] |
+ tin | [] () |
+ tp-robot | [] [] |
+ tuxpaint | [] [] [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | [] [] |
+ util-linux | [] [] [] [] [] |
+ vorbis-tools | [] [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] [] [] [] [] |
+ xchat | [] [] [] [] [] |
+ xfree86_xkb_xml | [] [] |
+ xkeyboard-config | |
+ xpad | [] [] [] |
+ +-----------------------------------------------+
+ eo es et eu fa fi fr ga gl he hr hu id is it
+ 14 87 22 15 2 25 119 44 18 8 6 41 28 1 41
+
+ ja ko lg lt lv mk mn ms mt nb nl nn no nso or
+ +-----------------------------------------------+
+ GNUnet | |
+ a2ps | () [] [] () |
+ aegis | () |
+ ant-phone | [] |
+ anubis | [] [] [] |
+ ap-utils | |
+ aspell | [] [] |
+ bash | [] |
+ batchelor | [] |
+ bfd | |
+ bibshelf | |
+ binutils | [] |
+ bison | [] [] [] |
+ bluez-pin | [] |
+ clisp | [] |
+ console-tools | |
+ coreutils | [] [] |
+ cpio | |
+ cpplib | |
+ darkstat | [] [] |
+ dialog | [] |
+ diffutils | [] [] [] |
+ doodle | |
+ e2fsprogs | |
+ enscript | [] |
+ error | [] |
+ fetchmail | [] [] |
+ fileutils | [] [] |
+ findutils | |
+ flex | [] [] |
+ fslint | [] |
+ gas | |
+ gawk | [] [] |
+ gbiff | [] |
+ gcal | |
+ gcc | |
+ gettext-examples | [] [] |
+ gettext-runtime | [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] |
+ gip | [] |
+ gliv | [] |
+ glunarclock | [] [] |
+ gmult | [] |
+ gnubiff | |
+ gnucash | () () [] |
+ gnucash-glossary | [] |
+ gnupg | [] [] |
+ gpe-aerial | [] |
+ gpe-beam | [] |
+ gpe-calendar | [] |
+ gpe-clock | [] |
+ gpe-conf | [] |
+ gpe-contacts | |
+ gpe-edit | [] |
+ gpe-go | [] |
+ gpe-login | [] |
+ gpe-ownerinfo | [] |
+ gpe-sketchbook | [] |
+ gpe-su | [] |
+ gpe-taskmanager | [] |
+ gpe-timesheet | [] |
+ gpe-today | [] |
+ gpe-todo | [] |
+ gphoto2 | [] [] |
+ gprof | |
+ gpsdrive | () () () |
+ gramadoir | () |
+ grep | [] [] [] |
+ gretl | |
+ gsasl | [] |
+ gss | |
+ gst-plugins | [] [] |
+ gstreamer | [] |
+ gtick | [] |
+ gtkspell | [] |
+ hello | [] [] [] [] [] [] [] [] |
+ id-utils | [] |
+ impost | |
+ indent | [] [] |
+ iso_3166 | [] |
+ iso_3166_1 | [] [] |
+ iso_3166_2 | [] |
+ iso_3166_3 | [] |
+ iso_4217 | [] [] [] |
+ iso_639 | [] [] [] |
+ jpilot | () () () |
+ jtag | |
+ jwhois | [] |
+ kbd | [] |
+ latrine | [] |
+ ld | |
+ libc | [] [] [] [] [] |
+ libextractor | |
+ libgpewidget | [] |
+ libgsasl | [] |
+ libiconv | [] |
+ libidn | |
+ lifelines | [] |
+ lilypond | [] |
+ lingoteach | [] |
+ lynx | [] [] |
+ m4 | [] [] |
+ mailutils | |
+ make | [] [] [] |
+ man-db | () |
+ minicom | [] |
+ mysecretdiary | [] |
+ nano | [] [] |
+ nano_1_0 | [] [] [] |
+ opcodes | [] |
+ parted | [] [] |
+ psmisc | [] |
+ ptx | [] [] [] |
+ pwdutils | |
+ python | |
+ radius | |
+ recode | [] |
+ rpm | [] [] |
+ screem | [] |
+ scrollkeeper | [] [] [] |
+ sed | [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] [] [] |
+ sharutils | [] [] |
+ silky | [] |
+ skencil | |
+ sketch | |
+ solfege | [] [] |
+ soundtracker | |
+ sp | () |
+ stardict | [] [] |
+ tar | [] [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] |
+ tin | |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] |
+ vorbis-tools | [] |
+ wastesedge | [] |
+ wdiff | [] [] |
+ wget | [] [] |
+ xchat | [] [] [] [] |
+ xfree86_xkb_xml | [] |
+ xkeyboard-config | [] |
+ xpad | [] |
+ +-----------------------------------------------+
+ ja ko lg lt lv mk mn ms mt nb nl nn no nso or
+ 35 11 1 1 2 2 3 11 0 14 96 7 5 0 1
+
+ pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ +----------------------------------------------+
+ GNUnet | |
+ a2ps | () [] [] [] [] [] [] |
+ aegis | () () |
+ ant-phone | [] |
+ anubis | [] [] [] |
+ ap-utils | () |
+ aspell | [] [] |
+ bash | [] [] [] |
+ batchelor | [] |
+ bfd | [] [] |
+ bibshelf | |
+ binutils | [] [] |
+ bison | [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] [] [] |
+ clisp | [] |
+ console-tools | [] |
+ coreutils | [] [] [] [] |
+ cpio | [] [] |
+ cpplib | |
+ darkstat | [] [] [] [] [] [] |
+ dialog | [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] |
+ doodle | [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] |
+ error | [] [] [] |
+ fetchmail | [] () [] [] [] |
+ fileutils | [] [] [] [] [] |
+ findutils | [] [] [] [] [] |
+ flex | [] [] [] [] [] |
+ fslint | [] [] [] |
+ gas | |
+ gawk | [] [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | |
+ gettext-examples | [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] [] [] |
+ gimp-print | [] [] |
+ gip | [] [] [] |
+ gliv | [] [] [] |
+ glunarclock | [] [] [] [] [] [] |
+ gmult | [] [] [] [] |
+ gnubiff | () [] |
+ gnucash | () [] [] [] [] |
+ gnucash-glossary | [] [] [] |
+ gnupg | [] [] [] |
+ gpe-aerial | [] [] [] [] [] [] |
+ gpe-beam | [] [] [] [] [] [] |
+ gpe-calendar | [] [] [] [] [] [] [] |
+ gpe-clock | [] [] [] [] [] [] [] |
+ gpe-conf | [] [] [] [] [] [] |
+ gpe-contacts | [] [] [] |
+ gpe-edit | [] [] [] [] [] [] [] |
+ gpe-go | [] [] [] [] [] |
+ gpe-login | [] [] [] [] [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] [] [] |
+ gpe-sketchbook | [] [] [] [] [] [] [] |
+ gpe-su | [] [] [] [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] [] [] [] |
+ gpe-timesheet | [] [] [] [] [] [] [] |
+ gpe-today | [] [] [] [] [] [] [] |
+ gpe-todo | [] [] [] [] [] [] [] |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | [] |
+ gramadoir | [] |
+ grep | [] [] [] [] [] [] [] |
+ gretl | [] |
+ gsasl | [] [] [] [] [] |
+ gss | [] [] [] |
+ gst-plugins | [] [] [] |
+ gstreamer | [] [] [] [] |
+ gtick | [] [] [] |
+ gtkspell | [] [] [] [] [] |
+ hello | [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] |
+ impost | |
+ indent | [] [] [] [] [] [] |
+ iso_3166 | [] [] [] [] [] |
+ iso_3166_1 | [] [] [] [] |
+ iso_3166_2 | |
+ iso_3166_3 | [] [] [] |
+ iso_4217 | [] [] |
+ iso_639 | [] [] [] |
+ jpilot | |
+ jtag | [] |
+ jwhois | [] [] [] () () |
+ kbd | [] [] [] |
+ latrine | [] [] |
+ ld | [] |
+ libc | [] [] [] [] [] |
+ libextractor | |
+ libgpewidget | [] [] [] [] [] [] |
+ libgsasl | [] [] [] |
+ libiconv | [] [] [] [] [] [] [] [] [] [] |
+ libidn | [] () |
+ lifelines | [] [] |
+ lilypond | [] |
+ lingoteach | [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] [] |
+ mailutils | [] [] [] |
+ make | [] [] [] [] |
+ man-db | [] [] |
+ minicom | [] [] [] [] |
+ mysecretdiary | [] [] [] |
+ nano | [] [] [] |
+ nano_1_0 | [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] [] [] [] |
+ psmisc | [] [] |
+ ptx | [] [] [] [] [] [] |
+ pwdutils | [] |
+ python | |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] |
+ rpm | [] [] [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] [] |
+ sh-utils | [] [] [] |
+ shared-mime-info | [] [] [] [] [] |
+ sharutils | [] [] [] |
+ silky | () [] |
+ skencil | [] [] [] |
+ sketch | [] [] [] |
+ solfege | [] |
+ soundtracker | [] [] |
+ sp | |
+ stardict | [] [] |
+ tar | [] [] [] [] |
+ texinfo | [] [] [] [] |
+ textutils | [] [] [] |
+ tin | |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] |
+ vorbis-tools | [] [] |
+ wastesedge | |
+ wdiff | [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] [] [] |
+ xchat | [] [] [] [] [] [] |
+ xfree86_xkb_xml | [] [] [] [] [] |
+ xkeyboard-config | |
+ xpad | |
+ +----------------------------------------------+
+ pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ 0 48 27 58 6 79 71 4 47 13 13 51 90 0
+
+ tg th tk tr uk ven vi wa xh zh_CN zh_TW zu
+ +--------------------------------------------+
+ GNUnet | | 0
+ a2ps | [] [] | 18
+ aegis | | 0
+ ant-phone | [] | 4
+ anubis | [] | 9
+ ap-utils | () | 1
+ aspell | [] [] | 12
+ bash | | 10
+ batchelor | [] [] | 7
+ bfd | [] | 6
+ bibshelf | [] | 5
+ binutils | [] [] | 8
+ bison | [] | 17
+ bluez-pin | [] [] [] [] [] | 24
+ clisp | | 7
+ console-tools | | 3
+ coreutils | [] | 16
+ cpio | [] | 5
+ cpplib | [] | 6
+ darkstat | [] () () | 15
+ dialog | [] [] | 22
+ diffutils | [] [] [] | 27
+ doodle | | 4
+ e2fsprogs | [] | 8
+ enscript | [] | 12
+ error | [] [] | 15
+ fetchmail | [] | 12
+ fileutils | [] [] [] | 18
+ findutils | [] | 14
+ flex | [] | 14
+ fslint | [] | 7
+ gas | [] | 3
+ gawk | [] | 13
+ gbiff | | 4
+ gcal | [] | 5
+ gcc | | 1
+ gettext-examples | [] [] [] [] | 19
+ gettext-runtime | [] [] [] [] [] | 24
+ gettext-tools | [] [] [] | 16
+ gimp-print | [] | 11
+ gip | [] | 8
+ gliv | | 5
+ glunarclock | [] [] | 14
+ gmult | [] [] [] | 13
+ gnubiff | | 3
+ gnucash | () [] | 10
+ gnucash-glossary | [] | 8
+ gnupg | [] [] [] | 19
+ gpe-aerial | [] | 12
+ gpe-beam | [] [] | 13
+ gpe-calendar | [] [] [] [] | 18
+ gpe-clock | [] [] [] | 15
+ gpe-conf | [] [] | 12
+ gpe-contacts | [] [] | 6
+ gpe-edit | [] [] [] | 14
+ gpe-go | [] | 10
+ gpe-login | [] [] [] [] | 17
+ gpe-ownerinfo | [] [] [] | 17
+ gpe-sketchbook | [] | 13
+ gpe-su | [] [] | 14
+ gpe-taskmanager | [] [] | 14
+ gpe-timesheet | [] [] [] | 16
+ gpe-today | [] [] [] [] | 17
+ gpe-todo | [] [] [] | 16
+ gphoto2 | [] [] | 17
+ gprof | [] [] | 10
+ gpsdrive | | 2
+ gramadoir | [] | 6
+ grep | [] [] [] [] | 32
+ gretl | | 4
+ gsasl | [] [] | 12
+ gss | [] | 5
+ gst-plugins | [] [] | 16
+ gstreamer | [] [] [] | 14
+ gtick | [] | 11
+ gtkspell | [] [] [] | 18
+ hello | [] [] [] [] | 37
+ id-utils | [] [] | 13
+ impost | [] | 3
+ indent | [] [] [] | 24
+ iso_3166 | [] | 9
+ iso_3166_1 | [] [] | 19
+ iso_3166_2 | | 2
+ iso_3166_3 | [] [] | 8
+ iso_4217 | [] | 8
+ iso_639 | [] | 10
+ jpilot | [] [] [] | 6
+ jtag | | 2
+ jwhois | [] [] [] | 12
+ kbd | [] | 11
+ latrine | [] [] | 8
+ ld | [] | 5
+ libc | [] [] | 22
+ libextractor | | 0
+ libgpewidget | [] [] | 17
+ libgsasl | [] | 7
+ libiconv | [] [] [] [] [] | 32
+ libidn | [] | 4
+ lifelines | | 4
+ lilypond | [] | 5
+ lingoteach | | 5
+ lynx | [] [] | 14
+ m4 | [] [] | 17
+ mailutils | [] | 7
+ make | [] [] | 18
+ man-db | | 5
+ minicom | | 11
+ mysecretdiary | [] [] | 11
+ nano | | 11
+ nano_1_0 | [] [] | 17
+ opcodes | [] | 7
+ parted | [] [] [] | 17
+ psmisc | [] | 5
+ ptx | [] [] | 23
+ pwdutils | | 1
+ python | | 0
+ radius | [] | 6
+ recode | [] [] | 22
+ rpm | [] [] | 11
+ screem | | 1
+ scrollkeeper | [] [] | 22
+ sed | [] | 17
+ sh-utils | [] | 15
+ shared-mime-info | [] [] | 19
+ sharutils | [] [] [] | 20
+ silky | | 3
+ skencil | | 6
+ sketch | | 6
+ solfege | | 8
+ soundtracker | [] | 8
+ sp | [] | 3
+ stardict | [] [] [] [] | 10
+ tar | [] [] | 13
+ texinfo | [] [] | 14
+ textutils | [] [] [] | 17
+ tin | | 1
+ tp-robot | [] [] | 7
+ tuxpaint | [] [] [] [] | 34
+ unicode-han-tra... | | 0
+ unicode-transla... | | 2
+ util-linux | [] [] | 16
+ vorbis-tools | [] | 10
+ wastesedge | | 1
+ wdiff | [] | 21
+ wget | [] [] [] [] | 30
+ xchat | [] [] | 21
+ xfree86_xkb_xml | [] [] [] | 15
+ xkeyboard-config | | 1
+ xpad | [] | 5
+ +--------------------------------------------+
+ 71 teams tg th tk tr uk ven vi wa xh zh_CN zh_TW zu
+ 149 domains 0 0 1 66 30 0 54 16 0 42 21 0 1695
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
@@ -409,15 +970,15 @@ distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
- If August 2002 seems to be old, you may fetch a more recent copy of
-this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
-matrix with full percentage details can be found at
+ If February 2005 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites. The most
+up-to-date matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
-Using `gettext' in new packages
-===============================
+1.6 Using `gettext' in new packages
+===================================
- If you are writing a freely available program and want to
+If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package. Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library. This means
@@ -426,7 +987,7 @@ library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.
Once the sources are changed appropriately and the setup can handle
-to use of `gettext' the only thing missing are the translations. The
+the use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact
diff --git a/HISTORY.Snd b/HISTORY.Snd
index 46e9608..b13e66f 100644
--- a/HISTORY.Snd
+++ b/HISTORY.Snd
@@ -1,5 +1,13 @@
Snd change log
-
+
+ 30-Nov: Snd 11.1.
+ 23-Nov: colormaps are objects now. integer->colormap, colormap->integer.
+ transforms are also objects. integer->transform, transform->integer.
+ 20-Nov: play is generic now, "old-play" is the previous form.
+ 6-Nov: removed all support for gtkglext.
+ 2-Nov: selection function/object. selection->mix.
+ 28-Oct: pretty-print.scm.
+ 22-Oct: Snd 11.0.
16-Oct: clm.rb and grani.rb (thanks to Mike Scholz).
12-Oct: generic length, srate, channels, frames, file-name, sync, maxamp.
7-Oct: removed run-safety; the run macro only works in s7.
diff --git a/NEWS b/NEWS
index d53029d..57a1c73 100644
--- a/NEWS
+++ b/NEWS
@@ -1,25 +1,47 @@
-Snd 10.9
+Snd 11.1:
-Kjetil improved the rt stuff.
-added env.scm to sndlib (for jcvoi.scm).
-optimization now defaults to 6.
-show-backtrace removed.
+many more ruby/forth improvements thanks to Mike.
-s7: *error-info* for better error reporting.
- vector-for-each, vector-map, string-for-each
- generic map, for-each
+*trace-hook* in s7. Also defmacro* and define-macro*. make-list.
-added s7-slib-init.scm: slib support. It assumes getenv, file-exists?, and system
- are provided elsewhere (this is the case if s7 is running in Snd or sndlib).
+force and delay are now included in s7 only if WITH_FORCE is defined.
+ The slib implementation is used. The promise? function has been removed.
+ I used "make-promise" for "delay" in earlier versions of s7 to avoid
+ collisions with CLM.
-added s7.html
- s7: with-environment, true multiple-values, vectors can have > 2^31 elements (you'll
- need a lot of memory). multiple-value-bind and multiple-value-set!.
+removed the sbcl ppc undefined_alien_function stuff from cmus.c.
-checked: gtk 2.17.7|8|9|10|11, guile 1.9.2|3, sbcl 1.0.31, gsl 1.13
+removed all support for gtkglext and fftw2 (use fftw3).
- in sbcl, something has changed in the double float array handling, so functions
- like convolution can't be called from lisp. The instruments seem to be ok.
- (The two use the same calling sequence so I'm a bit mystified).
+play is generic, and uses optkey args (this is a non-compatible change).
+ "old-play" is the old version of play. play-channel, play-mix, play-region,
+ play-selection, and play-and-wait are deprecated.
-Thanks!: Rick Taube, Ralf Mattes, Kjetil Matheussen, Mike Scholz
+selection function/object; added selection choice to the generic funcs.
+selection->mix.
+The graphed selection bounds can be changed by dragging the mouse.
+
+The mix dialog follows the (mix-)sync field, and has 2 new buttons!
+
+copy and fill! for selection and sound, and copy for mix and mark.
+
+moved with-mix from ws.scm to snd11.scm.
+moved save-mix from mix.scm into C.
+added check-mix-tags to mix.scm.
+
+added snd-forth-docs.fs (incorporated in sndclm.html), thanks to Mike.
+
+colormaps are objects now, not ints; added the predefined colormaps
+ as built-in objects (hot-colormap, etc), and integer->colormap,
+ colormap->integer. Each colormap function now takes a colormap object
+ as the first argument, not an integer.
+
+transforms are objects also; fourier-transform etc; integer->transform and
+ transform->integer. add-transform returns such an object, delete-transform
+ and transform-type take one.
+
+removed tools/snd-index.cl.
+
+checked: sbcl 1.0.32, gtk 2.19.0, acl 8.2, mpc 0.8, guile 1.9.5, fth 1.2.8
+
+Thanks!: Geoff Lee, Mike Scholz, Rick Taube, Alan Grover, Kjetil Matheussen.
diff --git a/README.Snd b/README.Snd
index fbc519c..0278538 100644
--- a/README.Snd
+++ b/README.Snd
@@ -44,7 +44,7 @@ The configure script has a bunch of arguments:
--with-no-gui make Snd without any graphics support
- --with-gl include support for OpenGL (default: no)
+ --with-gl include support for OpenGL (default: no, Motif only)
--with-just-gl same but omit extension language bindings in gl.c (default: no)
The gl module is only useful if you want to write
code to add your own OpenGL graphics to Snd.
@@ -147,7 +147,6 @@ Version info:
if Forth, any version
if S7, any version
if GSL, version 0.8 or later
- if gtkglext, version 1.0 or later
if gamin, version 0.1.0 or later
if Cairo and the xg module, version 1.2.6 or later
@@ -336,7 +335,6 @@ Motif:
Gtk+:
http://www.gtk.org
ftp://ftp.gtk.org/pub/gtk/
- http://sourceforge.net/projects/gtkglext/
OpenGL:
http://www.mesa3d.org/
@@ -498,7 +496,7 @@ If you get some complaint like
try setting:
- (set! mus-alsa-device "plughw:0")
+ (set! (mus-alsa-device) "plughw:0")
then try playing again. The "default" device is always completely
broken.
@@ -522,35 +520,21 @@ the lang.csh file in /etc/profile.d).
---- Motif: ----
-Only Motif 2.n is supported.
+Only Motif 2.n is supported. Be sure to get the Motif development
+package if you want to build Snd (you need the Motif headers).
-If you get the error:
-
- snd-x0.h:9 Xm/XmAll: No such file or directory
-
-This probably means you don't have the Motif headers installed -- to
-build Snd with a GUI from the sources, you need either Motif or Gtk+.
-Motif has been released as open source software: see the url
-mentioned below. If you installed the openmotif library rpm package,
-it may not have included the headers (look under
-/usr/X11R6/include/Xm); to build Snd from the sources you need the
-headers (in the openmotif-devel packages).
-
-In Debian, apt-get install libmotif-dev.
-
-If you have installed Motif in some weird place, use the -I compiler
-flag to provide that information to the compiler. I've added the
--with-motif-prefix argument to the configure script, but don't know if
-it works; if, for example, you have Motif in /usr/local/lib and
-/usr/local/include, try --with-motif-prefix=/usr/local
+If you have installed Motif in some weird place, use the --with-motif-prefix
+configure argument.
If Snd using Lesstif is messed up, that's Lesstif's problem! I'm
not trying to support this anymore.
-In Fedora 7, openMotif will need /usr/include/X11/extensions/Print.h
+In Fedora 7 and later, openMotif will need /usr/include/X11/extensions/Print.h
/usr/include/X11/bitmaps/gray, and /usr/X11R6/lib/libXp.so. I copy these
from old machines, but there must be a better way...
+On 64-bit machines, use motif 2.3.2 or later.
+
---- Gtk+: ----
@@ -569,8 +553,8 @@ you can find where it occurs by:
where
In some cases, if you installed gtk from an RPM file, you
-also need to install gtk-devel. Otherwise the configure
-process thinks you have an old, unusable version of gtk.
+also need to install gtk-devel.
+
---- GSL: ----
@@ -599,15 +583,6 @@ to install the guile-devel package. Otherwise the configure process
will say it can't find Guile (actually guile-config).
----- Gtk and OpenGL ----
-
-The Gtk/GL version of Snd can kill the X server! I don't know why, and
-others out in webland are equally bewildered. I believe that gtkglext
-is officially unmaintained, and Gtk has decided to go with cairo instead.
-Ideally, Gtk would flush cairo which is a total loss, and use openGL
-directly, but I guess technical criteria are not driving this process.
-
-
---- Sun ----
If the make process complains about lt_dlclose and friends, add -lltdl
diff --git a/_sndlib.h b/_sndlib.h
index 67b2f29..d5c6a30 100644
--- a/_sndlib.h
+++ b/_sndlib.h
@@ -325,9 +325,6 @@ enum {MUS_NO_ERROR, MUS_NO_FREQUENCY, MUS_NO_PHASE, MUS_NO_GEN, MUS_NO_LENGTH,
#if HAVE_FORTH
#define S_setB "set-"
#endif
- #if HAVE_CL
- #define S_setB "setf"
- #endif
#if (!HAVE_EXTENSION_LANGUAGE)
#define S_setB "set-"
#endif
diff --git a/bess.scm b/bess.scm
index 564eb23..50e8ce1 100644
--- a/bess.scm
+++ b/bess.scm
@@ -1,67 +1,25 @@
-#!/usr/bin/guile -s
-!#
-
-(use-modules (ice-9 format))
-
-;;; for the Ruby version, see bess.rb by Michael Scholz
-
-;;; load sndlib and xmlib
-(if (not (provided? 'sndlib))
- (let ((sndlib (dynamic-link "libsndlib.so")))
- (if (not (dynamic-object? sndlib))
- (set! sndlib (dynamic-link "sndlib.so")))
- (if (not (dynamic-object? sndlib))
- (error "can't find sndlib.so or libsndlib.so")
- (dynamic-call (dynamic-func "Init_sndlib" sndlib) #f))))
-
-(if (not (provided? 'xm))
- (let ((libxm (dynamic-link "libxm.so")))
- (if (not (dynamic-object? libxm))
- (error "can't find libxm")
- (dynamic-call (dynamic-func "Init_libxm" libxm) #f))))
-
-;;; if these fail, first strace bess.scm and see where it failed
-;;; if it actually did find the library, try running Snd and (dlopen "sndlib.so")
-;;; Snd's dlopen will report a truthful error message (libtool lies)
-
-(define use-snd (provided? 'snd))
-
;;; set up our user-interface
-(let* ((shell-app (if (not use-snd)
- (XtVaOpenApplication
- "FM Forever!" 0 '()
- applicationShellWidgetClass
- (list XmNallowShellResize #t)
- (list "*fontList: 9x15"
- "*enableEtchedInMenu: True"
- "*enableThinThickness: True"
- "*enableToggleColor: True"
- "*enableToggleVisual: True"))
- #f))
- (app (if use-snd
- (car (main-widgets))
- (cadr shell-app)))
+(let* ((shell-app #f)
+ (app (car (main-widgets)))
- (shell (if use-snd
- (let* ((xdismiss (XmStringCreate "Go away" XmFONTLIST_DEFAULT_TAG))
- (xhelp (XmStringCreate "Help" XmFONTLIST_DEFAULT_TAG))
- (titlestr (XmStringCreate "FM Forever!" XmFONTLIST_DEFAULT_TAG))
- (dialog (XmCreateTemplateDialog (cadr (main-widgets)) "FM Forever!"
- (list XmNcancelLabelString xdismiss
- XmNhelpLabelString xhelp
- XmNautoUnmanage #f
- XmNdialogTitle titlestr
- XmNresizePolicy XmRESIZE_GROW
- XmNnoResize #f
- XmNtransient #f))))
- (XtAddCallback dialog
- XmNhelpCallback (lambda (w context info)
- (snd-print "This dialog lets you experiment with simple FM")))
- (XmStringFree xhelp)
- (XmStringFree xdismiss)
- (XmStringFree titlestr)
- dialog)
- (car shell-app)))
+ (shell (let* ((xdismiss (XmStringCreate "Go away" XmFONTLIST_DEFAULT_TAG))
+ (xhelp (XmStringCreate "Help" XmFONTLIST_DEFAULT_TAG))
+ (titlestr (XmStringCreate "FM Forever!" XmFONTLIST_DEFAULT_TAG))
+ (dialog (XmCreateTemplateDialog (cadr (main-widgets)) "FM Forever!"
+ (list XmNcancelLabelString xdismiss
+ XmNhelpLabelString xhelp
+ XmNautoUnmanage #f
+ XmNdialogTitle titlestr
+ XmNresizePolicy XmRESIZE_GROW
+ XmNnoResize #f
+ XmNtransient #f))))
+ (XtAddCallback dialog
+ XmNhelpCallback (lambda (w context info)
+ (snd-print "This dialog lets you experiment with simple FM")))
+ (XmStringFree xhelp)
+ (XmStringFree xdismiss)
+ (XmStringFree titlestr)
+ dialog))
(dpy (XtDisplay shell))
(screen (DefaultScreenOfDisplay dpy))
@@ -85,9 +43,6 @@
(XtVaSetValues label (list XmNlabelString s1))
(XmStringFree s1)))
- (if (not use-snd)
- (XtSetValues shell (list XmNtitle "FM Forever!")))
-
(let* ((light-blue (position-color))
(form (XtCreateManagedWidget "form" xmFormWidgetClass shell
(list XmNbackground white
@@ -262,9 +217,8 @@
(XmScaleSetValue fm-scale (inexact->exact (floor (* 100 (/ index high-index)))))
(XmScaleSetValue cm-scale (inexact->exact (floor (* ratio (/ 100 high-ratio)))))
- (if use-snd
- (XtManageChild shell)
- (XtRealizeWidget shell))
+ (XtManageChild shell)
+ (XtRealizeWidget shell)
;; send fm data to dac
(mus-oss-set-buffers 4 12) ; a no-op except in OSS/Linux
@@ -283,12 +237,11 @@
(XtRemoveWorkProc proc) ; odd that there's no XtAppRemoveWorkProc
(mus-audio-close port))
#f)
- (if use-snd
- (XtAddCallback shell
- XmNcancelCallback (lambda (w context info)
- (XtRemoveWorkProc proc)
- (mus-audio-close port)
- (XtUnmanageChild shell))))
+ (XtAddCallback shell
+ XmNcancelCallback (lambda (w context info)
+ (XtRemoveWorkProc proc)
+ (mus-audio-close port)
+ (XtUnmanageChild shell)))
(set! proc (XtAppAddWorkProc
app
(lambda (ignored-arg)
@@ -304,7 +257,5 @@
(hz->radians (* ratio frequency)))))))))
(mus-audio-write port data bufsize)
#f))))
- (if (not use-snd)
- (XtAppMainLoop app))))
-
+ ))
diff --git a/bird.fsm b/bird.fsm
index 76be200..f77bef6 100644
--- a/bird.fsm
+++ b/bird.fsm
@@ -2,16 +2,15 @@
\ Translator: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Tue Dec 12 03:26:27 CET 2006
-\ Changed: Thu Dec 14 03:47:10 CET 2006
+\ Changed: Thu Jun 18 12:20:57 CEST 2009
-\ Usage: ' bird-test with-sound
+\ Usage: <'> bird-test with-sound
\ or ws-bird-test
require clm
-instrument: bird ( start dur freq freq-skew amp freqenv ampenf -- )
- <{ start dur freq freq-skew amp freqenv ampenv
- :optional lpfilt 1.0 degree 0.0 reverb-amount 0.0 }>
+instrument: bird <{ start dur freq freq-skew amp freqenv ampenv
+ :optional lpfilt 1.0 degree 0.0 reverb-amount 0.0 -- }>
:envelope ampenv :scaler amp :duration dur make-env { amp-env }
:envelope freqenv :scaler freq-skew hz->radians :duration dur make-env { gls-env }
:frequency freq make-oscil { os }
@@ -23,12 +22,12 @@ instrument: bird ( start dur freq freq-skew amp freqenv ampenf -- )
end-run
;instrument
-instrument: bigbird ( start dur freq freq-skew amp freqenv ampenv partials -- )
- <{ start dur freq freq-skew amp freqenv ampenv parts
- :optional lpcoeff 1.0 degree 0.0 reverb-amount 0.0 }>
+instrument: bigbird <{ start dur freq freq-skew amp freqenv ampenv parts
+ :optional lpcoeff 1.0 degree 0.0 reverb-amount 0.0 -- }>
+ parts normalize-partials to parts
:envelope ampenv :scaler amp :duration dur make-env { amp-env }
:envelope freqenv :scaler freq-skew hz->radians :duration dur make-env { gls-env }
- :frequency freq :coeffs parts normalize-partials undef partials->polynomial make-polyshape { os }
+ :frequency freq :coeffs parts mus-chebyshev-first-kind partials->polynomial make-polyshape { os }
:a0 lpcoeff :b1 1.0 lpcoeff f- make-one-pole { fil }
*channels* 2 = degree f0= && if 45.0 to degree then
*reverb* reverb-amount f0= && if 0.001 to reverb-amount then
@@ -37,46 +36,44 @@ instrument: bigbird ( start dur freq freq-skew amp freqenv ampenv partials -- )
end-run
;instrument
-\ While VALUE sets objects to gc-protect CONSTANT sets them to
-\ gc-permanent.
-'( 0 0 0.25 1 0.6 0.7 0.75 1 1 0 ) constant main-amp
-'( 0 0 0.01 1 0.99 1 1 0 ) constant tap-amp
-'( 0 0 0.25 1 0.75 1 1 0 ) constant bird-amp
-'( 0 0 1 1 ) constant bird-up
-'( 0 1 1 0 ) constant bird-down
+#( 0 0 0.25 1 0.6 0.7 0.75 1 1 0 ) constant main-amp
+#( 0 0 0.01 1 0.99 1 1 0 ) constant tap-amp
+#( 0 0 0.25 1 0.75 1 1 0 ) constant bird-amp
+#( 0 0 1 1 ) constant bird-up
+#( 0 1 1 0 ) constant bird-down
event: orchard-oriole ( beg -- )
0.38 f- { beg }
- '( 0 0 0.6 1 1 0.6 ) { oriupdwna }
- '( 0 0.5 0.3 1 1 0 ) { oriupdwnb }
- '( 0 0.9 0.15 1 0.4 0.3 0.6 0.6 0.85 0 1 0 ) { oribiga }
- '( 0 1 0.05 0.5 0.1 1 0.25 0 0.85 0.5 1 0 ) { orimid }
- '( 0 0.3 0.25 0 1 1 ) { oridwnup }
- '( 0 0 0.1 1 1 0 ) { oriamp }
+ #( 0 0 0.6 1 1 0.6 ) { oriupdwna }
+ #( 0 0.5 0.3 1 1 0 ) { oriupdwnb }
+ #( 0 0.9 0.15 1 0.4 0.3 0.6 0.6 0.85 0 1 0 ) { oribiga }
+ #( 0 1 0.05 0.5 0.1 1 0.25 0 0.85 0.5 1 0 ) { orimid }
+ #( 0 0.3 0.25 0 1 1 ) { oridwnup }
+ #( 0 0 0.1 1 1 0 ) { oriamp }
0.38 beg f+ 0.03 3700 100 0.05 bird-down main-amp bird
0.41 beg f+ 0.05 2500 1000 0.10 bird-up main-amp bird
- 0.50 beg f+ 0.10 2000 800 0.20 oriupdwna main-amp '( 1 1 2 0.02 3 0.05 ) bigbird
+ 0.50 beg f+ 0.10 2000 800 0.20 oriupdwna main-amp #( 1 1 2 0.02 3 0.05 ) bigbird
0.65 beg f+ 0.03 3900 1200 0.10 bird-down main-amp bird
- 0.70 beg f+ 0.21 2000 1200 0.15 oribiga main-amp '( 1 1 2 0.05 ) bigbird
+ 0.70 beg f+ 0.21 2000 1200 0.15 oribiga main-amp #( 1 1 2 0.05 ) bigbird
1.00 beg f+ 0.05 4200 1000 0.10 bird-down main-amp bird
- 1.10 beg f+ 0.10 2000 1000 0.25 orimid main-amp '( 1 1 2 0.05 ) bigbird
- 1.30 beg f+ 0.10 2000 1000 0.25 orimid main-amp '( 1 1 2 0.05 ) bigbird
+ 1.10 beg f+ 0.10 2000 1000 0.25 orimid main-amp #( 1 1 2 0.05 ) bigbird
+ 1.30 beg f+ 0.10 2000 1000 0.25 orimid main-amp #( 1 1 2 0.05 ) bigbird
1.48 beg f+ 0.10 2300 3200 0.10 oriupdwnb oriamp bird
1.65 beg f+ 0.03 1800 300 0.05 bird-up main-amp bird
1.70 beg f+ 0.03 2200 100 0.04 bird-down main-amp bird
1.80 beg f+ 0.07 2500 2000 0.15 oriupdwnb oriamp bird
- 1.92 beg f+ 0.20 2400 1200 0.25 oridwnup main-amp '( 1 1 2 0.04 ) bigbird
+ 1.92 beg f+ 0.20 2400 1200 0.25 oridwnup main-amp #( 1 1 2 0.04 ) bigbird
2.20 beg f+ 0.02 2200 3000 0.04 bird-up main-amp bird
2.28 beg f+ 0.02 2200 3000 0.04 bird-up main-amp bird
- 2.40 beg f+ 0.17 2000 1000 0.20 oriupdwna oriamp '( 1 1 2 0.04 ) bigbird
+ 2.40 beg f+ 0.17 2000 1000 0.20 oriupdwna oriamp #( 1 1 2 0.04 ) bigbird
2.4 0.17 f+ step
;event
event: cassins-kingbird ( beg -- )
0.03 f- { beg }
- '( 0 0.3 0.45 1 0.9 0.1 1 0 ) { kingfirst }
- '( 0.00 0.00 0.02 0.50 0.04 0.00 0.06 0.55 0.08 0.05 0.10 0.60
+ #( 0 0.3 0.45 1 0.9 0.1 1 0 ) { kingfirst }
+ #( 0.00 0.00 0.02 0.50 0.04 0.00 0.06 0.55 0.08 0.05 0.10 0.60
0.12 0.05 0.14 0.65 0.16 0.10 0.18 0.70 0.20 0.10 0.22 0.75
0.24 0.15 0.26 0.80 0.28 0.20 0.30 0.85 0.32 0.25 0.34 0.90
0.36 0.30 0.38 0.95 0.40 0.40 0.42 1.00 0.44 0.50 0.46 1.00
@@ -86,14 +83,14 @@ event: cassins-kingbird ( beg -- )
0.84 0.10 0.86 0.60 0.88 0.00 0.90 0.55 0.92 0.00 0.94 0.50
0.96 0.00 1.00 0.40 ) { kingsecond }
- 0.03 beg f+ 0.04 1700 1200 0.15 kingfirst main-amp '( 1 1 2 0.5 3 0 4 0.2 ) bigbird
- 0.12 beg f+ 0.18 1700 900 0.25 kingsecond main-amp '( 1 1 2 0.01 3 0 4 0.1 ) bigbird
+ 0.03 beg f+ 0.04 1700 1200 0.15 kingfirst main-amp #( 1 1 2 0.5 3 0 4 0.2 ) bigbird
+ 0.12 beg f+ 0.18 1700 900 0.25 kingsecond main-amp #( 1 1 2 0.01 3 0 4 0.1 ) bigbird
0.12 0.18 f+ step
;event
event: chipping-sparrow ( beg -- )
{ beg }
- '( 0 0.8 0.15 1 0.75 0.3 1 0 ) { chip-up }
+ #( 0 0.8 0.15 1 0.75 0.3 1 0 ) { chip-up }
0.00 beg f+ 0.05 4000 2400 0.2 chip-up main-amp bird
0.06 beg f+ 0.05 4000 2400 0.2 chip-up main-amp bird
@@ -117,42 +114,42 @@ event: chipping-sparrow ( beg -- )
event: bobwhite ( beg -- )
0.4 f- { beg }
- '( 0 0 0.4 1 1 1 ) { bobup1 }
- '( 0 0 0.65 0.5 1 1 ) { bobup2 }
+ #( 0 0 0.4 1 1 1 ) { bobup1 }
+ #( 0 0 0.65 0.5 1 1 ) { bobup2 }
- 0.4 beg f+ 0.2 1800 200 0.1 bobup1 main-amp '( 1 1 2 0.02 ) bigbird
- 1.0 beg f+ 0.2 1800 1200 0.2 bobup2 main-amp '( 1 1 2 0.02 ) bigbird
+ 0.4 beg f+ 0.2 1800 200 0.1 bobup1 main-amp #( 1 1 2 0.02 ) bigbird
+ 1.0 beg f+ 0.2 1800 1200 0.2 bobup2 main-amp #( 1 1 2 0.02 ) bigbird
1 0.2 f+ step
;event
event: western-meadowlark ( beg -- )
0.8 f- { beg }
- '( 0 0 1 0 ) { no-skw }
- '( 0 1 0.4 0.4 1 0 ) { down-skw }
-
- 0.80 beg f+ 0.10 2010 0 0.10 no-skw main-amp '( 1 1 2 0.04 ) bigbird
- 1.10 beg f+ 0.15 3000 100 0.11 down-skw main-amp '( 1 1 2 0.04 ) bigbird
- 1.30 beg f+ 0.25 2000 150 0.20 down-skw main-amp '( 1 1 2 0.04 ) bigbird
- 1.65 beg f+ 0.15 3010 250 0.11 down-skw main-amp '( 1 1 2 0.04 ) bigbird
- 1.85 beg f+ 0.10 2200 150 0.11 down-skw main-amp '( 1 1 2 0.04 ) bigbird
- 2.00 beg f+ 0.10 3200 1400 0.11 bird-down main-amp '( 1 1 2 0.04 ) bigbird
- 2.20 beg f+ 0.05 2000 200 0.11 bird-down main-amp '( 1 1 2 0.04 ) bigbird
- 2.30 beg f+ 0.10 1600 0 0.11 bird-down main-amp '( 1 1 2 0.04 ) bigbird
+ #( 0 0 1 0 ) { no-skw }
+ #( 0 1 0.4 0.4 1 0 ) { down-skw }
+
+ 0.80 beg f+ 0.10 2010 0 0.10 no-skw main-amp #( 1 1 2 0.04 ) bigbird
+ 1.10 beg f+ 0.15 3000 100 0.11 down-skw main-amp #( 1 1 2 0.04 ) bigbird
+ 1.30 beg f+ 0.25 2000 150 0.20 down-skw main-amp #( 1 1 2 0.04 ) bigbird
+ 1.65 beg f+ 0.15 3010 250 0.11 down-skw main-amp #( 1 1 2 0.04 ) bigbird
+ 1.85 beg f+ 0.10 2200 150 0.11 down-skw main-amp #( 1 1 2 0.04 ) bigbird
+ 2.00 beg f+ 0.10 3200 1400 0.11 bird-down main-amp #( 1 1 2 0.04 ) bigbird
+ 2.20 beg f+ 0.05 2000 200 0.11 bird-down main-amp #( 1 1 2 0.04 ) bigbird
+ 2.30 beg f+ 0.10 1600 0 0.11 bird-down main-amp #( 1 1 2 0.04 ) bigbird
2.3 0.1 f+ step
;event
event: scissor-tailed-flycatcher ( beg -- )
{ beg }
- '( 0 0 0.4 1 0.6 1 1 0 ) { scissor }
+ #( 0 0 0.4 1 0.6 1 1 0 ) { scissor }
- beg 0.05 1800 1800 0.2 scissor main-amp '( 1 0.5 2 1 3 0.5 4 0.1 5 0.01 ) bigbird
+ beg 0.05 1800 1800 0.2 scissor main-amp #( 1 0.5 2 1 3 0.5 4 0.1 5 0.01 ) bigbird
0.05 step
;event
event: great-horned-owl ( beg -- )
0.3 f- { beg }
- '( 0 0 0.3 1 1 1 ) { owlup }
- '( 1 1 3 0.02 7 0.01 ) { owl-parts }
+ #( 0 0 0.3 1 1 1 ) { owlup }
+ #( 1 1 3 0.02 7 0.01 ) { owl-parts }
0.30 beg f+ 0.10 300 0 0.1 main-amp main-amp owl-parts bigbird
0.60 beg f+ 0.40 293 6 0.1 bird-down main-amp owl-parts bigbird
@@ -163,15 +160,15 @@ event: great-horned-owl ( beg -- )
event: black-throated-gray-warbler ( beg -- )
{ beg }
- '( 0.00 0.50 0.02 0.60 0.04 0.45 0.06 0.62 0.08 0.40 0.10 0.65
+ #( 0.00 0.50 0.02 0.60 0.04 0.45 0.06 0.62 0.08 0.40 0.10 0.65
0.12 0.35 0.14 0.70 0.18 0.30 0.20 0.70 0.22 0.30 0.24 0.70
0.25 0.20 0.30 0.80 0.35 0.10 0.40 0.90 0.45 0.00 0.50 1.00
0.55 0.00 0.60 1.00 0.65 0.00 0.70 1.00 0.75 0.00 0.80 1.00
0.85 0.00 0.90 1.00 0.95 0.00 1.00 0.50 ) { gray-one }
- '( 0.00 0.00 0.01 0.40 0.02 0.00 0.03 0.40 0.04 0.00 0.05 0.40
+ #( 0.00 0.00 0.01 0.40 0.02 0.00 0.03 0.40 0.04 0.00 0.05 0.40
0.06 0.00 0.07 0.40 0.08 0.00 0.09 0.40 0.10 0.00 0.25 0.80
0.40 0.30 0.55 1.00 0.70 0.00 0.85 0.80 1.00 0.40 ) { gray-two }
- '( 0.00 1.00 0.01 0.60 0.02 1.00 0.03 0.60 0.04 1.00 0.05 0.60
+ #( 0.00 1.00 0.01 0.60 0.02 1.00 0.03 0.60 0.04 1.00 0.05 0.60
0.06 1.00 0.07 0.60 0.08 1.00 0.09 0.60 0.10 1.00 0.11 0.60
0.12 1.00 0.13 0.60 0.14 1.00 0.15 0.60 0.16 1.00 0.17 0.60
0.18 1.00 0.19 0.60 0.20 1.00 0.21 0.55 0.22 1.00 0.23 0.50
@@ -199,10 +196,10 @@ event: black-throated-gray-warbler ( beg -- )
event: yellow-warbler ( beg -- )
{ beg }
- '( 0 0 0.6 1 1 0.5 ) { yellow-up }
- '( 0 1 0.05 1 0.6 0 0.8 0.3 1 0.1 ) { yellow-swirl }
- '( 0 0 0.3 0.2 0.8 0.7 1 1 ) { yellow-last }
- '( 0 0 0.9 1 1 0 ) { swirl-amp }
+ #( 0 0 0.6 1 1 0.5 ) { yellow-up }
+ #( 0 1 0.05 1 0.6 0 0.8 0.3 1 0.1 ) { yellow-swirl }
+ #( 0 0 0.3 0.2 0.8 0.7 1 1 ) { yellow-last }
+ #( 0 0 0.9 1 1 0 ) { swirl-amp }
0.00 beg f+ 0.050 5600 400 0.05 yellow-up main-amp bird
0.23 beg f+ 0.120 5000 1500 0.15 yellow-swirl main-amp bird
@@ -218,9 +215,9 @@ event: yellow-warbler ( beg -- )
event: black-necked-stilt ( beg -- )
{ beg }
- '( 0 0 0.9 1 1 0 ) { upamp }
- '( 0 0 0.5 1 1 0.2 ) { rampup }
- '( 1 0.5 2 1 3 0.75 4 0.5 5 0.1 ) { bns-parts }
+ #( 0 0 0.9 1 1 0 ) { upamp }
+ #( 0 0 0.5 1 1 0.2 ) { rampup }
+ #( 1 0.5 2 1 3 0.75 4 0.5 5 0.1 ) { bns-parts }
0.0 beg f+ 0.1 900 100 0.2 rampup upamp bns-parts bigbird
0.3 beg f+ 0.1 900 200 0.2 rampup upamp bns-parts bigbird
@@ -230,33 +227,33 @@ event: black-necked-stilt ( beg -- )
event: chestnut-sided-warbler ( beg -- )
0.1 f- { beg }
- '( 0 1 0.3 0.5 0.6 1 0.8 0.2 1 0 ) { ycurve }
- '( 0 0.2 0.5 1 1 0 ) { vcurve }
- '( 0 0.5 0.15 0 0.45 0.1 0.6 1 0.7 0.9 1 0.9 ) { wcurve }
- '( 0 0 0.95 1 1 1 ) { upcurve }
- '( 0 1 0.25 0.3 0.6 0.15 1 0 ) { downcurve }
- '( 0 0 0.9 1 1 0 ) { louder }
- '( 0 0 0.1 1 0.4 0.1 0.5 0.9 0.6 0.1 0.7 1 1 0 ) { wamp }
-
- 0.10 beg f+ 0.10 4050 1200 0.050 ycurve main-amp '( 1 1 2 0.1 ) bigbird
- 0.25 beg f+ 0.03 3900 300 0.075 vcurve main-amp '( 1 1 2 0.1 ) bigbird
- 0.30 beg f+ 0.10 4050 1200 0.150 ycurve louder '( 1 1 2 0.1 ) bigbird
- 0.42 beg f+ 0.03 3800 500 0.100 vcurve main-amp '( 1 1 2 0.1 ) bigbird
- 0.50 beg f+ 0.10 4000 1200 0.200 ycurve tap-amp '( 1 1 2 0.1 ) bigbird
- 0.65 beg f+ 0.03 3800 500 0.150 vcurve main-amp '( 1 1 2 0.1 ) bigbird
- 0.72 beg f+ 0.10 4000 1200 0.200 ycurve tap-amp '( 1 1 2 0.1 ) bigbird
- 0.85 beg f+ 0.03 3800 500 0.150 vcurve main-amp '( 1 1 2 0.1 ) bigbird
- 0.91 beg f+ 0.10 4000 1200 0.200 ycurve tap-amp '( 1 1 2 0.1 ) bigbird
- 1.05 beg f+ 0.12 3800 2200 0.150 wcurve wamp '( 1 1 2 0.1 ) bigbird
- 1.20 beg f+ 0.12 3800 2200 0.150 wcurve wamp '( 1 1 2 0.1 ) bigbird
- 1.35 beg f+ 0.12 2500 2200 0.250 upcurve louder '( 1 1 2 0.1 ) bigbird
- 1.50 beg f+ 0.12 2500 4000 0.150 downcurve main-amp '( 1 1 2 0.1 ) bigbird
+ #( 0 1 0.3 0.5 0.6 1 0.8 0.2 1 0 ) { ycurve }
+ #( 0 0.2 0.5 1 1 0 ) { vcurve }
+ #( 0 0.5 0.15 0 0.45 0.1 0.6 1 0.7 0.9 1 0.9 ) { wcurve }
+ #( 0 0 0.95 1 1 1 ) { upcurve }
+ #( 0 1 0.25 0.3 0.6 0.15 1 0 ) { downcurve }
+ #( 0 0 0.9 1 1 0 ) { louder }
+ #( 0 0 0.1 1 0.4 0.1 0.5 0.9 0.6 0.1 0.7 1 1 0 ) { wamp }
+
+ 0.10 beg f+ 0.10 4050 1200 0.050 ycurve main-amp #( 1 1 2 0.1 ) bigbird
+ 0.25 beg f+ 0.03 3900 300 0.075 vcurve main-amp #( 1 1 2 0.1 ) bigbird
+ 0.30 beg f+ 0.10 4050 1200 0.150 ycurve louder #( 1 1 2 0.1 ) bigbird
+ 0.42 beg f+ 0.03 3800 500 0.100 vcurve main-amp #( 1 1 2 0.1 ) bigbird
+ 0.50 beg f+ 0.10 4000 1200 0.200 ycurve tap-amp #( 1 1 2 0.1 ) bigbird
+ 0.65 beg f+ 0.03 3800 500 0.150 vcurve main-amp #( 1 1 2 0.1 ) bigbird
+ 0.72 beg f+ 0.10 4000 1200 0.200 ycurve tap-amp #( 1 1 2 0.1 ) bigbird
+ 0.85 beg f+ 0.03 3800 500 0.150 vcurve main-amp #( 1 1 2 0.1 ) bigbird
+ 0.91 beg f+ 0.10 4000 1200 0.200 ycurve tap-amp #( 1 1 2 0.1 ) bigbird
+ 1.05 beg f+ 0.12 3800 2200 0.150 wcurve wamp #( 1 1 2 0.1 ) bigbird
+ 1.20 beg f+ 0.12 3800 2200 0.150 wcurve wamp #( 1 1 2 0.1 ) bigbird
+ 1.35 beg f+ 0.12 2500 2200 0.250 upcurve louder #( 1 1 2 0.1 ) bigbird
+ 1.50 beg f+ 0.12 2500 4000 0.150 downcurve main-amp #( 1 1 2 0.1 ) bigbird
1.5 0.12 f+ step
;event
event: grasshopper-sparrow ( beg -- )
0.49 f- { beg }
- '( 0.00 0.50 0.02 0.80 0.04 0.30 0.06 0.80 0.07 0.10 0.08 0.90
+ #( 0.00 0.50 0.02 0.80 0.04 0.30 0.06 0.80 0.07 0.10 0.08 0.90
0.10 0.00 0.11 0.90 0.12 0.00 0.13 0.90 0.14 0.10 0.15 1.00
0.16 0.10 0.17 1.00 0.18 0.10 0.19 1.00 0.20 0.10 0.21 1.00
0.22 0.10 0.23 1.00 0.24 0.10 0.25 1.00 0.26 0.10 0.27 1.00
@@ -272,7 +269,7 @@ event: grasshopper-sparrow ( beg -- )
0.82 0.10 0.83 1.00 0.84 0.10 0.85 1.00 0.86 0.10 0.87 1.00
0.88 0.10 0.89 1.00 0.90 0.10 0.91 1.00 0.92 0.10 0.93 1.00
0.94 0.10 0.95 1.00 0.96 0.10 0.97 1.00 0.98 0.10 1.00 1.00 ) { grass-one }
- '( 0.00 0.00 0.10 1.00 0.20 0.00 0.30 1.00 0.40 0.00 0.50 1.00
+ #( 0.00 0.00 0.10 1.00 0.20 0.00 0.30 1.00 0.40 0.00 0.50 1.00
0.60 0.00 0.70 1.00 0.80 0.00 0.90 1.00 1.00 0.00 ) { grass-two }
0.49 beg f+ 0.01 8000 100 0.1 grass-two main-amp bird
@@ -284,8 +281,8 @@ event: grasshopper-sparrow ( beg -- )
event: swamp-sparrow ( beg -- )
{ beg }
- '( 0 0 0.6 0.7 1 1 ) { swamp-up }
- '( 0 1 0.5 0.5 0.6 0.6 1 0 ) { swamp-down }
+ #( 0 0 0.6 0.7 1 1 ) { swamp-up }
+ #( 0 1 0.5 0.5 0.6 0.6 1 0 ) { swamp-down }
0.000 beg f+ 0.020 3900 200 0.3 swamp-up main-amp bird
0.035 beg f+ 0.035 3200 3000 0.1 swamp-down main-amp bird
@@ -322,9 +319,9 @@ event: swamp-sparrow ( beg -- )
event: golden-crowned-sparrow ( beg -- )
0.6 f- { beg }
- '( 0 1 0.25 0.2 1 0 ) { gold-one }
- '( 0 0.9 0.05 1 0.1 0.4 1 0 ) { gold-two }
- '( 0 0.5 0.1 0 0.2 1 0.3 0 0.4 1 0.5 0 0.6 1 0.7 0 0.8 1 0.9 0 1 0.5 )
+ #( 0 1 0.25 0.2 1 0 ) { gold-one }
+ #( 0 0.9 0.05 1 0.1 0.4 1 0 ) { gold-two }
+ #( 0 0.5 0.1 0 0.2 1 0.3 0 0.4 1 0.5 0 0.6 1 0.7 0 0.8 1 0.9 0 1 0.5 )
{ gold-trill }
0.60 beg f+ 0.50 4300 1000 0.15 gold-one main-amp bird
@@ -336,10 +333,10 @@ event: golden-crowned-sparrow ( beg -- )
event: indigo-bunting ( beg -- )
0.4 f- { beg }
- '( 0 0 0.5 1 1 0 ) { bunt-v }
- '( 0 1 0.5 0 1 0.9 ) { bunt-y }
- '( 0 0.8 0.3 1 0.7 0.2 1 0 ) { bunt-n }
- '( 0 1 0.1 0.5 0.25 0.9 1 0 ) { bunt-x }
+ #( 0 0 0.5 1 1 0 ) { bunt-v }
+ #( 0 1 0.5 0 1 0.9 ) { bunt-y }
+ #( 0 0.8 0.3 1 0.7 0.2 1 0 ) { bunt-n }
+ #( 0 1 0.1 0.5 0.25 0.9 1 0 ) { bunt-x }
0.40 beg f+ 0.08 3000 700 0.25 bird-down main-amp bird
0.52 beg f+ 0.02 6200 1000 0.05 bird-down main-amp bird
@@ -396,23 +393,23 @@ event: hooded-warbler ( beg -- )
event: american-widgeon ( beg -- )
0.3 f- { beg }
- '( 0 0 0.5 1 1 0 ) { widgeon }
+ #( 0 0 0.5 1 1 0 ) { widgeon }
- 0.30 beg f+ 0.07 1900 300 0.15 widgeon widgeon '( 1 1 2 0.02 ) bigbird
- 0.40 beg f+ 0.11 1700 1400 0.25 widgeon widgeon '( 1 0.7 2 1 3 0.02 ) bigbird
- 0.55 beg f+ 0.07 1900 300 0.15 widgeon widgeon '( 1 1 2 0.02 ) bigbird
+ 0.30 beg f+ 0.07 1900 300 0.15 widgeon widgeon #( 1 1 2 0.02 ) bigbird
+ 0.40 beg f+ 0.11 1700 1400 0.25 widgeon widgeon #( 1 0.7 2 1 3 0.02 ) bigbird
+ 0.55 beg f+ 0.07 1900 300 0.15 widgeon widgeon #( 1 1 2 0.02 ) bigbird
0.55 0.07 f+ step
;event
event: louisiana-waterthrush ( beg -- )
{ beg }
- '( 0 0.8 0.35 0.4 0.45 0.9 0.5 1 0.75 1 1 1 ) { water-one }
- '( 0 1 0.4 0 0.6 0.1 1 0.8 ) { water-two }
- '( 0 1 0.95 0 1 0 ) { water-three }
- '( 0 0 1 1 ) { water-four }
- '( 0 1 1 0 ) { water-five }
- '( 0 0 0.35 1 0.5 0.2 0.9 1 1 0 ) { water-amp }
- '( 0 0 0.9 1 1 0 ) { water-damp }
+ #( 0 0.8 0.35 0.4 0.45 0.9 0.5 1 0.75 1 1 1 ) { water-one }
+ #( 0 1 0.4 0 0.6 0.1 1 0.8 ) { water-two }
+ #( 0 1 0.95 0 1 0 ) { water-three }
+ #( 0 0 1 1 ) { water-four }
+ #( 0 1 1 0 ) { water-five }
+ #( 0 0 0.35 1 0.5 0.2 0.9 1 1 0 ) { water-amp }
+ #( 0 0 0.9 1 1 0 ) { water-damp }
0.00 beg f+ 0.170 4100 2000 0.20 water-one water-amp bird
0.32 beg f+ 0.180 4050 2050 0.30 water-one water-amp bird
@@ -428,26 +425,26 @@ event: louisiana-waterthrush ( beg -- )
event: robin ( beg -- )
0.45 f- { beg }
- '( 0.00 0.10 0.08 0.70 0.30 0.00 0.35 1.00 0.40 0.30 1.00 0.30 ) { r-one }
- '( 0.00 0.00 0.10 1.00 0.20 0.70 0.35 0.70 0.65 0.30 0.70 0.50
+ #( 0.00 0.10 0.08 0.70 0.30 0.00 0.35 1.00 0.40 0.30 1.00 0.30 ) { r-one }
+ #( 0.00 0.00 0.10 1.00 0.20 0.70 0.35 0.70 0.65 0.30 0.70 0.50
0.80 0.00 0.90 0.20 1.00 0.00 ) { r-two }
- '( 0.00 0.20 0.25 1.00 0.60 0.70 0.90 0.00 1.00 0.10 ) { r-three }
- '( 0.00 0.50 0.10 0.00 0.20 1.00 0.30 0.00 0.40 1.00 0.50 0.00
+ #( 0.00 0.20 0.25 1.00 0.60 0.70 0.90 0.00 1.00 0.10 ) { r-three }
+ #( 0.00 0.50 0.10 0.00 0.20 1.00 0.30 0.00 0.40 1.00 0.50 0.00
0.60 1.00 0.70 0.50 1.00 0.20 ) { r-five }
- '( 0.00 0.00 0.12 0.70 0.30 0.00 0.70 1.00 1.00 0.50 ) { r-six }
-
- 0.45 beg f+ 0.06 2000 800 0.15 r-six main-amp '( 1 1 2 0.1 ) bigbird
- 0.56 beg f+ 0.10 2000 900 0.15 r-one main-amp '( 1 1 2 0.1 ) bigbird
- 1.04 beg f+ 0.24 2000 2000 0.25 r-two main-amp '( 1 1 2 0.1 ) bigbird
- 1.63 beg f+ 0.13 1900 1600 0.20 r-three main-amp '( 1 1 2 0.1 ) bigbird
- 1.80 beg f+ 0.11 2200 1200 0.25 bird-down main-amp '( 1 1 2 0.1 ) bigbird
- 2.31 beg f+ 0.21 1950 2000 0.15 r-five main-amp '( 1 1 2 0.1 ) bigbird
+ #( 0.00 0.00 0.12 0.70 0.30 0.00 0.70 1.00 1.00 0.50 ) { r-six }
+
+ 0.45 beg f+ 0.06 2000 800 0.15 r-six main-amp #( 1 1 2 0.1 ) bigbird
+ 0.56 beg f+ 0.10 2000 900 0.15 r-one main-amp #( 1 1 2 0.1 ) bigbird
+ 1.04 beg f+ 0.24 2000 2000 0.25 r-two main-amp #( 1 1 2 0.1 ) bigbird
+ 1.63 beg f+ 0.13 1900 1600 0.20 r-three main-amp #( 1 1 2 0.1 ) bigbird
+ 1.80 beg f+ 0.11 2200 1200 0.25 bird-down main-amp #( 1 1 2 0.1 ) bigbird
+ 2.31 beg f+ 0.21 1950 2000 0.15 r-five main-amp #( 1 1 2 0.1 ) bigbird
2.31 0.21 f+ step
;event
event: solitary-vireo ( beg -- )
{ beg }
- '( 0.00 0.20 0.03 0.30 0.06 0.10 0.10 0.50 0.13 0.40 0.16 0.80
+ #( 0.00 0.20 0.03 0.30 0.06 0.10 0.10 0.50 0.13 0.40 0.16 0.80
0.19 0.50 0.22 0.90 0.25 0.60 0.28 1.00 0.31 0.60 0.34 1.00
0.37 0.50 0.41 0.90 0.45 0.40 0.49 0.80 0.51 0.40 0.54 0.75
0.57 0.35 0.60 0.70 0.63 0.30 0.66 0.60 0.69 0.25 0.72 0.50
@@ -460,43 +457,43 @@ event: solitary-vireo ( beg -- )
event: pigeon-hawk ( beg -- )
{ beg }
- '( 0 0 0.3 1 0.7 1 1 0 ) { hupdown }
-
- 0.00 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 0.12 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 0.13 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 0.25 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 0.26 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 0.38 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 0.39 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 0.51 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 0.52 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 0.64 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 0.65 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 0.77 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 0.78 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 0.90 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 0.91 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 1.03 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 1.04 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 1.16 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 1.17 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 1.29 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 1.30 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 1.42 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 1.43 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 1.55 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 1.56 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 1.68 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 1.69 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
- 1.81 beg f+ 0.01 2050 0 0.1 main-amp main-amp '( 1 0.5 2 1 ) bigbird
- 1.82 beg f+ 0.10 1900 200 0.2 hupdown main-amp '( 1 0.7 2 1 ) bigbird
+ #( 0 0 0.3 1 0.7 1 1 0 ) { hupdown }
+
+ 0.00 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 0.12 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 0.13 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 0.25 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 0.26 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 0.38 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 0.39 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 0.51 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 0.52 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 0.64 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 0.65 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 0.77 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 0.78 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 0.90 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 0.91 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 1.03 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 1.04 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 1.16 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 1.17 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 1.29 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 1.30 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 1.42 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 1.43 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 1.55 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 1.56 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 1.68 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 1.69 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
+ 1.81 beg f+ 0.01 2050 0 0.1 main-amp main-amp #( 1 0.5 2 1 ) bigbird
+ 1.82 beg f+ 0.10 1900 200 0.2 hupdown main-amp #( 1 0.7 2 1 ) bigbird
1.82 0.1 f+ step
;event
event: cerulean-warbler ( beg -- )
0.27 f- { beg }
- '( 0 0.8 0.1 1 0.25 0.5 0.4 1 0.55 0.5 0.7 1 1 0 ) { trill }
+ #( 0 0.8 0.1 1 0.25 0.5 0.4 1 0.55 0.5 0.7 1 1 0 ) { trill }
0.27 beg f+ 0.05 3000 1000 0.050 bird-down main-amp bird
0.33 beg f+ 0.05 3000 800 0.075 bird-up main-amp bird
@@ -544,10 +541,10 @@ event: cerulean-warbler ( beg -- )
event: nashville-warbler ( beg -- )
0.15 f- { beg }
- '( 0 0.6 0.35 1 1 0 ) { nash-blip }
- '( 0 0.9 0.05 1 0.1 0.9 0.65 0.5 1 0 ) { nash-down }
- '( 0 0 0.15 0.2 0.25 0.05 0.9 0.95 1 1 ) { nash-up }
- '( 0 0 0.8 1 1 0 ) { nash-amp }
+ #( 0 0.6 0.35 1 1 0 ) { nash-blip }
+ #( 0 0.9 0.05 1 0.1 0.9 0.65 0.5 1 0 ) { nash-down }
+ #( 0 0 0.15 0.2 0.25 0.05 0.9 0.95 1 1 ) { nash-up }
+ #( 0 0 0.8 1 1 0 ) { nash-amp }
0.15 beg f+ 0.025 3900 300 0.300 nash-blip main-amp bird
0.24 beg f+ 0.160 4200 3800 0.150 nash-down nash-amp bird
@@ -567,11 +564,11 @@ event: nashville-warbler ( beg -- )
event: eastern-phoebe ( beg -- )
{ beg }
- '( 0 0 0.3 0.3 0.35 0.5 0.55 0.4 0.7 0.8 0.75 0.7 0.8 1 0.95 0.9 1 0 ) { phoebe-one }
- '( 0 0 0.5 1 1 0 ) { phoebe-two }
- '( 0 0 0.1 0.4 0.8 1 1 0.1 ) { phoebe-three }
- '( 0 1 0.5 0.7 1 0 ) { phoebe-four }
- '( 0 0 0.1 1 1 0 ) { phoebe-amp }
+ #( 0 0 0.3 0.3 0.35 0.5 0.55 0.4 0.7 0.8 0.75 0.7 0.8 1 0.95 0.9 1 0 ) { phoebe-one }
+ #( 0 0 0.5 1 1 0 ) { phoebe-two }
+ #( 0 0 0.1 0.4 0.8 1 1 0.1 ) { phoebe-three }
+ #( 0 1 0.5 0.7 1 0 ) { phoebe-four }
+ #( 0 0 0.1 1 1 0 ) { phoebe-amp }
0.00 beg f+ 0.225 3000 1300 0.3 phoebe-one main-amp bird
0.35 beg f+ 0.120 3000 500 0.1 phoebe-two phoebe-amp bird
@@ -582,18 +579,18 @@ event: eastern-phoebe ( beg -- )
event: painted-bunting ( beg -- )
0.05 f- { beg }
- '( 0 0 0.9 1 1 0 ) { b-two }
- '( 0 0 0.5 1 1 0 ) { b-four }
- '( 0 0.7 0.15 0 0.4 1 0.8 1 1 0.5 ) { b-five }
- '( 0 0 0.1 0.5 0.15 0 0.4 1 0.9 1 1 0 ) { b-six }
- '( 0 1 0.25 0.4 0.75 0.5 1 0 ) { b-seven }
- '( 0 0.3 0.4 0.4 0.5 1 0.6 0.2 1 0 ) { b-eight }
- '( 0 0 0.05 1 0.3 1 0.5 0.3 0.9 1 1 0 ) { b-nine }
- '( 0 0.4 0.25 0 0.35 1 0.5 0 0.65 1 0.75 0 0.85 1 1 0 ) { b-ten }
- '( 0 0 0.5 1 1 0.5 ) { b-twelve }
- '( 0 0 0.05 1 0.3 0.2 0.6 0.2 0.9 1 1 0 ) { b-thirteen }
- '( 0 0.3 0.3 1 0.6 0.3 1 0 ) { b-fourteen }
- '( 0 0 0.1 0.5 0.5 0.5 0.9 1 1 0 ) { b-fifteen }
+ #( 0 0 0.9 1 1 0 ) { b-two }
+ #( 0 0 0.5 1 1 0 ) { b-four }
+ #( 0 0.7 0.15 0 0.4 1 0.8 1 1 0.5 ) { b-five }
+ #( 0 0 0.1 0.5 0.15 0 0.4 1 0.9 1 1 0 ) { b-six }
+ #( 0 1 0.25 0.4 0.75 0.5 1 0 ) { b-seven }
+ #( 0 0.3 0.4 0.4 0.5 1 0.6 0.2 1 0 ) { b-eight }
+ #( 0 0 0.05 1 0.3 1 0.5 0.3 0.9 1 1 0 ) { b-nine }
+ #( 0 0.4 0.25 0 0.35 1 0.5 0 0.65 1 0.75 0 0.85 1 1 0 ) { b-ten }
+ #( 0 0 0.5 1 1 0.5 ) { b-twelve }
+ #( 0 0 0.05 1 0.3 0.2 0.6 0.2 0.9 1 1 0 ) { b-thirteen }
+ #( 0 0.3 0.3 1 0.6 0.3 1 0 ) { b-fourteen }
+ #( 0 0 0.1 0.5 0.5 0.5 0.9 1 1 0 ) { b-fifteen }
0.05 beg f+ 0.10 3100 900 0.05 bird-up b-two bird
0.21 beg f+ 0.07 4100 700 0.15 bird-down main-amp bird
@@ -613,11 +610,11 @@ event: painted-bunting ( beg -- )
event: western-flycatcher ( beg -- )
{ beg }
- '( 0 0 0.1 1 0.2 0.4 0.95 0.1 1 0 ) { f-one }
- '( 0 0 0.1 0.2 0.2 0.1 0.3 1 0.9 1 1 0 ) { a-one }
- '( 0 0.5 0.25 1 0.5 0 0.6 0 0.95 0.3 1 0.6 ) { f-two }
- '( 0 0 0.1 1 0.2 1 0.5 0.1 0.6 0.1 0.9 1 1 0 ) { a-two }
- '( 1 1 2 0.02 3 0.1 4 0.01 ) { fc-parts }
+ #( 0 0 0.1 1 0.2 0.4 0.95 0.1 1 0 ) { f-one }
+ #( 0 0 0.1 0.2 0.2 0.1 0.3 1 0.9 1 1 0 ) { a-one }
+ #( 0 0.5 0.25 1 0.5 0 0.6 0 0.95 0.3 1 0.6 ) { f-two }
+ #( 0 0 0.1 1 0.2 1 0.5 0.1 0.6 0.1 0.9 1 1 0 ) { a-two }
+ #( 1 1 2 0.02 3 0.1 4 0.01 ) { fc-parts }
0.0 beg f+ 0.2 2000 2200 0.2 f-one a-one fc-parts bigbird
0.3 beg f+ 0.2 2000 1100 0.2 f-two a-two fc-parts bigbird
@@ -626,10 +623,10 @@ event: western-flycatcher ( beg -- )
event: bachmans-sparrow ( beg -- )
{ beg }
- '( 0 1 0.1 0.5 0.9 0.5 1 0 ) { sopening }
- '( 0 0.1 0.35 0 1 1 ) { sup }
- '( 0 1 0.4 0.5 1 0 ) { sdwn }
- '( 0 1 0.25 0 0.75 0.4 1 0.5 ) { slast }
+ #( 0 1 0.1 0.5 0.9 0.5 1 0 ) { sopening }
+ #( 0 0.1 0.35 0 1 1 ) { sup }
+ #( 0 1 0.4 0.5 1 0 ) { sdwn }
+ #( 0 1 0.25 0 0.75 0.4 1 0.5 ) { slast }
0.00 beg f+ 0.510 4900 200 0.3 sopening main-amp bird
0.52 beg f+ 0.015 3800 200 0.1 sup main-amp bird
@@ -674,8 +671,8 @@ event: bachmans-sparrow ( beg -- )
event: cedar-waxwing ( beg -- )
{ beg }
- '( 0 0 0.25 0.7 0.7 1 0.9 1 1 0.2 ) { cedar }
- '( 0 0 0.2 1 0.4 1 1 0 ) { cedamp }
+ #( 0 0 0.25 0.7 0.7 1 0.9 1 1 0.2 ) { cedar }
+ #( 0 0 0.2 1 0.4 1 1 0 ) { cedamp }
beg 0.5 6000 800 0.2 cedar cedamp bird
0.5 step
@@ -683,8 +680,8 @@ event: cedar-waxwing ( beg -- )
event: bairds-sparrow ( beg -- )
{ beg }
- '( 0 0 0.25 1 0.5 0 0.75 1 1 0 ) { bairdend }
- '( 0.00 0.50 0.05 1.00 0.10 0.00 0.15 1.00 0.20 0.00 0.25 1.00
+ #( 0 0 0.25 1 0.5 0 0.75 1 1 0 ) { bairdend }
+ #( 0.00 0.50 0.05 1.00 0.10 0.00 0.15 1.00 0.20 0.00 0.25 1.00
0.30 0.00 0.35 1.00 0.40 0.00 0.45 1.00 0.50 0.00 0.55 1.00
0.60 0.00 0.65 1.00 0.70 0.00 0.75 1.00 0.80 0.00 0.85 1.00
0.90 0.00 0.95 1.00 1.00 0.00 ) { bairdstart }
@@ -733,12 +730,12 @@ event: bairds-sparrow ( beg -- )
event: kentucky-warbler ( beg -- )
0.6 f- { beg }
- '( 0 0.3 0.5 1 1 0 ) { kenstart }
- '( 0 0.9 0.1 1 1 0 ) { kendwn }
- '( 0 1 0.25 0 0.5 0 0.75 1 1 0 ) { kentrill }
- '( 1 1 2 0.1 ) { ken-parts-1 }
- '( 1 1 2 0.01 ) { ken-parts-01 }
- '( 1 1 2 0.03 ) { ken-parts-03 }
+ #( 0 0.3 0.5 1 1 0 ) { kenstart }
+ #( 0 0.9 0.1 1 1 0 ) { kendwn }
+ #( 0 1 0.25 0 0.5 0 0.75 1 1 0 ) { kentrill }
+ #( 1 1 2 0.1 ) { ken-parts-1 }
+ #( 1 1 2 0.01 ) { ken-parts-01 }
+ #( 1 1 2 0.03 ) { ken-parts-03 }
0.60 beg f+ 0.02 3800 200 0.05 kenstart main-amp ken-parts-03 bigbird
0.65 beg f+ 0.03 4300 200 0.15 bird-up main-amp ken-parts-1 bigbird
@@ -770,11 +767,11 @@ event: kentucky-warbler ( beg -- )
event: rufous-sided-towhee ( beg -- )
0.25 f- { beg }
- '( 0.00 0.10 0.02 0.05 0.04 0.15 0.06 0.05 0.08 0.20 0.10 0.04
+ #( 0.00 0.10 0.02 0.05 0.04 0.15 0.06 0.05 0.08 0.20 0.10 0.04
0.12 0.25 0.14 0.03 0.16 0.30 0.18 0.02 0.20 0.35 0.22 0.01
0.24 0.40 0.26 0.00 0.28 0.45 0.30 0.00 0.32 0.50 0.34 0.00
0.36 0.50 0.80 1.00 1.00 0.00 ) { towhee-one }
- '( 1 0.03 2 1 3 0.03 ) { towhee-parts }
+ #( 1 0.03 2 1 3 0.03 ) { towhee-parts }
0.250 beg f+ 0.13 1400 1100 0.20 towhee-one main-amp towhee-parts bigbird
0.450 beg f+ 0.13 1400 1100 0.20 towhee-one main-amp towhee-parts bigbird
@@ -825,8 +822,8 @@ event: rufous-sided-towhee ( beg -- )
event: prothonotary-warbler ( beg -- )
0.76 f- { beg }
- '( 0 0.1 0.2 0 1 1 ) { pro-one }
- '( 0 0 0.2 1 0.4 0.5 1 0 ) { pro-amp }
+ #( 0 0.1 0.2 0 1 1 ) { pro-one }
+ #( 0 0 0.2 1 0.4 0.5 1 0 ) { pro-amp }
0.76 beg f+ 0.08 3000 3000 0.05 pro-one pro-amp bird
0.85 beg f+ 0.05 4000 2500 0.06 bird-up bird-amp bird
@@ -852,8 +849,8 @@ event: prothonotary-warbler ( beg -- )
event: audubons-warbler ( beg -- )
0.75 f- { beg }
- '( 0 0 0.15 1 0.45 0.9 0.5 0 0.55 1 0.9 0.9 1 1 ) { w-end }
- '( 0 0.1 0.5 1 1 0 ) { w-updown }
+ #( 0 0 0.15 1 0.45 0.9 0.5 0 0.55 1 0.9 0.9 1 1 ) { w-end }
+ #( 0 0.1 0.5 1 1 0 ) { w-updown }
0.75 beg f+ 0.04 2400 200 0.05 bird-down bird-amp bird
0.83 beg f+ 0.03 3200 200 0.10 bird-up bird-amp bird
@@ -881,10 +878,10 @@ event: audubons-warbler ( beg -- )
event: lark-bunting ( beg -- )
0.1 f- { beg }
- '( 0.00 0.00 0.06 0.80 0.12 0.00 0.18 0.85 0.24 0.05 0.36 0.90
+ #( 0.00 0.00 0.06 0.80 0.12 0.00 0.18 0.85 0.24 0.05 0.36 0.90
0.42 0.10 0.48 0.95 0.54 0.20 0.60 1.00 0.66 0.20 0.72 1.00
0.78 0.20 0.84 1.00 0.90 0.20 1.00 1.00 ) { b-trill-one }
- '( 0.00 0.00 0.05 0.80 0.10 0.00 0.15 0.85 0.20 0.00 0.25 0.90
+ #( 0.00 0.00 0.05 0.80 0.10 0.00 0.15 0.85 0.20 0.00 0.25 0.90
0.30 0.00 0.35 0.95 0.40 0.00 0.45 1.00 0.50 0.00 0.55 1.00
0.60 0.00 0.65 1.00 0.70 0.00 0.75 1.00 0.80 0.00 0.85 1.00
0.90 0.00 0.95 1.00 1.00 0.00 ) { b-trill-two }
@@ -919,10 +916,10 @@ event: lark-bunting ( beg -- )
event: eastern-bluebird ( beg -- )
0.75 f- { beg }
- '( 0.00 0.60 0.10 1.00 0.20 0.00 0.25 1.00 0.30 0.00 0.35 1.00
+ #( 0.00 0.60 0.10 1.00 0.20 0.00 0.25 1.00 0.30 0.00 0.35 1.00
0.40 0.00 0.45 1.00 0.50 0.00 0.75 1.00 1.00 0.00 ) { blue-three }
- '( 0 0 0.5 1 1 0 ) { blue-four }
- '( 0.00 0.50 0.10 1.00 0.20 0.00 0.35 1.00 0.50 0.00 0.65 1.00
+ #( 0 0 0.5 1 1 0 ) { blue-four }
+ #( 0.00 0.50 0.10 1.00 0.20 0.00 0.35 1.00 0.50 0.00 0.65 1.00
0.80 0.00 0.95 1.00 1.00 0.50 ) { blue-five }
0.75 beg f+ 0.02 2000 1600 0.10 bird-up bird-amp bird
@@ -938,8 +935,8 @@ event: eastern-bluebird ( beg -- )
event: chuck-wills-widow ( beg -- )
0.05 f- { beg }
- '( 0 0 0.1 0.1 0.25 1 0.5 0.3 0.8 0.7 1 0 ) { wid-one }
- '( 0 0.2 0.3 1 0.5 0.3 0.6 0.7 0.9 0.1 1 0 ) { wid-two }
+ #( 0 0 0.1 0.1 0.25 1 0.5 0.3 0.8 0.7 1 0 ) { wid-one }
+ #( 0 0.2 0.3 1 0.5 0.3 0.6 0.7 0.9 0.1 1 0 ) { wid-two }
0.05 beg f+ 0.03 1000 800 0.1 bird-down bird-amp bird
0.32 beg f+ 0.20 1000 1000 0.2 wid-one bird-amp bird
@@ -949,11 +946,11 @@ event: chuck-wills-widow ( beg -- )
event: blue-gray-gnatcatcher ( beg -- )
0.5 f- { beg }
- '( 0 0 0.15 1 0.75 0.8 0.9 1 1 0.7 ) { gskw1 }
- '( 0 0 0.25 1 0.75 0.7 1 0 ) { gskw2 }
- '( 1 0.4 2 1 3 0.1 ) { gparts-1 }
- '( 1 0.4 2 1 3 0.2 ) { gparts-2 }
- '( 1 0.4 2 1 3 0.3 ) { gparts-3 }
+ #( 0 0 0.15 1 0.75 0.8 0.9 1 1 0.7 ) { gskw1 }
+ #( 0 0 0.25 1 0.75 0.7 1 0 ) { gskw2 }
+ #( 1 0.4 2 1 3 0.1 ) { gparts-1 }
+ #( 1 0.4 2 1 3 0.2 ) { gparts-2 }
+ #( 1 0.4 2 1 3 0.3 ) { gparts-3 }
0.5 beg f+ 0.20 4000 1000 0.2 gskw1 bird-amp gparts-1 bigbird
0.8 beg f+ 0.13 4000 800 0.2 gskw2 bird-amp gparts-2 bigbird
@@ -966,10 +963,10 @@ event: blue-gray-gnatcatcher ( beg -- )
event: black-throated-sparrow ( beg -- )
0.8 f- { beg }
- '( 0 0 0.75 1 1 0 ) { black-down-amp }
- '( 0 0 0.5 1 1 0.2 ) { black-up-down }
- '( 0 0 0.5 1 1 0 ) { black-amp }
- '( 0.00 0.00 0.03 0.70 0.06 0.00 0.09 0.75 0.12 0.00 0.15 0.80
+ #( 0 0 0.75 1 1 0 ) { black-down-amp }
+ #( 0 0 0.5 1 1 0.2 ) { black-up-down }
+ #( 0 0 0.5 1 1 0 ) { black-amp }
+ #( 0.00 0.00 0.03 0.70 0.06 0.00 0.09 0.75 0.12 0.00 0.15 0.80
0.18 0.05 0.21 0.85 0.24 0.10 0.27 0.90 0.30 0.10 0.33 1.00
0.36 0.10 0.39 1.00 0.42 0.10 0.45 1.00 0.48 0.10 0.51 1.00
0.54 0.10 0.57 1.00 0.60 0.10 0.63 1.00 0.66 0.10 0.69 1.00
@@ -1019,7 +1016,7 @@ event: black-throated-sparrow ( beg -- )
event: black-chinned-sparrow ( beg -- )
0.6 f- { beg }
- '( 0 0 0.3 0.2 1 1 ) { chin-up }
+ #( 0 0 0.3 0.2 1 1 ) { chin-up }
0.60 beg f+ 0.20 4200 100 0.10 bird-up bird-amp bird
1.00 beg f+ 0.09 3800 2000 0.10 chin-up bird-amp bird
@@ -1043,10 +1040,10 @@ event: black-chinned-sparrow ( beg -- )
event: various-gull-cries-from-end-of-colony-5 ( beg -- )
0.25 f- { beg }
- '( 0 0 10 1 20 0.5 40 0.6 60 0.5 100 0 ) { gull-start }
- '( 0 0 10 1 30 0.5 80 0.5 100 0 ) { gull-middle }
- '( 0 0 5 1 10 0.5 90 0.4 100 0 ) { gull-end }
- '( 1 0.1 2 1 3 0.1 4 0.01 5 0.09 6 0.01 7 0.01 ) { gull-parts }
+ #( 0 0 10 1 20 0.5 40 0.6 60 0.5 100 0 ) { gull-start }
+ #( 0 0 10 1 30 0.5 80 0.5 100 0 ) { gull-middle }
+ #( 0 0 5 1 10 0.5 90 0.4 100 0 ) { gull-end }
+ #( 1 0.1 2 1 3 0.1 4 0.01 5 0.09 6 0.01 7 0.01 ) { gull-parts }
0.25 beg f+ 0.80 1180 1180 0.08 gull-end bird-amp gull-parts bigbird
1.50 beg f+ 0.90 1180 1180 0.07 gull-end bird-amp gull-parts bigbird
@@ -1061,8 +1058,8 @@ event: various-gull-cries-from-end-of-colony-5 ( beg -- )
7.45 1.80 f+ step
;event
-\ ' bird-test with-sound
-: bird-test
+\ <'> bird-test with-sound
+: bird-test ( -- )
0.0 now!
1.0 { dur }
now@ orchard-oriole dur step
@@ -1107,19 +1104,16 @@ event: various-gull-cries-from-end-of-colony-5 ( beg -- )
now@ various-gull-cries-from-end-of-colony-5 dur step
;
-: bird-notehook { inst start dur -- }
- $" %7s[level %d]: %5.2f %5.2f" '( inst stack-level start dur ) clm-message
-;
-
: ws-bird-test ( -- )
- ['] bird-test
+ <'> bird-test
:play #t
:statistics #t
:verbose #t
- :channels 1
- :srate 22050
- :notehook *fth-debug* if ['] bird-notehook else #f then
- with-sound ( ws ) :output hash-ref .string cr
+ :channels 2
+ :srate 44100
+ :scaled-to 0.8
+ :notehook #f
+ with-sound ( ws ) :output array-assoc-ref .string cr
;
\ bird.fsm ends here
diff --git a/clm-ins.fs b/clm-ins.fs
index 471108b..52b3f66 100644
--- a/clm-ins.fs
+++ b/clm-ins.fs
@@ -2,7 +2,7 @@
\ Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Fri Feb 03 10:36:51 CET 2006
-\ Changed: Wed Oct 14 00:12:50 CEST 2009
+\ Changed: Fri Nov 06 00:14:12 CET 2009
\ Commentary:
\
@@ -104,7 +104,7 @@ instrument: jc-reverb-fs <{ :key
doubled chan4 || if :size delay3 seconds->samples make-delay else #f then { outdel3 }
chan4 doubled chan2 && || if :size delay4 seconds->samples make-delay else #f then { outdel4 }
amp-env if :envelope amp-env :scaler volume :duration dur make-env else #f then { env-a }
- doubled chan4 && if $" jc-reverb is not set up for doubled reverb in quad" _ error then
+ doubled chan4 && if $" jc-reverb is not set up for doubled reverb in quad" error then
0.0 0.0 { comb-sum comb-sum-1 }
0.0 dur run
0.0 rev-chans 0 ?do j i *reverb* in-any f+ loop { in-val }
@@ -214,7 +214,7 @@ instrument: fm-violin-fs <{ start dur freq amp
doc" FM-Violin from clm/v.ins|snd/v.scm|rb.\n\
0 3 440 0.5 :fm-index 0.5 <'> fm-violin with-sound"
freq fabs 1.0 f<= if
- $" freq = %s? reset to 440.0" _ #( freq ) string-format warning
+ $" freq = %s? reset to 440.0" #( freq ) string-format warning
440.0 to freq
then
freq hz->radians { frq-scl }
diff --git a/clm.c b/clm.c
index 98f7e93..3bf9bb0 100644
--- a/clm.c
+++ b/clm.c
@@ -50,10 +50,6 @@
#if HAVE_FFTW3
#include <fftw3.h>
-#else
- #if HAVE_FFTW
- #include <rfftw.h>
- #endif
#endif
#if HAVE_COMPLEX_TRIG
@@ -9872,59 +9868,19 @@ mus_float_t mus_granulate(mus_any *ptr, mus_float_t (*input)(void *arg, int dire
/* fft of mus_float_t data in zero-based arrays
*/
-#if HAVE_FFTW3
-static double *rdata = NULL, *idata = NULL;
-static fftw_plan rplan, iplan;
-/*
- * this "plan" business makes multi-threaded reallocs less attractive --
- * I don't think a system like sinc_table would work here because we still have
- * to make sure only one thread is using a given set of arrays and their plan.
- */
-
-static int last_fft_size = 0;
-#if HAVE_PTHREADS
- static mus_lock_t fft_lock = MUS_LOCK_INITIALIZER;
-#endif
-
-
-void mus_fftw(mus_float_t *rl, int n, int dir)
-{
- int i;
- /* array names are confusing here: rdata = input data, idata = output data */
-
- MUS_LOCK(&fft_lock);
-
- if (n != last_fft_size)
- {
- if (rdata) {fftw_free(rdata); fftw_free(idata); fftw_destroy_plan(rplan); fftw_destroy_plan(iplan);}
- rdata = (double *)fftw_malloc(n * sizeof(double));
- idata = (double *)fftw_malloc(n * sizeof(double));
- rplan = fftw_plan_r2r_1d(n, rdata, idata, (fftw_r2r_kind)FFTW_FORWARD, FFTW_ESTIMATE);
- iplan = fftw_plan_r2r_1d(n, rdata, idata, (fftw_r2r_kind)FFTW_BACKWARD, FFTW_ESTIMATE);
- last_fft_size = n;
- }
- memset((void *)idata, 0, n * sizeof(double));
- for (i = 0; i < n; i++) rdata[i] = rl[i];
- if (dir != -1)
- fftw_execute(rplan);
- else fftw_execute(iplan);
- for (i = 0; i < n; i++) rl[i] = idata[i];
-
- MUS_UNLOCK(&fft_lock);
-}
-
+static void mus_big_fft(mus_float_t *rl, mus_float_t *im, mus_long_t n, int is);
-#if HAVE_COMPLEX_TRIG && (!__cplusplus)
+#if HAVE_FFTW3 && HAVE_COMPLEX_TRIG && (!__cplusplus)
static fftw_complex *c_in_data = NULL, *c_out_data = NULL;
static fftw_plan c_r_plan, c_i_plan;
-
static int last_c_fft_size = 0;
+
#if HAVE_PTHREADS
static mus_lock_t c_fft_lock = MUS_LOCK_INITIALIZER;
#endif
-void mus_fftw_with_imag(mus_float_t *rl, mus_float_t *im, int n, int dir)
+static void mus_fftw_with_imag(mus_float_t *rl, mus_float_t *im, int n, int dir)
{
int i;
@@ -9960,51 +9916,8 @@ void mus_fftw_with_imag(mus_float_t *rl, mus_float_t *im, int n, int dir)
MUS_UNLOCK(&c_fft_lock);
}
-#endif
-
-#else
-
-#if HAVE_FFTW
-
-static fftw_real *rdata = NULL, *idata = NULL;
-static rfftw_plan rplan, iplan;
-static int last_fft_size = 0;
-#if HAVE_PTHREADS
- static mus_lock_t fft_lock = MUS_LOCK_INITIALIZER;
-#endif
-
-
-void mus_fftw(mus_float_t *rl, int n, int dir)
-{
- int i;
- MUS_LOCK(&fft_lock);
- if (n != last_fft_size)
- {
- if (rdata) {clm_free(rdata); clm_free(idata); rfftw_destroy_plan(rplan); rfftw_destroy_plan(iplan);}
- rplan = rfftw_create_plan(n, FFTW_REAL_TO_COMPLEX, FFTW_ESTIMATE); /* I didn't see any improvement here from using FFTW_MEASURE */
- iplan = rfftw_create_plan(n, FFTW_COMPLEX_TO_REAL, FFTW_ESTIMATE);
- last_fft_size = n;
- rdata = (fftw_real *)clm_calloc(n, sizeof(fftw_real), "fftw");
- idata = (fftw_real *)clm_calloc(n, sizeof(fftw_real), "fftw");
- }
- memset((void *)idata, 0, n * sizeof(fftw_real));
- /* if mus_float_t (default float) == fftw_real (default double) we could forego the data copy */
- for (i = 0; i < n; i++) rdata[i] = rl[i];
- if (dir != -1)
- rfftw_one(rplan, rdata, idata);
- else rfftw_one(iplan, rdata, idata);
- for (i = 0; i < n; i++) rl[i] = idata[i];
-
- MUS_UNLOCK(&fft_lock);
-}
-#endif
-#endif
-
-static void mus_big_fft(mus_float_t *rl, mus_float_t *im, mus_long_t n, int is);
-
-#if HAVE_FFTW3 && HAVE_COMPLEX_TRIG && (!__cplusplus)
void mus_fft(mus_float_t *rl, mus_float_t *im, mus_long_t n, int is)
{
/* simple timing tests indicate fftw is slightly less than 4 times faster than mus_fft in this context */
@@ -10696,7 +10609,7 @@ mus_float_t *mus_make_fft_window_with_window(mus_fft_window_t type, mus_long_t s
cw = cos(2 * M_PI * beta);
n1 = (size - 1) * 0.5;
- if ((size * size * sizeof(double)) > mus_max_malloc())
+ if ((mus_long_t)(size * size * sizeof(double)) > mus_max_malloc())
{
mus_error(MUS_ARG_OUT_OF_RANGE, "dpss window requires size^2 * 8 bytes, but that exceeds the current mus-max-malloc amount");
return(window);
@@ -12221,10 +12134,10 @@ void mus_initialize(void)
array_print_length = MUS_DEFAULT_ARRAY_PRINT_LENGTH;
clm_file_buffer_size = MUS_DEFAULT_FILE_BUFFER_SIZE;
-#if HAVE_FFTW3 || HAVE_FFTW
- last_fft_size = 0;
+#if HAVE_FFTW3 && HAVE_COMPLEX_TRIG && (!__cplusplus)
+ last_c_fft_size = 0;
/* is there a problem if the caller built fftw with --enable-threads?
- * TODO: How to tell via configure that we need to initialize the thread stuff in libfftw?
+ * How to tell via configure that we need to initialize the thread stuff in libfftw?
*/
#endif
diff --git a/clm.fs b/clm.fs
index 0057773..494f49a 100644
--- a/clm.fs
+++ b/clm.fs
@@ -2,7 +2,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Mon Mar 15 19:25:58 CET 2004
-\ Changed: Wed Oct 14 04:01:54 CEST 2009
+\ Changed: Thu Nov 26 18:29:52 CET 2009
\ Commentary:
\
@@ -53,7 +53,7 @@
\ with-mix ( body-str args fname beg -- )
\ sound-let ( ws-xt-lst body-xt -- )
-$" fth 9-Oct-2009" value *clm-version*
+$" fth 26-Nov-2009" value *clm-version*
\ defined in snd/snd-xen.c
[ifundef] snd-print : snd-print ( str -- str ) dup .string ; [then]
@@ -68,7 +68,14 @@ $" fth 9-Oct-2009" value *clm-version*
dl-load sndlib Init_sndlib
-'snd provided? [unless]
+'snd provided? [if]
+ 'snd-nogui provided? [if]
+ : x-bounds <{ :optional snd 0 chn 0 axis 0 -- }> #f ;
+ : y-bounds <{ :optional snd 0 chn 0 axis 0 -- }> #f ;
+ : set-x-bounds <{ bounds :optional snd 0 chn 0 axis 0 -- }> #f ;
+ : set-y-bounds <{ bounds :optional snd 0 chn 0 axis 0 -- }> #f ;
+ [then]
+[else]
<'> noop alias main-widgets
<'> noop alias sounds
<'> noop alias set-selected-sound
@@ -326,7 +333,7 @@ previous
;
: make-default-comment ( -- str )
- $" Written %s by %s at %s using clm (%s)" _
+ $" Written %s by %s at %s using clm (%s)"
#( $" %a %d-%b-%y %H:%M %Z" current-time strftime
getlogin
gethostname
@@ -337,7 +344,7 @@ previous
{ start dur }
start seconds->samples { beg }
dur seconds->samples { len }
- beg len b+ beg
+ beg len d+ beg
;
: normalize-partials ( parts1 -- parts2 )
@@ -558,7 +565,7 @@ previous
input mus-sound-srate { srate }
input mus-sound-chans { chans }
chans 2 > if
- $" %s: we can only handle 2 chans, not %d" _ #( get-func-name chans ) string-format warning
+ $" %s: we can only handle 2 chans, not %d" #( get-func-name chans ) string-format warning
2 to chans
then
verbose if input snd-info then
@@ -566,9 +573,9 @@ previous
bufsize 0> if
chans bufsize make-sound-data { data }
input mus-sound-open-input { snd-fd }
- snd-fd 0< if 'forth-error #( get-func-name $" cannot open %s" _ input ) fth-throw then
+ snd-fd 0< if 'forth-error #( get-func-name $" cannot open %s" input ) fth-throw then
mus-audio-default srate chans 2 min audio-format bufsize mus-audio-open-output { dac-fd }
- dac-fd 0< if 'forth-error #( get-func-name $" cannot open dac" _ ) fth-throw then
+ dac-fd 0< if 'forth-error #( get-func-name $" cannot open dac" ) fth-throw then
frames 0 ?do
i bufsize + frames > if frames i - to bufsize then
snd-fd 0 bufsize 1- chans data mus-sound-read drop
@@ -599,7 +606,7 @@ previous
duration seconds->samples { frames }
dac-size frames min { bufsize }
channels 2 min { chans }
- comment empty? if $" written %s by %s" _ #( date get-func-name ) string-format to comment then
+ comment empty? if $" written %s by %s" #( date get-func-name ) string-format to comment then
chans bufsize make-sound-data { data }
\ INFO: commented out on Sun Sep 20 17:02:02 CEST 2009 [ms]
\ chans 0.25 make-vct { vals }
@@ -607,9 +614,9 @@ previous
\ vals 0.75 vct-fill! drop
\ vals each drop output-device mus-audio-amp i vals mus-audio-mixer-write drop end-each
output srate chans data-format header-type comment mus-sound-open-output { snd-fd }
- snd-fd 0< if 'forth-error #( get-func-name $" cannot open %S" _ output ) fth-throw then
+ snd-fd 0< if 'forth-error #( get-func-name $" cannot open %S" output ) fth-throw then
output-device srate chans audio-format bufsize mus-audio-open-input { dac-fd }
- dac-fd 0< if 'forth-error #( get-func-name $" cannot open dac" _ ) fth-throw then
+ dac-fd 0< if 'forth-error #( get-func-name $" cannot open dac" ) fth-throw then
verbose if
$" filename: %s" #( output ) clm-message
$" device: %d" #( output-device ) clm-message
@@ -763,14 +770,14 @@ hide
\ xt: output player execute
\ proc: player #( output ) run-proc
\ string: "player output" system
-\ else snd: output play-and-wait
+\ else snd: output :wait #t play
\ clm: output play-sound
\
\ A player may look like this:
\
\ : play-3-times ( output -- )
\ { output }
-\ 3 0 ?do output play-and-wait drop loop
+\ 3 0 ?do output :wait #t play drop loop
\ ;
\ <'> play-3-times to *clm-player*
: ws-play-it ( ws -- )
@@ -784,7 +791,7 @@ hide
$" %s %s" #( player output ) string-format file-shell drop
else
'snd provided? if
- output find-file play-and-wait drop
+ output find-file :wait #t play drop
else
output :verbose #f play-sound
then
@@ -879,7 +886,7 @@ set-current
make-sample->file
then to *output*
*output* sample->file? unless
- 'with-sound-error #( get-func-name $" cannot open sample->file" _ ) fth-throw
+ 'with-sound-error #( get-func-name $" cannot open sample->file" ) fth-throw
then
cont? if
output mus-sound-srate set-mus-srate drop
@@ -897,7 +904,7 @@ set-current
$" with-sound temporary reverb file" make-sample->file
then to *reverb*
*reverb* sample->file? unless
- 'with-sound-error #( get-func-name $" cannot open reverb sample->file" _ ) fth-throw
+ 'with-sound-error #( get-func-name $" cannot open reverb sample->file" ) fth-throw
then
then
ws :timer make-timer array-assoc-set! to ws
@@ -919,7 +926,7 @@ set-current
*reverb* mus-close drop
ws :reverb-file-name array-assoc-ref undef make-file->sample to *reverb*
*reverb* file->sample? unless
- 'with-sound-error #( get-func-name $" cannot open file->sample" _ ) fth-throw
+ 'with-sound-error #( get-func-name $" cannot open file->sample" ) fth-throw
then
\ compute ws reverb
*clm-debug* if
@@ -997,7 +1004,7 @@ See with-sound for a full keyword list.\n\
then
{ fname ws }
fname file-exists? if
- ws :verbose array-assoc-ref if $" loading %S" _ #( fname ) clm-message then
+ ws :verbose array-assoc-ref if $" loading %S" #( fname ) clm-message then
fname <'> file-eval ws with-sound-main ( ws )
else
'no-such-file $" %s: %S not found" #( get-func-name fname ) fth-raise
@@ -1090,7 +1097,7 @@ lambda: ( -- )\n\
then { mix-time }
snd-time false?
mix-time false? ||
- snd-time mix-time b< || if
+ snd-time mix-time d< || if
mix-file args each end-each :output snd-file clm-load drop
then
snd-file :output-frame start seconds->samples clm-mix
@@ -1262,7 +1269,8 @@ event: inst-test ( -- )
:header-type mus-next
:data-format mus-lfloat
:channels 2
- :srate mus-srate f>s new-sound { snd }
+ :srate mus-srate f>s
+ :comment make-default-comment new-sound { snd }
0 10 65 0.5 arpeggio
snd save-sound drop
;event
diff --git a/clm.h b/clm.h
index 3f9432a..7c3f50e 100644
--- a/clm.h
+++ b/clm.h
@@ -5,241 +5,6 @@
#define MUS_REVISION 30
#define MUS_DATE "14-Oct-09"
-/*
- * 14-Oct: sine-summation, sum-of-sines, sum-of-cosines removed.
- * 28-Aug: changed some fft-related sizes from int to mus_long_t.
- * 25-Aug: mus_fftw_with_imag (fftw3 only).
- * 17-Aug: mus_frame|mixer_copy|fill.
- * 27-Jul: mus_float_t for Float, and mus_long_t for off_t.
- * 15-Jun: mus_rectangular_to_magnitudes (polar, but ignore phases).
- * 11-Jun: mus_cepstrum.
- * 11-May: MUS_ENV_LINEAR and friends, also mus_env_linear|exponential.
- * mus_frame_to_frame_mono|stereo.
- * 12-Mar: sinc, papoulis and dpss (slepian windows).
- * 1-Jan-09: added MUS_EXPORT.
- * --------
- * 11-Dec: deprecated the sine-summation, sum-of-cosines, and sum-of-sines generators.
- * 30-Oct: mus_sample_to_file_add.
- * mus_describe once again allocates a fresh output string.
- * finally removed sine-bank (snd9.scm has replacement).
- * 9-Oct: various thread-related internal changes.
- * 14-Jul: mus_data_format_zero.
- * 12-Jul: mus_interp_type_p and mus_fft_window_p for C++'s benefit.
- * 1-July: mus-safety and various ints changed to mus_long_t.
- * 20-Jun: support for pthreads.
- * 16-Jun: changed init_mus_module to mus_initialize.
- * 30-May: changed polyshape to use cos and added cheby_choice arg to mus_make_polyshape.
- * 27-May: mus_waveshape retired -- generators.scm has a wrapper for it.
- * clm_free, clm_realloc etc for rt work.
- * mus_chebyshev_tu_sum.
- * 25-May: mus_polywave algorithm changed.
- * 17-May: mus_normalize_partials.
- * 12-Apr: added choice arg to mus_make_polywave.
- * 8-Apr: polywave uses sine-bank if highest harmonic out of Chebyshev range.
- * 1-Mar: mus_set_name.
- * 26-Feb: removed mus_cosines (use mus_length)
- * 24-Feb: removed mus_make_env_with_start, added mus_make_env_with_length
- * 20-Feb: clm 4:
- * polywave for polyshape and waveshape.
- * mus_formant_with_frequency.
- * firmant generator.
- * removed mus_formant_radius and mus_set_formant_radius.
- * removed "gain" arg from mus_make_formant.
- * reversed the order of the arguments to mus_make_formant.
- * fixed long-standing bug in gain calculation in mus_formant.
- * mus_env_any for arbitrary connecting functions.
- * 15-Feb: nrxysin and nrxycos for sine-summation.
- * 12-Feb: nsin for sum_of_sines, ncos for sum_of_cosines.
- * 4-Feb: clm_default_frequency (clm2xen) and *clm-default-frequency* (ws.scm).
- * 7-Jan-08: :dur replaced by :length in make-env.
- * --------
- * 19-Oct: all *_0 *_1 *_2 names now use _fm|_pm|_unmodulated|_no_input.
- * 17-Oct: replace some method macros with functions (def-clm-struct local methods need true names).
- * 15-Oct: mus_oscil_1 -> _fm, _2->_pm.
- * mus_phase_vocoder_outctr accessors changed to use mus_location.
- * 11-Oct: changed default srate to 44100.
- * 5-Oct: mus_oscil_2.
- * 6-Sep: changed asymmetric-fm to use cos(sin) and added amplitude normalization.
- * 6-Aug: mus_autocorrelate, mus_correlate.
- * 3-Aug: blackman5..10 and Rife-Vincent (RV2..4 fft), mlt-sine windows.
- * 16-July: removed start arg from mus_make_env (see mus_make_env_with_start).
- * 5-July: changed some mus_float_ts to doubles in env funcs.
- * exp envs now use repeated multiplies rather than direct exp call.
- * 19-June: mus-increment on gens with a notion of frequency (phase increment);
- * to make room for this, asymmetric-fm ratio and sine-summation b moved to mus-offset.
- * 22-Feb: mus_big_fft and mus_spectrum_t.
- * 21-Feb: mus_fft_window_name.
- * 14-Feb-07: three more fft window choices.
- * --------
- * 27-Nov: move-sound array access parallel to locsig.
- * 22-Nov: had to add non-backwards-compatible reverb chans arg to mus_make_locsig.
- * 21-Nov: mus_float_equal_fudge_factor, mus_arrays_are_equal.
- * 30-July: renamed average to moving_average.
- * 28-July: renamed make_ppolar and make_zpolar to make_two_pole|zero_from_radius_and_frequency.
- * added mus_scaler and mus_frequency methods for two_pole and two_zero.
- * 21-July: removed mus_wrapper field -- old way can't work since we need the original XEN object.
- * 3-July: mus_move_sound (dlocsig) generator.
- * changed return type of mus_locsig to float.
- * 28-June: mus_filtered_comb generator.
- * 8-May: mus_apply now takes 3 args: gen, two doubles (rather than bug-prone varargs).
- * 1-Mar-06: granulate now has a local random number seed (settable via the mus-location method).
- * --------
- * 20-Dec: samaraki and ultraspherical windows.
- * this required a non-backwards-compatible additional argument in mus_make_fft_window_with_window.
- * 1-Nov: mus_filter_set_x|ycoeffs, mus_filter_set_order (needed by Snd).
- * 1-May: mus-scaler|feedback ok with delay and average.
- * 18-Apr: mus_set_environ.
- * 11-Apr: mus_mixer|frame_offset, mus_frame_scale (for higher level generic functions).
- * 23-Mar: frame_to_frame arg interpretation changed.
- * 21-Mar: mus_make_readin|file_to_sample|file_to_frame_with_buffer_size.
- * 16-Mar: polyshape generator (waveshaper as polynomial + oscil)
- * mus_chebyshev_first|second_kind.
- * mus_partials_to_waveshape no longer normalizes the partials.
- * 18-Feb: mus_interpolate.
- * 14-Feb: deprecated mus_restart_env and mus_clear_filter_state.
- * 7-Feb-05: mus_reset method, replaces mus_restart_env and mus_clear_filter_state.
- * --------
- * 20-Dec: changed "jitter" handling if hop < .05 in granulate.
- * 15-Dec: mus_generator? for type checks (clm2xen).
- * 11-Sep: removed buffer generator.
- * 6-Sep: removed mus_oscil_bank, mus_bank.
- * 24-Aug: removed mus_inspect method -- overlaps mus_describe and is useless given gdb capabilities.
- * 27-July: mus_granulate_with_editor and mus_phase_vocoder_with_editors.
- * 21-July: edit-func as run-time arg to granulate (for CL/clm compatibility)
- * 19-July: clm 3:
- * deprecated mus_ina|b, mus-outa|b|c|d.
- * mus_make_frame_to_file_with_comment, mus_mixer_scale, mus_make_frame|mixer_with_data.
- * mus_make_scalar_mixer, mus_mixer_add, mus_continue_frame_to_file.
- * changed pv_* to phase_vocoder_*
- * 28-June: ssb_am + added fm arg (ssb_am_1 is the previous form).
- * 21-June: wrapper method.
- * 14-June: ssb_am generator.
- * deprecated mus-a*|b*, replaced by mus-x|ycoeff.
- * 9-June: mus_edot_product.
- * 7-June: removed mus-x*|y* generic functions.
- * 24-May: distribution arg to make-rand, make-rand-interp.
- * 11-May: type arg to mus_make_table_lookup|wave_train, MUS_INTERP_NONE, MUS_INTERP_HERMITE.
- * mus-interp-type.
- * 10-May: changed MUS_LINEAR and MUS_SINUSOIDAL to MUS_INTERP_LINEAR and MUS_INTERP_SINUSOIDAL.
- * mus-linear renamed mus-interp-linear, mus-sinusoidal renamed mus-interp-sinusoidal.
- * added type arg to mus_make_delay|all_pass|comb|notch.
- * added mus_delay_tick, all-pass delay line interpolation.
- * 3-May: envelope arg to make-rand and make-rand-interp to give any arbitrary random number distribution.
- * added mus_make_rand_with_distribution and mus_make_rand_interp_with_distribution.
- * rand/rand-interp mus-data returns distribution (weight) function, mus-length its length.
- * locsig mus-data returns output scalers, mus-xcoeffs returns reverb scalers
- * 26-Apr: mus_sum_of_sines changed to mus_sine_bank.
- * new mus_sum_of_sines parallels mus_sum_of_cosines.
- * deprecated mus_sin.
- * 14-Apr: changed "2" to "_to_" in several function names.
- * 12-Apr: mus_average, mus_average_p, mus_make_average.
- * 17-Mar: edit function added to mus_granulate.
- * replaced MUS_DATA_POSITION with MUS_DATA_WRAPPER.
- * 22-Jan: various "environ" variables renamed for Windows' benefit.
- * 5-Jan-04: env_interp bugfix.
- * --------
- * 29-Sep: removed length arg from spectrum in clm2xen.
- * 24-Aug: changed mus_length|ramp|hop type to mus_long_t.
- * 21-Aug: export MUS_INPUT and friends (needed for specialized INA handlers).
- * 11-Aug: int -> bool.
- * 7-Aug: removed mus_type.
- * 20-July: more run methods.
- * 15-July: linear->dB check for 0.0 arg.
- * 27-June: mus_samples_to_seconds and mus_seconds_to_samples.
- * 9-June: mus_mix_with_reader_and_writer.
- * 27-May: bugfix: interpolating all-pass ("zall-pass") had an extra delay.
- * 25-Apr: mus_spectrum and mus_convolution now return mus_float_t*.
- * 9-Apr: removed MUS_HANNING_WINDOW (use MUS_HANN_WINDOW).
- * 3-Mar: mus_delay_line_p for tap error checking.
- * 27-Feb: mus_length for env -> original duration in samples.
- * 21-Feb: mus_set_cosines added, mus_cosines moved to hop slot.
- * mus_[set_]x1/x2/y1/y2.
- * 10-Feb: mus_file_name moved into the mus_input|output structs.
- * folded mus_input|output into mus_any.
- * moved mus_frame|mixer declarations into clm.c.
- * all mus_input|output|frame|mixer pointers->mus_any.
- * all method void pointers->mus_any.
- * 7-Feb: split strings out of clm2xen.c into clm-strings.h.
- * 3-Feb: mus_offset for envs, mus_width for square_wave et al.
- * new core class fields(10) for various methods.
- * 7-Jan-03: mus_src with very large sr_change segfault bugfix.
- * --------
- * 17-Dec: mus_env_offset|initial_power for Snd exp env optimizations.
- * 13-Sep: mus_frandom and mus_irandom(for Snd optimizer).
- * 19-Aug: changed internal phase-vocoder array accessor names
- * 13-Aug: set!(*-ref) for frame, locsig, mixer, locsig-reverb.
- * 29-Jul: various *_1 cases for the optimizer.
- * 15-Jul: mus_continue_sample2file.
- * 10-Jul: mus_file_name.
- * 7-Jun: fftw support added(mus_fftw).
- * 31-May: changed mus_any_class.
- * 3-May: many int->mus_long_t changes for large files.
- * 8-Apr: off-by-1 env bug(Lisp/C are now identical), env_interp of exp env beyond end bugfix.
- * 1-Apr: sine-summation n=0 bugfix.
- * 27-Mar: negative degree locsig bugfix.
- * 18-Mar: mus_move_locsig.
- * 15-Mar: n-chan locsig(and reverb scalers), 'type' arg to mus_make_locsig.
- * 6-Mar: mus_scaler in asymmetric-fm now refers to the "r" parameter, "a" in sine-summation.
- * 5-Mar: dumb typo in asymmetric-fm generator fixed.
- * 19-Feb: buffer reallocation redundant free bugfix.
- * 25-Jan-02: mus_increment of env returns base.
- * --------
- * 10-Dec: add outctr calls, phase-vocoder bugfixes, thanks to Scott Wilson.
- * 21-Oct: fill in some set-data methods.
- * 1-Sep: mus_polar2rectangular.
- * 6-July: scm -> xen.
- * 26-May: mus_rand_seed.
- * 22-May: locsig reverb distance calc was upside down.
- * 18-May: mus_describe and mus_inspect returned string should not be freed any more.
- * 7-May: filled in some leftover equal_p methods.
- * 1-Apr: mus_make_file2sample_with_comment and mus_length for file->sample/sample->file.
- * mus_file_buffer_size.
- * 26-Mar: extended_type field added to mus_any_class for more robust type checking.
- * 16-Mar: mus_phase of env -> current_value.
- * 28-Feb: added mus_position(currently only for envs).
- * 8-Feb: clm2scm.h.
- * 24-Jan: mus-bank in clm2scm.
- * 5-Jan: clm2scm gens are applicable.
- * 4-Jan: mus_bank.
- * 2-Jan-01: mus_run method.
- * --------
- * 28-Dec: mus_clear_filter_state and other minor tweaks for Snd.
- * 28-Nov: Dolph-Chebyshev window(under HAVE_GSL flag -- needs complex trig support).
- * 8-Nov: mus_clear_sinc_tables.
- * 12-Oct: mus_formant_bank takes one input(can't remember why I had an array here)
- * 27-Sep: mus_array_interp bugfix(imitates mus.lisp now).
- * 18-Sep: clm now assumes it's used as a part of sndlib.
- * 11-Sep: generalized set! to generic functions in clm2scm.c.
- * 31-Aug: changed formant field setters(thanks to Anders Vinjar).
- * 10-Aug: removed built-in setf support(clm2scm.c).
- * 31-Jul: mus_granulate tries to protect against illegal length and ramp values.
- * 24-Jul: mus_make_fir_coeffs.
- * 20-Jul: sum_of_sines, atan2 to rectangular->polar, phase_vocoder gen.
- * 22-June: made mus_bessi0 local again.
- * 1-June: bugfixes for linuxppc 2000.
- * 19-May: mus_apply.
- * 8-May: added "const" and XEN_PROCEDURE_CAST(for c++), made mus_bessi0 global.
- * 24-Apr: changed formant radius to match lisp version(it's now 1-old_radius)
- * 20-Apr: mus_convolve_files
- * 7-Apr: src width bug fixed
- * 31-Mar: finally implemented set-location for envs.
- * 14-Feb: buffer-full?.
- * 1-Feb: removed mus_phasepartials2waveshape.
- * 3-Jan-00: format and type args added to make_sample2file,
- * mus_file_close.
- * removed make_file_input and make_file_output.
- * --------
- * 29-Dec: various bugfixes especially in envelope handlers.
- * 19-Nov: mus_oscil_bank and mus_formant_bank.
- * 5-Nov: mus_sin exported.
- * 4-Oct:(scm) make-env arg order changed to reflect mus.lisp.
- * 29-Sep: implemented mus-increment and mus-frequency for granulate(as in mus.lisp).
- * clm's fft renamed mus-fft to avoid collision with snd's version.
- * added max_size arg to make_granulate(to reflect mus.lisp).
- * 25-Sep-99: added width arg to make_src -- forgot this somehow in first pass.
- * decided to make mus_inspect return char* like mus_describe.
- */
-
/* isn't mus_env_interp backwards? */
#include "sndlib.h"
@@ -758,13 +523,6 @@ MUS_EXPORT mus_float_t *mus_make_fft_window_with_window(mus_fft_window_t type, m
MUS_EXPORT const char *mus_fft_window_name(mus_fft_window_t win);
MUS_EXPORT const char **mus_fft_window_names(void);
-#if HAVE_FFTW || HAVE_FFTW3
- MUS_EXPORT void mus_fftw(mus_float_t *rl, int n, int dir);
- #if HAVE_FFTW3 && HAVE_COMPLEX_TRIG && (!__cplusplus)
- MUS_EXPORT void mus_fftw_with_imag(mus_float_t *rl, mus_float_t *im, int n, int dir);
- #endif
-#endif
-
MUS_EXPORT mus_float_t *mus_autocorrelate(mus_float_t *data, mus_long_t n);
MUS_EXPORT mus_float_t *mus_correlate(mus_float_t *data1, mus_float_t *data2, mus_long_t n);
MUS_EXPORT mus_float_t *mus_convolution(mus_float_t *rl1, mus_float_t *rl2, mus_long_t n);
@@ -830,3 +588,239 @@ MUS_EXPORT mus_any *mus_make_mixer_with_data(int chans, mus_float_t *data);
#endif
#endif
+
+
+/* Change log.
+ *
+ * 14-Oct: sine-summation, sum-of-sines, sum-of-cosines removed.
+ * 28-Aug: changed some fft-related sizes from int to mus_long_t.
+ * 17-Aug: mus_frame|mixer_copy|fill.
+ * 27-Jul: mus_float_t for Float, and mus_long_t for off_t.
+ * 15-Jun: mus_rectangular_to_magnitudes (polar, but ignore phases).
+ * 11-Jun: mus_cepstrum.
+ * 11-May: MUS_ENV_LINEAR and friends, also mus_env_linear|exponential.
+ * mus_frame_to_frame_mono|stereo.
+ * 12-Mar: sinc, papoulis and dpss (slepian windows).
+ * 1-Jan-09: added MUS_EXPORT.
+ * --------
+ * 11-Dec: deprecated the sine-summation, sum-of-cosines, and sum-of-sines generators.
+ * 30-Oct: mus_sample_to_file_add.
+ * mus_describe once again allocates a fresh output string.
+ * finally removed sine-bank (snd9.scm has replacement).
+ * 9-Oct: various thread-related internal changes.
+ * 14-Jul: mus_data_format_zero.
+ * 12-Jul: mus_interp_type_p and mus_fft_window_p for C++'s benefit.
+ * 1-July: mus-safety and various ints changed to mus_long_t.
+ * 20-Jun: support for pthreads.
+ * 16-Jun: changed init_mus_module to mus_initialize.
+ * 30-May: changed polyshape to use cos and added cheby_choice arg to mus_make_polyshape.
+ * 27-May: mus_waveshape retired -- generators.scm has a wrapper for it.
+ * clm_free, clm_realloc etc for rt work.
+ * mus_chebyshev_tu_sum.
+ * 25-May: mus_polywave algorithm changed.
+ * 17-May: mus_normalize_partials.
+ * 12-Apr: added choice arg to mus_make_polywave.
+ * 8-Apr: polywave uses sine-bank if highest harmonic out of Chebyshev range.
+ * 1-Mar: mus_set_name.
+ * 26-Feb: removed mus_cosines (use mus_length)
+ * 24-Feb: removed mus_make_env_with_start, added mus_make_env_with_length
+ * 20-Feb: clm 4:
+ * polywave for polyshape and waveshape.
+ * mus_formant_with_frequency.
+ * firmant generator.
+ * removed mus_formant_radius and mus_set_formant_radius.
+ * removed "gain" arg from mus_make_formant.
+ * reversed the order of the arguments to mus_make_formant.
+ * fixed long-standing bug in gain calculation in mus_formant.
+ * mus_env_any for arbitrary connecting functions.
+ * 15-Feb: nrxysin and nrxycos for sine-summation.
+ * 12-Feb: nsin for sum_of_sines, ncos for sum_of_cosines.
+ * 4-Feb: clm_default_frequency (clm2xen) and *clm-default-frequency* (ws.scm).
+ * 7-Jan-08: :dur replaced by :length in make-env.
+ * --------
+ * 19-Oct: all *_0 *_1 *_2 names now use _fm|_pm|_unmodulated|_no_input.
+ * 17-Oct: replace some method macros with functions (def-clm-struct local methods need true names).
+ * 15-Oct: mus_oscil_1 -> _fm, _2->_pm.
+ * mus_phase_vocoder_outctr accessors changed to use mus_location.
+ * 11-Oct: changed default srate to 44100.
+ * 5-Oct: mus_oscil_2.
+ * 6-Sep: changed asymmetric-fm to use cos(sin) and added amplitude normalization.
+ * 6-Aug: mus_autocorrelate, mus_correlate.
+ * 3-Aug: blackman5..10 and Rife-Vincent (RV2..4 fft), mlt-sine windows.
+ * 16-July: removed start arg from mus_make_env (see mus_make_env_with_start).
+ * 5-July: changed some mus_float_ts to doubles in env funcs.
+ * exp envs now use repeated multiplies rather than direct exp call.
+ * 19-June: mus-increment on gens with a notion of frequency (phase increment);
+ * to make room for this, asymmetric-fm ratio and sine-summation b moved to mus-offset.
+ * 22-Feb: mus_big_fft and mus_spectrum_t.
+ * 21-Feb: mus_fft_window_name.
+ * 14-Feb-07: three more fft window choices.
+ * --------
+ * 27-Nov: move-sound array access parallel to locsig.
+ * 22-Nov: had to add non-backwards-compatible reverb chans arg to mus_make_locsig.
+ * 21-Nov: mus_float_equal_fudge_factor, mus_arrays_are_equal.
+ * 30-July: renamed average to moving_average.
+ * 28-July: renamed make_ppolar and make_zpolar to make_two_pole|zero_from_radius_and_frequency.
+ * added mus_scaler and mus_frequency methods for two_pole and two_zero.
+ * 21-July: removed mus_wrapper field -- old way can't work since we need the original XEN object.
+ * 3-July: mus_move_sound (dlocsig) generator.
+ * changed return type of mus_locsig to float.
+ * 28-June: mus_filtered_comb generator.
+ * 8-May: mus_apply now takes 3 args: gen, two doubles (rather than bug-prone varargs).
+ * 1-Mar-06: granulate now has a local random number seed (settable via the mus-location method).
+ * --------
+ * 20-Dec: samaraki and ultraspherical windows.
+ * this required a non-backwards-compatible additional argument in mus_make_fft_window_with_window.
+ * 1-Nov: mus_filter_set_x|ycoeffs, mus_filter_set_order (needed by Snd).
+ * 1-May: mus-scaler|feedback ok with delay and average.
+ * 18-Apr: mus_set_environ.
+ * 11-Apr: mus_mixer|frame_offset, mus_frame_scale (for higher level generic functions).
+ * 23-Mar: frame_to_frame arg interpretation changed.
+ * 21-Mar: mus_make_readin|file_to_sample|file_to_frame_with_buffer_size.
+ * 16-Mar: polyshape generator (waveshaper as polynomial + oscil)
+ * mus_chebyshev_first|second_kind.
+ * mus_partials_to_waveshape no longer normalizes the partials.
+ * 18-Feb: mus_interpolate.
+ * 14-Feb: deprecated mus_restart_env and mus_clear_filter_state.
+ * 7-Feb-05: mus_reset method, replaces mus_restart_env and mus_clear_filter_state.
+ * --------
+ * 20-Dec: changed "jitter" handling if hop < .05 in granulate.
+ * 15-Dec: mus_generator? for type checks (clm2xen).
+ * 11-Sep: removed buffer generator.
+ * 6-Sep: removed mus_oscil_bank, mus_bank.
+ * 24-Aug: removed mus_inspect method -- overlaps mus_describe and is useless given gdb capabilities.
+ * 27-July: mus_granulate_with_editor and mus_phase_vocoder_with_editors.
+ * 21-July: edit-func as run-time arg to granulate (for CL/clm compatibility)
+ * 19-July: clm 3:
+ * deprecated mus_ina|b, mus-outa|b|c|d.
+ * mus_make_frame_to_file_with_comment, mus_mixer_scale, mus_make_frame|mixer_with_data.
+ * mus_make_scalar_mixer, mus_mixer_add, mus_continue_frame_to_file.
+ * changed pv_* to phase_vocoder_*
+ * 28-June: ssb_am + added fm arg (ssb_am_1 is the previous form).
+ * 21-June: wrapper method.
+ * 14-June: ssb_am generator.
+ * deprecated mus-a*|b*, replaced by mus-x|ycoeff.
+ * 9-June: mus_edot_product.
+ * 7-June: removed mus-x*|y* generic functions.
+ * 24-May: distribution arg to make-rand, make-rand-interp.
+ * 11-May: type arg to mus_make_table_lookup|wave_train, MUS_INTERP_NONE, MUS_INTERP_HERMITE.
+ * mus-interp-type.
+ * 10-May: changed MUS_LINEAR and MUS_SINUSOIDAL to MUS_INTERP_LINEAR and MUS_INTERP_SINUSOIDAL.
+ * mus-linear renamed mus-interp-linear, mus-sinusoidal renamed mus-interp-sinusoidal.
+ * added type arg to mus_make_delay|all_pass|comb|notch.
+ * added mus_delay_tick, all-pass delay line interpolation.
+ * 3-May: envelope arg to make-rand and make-rand-interp to give any arbitrary random number distribution.
+ * added mus_make_rand_with_distribution and mus_make_rand_interp_with_distribution.
+ * rand/rand-interp mus-data returns distribution (weight) function, mus-length its length.
+ * locsig mus-data returns output scalers, mus-xcoeffs returns reverb scalers
+ * 26-Apr: mus_sum_of_sines changed to mus_sine_bank.
+ * new mus_sum_of_sines parallels mus_sum_of_cosines.
+ * deprecated mus_sin.
+ * 14-Apr: changed "2" to "_to_" in several function names.
+ * 12-Apr: mus_average, mus_average_p, mus_make_average.
+ * 17-Mar: edit function added to mus_granulate.
+ * replaced MUS_DATA_POSITION with MUS_DATA_WRAPPER.
+ * 22-Jan: various "environ" variables renamed for Windows' benefit.
+ * 5-Jan-04: env_interp bugfix.
+ * --------
+ * 29-Sep: removed length arg from spectrum in clm2xen.
+ * 24-Aug: changed mus_length|ramp|hop type to mus_long_t.
+ * 21-Aug: export MUS_INPUT and friends (needed for specialized INA handlers).
+ * 11-Aug: int -> bool.
+ * 7-Aug: removed mus_type.
+ * 20-July: more run methods.
+ * 15-July: linear->dB check for 0.0 arg.
+ * 27-June: mus_samples_to_seconds and mus_seconds_to_samples.
+ * 9-June: mus_mix_with_reader_and_writer.
+ * 27-May: bugfix: interpolating all-pass ("zall-pass") had an extra delay.
+ * 25-Apr: mus_spectrum and mus_convolution now return mus_float_t*.
+ * 9-Apr: removed MUS_HANNING_WINDOW (use MUS_HANN_WINDOW).
+ * 3-Mar: mus_delay_line_p for tap error checking.
+ * 27-Feb: mus_length for env -> original duration in samples.
+ * 21-Feb: mus_set_cosines added, mus_cosines moved to hop slot.
+ * mus_[set_]x1/x2/y1/y2.
+ * 10-Feb: mus_file_name moved into the mus_input|output structs.
+ * folded mus_input|output into mus_any.
+ * moved mus_frame|mixer declarations into clm.c.
+ * all mus_input|output|frame|mixer pointers->mus_any.
+ * all method void pointers->mus_any.
+ * 7-Feb: split strings out of clm2xen.c into clm-strings.h.
+ * 3-Feb: mus_offset for envs, mus_width for square_wave et al.
+ * new core class fields(10) for various methods.
+ * 7-Jan-03: mus_src with very large sr_change segfault bugfix.
+ * --------
+ * 17-Dec: mus_env_offset|initial_power for Snd exp env optimizations.
+ * 13-Sep: mus_frandom and mus_irandom(for Snd optimizer).
+ * 19-Aug: changed internal phase-vocoder array accessor names
+ * 13-Aug: set!(*-ref) for frame, locsig, mixer, locsig-reverb.
+ * 29-Jul: various *_1 cases for the optimizer.
+ * 15-Jul: mus_continue_sample2file.
+ * 10-Jul: mus_file_name.
+ * 7-Jun: fftw support added.
+ * 31-May: changed mus_any_class.
+ * 3-May: many int->mus_long_t changes for large files.
+ * 8-Apr: off-by-1 env bug(Lisp/C are now identical), env_interp of exp env beyond end bugfix.
+ * 1-Apr: sine-summation n=0 bugfix.
+ * 27-Mar: negative degree locsig bugfix.
+ * 18-Mar: mus_move_locsig.
+ * 15-Mar: n-chan locsig(and reverb scalers), 'type' arg to mus_make_locsig.
+ * 6-Mar: mus_scaler in asymmetric-fm now refers to the "r" parameter, "a" in sine-summation.
+ * 5-Mar: dumb typo in asymmetric-fm generator fixed.
+ * 19-Feb: buffer reallocation redundant free bugfix.
+ * 25-Jan-02: mus_increment of env returns base.
+ * --------
+ * 10-Dec: add outctr calls, phase-vocoder bugfixes, thanks to Scott Wilson.
+ * 21-Oct: fill in some set-data methods.
+ * 1-Sep: mus_polar2rectangular.
+ * 6-July: scm -> xen.
+ * 26-May: mus_rand_seed.
+ * 22-May: locsig reverb distance calc was upside down.
+ * 18-May: mus_describe and mus_inspect returned string should not be freed any more.
+ * 7-May: filled in some leftover equal_p methods.
+ * 1-Apr: mus_make_file2sample_with_comment and mus_length for file->sample/sample->file.
+ * mus_file_buffer_size.
+ * 26-Mar: extended_type field added to mus_any_class for more robust type checking.
+ * 16-Mar: mus_phase of env -> current_value.
+ * 28-Feb: added mus_position(currently only for envs).
+ * 8-Feb: clm2scm.h.
+ * 24-Jan: mus-bank in clm2scm.
+ * 5-Jan: clm2scm gens are applicable.
+ * 4-Jan: mus_bank.
+ * 2-Jan-01: mus_run method.
+ * --------
+ * 28-Dec: mus_clear_filter_state and other minor tweaks for Snd.
+ * 28-Nov: Dolph-Chebyshev window(under HAVE_GSL flag -- needs complex trig support).
+ * 8-Nov: mus_clear_sinc_tables.
+ * 12-Oct: mus_formant_bank takes one input(can't remember why I had an array here)
+ * 27-Sep: mus_array_interp bugfix(imitates mus.lisp now).
+ * 18-Sep: clm now assumes it's used as a part of sndlib.
+ * 11-Sep: generalized set! to generic functions in clm2scm.c.
+ * 31-Aug: changed formant field setters(thanks to Anders Vinjar).
+ * 10-Aug: removed built-in setf support(clm2scm.c).
+ * 31-Jul: mus_granulate tries to protect against illegal length and ramp values.
+ * 24-Jul: mus_make_fir_coeffs.
+ * 20-Jul: sum_of_sines, atan2 to rectangular->polar, phase_vocoder gen.
+ * 22-June: made mus_bessi0 local again.
+ * 1-June: bugfixes for linuxppc 2000.
+ * 19-May: mus_apply.
+ * 8-May: added "const" and XEN_PROCEDURE_CAST(for c++), made mus_bessi0 global.
+ * 24-Apr: changed formant radius to match lisp version(it's now 1-old_radius)
+ * 20-Apr: mus_convolve_files
+ * 7-Apr: src width bug fixed
+ * 31-Mar: finally implemented set-location for envs.
+ * 14-Feb: buffer-full?.
+ * 1-Feb: removed mus_phasepartials2waveshape.
+ * 3-Jan-00: format and type args added to make_sample2file,
+ * mus_file_close.
+ * removed make_file_input and make_file_output.
+ * --------
+ * 29-Dec: various bugfixes especially in envelope handlers.
+ * 19-Nov: mus_oscil_bank and mus_formant_bank.
+ * 5-Nov: mus_sin exported.
+ * 4-Oct:(scm) make-env arg order changed to reflect mus.lisp.
+ * 29-Sep: implemented mus-increment and mus-frequency for granulate(as in mus.lisp).
+ * clm's fft renamed mus-fft to avoid collision with snd's version.
+ * added max_size arg to make_granulate(to reflect mus.lisp).
+ * 25-Sep-99: added width arg to make_src -- forgot this somehow in first pass.
+ * decided to make mus_inspect return char* like mus_describe.
+ */
diff --git a/clm.html b/clm.html
deleted file mode 100644
index 544f818..0000000
--- a/clm.html
+++ /dev/null
@@ -1,4790 +0,0 @@
-<html>
-<head>
-<title>CLM</title>
-<style type="text/css">
-<!--
- EM.red {color: red; font-style: normal}
- EM.gen {font-weight: bold; font-style: normal}
- EM.tab {font-style: normal; font-size: small}
- EM.emdef {font-weight: bold; font-style: normal}
- H1 {text-align: center}
- UL {list-style-type: none}
-
- A {text-decoration:none}
- A:hover {text-decoration:underline}
- A.quiet {color:black; text-decoration:none}
- A.quiet:hover {text-decoration:underline}
- A.def {font-weight: bold; font-style: normal; text-decoration:none; text-color:black}
- A.olddef {font-style: normal; text-decoration:none; color:gray}
- EM.gray {color:gray; font-style: normal}
--->
-</style>
-</head>
-
-
-<!--
- The index at the end is generated automatically by index.cl which notices all names, and
- special comments labelled INDEX.
--->
-<!-- I'm using A NAME (i.e caps) where the entity should be ignored by the indexer (index.cl)
- and a Name (cap first) for stuff local to the CL version of CLM
--->
-
-<body bgcolor=white>
-
-<script language=JavaScript type="text/javascript" src="wz_tooltip.js"></script>
-
-
-<h1>CLM</h1>
-
-<p>CLM (originally an acronym for Common Lisp Music) is a sound synthesis
-package in the Music V family. It provides much the same functionality as
-Stk, Csound, SuperCollider, PD, CMix, cmusic, and Arctic &mdash; a collection of functions
-that create and manipulate sounds, aimed primarily at composers (in CLM's
-case anyway). The instrument builder plugs together these functions
-(called generators here), along with general programming glue to
-make computer instruments. These are then called in a note list
-or through some user interface (provided by Snd, for example).
-</p>
-
-<p>
-CLM exists in several forms:
-the original Common Lisp implementation (clm-4.tar.gz),
-a C version (sndlib.tar.gz),
-a Scheme version (sndlib.tar.gz with S7 or Guile), Ruby (sndlib again but using Ruby),
-and Forth (sndlib). The Scheme, Ruby, and Forth versions are also built into
-the Snd editor (snd-11.tar.gz).
-This document is aimed at the Common Lisp version in clm-4.tar.gz. See sndclm.html
-in the Snd tarball for the Scheme/Ruby/Forth/C version.
-There are a variety of unavoidable differences between these
-versions, but in general, the differences are obvious and consistent: Lisp "-" becomes
-C "_", "?" becomes "_p", "-&gt;" becomes "_to_", and so on, so the function
-named mus_oscil in C, becomes oscil elsewhere, mus_oscil_p becomes oscil?,
-and mus_hz_to_radians becomes hz-&gt;radians in Lisp/Scheme.
-If you'd like to compare
-a standard instrument in the various implementations, check out the
-fm-violin: v.ins (Common Lisp), v.scm (Scheme), v.rb (Ruby), clm-ins.fs (Forth),
-and sndlib.html (C).
-</p>
-
-<p>CLM has several sections: <a href="#generators">"generators"</a>, instruments
-(<a href="#definstrument">definstrument</a> and *.ins), examples of note lists
-(<a href="#with-sound">with-sound</a>, *.clm), a "make" facility for sound files (<a href="#with-mix">with-mix</a>),
-various functions that are useful in sound file work (<a href="#sound-let">sound-let</a>,
-<a href="#mix">mix</a>), and a connection to
-the <a href="#sndcommunication">Snd</a> sound editor.
-CLM is available free, via anonymous ftp (<a href="ftp://ccrma-ftp.stanford.edu/pub/Lisp/clm-4.tar.gz">pub/Lisp/clm-4.tar.gz</a> at
-ccrma-ftp.stanford.edu; the Snd editor is <a href="ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-11.tar.gz">snd-11.tar.gz</a>).</p>
-
-<center>Bill Schottstaedt (bil@ccrma.stanford.edu)</center>
-<br>
-
-<center>
-<table bgcolor="aliceblue" border=0 cellspacing=8><tr>
-<td><small>related documentation:</small></td>
-<td><small><a href="snd.html" onmouseout="UnTip()" onmouseover="Tip('basic Snd user-interface documentation')">snd.html</a></small></td>
-<td><small><a href="extsnd.html" onmouseout="UnTip()" onmouseover="Tip('Snd extension and customization')">extsnd.html</a></small></td>
-<td><small><a href="grfsnd.html" onmouseout="UnTip()" onmouseover="Tip('Snd configuration, connection to other libraries and programs')">grfsnd.html</a></small></td>
-<td><small><a href="sndscm.html" onmouseout="UnTip()" onmouseover="Tip('Scheme, Ruby, and Forth files included with Snd')">sndscm.html</a></small></td>
-<td><small><a href="sndclm.html" onmouseout="UnTip()" onmouseover="Tip('CLM in Snd')">sndclm.html</a></small></td>
-<td><small><a href="sndlib.html" onmouseout="UnTip()" onmouseover="Tip('library that handles sound files')">sndlib.html</a></small></td>
-<td><small><a href="libxm.html" onmouseout="UnTip()" onmouseover="Tip('library that ties Motif and Gtk into Snd')">libxm.html</a></small></td>
-<td><small><a href="cl-fm.html" onmouseout="UnTip()" onmouseover="Tip('introduction to frequency modulation')">cl-fm.html</a></small></td>
-</tr></table>
-</center>
-
-<br>
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2>Contents</h2></td></tr></table>
-</td></tr></table>
-
-<ul>
-<li><a href="#introduction">Introduction</a>
-<li><a href="#instruments">Instruments</a>
-<ul>
-<li><small><a href="#generators">Generators</a></small>
-<li><small><a href="#generic-functions">Generic Functions</a></small>
-<li><small><a href="#framesandmixers">Frames, Mixers</a></small>
-<li><small><a href="#soundio">Sound file IO</a></small>
-<li><small><a href="#functions">Useful functions</a></small>
-<li><small><a href="#def-clm-struct">def-clm-struct</a></small>
-<li><small><a href="#definstrument">Definstrument</a></small>
-</ul>
-<li><a href="#note-lists">Note Lists</a>
-<ul>
-<li><small><a href="#with-sound">With-sound</a></small>
-<li><small><a href="#mix-and-with-mix">With-mix</a></small>
-<li><small><a href="#sound-let">Sound-let</a></small>
-</ul>
-<li><a href="#debugging-aids">Debugging</a>
-<ul>
-<li><small><a href="#sndcommunication">CLM and Snd</a></small>
-</ul>
-<li><a href="#appendices">Appendices</a>
-<ul>
-<li><small><a href="#header-types">Header and data types supported in CLM</a></small>
-<li><small><a href="#clm-init.lisp">Example of clm-init.lisp</a></small>
-<li><small><a href="#savedimages">About CLM in saved images</a></small>
-</ul>
-<li><a href="#clmindex">Index</a>
-</ul>
-<br>
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2><A class=def NAME="introduction">Introduction</a></h2></td></tr></table>
-</td></tr></table>
-
-<p>CLM provides functions to experiment with sounds.
-The easiest way to make a new sound is
-<a href="#with-sound">with-sound</a>. Say we want to hear one second of the fm violin (in <a href="v.ins">v.ins</a>,
-named fm-violin) at 440 Hz, and a somewhat soft amplitude. Compile v.ins and load v, then call with-sound:</p>
-<pre>
- (compile-file "v.ins")
- (load "v")
- (<a class=quiet href="#with-sound">with-sound</a> () (fm-violin 0 1 440 .1))
-</pre>
-<p>and the note should emerge from the speakers. (In CMU-CL, load v.cmucl, not v.x86f). The compile and load sequence can be abbreviated
-in most lisps.
-Once loaded, we don't
-need to reload v unless we change it in some way.
-To get an arpeggio:</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> ()
- (loop for i from 0 to 7 do
- (fm-violin (* i .25) .5 (* 100 (1+ i)) .1)))
-</pre>
-<p><a href="clm-example.lisp">clm-example.lisp</a> shows how to create such a note list algorithmically.
-To listen to the last computed sound again:
-</p>
-<pre>
- (play)
-</pre>
-<p>or, if you have some saved sound file:
-</p>
-<pre>
- (<a class=quiet href="#dac">play</a> "a-great.snd")
-</pre>
-
-<p>Although you can use CLM simply as a bunch of canned functions, it's a lot more
-fun to make your own. In CLM, these are called instruments, and a sequence of
-instrumental calls is a note list.
-To create your own instrument, you need to write the function that expresses
-in CLM's terms the sound processing actions you want.
-In the simplest case, you can just calculate your new
-value, and add it into the current output:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument simp (start-time duration frequency amplitude)
- (let* ((beg (floor (* start-time *srate*)))
- (end (+ beg (floor (* duration *srate*))))
- (j 0))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (* amplitude (sin (* j 2.0 pi (/ frequency *srate*)))))
- (incf j)))))
-</pre>
-</td></tr></table>
-
-<p>Now to hear our sine wave, place this code in a file, say simp.ins, compile and load it, then:</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> () (simp 0 0.25 440.0 0.2))
-</pre>
-<p>This creates a sine-wave at 440.0 Hz, 0.2 amplitude, between times 0 and
-0.25 seconds. The line:</p>
-<pre>
- (definstrument simp (start-time duration frequency amplitude) <!-- ) -->
-</pre>
-<p>says that we are defining an instrument (via definstrument) named simp which
-takes the four parameters start-time, duration, frequency, and amplitude.
-The next two lines:</p>
-<pre>
- (let* ((beg (floor (* start-time *srate*)))
- (end (+ beg (floor (* duration *srate*))))) <!-- ) -->
-</pre>
-<p>turn the start-time and duration values, passed by the caller in
-terms of seconds, into samples. The variable <i>*srate*</i>
-holds the current sampling rate.
-The "run" macro is an optimizer;
-it turns its body into a C foreign function call.
-The next
-line:</p>
-<pre>
- (loop for i from beg below end and j from 0 by 1 do <!-- ) -->
-</pre>
-<p>uses the Lisp <i>loop</i> construct to loop through the samples
-between the start time in samples (beg) and the end point (end) calculating
-simp's output on each sample. We are also using the variable <i>j</i>
-to increment the current phase in the last line:</p>
-<pre>
- (<a class=quiet href="#outa">outa</a> i (* amplitude (sin (* j 2.0 pi (/ frequency *srate*)))))))) <!-- ((( -->
-</pre>
-<p>This is the heart of our instrument. The call (<a href="#outa">outa</a> i ...)
-adds its third argument (in this case a complicated expression) into channel 0 of the
-current output stream at sample <i>i</i>. The expression:</p>
-<pre>
- (* amplitude (sin (* j 2.0 pi (/ frequency *srate*)))))))) <!-- (((( -->
-</pre>
-<p>is creating a sinusoid (via the "sin" function) at the specified
-volume ("amplitude" is passed as an argument to simp), and the
-desired frequency ("frequency" is also an argument to simp). The
-caller passes simp a frequency in cycles per second (440.0 for
-example), but we need to turn that into the corresponding phase
-value for the "sin" function. We do that by translating from
-cycles per second to radians per sample by multiplying by two pi
-(this multiply gives us radians
-per second), then dividing by the sampling rate (samples per
-second) to give us radians per sample (i.e. radians/second
-divided by samples/second gives radians/sample); we then multiply
-by "j" to step forward on each sample.
-Finally, the line:</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> () (simp 0 0.25 440.0 0.2))
-</pre>
-<p>opens an output sound file, calls simp, closes the file, and
-plays the result.
-We need to put the instrument definition in a separate file
-and compile and load it; we can't just paste it into the listener (this limitation applies only to the Common Lisp CLM).
-</p>
-
-<p>We can simplify simp by using <b>oscil</b> for the sinusoid and
-<b>hz-&gt;radians</b>. <b>make-oscil</b> creates an oscil generator;
-similarly <b>make-env</b> creates an envelope generator:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> simp (start-time duration frequency amplitude &amp;optional (amp-env '(0 0 .5 1.0 1.0 0)))
- (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times-&gt;samples</a> start-time duration)
- (let ((osc (<a class=quiet href="#make-oscil">make-oscil</a> :frequency frequency))
- (amp-env (<a class=quiet href="#make-env">make-env</a> amp-env :scaler amplitude :duration duration)))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> amp-env) (<a class=quiet href="#oscil">oscil</a> osc))))))))
-</pre>
-</td></tr></table>
-
-<p>Our envelope is a list of (x y) break-point pairs. The
-x-axis bounds are arbitrary, but it is conventional (here at ccrma) to
-go from 0 to 1.0. The y-axis values are normally between -1.0 and
-1.0, to make it easier to figure out how to apply the envelope in
-various different situations. In this case, our envelope is a ramp up
-to the middle of the note: "(0.0 0.0 0.5 1.0)", then a ramp down to 0.
-The <a href="#env">env</a> generator produces the envelope on a sample-by-sample
-basis.
-</p>
-
-<p>If you make a change to an instrument, just recompile and reload it to
-use the changed version; there's no need to restart lisp, or unload the old version (in most
-lisps there's actually no way to unload it).
-</p>
-<br><br>
-
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2><A class=def NAME="instruments">CLM instruments</a></h2></td></tr></table>
-</td></tr></table>
-
-<p>The normal structure of an instrument is:</p>
-<pre>
- (<i>definstrument</i> name (args) (setup code (<i>run</i> run-time code)))
-</pre>
-<p>The setup code creates any needed generators for the
-run-time code which actually generates the samples.
-The run-time code can contain any of the lisp functions (generators etc)
-described in the next several sections. Since life is short,
-not every feature of lisp is supported by the <a class=def Name="run">run</a> macro;
-I've concentrated on those that have been useful in the past, so let me know
-if you need something new!
-</p>
-
-<A class=def NAME="lisp-functions"></a>
-<!-- INDEX lisp-functions:Run support for Lisp -->
-<p>Lisp functions that can occur within the body of the run macro:</p>
-<pre>
- + / * - 1+ 1- incf decf setf setq
- = /= &lt; &gt; &lt;= &gt;= zerop plusp
- minusp oddp evenp max min abs mod rem identity
- floor ceiling round truncate signum sqrt random float
- ash log expt exp sin cos tan asin acos atan cosh sinh tanh asinh acosh atanh
- erf erfc lgamma bes-j0 bes-j1 bes-jn bes-y0 bes-y1 bes-yn bes-i0
- or and not null if unless when cond progn prog1 prog2 case tagbody go
- error warn print princ terpri probe-file
- block return return-from let let* loop do do* dotimes declare
- lambda apply loop-finish
- aref elt svref array-total-size array-in-bounds-p array-rank array-dimension
- integerp numberp floatp realp eq eql arrayp
-</pre>
-
-<p>The function <a class=def Name="clm-print">clm-print</a> stands in for Lisp's
-<i>format</i> &mdash; I don't support all of format's
-options, but enough to be useful, I hope. clm-print's syntax is (<i>clm-print</i>
-<i>format-string</i> &amp;rest <i>args</i>). It is also possible to write to a file:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument fileit ()
- (let ((file (c-open-output-file "test.clm-data")))
- (run
- (loop for i from 0 to 10 do
- (clm-print file "hiho ~D " i)))
- (c-close file)))
-</pre>
-</td></tr></table>
-
-<p>
-<i>Loop</i> is expanded as a macro and anything in
-the loop syntax is ok if it expands into something else mentioned above (i.e. a
-lambda form with go's and so forth).
-</p>
-
-<p>
-<i>Declare</i> can be used to set the variable types and debugging options.
-Since the run macro can't always tell what type a variable is, it will
-generate run-time code to figure out the type. The generated code will
-be faster and tighter (and a lot easier to read) if you use declare to
-tell run what the types are.
-In Common Lisp, the recognized types are :integer, :float, :string, :boolean, :bignum (sample number),
-:double*, :int*, :mus-any, and :mus-any* (the keyword package
-is used to avoid endless CL package name troubles).
-</p>
-<br>
-
-<!-- INDEX generators:Generators -->
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A class=def NAME="generators">Generators</a></h3></td></tr></table>
-<br>
-
-<table border=8 bordercolor="lightsteelblue" cellpadding=8 hspace=20>
-<tr><td>
-<table border=0>
- <tr><td><a href="#all-pass">all-pass</a></td><td width=20></td><td>all-pass filter</td></tr>
- <tr><td><a href="#asymmetric-fm">asymmetric-fm</a></td><td></td><td>asymmetric fm</td></tr>
- <tr><td><a href="#comb">comb</a></td><td></td><td>comb filter</td></tr>
- <tr><td><a href="#convolve">convolve</a></td><td></td><td>convolution</td></tr>
- <tr><td><a href="#delay">delay</a></td><td></td><td>delay line</td></tr>
- <tr><td><a href="#env">env</a></td><td></td><td>line segment envelope</td></tr>
- <tr><td><a href="#filter">filter</a></td><td></td><td>direct form FIR/IIR filter</td></tr>
- <tr><td><a href="#filtered-comb">filtered-comb</a></td><td></td><td>comb filter with filter on feedback</td></tr>
- <tr><td><a href="#fir-filter">fir-filter</a></td><td></td><td>FIR filter</td></tr>
- <tr><td><a href="#formant">formant</a></td><td></td><td>resonance</td></tr>
- <tr><td><a href="#granulate">granulate</a></td><td></td><td>granular synthesis</td></tr>
- <tr><td><a href="#iir-filter">iir-filter</a></td><td></td><td>IIR filter</td></tr>
- <tr><td><a href="#in-any">in-any</a></td><td></td><td>sound file input</td></tr>
- <tr><td><a href="#locsig">locsig</a></td><td></td><td>static sound placement</td></tr>
- <tr><td><a href="#move-sound">move-sound</a></td><td></td><td>sound motion</td></tr>
- <tr><td><a href="#moving-average">moving-average</a></td><td></td><td>moving window average</td></tr>
- <tr><td><a href="#ncos">ncos</a></td><td></td><td>sum of equal amplitude cosines</td></tr>
- <tr><td><a href="#notch">notch</a></td><td></td><td>notch filter</td></tr>
- <tr><td><a href="#nsin">nsin</a></td><td></td><td>sum of equal amplitude sines</td></tr>
- <tr><td><a href="#nrxycos">nrxycos</a></td><td></td><td>sum of n scaled cosines</td></tr>
- <tr><td><a href="#nrxysin">nrxysin</a></td><td></td><td>sum of n scaled sines</td></tr>
-</table>
-</td>
-<td>
-<table border=0>
- <tr><td><a href="#one-pole">one-pole</a></td><td></td><td>one pole filter</td></tr>
- <tr><td><a href="#one-zero">one-zero</a></td><td></td><td>one zero filter</td></tr>
- <tr><td><a href="#oscil">oscil</a></td><td></td><td>sine wave and FM</td></tr>
- <tr><td><a href="#out-any">out-any</a></td><td width=20></td><td>sound output</td></tr>
- <tr><td><a href="#polyshape">polywave and polyshape</a></td><td></td><td>waveshaping</td></tr>
- <tr><td><a href="#phase-vocoder">phase-vocoder</a></td><td></td><td>vocoder analysis and resynthesis</td></tr>
- <tr><td><a href="#pulse-train">pulse-train</a></td><td></td><td>pulse train</td></tr>
- <tr><td><a href="#rand">rand,rand-interp</a></td><td></td><td>random numbers, noise</td></tr>
- <tr><td><a href="#readin">readin</a></td><td></td><td>sound input</td></tr>
- <tr><td><a href="#sawtooth-wave">sawtooth-wave</a></td><td></td><td>sawtooth</td></tr>
- <tr><td><a href="#square-wave">square-wave</a></td><td></td><td>square wave</td></tr>
- <tr><td><a href="#src">src</a></td><td></td><td>sampling rate conversion</td></tr>
- <tr><td><a href="#ssb-am">ssb-am</a></td><td></td><td>single sideband amplitude modulation</td></tr>
- <tr><td><a href="#table-lookup">table-lookup</a></td><td></td><td>interpolated table lookup</td></tr>
- <tr><td><a href="#tap">tap</a></td><td></td><td>delay line tap</td></tr>
- <tr><td><a href="#triangle-wave">triangle-wave</a></td><td></td><td>triangle wave</td></tr>
- <tr><td><a href="#two-pole">two-pole</a></td><td></td><td>two pole filter</td></tr>
- <tr><td><a href="#two-zero">two-zero</a></td><td></td><td>two zero filter</td></tr>
- <tr><td><a href="#wave-train">wave-train</a></td><td></td><td>wave train</td></tr>
-</table>
-</td></tr>
-</table>
-
-<br><br>
-
-<p>A generator is a function that returns the next sample in an infinite stream of samples
-each time it is called. An oscillator, for example, returns an endless sine wave, one sample
-at a time.
-Each generator consists of a set of functions: Make-&lt;gen&gt; sets up the
-data structure associated with the generator at initialization time;
-&lt;gen&gt; produces a new sample;
-&lt;gen&gt;? checks whether a variable is that kind of generator.
-Internal fields are accessible via various generic functions such as mus-frequency.
-</p>
-<pre>
- (setf oscillator (<a class=quiet href="#make-oscil">make-oscil</a> :frequency 330))
-</pre>
-<p>prepares <i>oscillator</i> to produce a sine wave
-when set in motion via</p>
-<pre>
- (<a class=quiet href="#oscil">oscil</a> oscillator)
-</pre>
-<p>(<a class=quiet href="#oscil?">oscil?</a> oscillator) returns t, and (<a class=quiet href="#mus-frequency">mus-frequency</a> oscillator) returns 330.
-The initialization function (make-oscil above)
-normally takes a number of optional arguments, setting whatever choices need to be made to specify the
-generator's behavior. The run-time function (oscil above) always takes the generator as its first argument.
-Its second argument is nearly always
-something like an FM input; in a few cases, it is a function to provide input data or editing operations.
-Frequency sweeps of all kinds (vibrato, glissando, breath
-noise, FM proper) are all forms of run-time frequency modulation. So, in
-normal usage, our oscillator looks something like:</p>
-<pre>
- (<a class=quiet href="#oscil">oscil</a> oscillator (+ vibrato glissando frequency-modulation))
-</pre>
-<p>
-Frequencies are always in cycles per
-second (also known as Hz). The
-FM (or frequency change) argument is assumed to be a phase change in radians,
-applied on each sample. Normally composers would rather think in terms of
-Hz, so the function <a href="#hztoradians">hz-&gt;radians</a> can be used to convert from units of cycles
-per second to radians per sample.
-</p>
-
-<p>Finally, one special aspect of the make-&lt;gen&gt; functions is the way they
-read their arguments. I use the word <a class=def Name="optional-key">optional-key</a>
-in the function definitions in this document to indicate that the arguments are
-keywords, but the keywords themselves are optional.
-Take the make-oscil call, defined as:</p>
-<pre>
- make-oscil &amp;optional-key (frequency *clm-default-frequency*) (initial-phase 0.0)
-</pre>
-<p>When make-oscil is called, it scans its arguments; if a keyword is seen, that
-argument and all following arguments are passed unchanged, but if a value is
-seen, the corresponding keyword is prepended in the argument list:
-</p>
-<pre>
- (<a class=quiet href="#make-oscil">make-oscil</a> :frequency 440.0)
- (<a class=quiet href="#make-oscil">make-oscil</a> :frequency 440.0 :initial-phase 0.0)
- (<a class=quiet href="#make-oscil">make-oscil</a> 440.0)
- (<a class=quiet href="#make-oscil">make-oscil</a>)
- (<a class=quiet href="#make-oscil">make-oscil</a> 440.0 :initial-phase 0.0)
- (<a class=quiet href="#make-oscil">make-oscil</a> 440.0 0.0)
-</pre>
-<p>are all equivalent, but</p>
-<pre>
- (<a class=quiet href="#make-oscil">make-oscil</a> :frequency 440.0 0.0)
- (<a class=quiet href="#make-oscil">make-oscil</a> :initial-phase 0.0 440.0)
-</pre>
-<p>are in error, because once we see any keyword, all the rest of the arguments have
-to use keywords too (we can't reliably make any assumptions after that point about argument
-ordering). If this is confusing, just use the keywords all the time. I implemented this somewhat
-unusual argument interpretation because
-in many cases it is silly to insist on the keyword; for example, in make-env,
-the envelope argument is obvious and can't be confused with any other argument, so
-it's an annoyance to have to say ":envelope" over and over. Keyword arguments are also
-useful when there are so many arguments to a function that it becomes impossible to
-remember what they are and what order they come in.
-</p>
-
-<br>
-
-
-<!-- ---------------------------------------- OSCIL ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>OSCIL (sinusoids)</h4></td></tr></table>
-<pre>
- <a class=def name="make-oscil">make-oscil</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (initial-phase 0.0)
- <a class=def name="oscil">oscil</a> os &amp;optional (fm-input 0.0) (pm-input 0.0)
- <a class=def name="oscil?">oscil?</a> os
-</pre>
-
-<p><b>oscil</b> produces a sine wave (using sin) with optional frequency change (i.e. FM).
-Its first argument is an oscil created by <b>make-oscil</b>.
-Oscil's second (optional) argument is the current (sample-wise)
-frequency change. The optional third argument is the (sample-wise)
-phase change (in addition to the carrier increment and so on).
-So the second argument can be viewed as FM, while the third is PM (phase modulation).
-The initial-phase argument to make-oscil is in radians. You can
-use <b>degrees-&gt;radians</b> to convert from degrees to radians.
-To get a cosine (as opposed to sin), set the initial-phase to (/ pi 2):
-<code>(make-oscil 440.0 (/ pi 2)) </code>.
-</p>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>oscil methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>1 (no setf)</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-<br>
-<pre>
- (prog1
- (sin (+ phase pm-input))
- (incf phase (+ (<a class=quiet href="#hztoradians">hz-&gt;radians</a> frequency) fm-input)))
-</pre>
-<br clear=left>
-
-<p><b>oscil</b> takes both FM and PM arguments; here is an example of FM:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> simple-fm (beg dur freq amp mc-ratio index &amp;optional amp-env index-env)
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (cr (<em class=red>make-oscil</em> freq)) ; our carrier
- (md (<em class=red>make-oscil</em> (* freq mc-ratio))) ; our modulator
- (fm-index (<a class=quiet href="#hztoradians">hz-&gt;radians</a> (* index mc-ratio freq)))
- (ampf (<a class=quiet href="#make-env">make-env</a> (or amp-env '(0 0 .5 1 1 0)) :scaler amp :duration dur))
- (indf (<a class=quiet href="#make-env">make-env</a> (or index-env '(0 0 .5 1 1 0)) :scaler fm-index :duration dur)))
- (run
- (loop for i from start to end do
- (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> ampf) (<em class=red>oscil</em> cr (* (<a class=quiet href="#env">env</a> indf) (<em class=red>oscil</em> md)))))))))
-</pre>
-</td></tr></table>
-
-<p>See <a href="cl-fm.html">cl-fm.html</a> for a
-discussion of FM. The standard additive synthesis instruments use an array of oscillators to
-create the individual spectral components:
-</p>
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument simple-osc (beg dur freq amp)
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (arr (make-array 20))) ; we'll create a tone with 20 harmonics
- (do ((i 0 (1+ i)))
- ((= i 20))
- (setf (aref arr i) (<em class=red>make-oscil</em> (* (1+ i) 100))))
- (run
- (loop for i from start to end do
- (let ((sum 0.0))
- (do ((i 0 (1+ i)))
- ((= i (length arr)))
- (incf sum (<em class=red>oscil</em> (aref arr i))))
- (<a class=quiet href="#outa">outa</a> i (* amp .05 sum)))))))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- ENV ---------------------------------------- -->
-
-<!-- INDEX envelopes:Envelopes --><A class=def NAME="envelopes"></a>
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>ENV (envelopes)</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-env">make-env</a> <a class=quiet href="#optional-key">&amp;optional-key</a>
- envelope ; list of x,y break-point pairs
- (scaler 1.0) ; scaler on every y value (before offset is added)
- duration ; seconds
- (offset 0.0) ; value added to every y value
- base ; type of connecting line between break-points
- end ; end point in samples (similar to <i>dur</i>)
- length ; duration in samples (can be used instead of <i>end</i>)
- <a class=def name="env">env</a> e
- <a class=def name="env?">env?</a> e
- <a class=def name="env-interp">env-interp</a> x env &amp;optional (base 1.0)
- <a class=def name="envelope-interp">envelope-interp</a> x envelope &amp;optional (base 1.0)
-</pre>
-
-<table border=1 cellpadding=4 hspace=40>
-<tr><td colspan=2 bgcolor="beige"><center>env methods</center></td></tr>
-<tr><td><em class=gen>mus-location</em></td><td>call counter value (number of calls so far on <i>env</i>)</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>base value (no setf)</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>original breakpoint list</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>original scaler</td></tr>
-<tr><td><em class=gen>mus-offset</em></td><td>original offset</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>original duration in samples</td></tr>
-</table>
-
-<p>An envelope is a list of break point pairs: '(0 0 100 1) is
-a ramp from 0 to 1 over an x-axis excursion from 0 to 100 (that is, we have (x0 y0 x1 y1), so
-we're going from (0, 0) to (100, 1)).
-This list is passed
-to <b>make-env</b> along with the scaler
-applied to the y axis, the offset added to every y value,
-and the time in samples or seconds that the x axis represents. make-env
-returns an env generator which returns the next sample of the envelope each
-time it is called. The actual envelope value, leaving aside the <i>base</i>
-is <code>offset + scaler * envelope-value</code>.
-</p>
-
-<p>
-The kind of interpolation used to get y-values between the break
-points (the connecting curve) is determined by the envelope's <i>base</i>.
-The default (base = 1.0) gives a straight line connecting the points.
-Say we want a ramp moving from .3 to .5 over 1 second.
-The corresponding make-env call would be
-</p>
-<pre>
- (make-env '(0 0 100 1) :scaler .2 :offset .3 :duration 1.0)
- or
- (make-env '(0 .3 1 .5) :duration 1.0)
-</pre>
-
-<p><i>base</i> = 0.0 gives a step
-function (the envelope changes its value suddenly to the new one without any
-interpolation). Any other positive value becomes the exponent of the exponential curve
-connecting the points. <i>base</i> &lt; 1.0 gives convex curves (i.e. bowed
-out), and <i>base</i> &gt; 1.0 gives concave curves (i.e. sagging).
-If you'd rather think in terms of e^-kt, set the base to (exp k).
-To get arbitrary connecting curves between the break points, treat
-the output of env as the input to the connecting function. Here's an
-instrument that maps the line segments into sin x^3:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> mapenv (beg dur frq amp en)
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (osc (<a class=quiet href="#make-oscil">make-oscil</a> frq))
- (half-pi (* pi 0.5))
- (zv (<em class=red>make-env</em> <em class=red>en</em> 1.0 dur)))
- (run
- (loop for i from start below end do
- (let ((zval (<em class=red>env</em> zv))) ; zval^3 is [0.0..1.0], as is sin between 0 and half-pi.
- (<a class=quiet href="#outa">outa</a> i (* amp (sin (* half-pi zval zval zval)) (<a class=quiet href="#oscil">oscil</a> osc))))))))
-
-(<a class=quiet href="#with-sound">with-sound</a> () (mapenv 0 1 440 .4 '(0 0 50 1 75 0 86 .5 100 0)))
-</pre>
-</td></tr></table>
-
-<p>Or create your own generator that traces out the curve you want.
-J.C.Risset's bell curve could be:</p>
-<pre>
-(defmacro bell-curve (x)
- ;; x from 0.0 to 1.0 creates bell curve between .64e-4 and nearly 1.0
- ;; if x goes on from there, you get more bell curves; x can be
- ;; an envelope (a ramp from 0 to 1 if you want just a bell curve)
- `(+ .64e-4 (* .1565 (- (exp (- 1.0 (cos (* two-pi ,x)))) 1.0))))
-</pre>
-<p><b>mus-reset</b> of an envelope causes it
-to start all over again from the beginning. To jump to any position in
-an envelope, use <a href="#mus-location">mus-location</a>.
-</p>
-
-<p>This instrument repeats the same envelope over and over:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument strummer (beg dur env-dur)
- (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a>))
- (e (<a class=quiet href="#make-env">make-env</a> '(0 0 50 1 100 0) :length env-dur :scaler .1)))
- (run
- (loop for i from beg below (+ beg dur) do
- (if (&gt; (<em class=red>mus-location</em> e) (<em class=red>mus-length</em> e))
- (<em class=red>mus-reset</em> e))
- (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> e) (<a class=quiet href="#oscil">oscil</a> os)))))))
-
-;;; (with-sound () (strummer 0 22050 2000))
-</pre>
-</td></tr></table>
-
-<p><b>env-interp</b> and <b>envelope-interp</b> return the value of the envelope at some point
-on the x axis; env-interp operates on an 'env' (the output of make-env), whereas
-envelope-interp operates on an 'envelope' (a list of breakpoints).
-To get weighted random numbers, use the output of
-(random 100.0) as the lookup index into an envelope whose x axis goes
-from 0 to 100. Then the envelope y values are the numbers returned,
-and the amount of the x-axis taken by a given value is its weight.
-Say we want 40% .5, and 60% 1.0,
-</p><pre>
-(loop for i from 0 to 10 collect
- (<a class=quiet href="#envelope-interp">envelope-interp</a> (random 100.0) (list 0 .5 40 .5 40.01 1.0 100 1.0)))
-=&gt; '(1.0 1.0 0.5 1.0 1.0 0.5 0.5 1.0 0.5 1.0 1.0)
-</pre>
-<p>This idea is also available in the <a href="#rand">rand</a> and <a href="#rand-interp">rand-interp</a> generators.
-Other env-related functions are:</p>
-
-<table border=0 cellpadding=0 cellspacing=0 hspace=40>
-<tr><td bgcolor="#f6f8ff"><em class=emdef>envelope-reverse</em> <code>e</code></td><td width=20 bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">reverse an envelope</td></tr>
-<tr><td><em class=emdef>envelope-repeat</em> <code>e num &amp;optional refl xnorm</code></td><td></td><td>repeat an envelope</td></tr>
-<tr><td bgcolor="#f6f8ff"><em class=emdef>envelope-concatenate</em> <code>&amp;rest es</code></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">concatenate any number of envelopes</td></tr>
-<tr><td><em class=emdef>envelope+</em> <code>es</code></td><td></td><td>add together any number of envelopes</td></tr>
-<tr><td bgcolor="#f6f8ff"><em class=emdef>envelope*</em> <code>es</code></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">same but multiply</td></tr>
-<tr><td><em class=emdef>envelope-simplify</em> <code>e &amp;optional yg xg</code></td><td></td><td>simplify an evelope</td></tr>
-<tr><td bgcolor="#f6f8ff"><em class=emdef>meld-envelopes</em> <code>e0 e1</code></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">meld two envelopes together</td></tr>
-<tr><td><em class=emdef>map-across-envelopes</em> <code>func es</code></td><td></td><td>map a function across any number of envelopes</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="envelope-exp">envelope-exp</a> <code>e &amp;optional pow xg</code></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">create exponential segments of envelopes</td></tr>
-<tr><td><a class=def Name="window-envelope">window-envelope</a> <code>beg end e</code></td><td></td><td>return portion of e between two x values</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="stretch-envelope">stretch-envelope</a> <code>e a0 a1 &amp;optional d0 d1</code></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">attack and decay portions</td></tr>
-<tr><td><a class=def Name="scale-envelope">scale-envelope</a> <code>e scale &amp;optional offset</code></td><td></td><td>scale e</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="normalize-envelope">normalize-envelope</a> <code>e &amp;optional norm</code></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">normalize e</td></tr>
-</table>
-
-<p>See env.lisp for more such functions. To copy an existing envelope while changing one aspect (say
-duration), it's simplest to use make-env:
-</p>
-<pre>
-(defun change-env-dur (e dur)
- (<a class=quiet href="#make-env">make-env</a> (<a class=quiet href="#mus-data">mus-data</a> e) ; the original breakpoints
- :scaler (<a class=quiet href="#mus-scaler">mus-scaler</a> e) ; these are the original values passed to make-env
- :offset (<a class=quiet href="#mus-offset">mus-offset</a> e)
- :base (<a class=quiet href="#mus-increment">mus-increment</a> e) ; the base (using "mus-increment" because it was available...)
- :duration dur))
-</pre>
-<br>
-
-
-
-<!-- ---------------------------------------- TABLE-LOOKUP ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>TABLE-LOOKUP</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-table-lookup">make-table-lookup</a> <a class=quiet href="#optional-key">&amp;optional-key</a>
- (frequency *clm-default-frequency*) ; in Hz
- (initial-phase 0.0) ; in radians
- wave ; double-float array
- size ; table size if wave not specified
- type ; interpolation type (mus-interp-linear)
- <a class=def name="table-lookup">table-lookup</a> tl &amp;optional (fm-input 0.0)
- <a class=def name="table-lookup?">table-lookup?</a> tl
-</pre>
-
-<p><b>table-lookup</b> performs interpolating table lookup. Indices are first
-made to fit in the current table (FM input can produce negative indices), then
-interpolation returns the table value. Table-lookup scales its
-frequency change argument (<i>fm-input</i>) to fit whatever its table size is
-(that is, it assumes the caller is thinking in terms of a table size of two pi,
-and fixes it up). The wave table should be an array of double-floats (the function
-make-double-array can be used to create it).
-<i>type</i> sets the type of interpolation used: mus-interp-none,
-mus-interp-linear, mus-interp-lagrange, mus-interp-bezier, or mus-interp-hermite.
-</p>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>table-lookup methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians (wave-size/(2*pi))</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>wave array</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>wave size (no setf)</td></tr>
-<tr><td><em class=gen>mus-interp-type</em></td><td>interpolation choice (no setf)</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>table increment per sample</td></tr>
-</table>
-<pre>
-<br>
-(prog1
- (<a class=quiet href="#array-interp">array-interp</a> wave phase)
- (incf phase (+ (<a class=quiet href="#hztoradians">hz-&gt;radians</a> frequency)
- (* fm-input
- (/ (length wave)
- (* 2 pi))))))
-</pre><br clear=left>
-
-<p>There are two functions that make it easier to load up
-various wave forms:</p>
-<pre>
- <a class=def name="partialstowave">partials-&gt;wave</a> <i>synth-data</i> <i>table</i> &amp;optional (<i>norm</i> t)
- <a class=def name="phase-partialstowave">phase-partials-&gt;wave</a> <i>synth-data</i> <i>table</i> &amp;optional (<i>norm</i> t)
-</pre>
-<p>The <i>synth-data</i> argument is a list of (partial amp) pairs: '(1 .5 2 .25)
-gives a combination of a sine wave at the carrier (1) at amplitude .5, and
-another at the first harmonic (2) at amplitude .25. The partial amplitudes are
-normalized to sum to a total amplitude of 1.0 unless the argument <i>norm</i>
-is nil. If the initial phases matter (they almost never do), you can use
-phase-partials-&gt;wave; in this case the <i>synth-data</i> is a list of (partial amp phase) triples with phases in radians.</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> simple-table (dur)
- (let ((tab (<em class=red>make-table-lookup</em> :wave (<em class=red>partials-&gt;wave</em> '(1 .5 2 .5)))))
- (run
- (loop for i from 0 to dur do
- (<a class=quiet href="#outa">outa</a> i (* .3 (<em class=red>table-lookup</em> tab)))))))
-</pre>
-</td></tr></table>
-
-<p><a href="spectr.clm">spectr.clm</a> has a steady state spectra of
-several standard orchestral instruments, courtesy of James A. Moorer.
-<a href="bird.clm">bird.clm</a> (using bird.ins and bigbird.ins) has about 50 North American bird songs. </p>
-<br>
-
-
-
-<!-- ---------------------------------------- POLYWAVE, POLYSHAPE ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>POLYWAVE (waveshaping synthesis)</h4></td></tr></table>
-<pre>
- <a class=def name="make-polywave">make-polywave</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*)
- (partials '(1 1)) (type mus-chebyshev-first-kind)
- <a class=def name="polywave">polywave</a> w &amp;optional (fm 0.0)
- <a class=def name="polywave?">polywave?</a> w
-
- <a class=def name="make-polyshape">make-polyshape</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*)
- (initial-phase 0.0) coeffs (partials '(1 1)) (kind mus-chebyshev-first-kind)
- <a class=def name="polyshape">polyshape</a> w &amp;optional (index 1.0) (fm 0.0)
- <a class=def name="polyshape?">polyshape?</a> w
-
- <a class=def name="partialstopolynomial">partials-&gt;polynomial</a> partials &amp;optional (kind mus-chebyshev-first-kind)
-</pre>
-
-<p>polywave is the new form of polyshape.
-These two generators
-drive a sum of scaled Chebyshev polynomials with
-a sinusoid, creating a sort of cross between additive synthesis and FM; see
-"Digital Waveshaping Synthesis" by Marc Le Brun in JAES 1979 April, vol 27, no 4, p250.
-<i>kind</i> or <i>type</i> can be <b>mus-chebyshev-first-kind</b> or <b>mus-chebyshev-second-kind</b>.
-</p>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>polywave methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>index (polywave only)</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>polynomial coeffs</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>number of partials</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-
-<pre>
-<br>
-(prog1
- (<a class=quiet href="#array-interp">array-interp</a> wave (* (length wave)
- (+ 0.5 (* index 0.5 (sin phase)))))
- (incf phase (+ (<a class=quiet href="#hztoradians">hz-&gt;radians</a> frequency) fm)))
-
-(prog1
- (<a class=quiet href="#polynomial">polynomial</a> wave (sin phase))
- (incf phase (+ (<a class=quiet href="#hztoradians">hz-&gt;radians</a> frequency) fm)))
-</pre>
-<br clear=left>
-
-<p>In its simplest use, waveshaping is an inexpensive additive synthesis:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> simp ()
- (let ((wav (<em class=red>make-polyshape</em> :frequency 440 :partials '(1 .5 2 .3 3 .2))))
- (run (loop for i from 0 to 1000 do (<a class=quiet href="#outa">outa</a> i (<em class=red>polyshape</em> wav))))))
-</pre>
-</td></tr></table>
-
-<p>
-Bigbird is another example:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> bigbird (start duration frequency freqskew amplitude freq-env amp-env partials)
- (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times-&gt;samples</a> start duration)
- (let* ((gls-env (<a class=quiet href="#make-env">make-env</a> freq-env (<a class=quiet href="#hztoradians">hz-&gt;radians</a> freqskew) duration))
- (polyos (<a class=quiet href="#make-oscil">make-polyshape</a> frequency
- :coeffs (<em class=red>partials-&gt;polynomial</em> (normalize-partials partials))))
- (fil (<a class=quiet href="#make-one-pole">make-one-pole</a> .1 .9))
- (amp-env (<a class=quiet href="#make-env">make-env</a> amp-env amplitude duration)))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i
- (<a class=quiet href="#one-pole">one-pole</a> fil ; for distance effects
- (* (<a class=quiet href="#env">env</a> amp-env)
- (<em class=red>polyshape</em> polyos 1.0 (<a class=quiet href="#env">env</a> gls-env))))))))))
-
-(with-sound ()
- (bigbird beg .05 1800 1800 .2
- '(.00 .00 .40 1.00 .60 1.00 1.00 .0) ; freq env
- '(.00 .00 .25 1.00 .60 .70 .75 1.00 1.00 .0) ; amp env
- '(1 .5 2 1 3 .5 4 .1 5 .01))) ; partials (bird song spectrum)
-</pre>
-</td></tr></table>
-
-<p>
-See also <a href="pqw.ins">pqw.ins</a> for phase quadrature waveshaping (single-sideband tricks).
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- SAWTOOTH ETC ---------------------------------------- -->
-
-<table width="70%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>SAWTOOTH-WAVE, TRIANGLE-WAVE, PULSE-TRAIN, SQUARE-WAVE</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-triangle-wave">make-triangle-wave</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase pi)
- <a class=def name="triangle-wave">triangle-wave</a> s &amp;optional (fm 0.0)
- <a class=def name="triangle-wave?">triangle-wave?</a> s
-
- <a class=def name="make-square-wave">make-square-wave</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase 0)
- <a class=def name="square-wave">square-wave</a> s &amp;optional (fm 0.0)
- <a class=def name="square-wave?">square-wave?</a> s
-
- <a class=def name="make-sawtooth-wave">make-sawtooth-wave</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase pi)
- <a class=def name="sawtooth-wave">sawtooth-wave</a> s &amp;optional (fm 0.0)
- <a class=def name="sawtooth-wave?">sawtooth-wave?</a> s
-
- <a class=def name="make-pulse-train">make-pulse-train</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase two-pi)
- <a class=def name="pulse-train">pulse-train</a> s &amp;optional (fm 0.0)
- <a class=def name="pulse-train?">pulse-train?</a> s
-</pre>
-
-<p>These generators produce some standard old-timey wave forms that are still occasionally useful (well, triangle-wave
-is useful; the others are silly).
-<b>sawtooth-wave</b> ramps from -1 to 1, then goes immediately back to -1.
-Use a negative frequency to turn the "teeth" the other way.
-<b>triangle-wave</b> ramps from -1 to 1, then ramps from 1 to -1.
-<b>pulse-train</b> produces a single sample of 1.0, then zeros.
-<b>square-wave</b> produces 1 for half a period, then 0. All have a period
-of two-pi, so the <i>fm</i> argument should have an effect comparable to the
-same FM applied to the same waveform in <a href="#table-lookup">table-lookup</a>.
-These are not band-limited; if the frequency is too high, you can get foldover,
-but as far as I
-know, no-one uses these as audio frequency tone generators &mdash; who would want to
-listen to a square wave? A more reasonable square-wave can be generated via
-tanh(n * sin(theta)), where "n" (a float) sets how squared-off it is.
-Even more amusing is this algorithm:
-</p>
-<table border=0 bgcolor="#f0f0f0" hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(defun cossq (c theta) ; as c -&gt; 1.0+, more of a square wave (try 1.00001)
- (let* ((cs (cos theta)) ; (+ theta pi) if matching sin case (or (- ...))
- (cp1 (+ c 1.0))
- (cm1 (- c 1.0))
- (cm1c (expt cm1 cs))
- (cp1c (expt cp1 cs)))
- (/ (- cp1c cm1c)
- (+ cp1c cm1c)))) ; from "From Squares to Circles..." Lasters and Sharpe, Math Spectrum 38:2
-
-(defun sinsq (c theta) (cossq c (- theta (* 0.5 pi))))
-(defun sqsq (c theta) (sinsq c (- (sinsq c theta)))) ; a sharper square wave
-
-(let ((angle 0.0))
- (loop ...
- (let ((val (* 0.5 (+ 1.0 (sqsq 1.001 angle)))))
- (set! angle (+ angle .02))
- ...)))
-</pre>
-</td></tr></table>
-<br>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>saw-tooth and friends' methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>amplitude arg used in make-&lt;gen&gt;</td></tr>
-<tr><td><em class=gen>mus-width</em></td><td>width of square-wave pulse (0.0 to 1.0)</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-<pre>
-<br>
-One popular kind of vibrato is:
- (+ (triangle-wave pervib)
- (<a class=quiet href="#rand-interp">rand-interp</a> ranvib))
-</pre><br clear=left>
-
-<p>Just for completeness, here's an example:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument simple-saw (beg dur amp)
- (let* ((os (<em class=red>make-sawtooth-wave</em> 440.0))
- (start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*)))))
- (run
- (loop for i from start to end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>sawtooth-wave</em> os)))))))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- NCOS, NSIN ---------------------------------------- -->
-
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>NCOS and NSIN</h4></td></tr></table>
-<pre>
- <a class=def name="make-ncos">make-ncos</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (n 1)
- <a class=def name="ncos">ncos</a> cs &amp;optional (fm 0.0)
- <a class=def name="ncos?">ncos?</a> cs
-
- <a class=def name="make-nsin">make-nsin</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (n 1)
- <a class=def name="nsin">nsin</a> cs &amp;optional (fm 0.0)
- <a class=def name="nsin?">nsin?</a> cs
-</pre>
-
-<p>
-<b>ncos</b> produces a band-limited pulse train containing
-<i>n</i> cosines. I think this was originally viewed as a way to get a speech-oriented
-pulse train that would then be passed through formant filters (see pulse-voice in examp.scm). There are many similar formulas:
-see <a href="sndclm.html#ncos2">ncos2</a> and friends in generators.scm. "Trigonometric Delights" by Eli Maor has
-a derivation of a nsin formula and a neat
-geometric explanation. For a derivation of the ncos formula, see "Fourier
-Analysis" by Stein and Shakarchi, or multiply the left side (the cosines) by sin(x/2), use the trig
-formula 2sin(a)cos(b) = sin(b+a)-sin(b-a), and notice that all the terms in the series
-cancel except the last.
-</p>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>ncos methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>(/ 1.0 cosines)</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>n or cosines arg used in make-&lt;gen&gt;</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-<pre>
-<br>
-based on:
- cos(x) + cos(2x) + ... cos(nx) =
- (sin((n + .5)x) / (2 * sin(x / 2))) - 1/2
-
- known as the Dirichlet kernel
-</pre>
-<br clear=left>
-
-<table border=0 hspace=40 vspace=20><tr><td><pre>
-(definstrument simple-soc (beg dur freq amp)
- (let* ((os (<em class=red>make-ncos</em> freq 10))
- (start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*)))))
- (run
- (loop for i from start to end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>ncos</em> os)))))))
-</pre></td></tr></table>
-
-<p>If you sweep ncos upwards in frequency, you'll eventually
-get foldover; the generator produces its preset number of cosines no
-matter what. It is possible to vary the spectrum smoothly (without stooping a filter): multiply the
-output of ncos by an exponential &mdash; there's an example in <a href="sndclm.html#ncos">sndclm.html</a>.
-</p>
-
-
-<p><b>nsin</b> produces a sum of n equal amplitude sines. It is very similar (good and bad) to ncos.
-</p>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>nsin methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>dependent on number of sines</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>n or sines arg used in make-&lt;gen&gt;</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-<pre>
-<br>
-based on:
- sin(x) + sin(2x) + ... sin(nx) =
- sin(n * x / 2) * (sin((n + .5)x) / sin(x / 2))
-
- known as the conjugate Dirichlet kernel
-</pre><br clear=left>
-<br>
-
-
-
-<!-- ---------------------------------------- SSB-AM ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>SSB-AM (pitch shifting via single-sideband AM)</h4></td></tr></table>
-<pre>
- <a class=def name="make-ssb-am">make-ssb-am</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (order 40)
- <a class=def name="ssb-am">ssb-am</a> gen &amp;optional (insig 0.0) (fm 0.0)
- <a class=def name="ssb-am?">ssb-am?</a> gen
-</pre>
-<p><b>ssb-am</b> provides single sideband suppressed carrier amplitude modulation, normally used for frequency shifting.
-</p>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>ssb-am methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase (of embedded sin osc) in radians</td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>embedded delay line size</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>same as mus-order</td></tr>
-<tr><td><em class=gen>mus-interp-type</em></td><td><code>mus-interp-none</code></td></tr>
-<tr><td><em class=gen>mus-xcoeff</em></td><td>FIR filter coeff</td></tr>
-<tr><td><em class=gen>mus-xcoeffs</em></td><td>embedded Hilbert transform FIR filter coeffs</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>embedded filter state</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-<pre>
-<br>
-based on:
- cos(freq) * delay(insig) +/- sin(freq) * hilbert(insig)
- which shifts insig spectrum by freq
- and cancels upper/lower sidebands
-</pre><br clear=left>
-
-<p>See the instrument under <a href="#amplitude-modulate">amplitude-modulate</a> for
-an explicit version of this generator.
-Here's a complicated way to get a sine wave at 550 Hz:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument shift-pitch (beg dur freq amp shift)
- (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a> freq))
- (start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (am (<em class=red>make-ssb-am</em> shift)))
- (run
- (loop for i from start to end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>ssb-am</em> am (<a class=quiet href="#oscil">oscil</a> os))))))))
-</pre>
-</td></tr></table>
-
-<br>
-
-
-
-<!-- ---------------------------------------- WAVE-TRAIN ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>WAVE-TRAIN</h4></td></tr></table>
-<pre>
- <a class=def name="make-wave-train">make-wave-train</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (initial-phase 0.0) wave size type
- <a class=def name="wave-train">wave-train</a> w &amp;optional (fm 0.0)
- <a class=def name="wave-train?">wave-train?</a> w
-</pre>
-
-<p><b>wave-train</b> produces a wave train (an extension of pulse-train and table-lookup).
-<i>Frequency</i> is the repetition rate of the wave found in <i>wave</i>.
-Successive waves can overlap. With some simple envelopes, or filters, you can
-use this for VOSIM and other related techniques.</p>
-
-<table border=1 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>wave-train methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>wave array (no setf)</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>length of wave array (no setf)</td></tr>
-<tr><td><em class=gen>mus-interp-type</em></td><td>interpolation choice (no setf)</td></tr>
-</table>
-
-<p>Here is a FOF instrument based loosely on fof.c of Perry Cook and the article
-"Synthesis of the Singing Voice" by Bennett and Rodet in
-"Current Directions in Computer Music Research".
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> fofins (beg dur frq amp vib f0 a0 f1 a1 f2 a2 &amp;optional ve ae)
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (ampf (<a class=quiet href="#make-env">make-env</a> (or ae (list 0 0 25 1 75 1 100 0)) :scaler amp :duration dur))
- (frq0 (<a class=quiet href="#hztoradians">hz-&gt;radians</a> f0))
- (frq1 (<a class=quiet href="#hztoradians">hz-&gt;radians</a> f1))
- (frq2 (<a class=quiet href="#hztoradians">hz-&gt;radians</a> f2))
- (foflen (if (= *srate* 22050) 100 200))
- (vibr (<a class=quiet href="#make-oscil">make-oscil</a> 6))
- (vibenv (<a class=quiet href="#make-env">make-env</a> (or ve (list 0 1 100 1)) :scaler vib :duration dur))
- (win-freq (/ two-pi foflen))
- (foftab (make-double-float-array foflen))
- (wt0 (<em class=red>make-wave-train</em> :wave foftab :frequency frq)))
- (loop for i from 0 below foflen do
- (setf (aref foftab i) (double-float
- ;; this is not the pulse shape used by B&amp;R
- (* (+ (* a0 (sin (* i frq0)))
- (* a1 (sin (* i frq1)))
- (* a2 (sin (* i frq2))))
- .5 (- 1.0 (cos (* i win-freq)))))))
- (run
- (loop for i from start below end do
- (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> ampf) (<em class=red>wave-train</em> wt0 (* (<a class=quiet href="#env">env</a> vibenv) (<a class=quiet href="#oscil">oscil</a> vibr)))))))))
-
-(<a class=quiet href="#with-sound">with-sound</a> () (fofins 0 1 270 .2 .001 730 .6 1090 .3 2440 .1)) ; "Ahh"
-
-(<a class=quiet href="#with-sound">with-sound</a> ()
- (fofins 0 4 270 .2 0.005 730 .6 1090 .3 2440 .1 '(0 0 40 0 75 .2 100 1)
- '(0 0 .5 1 3 .5 10 .2 20 .1 50 .1 60 .2 85 1 100 0))
- (fofins 0 4 (* 6/5 540) .2 0.005 730 .6 1090 .3 2440 .1 '(0 0 40 0 75 .2 100 1)
- '(0 0 .5 .5 3 .25 6 .1 10 .1 50 .1 60 .2 85 1 100 0))
- (fofins 0 4 135 .2 0.005 730 .6 1090 .3 2440 .1 '(0 0 40 0 75 .2 100 1)
- '(0 0 1 3 3 1 6 .2 10 .1 50 .1 60 .2 85 1 100 0)))
-</pre>
-</td></tr></table>
-
-<br>
-
-
-
-<!-- ---------------------------------------- RAND, RAND-INTERP ---------------------------------------- -->
-<br>
-<!-- INDEX randomnumbers:Random Numbers --><a name="randomnumbers"></a>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>RAND, RAND-INTERP (random numbers)</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-rand">make-rand</a> <a class=quiet href="#optional-key">&amp;optional-key</a>
- (frequency *clm-default-frequency*) ; freq at which new random numbers occur
- (amplitude 1.0) ; numbers are between -amplitude and amplitude
- (envelope '(-1 1 1 1)) ; distribution envelope (uniform distribution between -1 and 1 is the default)
- distribution ; pre-computed distribution
- <a class=def name="rand">rand</a> r &amp;optional (sweep 0.0)
- <a class=def name="rand?">rand?</a> r
-
- <a class=def name="make-rand-interp">make-rand-interp</a> <a class=quiet href="#optional-key">&amp;optional-key</a>
- (frequency *clm-default-frequency*)
- (amplitude 1.0)
- (envelope '(-1 1 1 1)
- distribution)
- <a class=def name="rand-interp">rand-interp</a> r &amp;optional (sweep 0.0)
- <a class=def name="rand-interp?">rand-interp?</a> r
-
- <em class=emdef>centered-random</em> amp
- <a class=def Name="clm-random">clm-random</a> amp
- <a class=def name="mus-random">mus-random</a> amp ; same as centered-random (for C-side compatibility)
- <a class=def Name="mus-set-rand-seed">mus-set-rand-seed</a> seed
-</pre>
-
-<p><b>rand</b> returns a sequence of random numbers between -amplitude and
-amplitude (it produces a sort of step function).
-<b>rand-interp</b> interpolates between successive
-random numbers;
-it could be defined as (<a class=quiet href="#moving-average">moving-average</a> agen (rand rgen)) where the
-averager has the same period (length) as the rand.
-Lisp's function <i>random</i> returns a number between 0.0 and its argument.
-In both cases, the <i>envelope</i> argument determines the random number distribution.
-<b>centered-random</b> returns a number between -<i>amp</i> and <i>amp</i>.
-<b>clm-random</b> returns a random number between 0 and <i>amp</i>. In the latter two cases,
-<i>mus-set-rand-seed</i> sets the seed for the random number generator. This provides a
-way around Lisp's clumsy mechanism for repeating a random number sequence.
-</p>
-
-<table border=1 align=left hspace=40 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>rand and rand-interp methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>amplitude arg used in make-&lt;gen&gt;</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>distribution table length</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>distribution table, if any</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-<pre>
-<br>
-rand:
- (if (&gt;= phase (* 2 pi))
- (setf output (<em class=red>centered-random</em> amplitude)))
- (incf phase (+ (<a class=quiet href="#hztoradians">hz-&gt;radians</a> frequency) sweep))
-</pre>
-<br clear=left>
-
-<p>There are a variety of ways to change <b>rand</b>'s uniform distribution to
-some other: <code>(random (random 1.0))</code> or <code>(sin (random 3.14159))</code> are simple examples. Exponential distribution could be:
-</p>
-<pre>
- (/ (log (max .01 (random 1.0))) (log .01))
-</pre>
-<p>where the ".01"'s affect how tightly the resultant values cluster toward 0.0 &mdash;
-set it to .0001 for example to get most of the random values close to 0.0.
-The central-limit theorem says that you can get closer and closer to gaussian
-noise simply by adding rand's together. Orfanidis in
-"Introduction to Signal Processing" says 12 calls on rand will
-do perfectly well.
-We could define our own generator:
-</p><pre>
-(defmacro gaussian-noise (r)
- ;; r=a rand generator allocated via make-rand
- `(let ((val 0.0))
- (dotimes (i 12) (incf val (<em class=red>rand</em> ,r)))
- val))
-</pre>
-
-<p>
-For a discussion of the central limit theorem, see
-Korner "Fourier Analysis" and Miller Puckette's dissertation:
-http://www-crca.ucsd.edu/~msp/Publications/thesis.ps.
-Another method is the "rejection method" in which we generate random number
-pairs until we get a pair that falls within the
-desired distribution; see random-any in dsp.scm (Snd) for code to do this.
-It is faster at run time, however, to use the "transformation method".
-The make-rand and make-rand-interp <i>envelope</i> arguments specify
-the desired distribution function; the generator takes the
-inverse of the integral of the envelope, loads that into an array, and uses
-<code>(array-interp (rand array-size))</code> at run time. This gives
-random numbers of any arbitrary distribution at a computational cost
-equivalent to the polyshape generator (which is very similar).
-The x axis sets the output range (before scaling by <i>amplitude</i>), and
-the y axis sets the relative weight of the corresponding x axis value.
-So, the default is <code>'(-1 1 1 1)</code> which says "output numbers between -1 and 1,
-each number having the same chance of being chosen".
-An envelope of <code>'(0 1 1 0)</code> outputs values between 0 and 1, denser toward 0.
-If you already have the distribution table (the result of <code>(inverse-integrate envelope))</code>,
-you can pass it through the <i>distribution</i> argument.
-</p>
-
-<p>
-You can, of course, filter the output of rand to get a different
-frequency distribution (as opposed to the "value distribution"
-above, all of which are forms of white noise).
-Orfanidis also mentions a clever way to get reasonably good 1/f noise:
-sum together n rand's, where each rand is running an octave slower
-than the preceding:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(defun make-1f-noise (n)
- ;; returns an array of rand's ready for the 1f-noise generator
- (let ((rans (make-array n)))
- (dotimes (i n) (setf (aref rans i) (<em class=red>make-rand</em> :frequency (/ *srate* (expt 2 i)))))
- rans))
-
-(defmacro 1f-noise (rans)
- `(let ((val 0.0)
- (len (length ,rans)))
- (dotimes (i len) (incf val (<em class=red>rand</em> (aref ,rans i))))
- (/ val len)))
-</pre>
-</td></tr></table>
-
-<p>See also <a href="green.cl">green.cl</a> (bounded brownian noise that can mimic 1/f noise in some cases).
-And we can't talk about noise without mentioning fractals:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> fractal (start duration m x amp)
- ;; use formula of M J Feigenbaum
- (let* ((beg (floor (* *srate* start)))
- (end (+ beg (floor (* *srate* duration)))))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (* amp x))
- (setf x (- 1.0 (* m x x)))))))
-
-;;; quickly reaches a stable point for any m in[0,.75], so:
-(<a class=quiet href="#with-sound">with-sound</a> () (fractal 0 1 .5 0 .5))
-;;; is just a short "ftt"
-(<a class=quiet href="#with-sound">with-sound</a> () (fractal 0 1 1.5 .20 .2))
-</pre>
-</td></tr></table>
-
-<p>With this instrument you can easily hear
-the change over from the stable equilibria, to the period doublings,
-and finally into the combination of noise and periodicity that
-has made these curves famous. See appendix 2 to Ekeland's "Mathematics and the Unexpected" for more details.
-Another instrument based on similar ideas is:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> attract (beg dur amp c) ; c from 1 to 10 or so
- ;; by James McCartney, from CMJ vol 21 no 3 p 6
- (let* ((st (floor (* beg *srate*)))
- (nd (+ st (floor (* dur *srate*))))
- (a .2) (b .2) (dt .04)
- (scale (/ (* .5 amp) c))
- (x1 0.0) (x -1.0) (y 0.0) (z 0.0))
- (run
- (loop for i from st below nd do
- (setf x1 (- x (* dt (+ y z))))
- (incf y (* dt (+ x (* a y))))
- (incf z (* dt (- (+ b (* x z)) (* c z))))
- (setf x x1)
- (<a class=quiet href="#outa">outa</a> i (* scale x))))))
-</pre>
-</td></tr></table>
-
-<p>which gives brass-like sounds!
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- SIMPLE FILTERS ---------------------------------------- -->
-
-<!-- INDEX filters:Filters --><A class=def NAME="filters"></a>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>ONE-POLE, ONE-ZERO, TWO-POLE, TWO-ZERO (simple filters)</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-one-pole">make-one-pole</a> <a class=quiet href="#optional-key">&amp;optional-key</a> a0 b1 ; b1 &lt; 0.0 gives lowpass, b1 &gt; 0.0 gives highpass
- <a class=def name="one-pole">one-pole</a> f input
- <a class=def name="one-pole?">one-pole?</a> f
-
- <a class=def name="make-one-zero">make-one-zero</a> <a class=quiet href="#optional-key">&amp;optional-key</a> a0 a1 ; a1 &gt; 0.0 gives weak lowpass, a1 &lt; 0.0 highpass
- <a class=def name="one-zero">one-zero</a> f input
- <a class=def name="one-zero?">one-zero?</a> f
-
- <a class=def name="make-two-pole">make-two-pole</a> <a class=quiet href="#optional-key">&amp;optional-key</a> a0 b1 b2 frequency radius
- <a class=def name="two-pole">two-pole</a> f input
- <a class=def name="two-pole?">two-pole?</a> f
-
- <a class=def name="make-two-zero">make-two-zero</a> <a class=quiet href="#optional-key">&amp;optional-key</a> a0 a1 a2 frequency radius
- <a class=def name="two-zero">two-zero</a> f input
- <a class=def name="two-zero?">two-zero?</a> f
-</pre>
-<br>
-
-<table border=1 align=left hspace=20 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>simple filter methods</center></td></tr>
-<tr><td><em class=gen>mus-xcoeff</em></td><td>a0, a1, a2 in equations</td></tr>
-<tr><td><em class=gen>mus-ycoeff</em></td><td>b1, b2 in equations</td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>1 or 2 (no setf)</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>two-pole and two-zero radius</td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>two-pole and two-zero center frequency</td></tr>
-</table>
-<pre>
-one-zero y(n) = a0 x(n) + a1 x(n-1)
-one-pole y(n) = a0 x(n) - b1 y(n-1)
-two-pole y(n) = a0 x(n) - b1 y(n-1) - b2 y(n-2)
-two-zero y(n) = a0 x(n) + a1 x(n-1) + a2 x(n-2)
-</pre>
-<br clear=left>
-
-<p>
-The "a0, b1" nomenclature is taken from Julius Smith's "An Introduction to Digital
-Filter Theory" in Strawn "Digital Audio Signal Processing", and is different
-from that used in the more general filters such as <a href="#fir-filter">fir-filter</a>.
-In <b>make-two-pole</b> and <b>make-two-zero</b> you can specify either the actual
-desired coefficients (<b>a0</b> and friends), or the center frequency and radius of the
-filter (<b>frequency</b> and <b>radius</b>).
-<i>radius</i> should be between 0 and 1 (but less than 1), and
-<i>frequency</i> should be between 0 and srate/2.
-</p>
-<p>The bird instrument uses a one-pole filter for a distance cue:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument bird (startime dur frequency freq-skew amplitude freq-envelope amp-envelope
- &amp;optional (lpfilt 1.0) (degree 0) (reverb-amount 0))
- (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times-&gt;samples</a> startime dur)
- (let* ((amp-env (<a class=quiet href="#make-env">make-env</a> amp-envelope amplitude dur))
- (gls-env (<a class=quiet href="#make-env">make-env</a> freq-envelope (<a class=quiet href="#hztoradians">hz-&gt;radians</a> freq-skew) dur))
- (loc (<a class=quiet href="#make-locsig">make-locsig</a> :degree degree :distance 1.0 :reverb reverb-amount))
- (fil (<em class=red>make-one-pole</em> lpfilt (- 1.0 lpfilt)))
- (s (<a class=quiet href="#make-oscil">make-oscil</a> :frequency frequency)))
- (run
- (loop for i from beg to end do
- (<a class=quiet href="#locsig">locsig</a> loc i (<em class=red>one-pole</em> fil (* (<a class=quiet href="#env">env</a> amp-env)
- (<a class=quiet href="#oscil">oscil</a> s (<a class=quiet href="#env">env</a> gls-env))))))))))
-</pre>
-</td></tr></table>
-
-<br>
-
-
-
-<!-- ---------------------------------------- FORMANT ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>FORMANT (resonances)</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-formant">make-formant</a> <a class=quiet href="#optional-key">&amp;optional-key</a> frequency radius
- <a class=def name="formant">formant</a> f input ; resonator centered at frequency, bandwidth set by radius above
- <a class=def name="formant?">formant?</a> f
-
- <a class=def name="make-firmant">make-firmant</a> <a class=quiet href="#optional-key">&amp;optional-key</a> frequency radius
- <a class=def name="firmant">firmant</a> f input ; resonator centered at frequency, bandwidth set by radius above
- <a class=def name="firmant?">firmant?</a> f
-</pre>
-
-<table border=1 align=left hspace=20 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>formant methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>formant center frequency</td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>2 (no setf)</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>gain</td></tr>
-</table>
-<br>
-<pre>
- formant:
- y(n) = x(n) -
- r * x(n-2) +
- 2 * r * cos(frq) * y(n-1) -
- r * r * y(n-2)
-
- firmant:
- x(n+1) = r * (x(n) - 2 * sin(frq/2) * y(n)) + input
- y(n+1) = r * (2 * sin(frq/2) * x(n+1) + y(n))
-</pre>
-<br clear=left>
-
-<p>formant and firmant are resonators (two-pole, two-zero bandpass filters) centered at "frequency", with the bandwidth set by "radius".
-The formant generator is described in "A Constant-gain Digital Resonator Tuned By a Single Coefficient" by Julius
-O. Smith and James B. Angell in Computer Music Journal Vol. 6 No. 4 (winter
-1982) and "A note on
-Constant-Gain Digital Resonators" by Ken Steiglitz, CMJ vol 18 No. 4 pp.8-10
-(winter 1994).
-The formant bandwidth is a function of the "radius", and its center frequency is set by "frequency".
-As the radius approaches 1.0 (the unit circle), the
-resonance gets narrower.
-Use <a href="sndclm.html#mus-frequency">mus-frequency</a> to change the center frequency, and <a href="sndclm.html#mus-scaler">mus-scaler</a> to change the radius.
-The radius can be set in terms of desired bandwidth in Hz via:
-</p>
-<pre>
- (exp (* -0.5 (hz-&gt;radians bandwidth)))
-</pre>
-
-<p>If you change the radius, the peak amplitude
-of the output changes.
-The firmant generator is the "modified coupled form" of the formant generator,
-developed by Max Mathews and Julius Smith in "Methods for Synthesizing Very High Q Parametrically
-Well Behaved Two Pole Filters".
-grapheq.ins uses a bank of formant generators to implement a graphic equalizer,
-and fade.ins uses it for frequency domain mixing. Here is an instrument
-for cross-synthesis with a bank of 128 formants:
-</p>
-
-<!-- INDEX cross-synthesis:cross synthesis -->
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> <A class=def NAME="cross-synthesis">cross-synthesis</a> (beg dur file1 file2 amp &amp;optional (fftsize 128) (r two-pi) (lo 2) (hi nil))
- ;; file1: input sound, file2: gives spectral shape
- ;; r: controls width of formants (1.0 is another good value here)
- ;; lo and hi: which of the formants are active (a sort of filter on top of the filter)
- ;; we use the on-going spectrum of file2 to scale the outputs of the formant array
- (let* ((fil1 (<a class=quiet href="#open-input*">open-input*</a> file1))
- (fil2 (and fil1 (<a class=quiet href="#open-input*">open-input*</a> file2))))
- (when fil1
- (if (not fil2)
- (<a class=quiet href="#close-input">close-input</a> fil1)
- (unwind-protect
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (freq-inc (floor fftsize 2))
- (fdr (make-double-float-array fftsize))
- (fdi (make-double-float-array fftsize))
- (diffs (make-double-float-array freq-inc))
- (<a class=quiet href="#spectrum">spectrum</a> (make-double-float-array freq-inc))
- (filptr 0)
- (ctr freq-inc)
- (radius (- 1.0 (/ r fftsize)))
- (bin (float (/ *srate* fftsize)))
- (fs (make-array freq-inc)))
- (if (null hi) (setf hi freq-inc))
- (loop for k from lo below hi do
- (setf (aref fs k) (<em class=red>make-formant</em> (* k bin) radius)))
- (run
- (loop for i from start below end do
- (when (= ctr freq-inc)
- (dotimes (k fftsize)
- (setf (aref fdr k) (<a class=quiet href="#ina">ina</a> filptr fil2))
- (incf filptr))
- (<a class=quiet href="#clear-array">clear-array</a> fdi)
- (decf filptr freq-inc)
- (<a class=quiet href="#fft">fft</a> fdr fdi fftsize 1)
- (<a class=quiet href="#rectangulartomagnitudes">rectangular-&gt;magnitudes</a> fdr fdi)
- (dotimes (k freq-inc)
- (setf (aref diffs k)
- (/ (- (aref fdr k) (aref spectrum k)) freq-inc)))
- (setf ctr 0))
- (incf ctr)
- (dotimes (k freq-inc)
- (incf (aref spectrum k) (aref diffs k)))
- (let ((outval 0.0)
- (inval (<a class=quiet href="#ina">ina</a> i fil1)))
- (loop for k from lo below hi do
- (incf outval (* (aref spectrum k) (<em class=red>formant</em> (aref fs k) inval))))
- (<a class=quiet href="#outa">outa</a> i (* amp outval))))))
- (progn
- (<a class=quiet href="#close-input">close-input</a> fil1)
- (<a class=quiet href="#close-input">close-input</a> fil2)))))))
-
-(<a class=quiet href="#with-sound">with-sound</a> () (cross-synthesis 0 1 "oboe" "fyow" .5 256 1.0 3 100))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- FILTERS ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>FILTER, IIR-FILTER, FIR-FILTER</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-filter">make-filter</a> <a class=quiet href="#optional-key">&amp;optional-key</a> order xcoeffs ycoeffs
- <a class=def name="filter">filter</a> fl inp
- <a class=def name="filter?">filter?</a> fl
-
- <a class=def name="make-fir-filter">make-fir-filter</a> <a class=quiet href="#optional-key">&amp;optional-key</a> order xcoeffs
- <a class=def name="fir-filter">fir-filter</a> fl inp
- <a class=def name="fir-filter?">fir-filter?</a> fl
-
- <a class=def name="make-iir-filter">make-iir-filter</a> <a class=quiet href="#optional-key">&amp;optional-key</a> order ycoeffs
- <a class=def name="iir-filter">iir-filter</a> fl inp
- <a class=def name="iir-filter?">iir-filter?</a> fl
-
- <a class=def Name="envelopetocoeffs">envelope-&gt;coeffs</a> &amp;key order envelope dc
-</pre>
-
-<p>These are the general FIR/IIR filters of arbitrary order.
-The <i>order</i> argument is one greater than the nominal filter
-order (it is the size of the arrays).
-</p>
-
-<table border=1 align=left hspace=20 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>general filter methods</center></td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>filter order</td></tr>
-<tr><td><em class=gen>mus-xcoeff</em></td><td>x (input) coeff</td></tr>
-<tr><td><em class=gen>mus-xcoeffs</em></td><td>x (input) coeffs</td></tr>
-<tr><td><em class=gen>mus-ycoeff</em></td><td>y (output) coeff</td></tr>
-<tr><td><em class=gen>mus-ycoeffs</em></td><td>y (output) coeffs</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>current state (input values)</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>same as mus-order</td></tr>
-</table>
-<br>
-<pre>
- (let ((xout 0.0))
- (setf (aref state 0) input)
- (loop for j from order downto 1 do
- (incf xout (* (aref state j) (aref xcoeffs j)))
- (decf (aref state 0) (* (aref ycoeffs j) (aref state j)))
- (setf (aref state j) (aref state (1- j))))
- (+ xout (* (aref state 0) (aref xcoeffs 0))))
-</pre><br clear=left>
-
-<p>dsp.scm in the Snd package has a number of filter design functions,
-and various specializations of the filter generators, including such
-perennial favorites as biquad, butterworth, hilbert transform, and
-notch filters. Similarly, analog-filter.scm in the Snd tarball has
-the usual IIR suspects: Butterworth, Chebyshev, Bessel, and Elliptic filters.
-</p>
-
-<p>
-Say we want to put a spectral envelope on a noise source.</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> filter-noise (beg dur amp &amp;key xcoeffs)
- (let* ((st (floor (* beg *srate*)))
- (noi (<a class=quiet href="#make-rand">make-rand</a> :frequency (* .5 *srate*) :amplitude amp))
- (flA (<em class=red>make-filter</em> :xcoeffs xcoeffs))
- (nd (+ st (floor (* *srate* dur)))))
- (run
- (loop for i from st below nd do
- (<a class=quiet href="#outa">outa</a> i (<em class=red>filter</em> flA (<a class=quiet href="#rand">rand</a> noi)))))))
-
-(<a class=quiet href="#with-sound">with-sound</a> ()
- (filter-noise 0 1 .2
- :xcoeffs (<a class=quiet href="#envelopetocoeffs">envelope-&gt;coeffs</a> :order 12 :envelope '(0 0.0 .125 0.5 .2 0.0 .3 1.0 .5 0.0 1.0 0.0))))
-</pre>
-</td></tr></table>
-
-<p><b>envelope-&gt;coeffs</b> translates a frequency response envelope into the corresponding FIR filter coefficients.
-The <i>order</i> of the filter determines how close you
-get to the envelope.</p>
-
-<p>The Hilbert transform can be implemented with an fir-filter:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(defun make-hilbert (&amp;optional (len 30))
- ;; create the coefficients of the Hilbert transformer of length <i>len</i>
- (let* ((arrlen (1+ (* 2 len)))
- (arr (make-array arrlen)))
- (do ((i (- len) (1+ i)))
- ((= i len))
- (let* ((k (+ i len))
- (denom (* pi i))
- (num (- 1.0 (cos (* pi i)))))
- (if (= i 0)
- (setf (aref arr k) 0.0)
- (setf (aref arr k) (/ num denom)))))
- (<em class=red>make-fir-filter</em> arrlen (loop for i from 0 below arrlen collect (aref arr i)))))
-
-(defmacro hilbert (f in) `(<em class=red>fir-filter</em> ,f ,in))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- DELAY ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>DELAY, TAP</h4></td></tr></table>
-<pre>
- <a class=def name="make-delay">make-delay</a> <a class=quiet href="#optional-key">&amp;optional-key</a> size initial-contents initial-element max-size type
- <a class=def name="delay">delay</a> d input &amp;optional (pm 0.0)
- <a class=def name="delay?">delay?</a> d
- <a class=def name="tap">tap</a> d &amp;optional (offset 0)
- <a class=def name="delaytick">delay-tick</a> d input
-</pre>
-
-<p><b>delay</b> is a delay line. <i>size</i> is in samples.
-Input fed into a delay line reappears at the output <i>size</i> samples
-later. <i>initial-element</i> defaults to 0.0.
-<b>tap</b> returns the
-current value of the delay generator. Its <i>offset</i> is the distance of the tap
-from the current delay line sample. If <i>max-size</i> is specified,
-and larger than <i>size</i>, the delay line can provide fractional delays.
-It should be large enough to accommodate the largest actual
-delay requested at run-time.
-<i>pm</i> determines how far from the normal index we are; that is,
-it is difference between the nominal
-delay length (<i>size</i>) and the current actual delay length (<i>size</i>
-+ <i>pm</i>). A positive <i>pm</i> corresponds to a longer
-delay line. The <i>type</i> argument sets the interpolation type:
-mus-interp-none, mus-interp-linear, mus-interp-all-pass,
-mus-interp-lagrange, mus-interp-bezier, or mus-interp-hermite.
-<b>delay-tick</b> just puts a sample in the delay line. 'ticks' the delay forward, and
-returns its <i>input</i> argument. This is aimed at physical modeling instruments
-where a <b>tap</b> is doing the actual delay line read.
-</p>
-
-<table border=1 align=left hspace=20 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>delay methods</center></td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>length of delay</td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>same as mus-length</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>delay line itself (no setf)</td></tr>
-<tr><td><em class=gen>mus-interp-type</em></td><td>interpolation choice (no setf)</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>unused internally, but available for delay specializations</td></tr>
-</table>
-<br>
-<pre>
-(prog1
- (<a class=quiet href="#array-interp">array-interp</a> line (- loc pm))
- (setf (aref line loc) input)
- (incf loc)
- (if (&lt;= size loc) (setf loc 0)))
-</pre>
-<br clear=left>
-<br>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> echo (beg dur scaler secs file)
- (let ((del (<em class=red>make-delay</em> (round (* secs *srate*))))
- (inf (<a class=quiet href="#open-input">open-input</a> file))
- (j 0))
- (run
- (loop for i from beg below (+ beg dur) do
- (let ((inval (<a class=quiet href="#ina">ina</a> j inf)))
- (<a class=quiet href="#outa">outa</a> i (+ inval (<em class=red>delay</em> del (* scaler (+ (<em class=red>tap</em> del) inval)))))
- (incf j))))
- (<a class=quiet href="#close-input">close-input</a> inf)))
-
-;;; (<a class=quiet href="#with-sound">with-sound</a> () (echo 0 60000 .5 1.0 "pistol.snd"))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- COMB, NOTCH ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>COMB, NOTCH</h4></td></tr></table>
-
-<pre>
- <a class=def name="make-comb">make-comb</a> <a class=quiet href="#optional-key">&amp;optional-key</a> scaler size initial-contents initial-element max-size
- <a class=def name="comb">comb</a> cflt input &amp;optional (pm 0.0)
- <a class=def name="comb?">comb?</a> cflt
-
- <a class=def name="make-filtered-comb">make-filtered-comb</a> <a class=quiet href="#optional-key">&amp;optional-key</a> scaler size initial-contents initial-element max-size filter
- <a class=def name="filtered-comb">filtered-comb</a> cflt input &amp;optional (pm 0.0)
- <a class=def name="filtered-comb?">filtered-comb?</a> cflt
-
- <a class=def name="make-notch">make-notch</a> <a class=quiet href="#optional-key">&amp;optional-key</a> scaler size initial-contents initial-element max-size
- <a class=def name="notch">notch</a> cflt input &amp;optional (pm 0.0)
- <a class=def name="notch?">notch?</a> cflt
-</pre>
-
-<p><b>comb</b> is a delay line with a scaler on the feedback term. <b>notch</b>
-is a delay line with a scaler on the feedforward term.
-<i>size</i> is the length
-in samples of the delay line.
-Other arguments are handled as in <a href="#delay">delay</a>.
-<b>filtered-comb</b> is a comb filter with a one-zero filter on the feedback.
-</p>
-
-<table border=1 align=left hspace=20 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>comb, filtered-comb, and notch methods</center></td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>length of delay</td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>same as mus-length</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>delay line itself (no setf)</td></tr>
-<tr><td><em class=gen>mus-feedback</em></td><td>scaler (comb only)</td></tr>
-<tr><td><em class=gen>mus-feedforward</em></td><td>scaler (notch only)</td></tr>
-<tr><td><em class=gen>mus-interp-type</em></td><td>interpolation choice (no setf)</td></tr>
-</table>
-<br>
-<pre>
- comb: y(n) = x(n - size) + scaler * y(n - size)
- notch: y(n) = x(n) * scaler + x(n - size)
- filtered-comb: y(n) = x(n - size) + scaler * filter(y(n - size))
-</pre>
-<br clear=left>
-
-<p>As a rule of thumb, the decay time of the feedback part is
-7.0 * <i>size</i> / (1.0 - <i>scaler</i>) samples, so to get a decay of dur seconds,
-<i>scaler</i> &lt;= 1.0 - 7.0 * <i>size</i> / (dur * *srate*). The peak gain is 1.0 / (1.0 - (abs
-<i>scaler</i>)). The peaks (or valleys in notch's case) are evenly spaced
-at *srate* / size. The height (or depth) thereof is determined by <i>scaler</i> &mdash;
-the closer to 1.0, the more pronounced.
-See Julius Smith's "An Introduction to Digital Filter Theory" in
-Strawn "Digital Audio Signal Processing", or Smith's "Music Applications of
-Digital Waveguides".
-The following instrument sweeps the comb filter using the <i>pm</i> argument:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument zc (time dur freq amp length1 length2 feedback)
- (multiple-value-bind
- (beg end) (times-&gt;samples time dur)
- (let ((s (<a class=quiet href="#make-pulse-train">make-pulse-train</a> :frequency freq)) ; some raspy input so we can hear the effect easily
- (d0 (<em class=red>make-comb</em> :size length1 :max-size (max length1 length2) :scaler feedback))
- (zenv (<a class=quiet href="#make-env">make-env</a> '(0 0 1 1) :scaler (- length2 length1) :duration dur)))
- (run
- (loop for i from beg to end do
- (<a class=quiet href="#outa">outa</a> i (<em class=red>comb</em> d0 (* amp (<a class=quiet href="#pulse-train">pulse-train</a> s)) (<a class=quiet href="#env">env</a> zenv))))))))
-
-(with-sound () (zc 0 3 100 .1 20 100 .5) (zc 3.5 3 100 .1 90 100 .95))
-</pre></td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- ALL-PASS ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>ALL-PASS</h4></td></tr></table>
-<pre>
- <a class=def name="make-all-pass">make-all-pass</a> <a class=quiet href="#optional-key">&amp;optional-key</a> feedback feedforward size initial-contents initial-element max-size
- <a class=def name="all-pass">all-pass</a> f input &amp;optional (pm 0.0)
- <a class=def name="all-pass?">all-pass?</a> f
-</pre>
-
-<p><b>all-pass</b> or moving average comb is just like <a href="#comb">comb</a> but with
-an added feedforward term. If <i>feedforward</i> = 0, we get a
-comb filter. If both scale terms = 0, we get a pure delay line. </p>
-
-<table border=1 align=left hspace=20 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>all-pass methods</center></td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>length of delay</td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>same as mus-length</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>delay line itself (no setf)</td></tr>
-<tr><td><em class=gen>mus-feedback</em></td><td>feedback scaler</td></tr>
-<tr><td><em class=gen>mus-feedforward</em></td><td>feedforward scaler</td></tr>
-<tr><td><em class=gen>mus-interp-type</em></td><td>interpolation choice (no setf)</td></tr>
-</table>
-<br>
-<pre>
- y(n) = feedforward * x(n) + x(n - size) + feedback * y(n - size)
-</pre><br clear=left>
-
-<p>all-pass filters are used extensively in reverberation; see jcrev.ins or nrev.ins for examples.
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- MOVING-AVERAGE ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>MOVING-AVERAGE (moving window average)</h4></td></tr></table>
-<pre>
- <a class=def name="make-moving-average">make-moving-average</a> <a class=quiet href="#optional-key">&amp;optional-key</a> size initial-contents initial-element
- <a class=def name="moving-average">moving-average</a> f input
- <a class=def name="moving-average?">moving-average?</a> f
-</pre>
-
-<p><b>moving-average</b> or moving window average returns the average of the last 'size' values input to it.
-This is used both to track rms values and to generate ramps between 0 and 1 in a "gate"
-effect in new-effects.scm and in rms-envelope in env.scm (Snd). It could also be viewed as a low-pass filter.
-</p>
-
-<table align=left border=1 hspace=20 cellpadding=4>
-<tr><td colspan=2 bgcolor="beige"><center>moving-average methods</center></td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>length of table</td></tr>
-<tr><td><em class=gen>mus-order</em></td><td>same as mus-length</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>table of last 'size' values</td></tr>
-</table>
-<br>
-<pre>
-result = sum-of-last-n-inputs / n
-</pre>
-<br clear=left>
-
-<p>moving-average is used in Snd's dsp.scm to implement several related functions:
-moving-rms, moving-sum, and moving-length. I might make these CLM generators someday.
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- SRC ---------------------------------------- -->
-<br>
-<!-- INDEX make-src:sampling-rate conversion -->
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>SRC (sampling-rate conversion)</h4></td></tr></table>
-<pre>
- <a class=def name="make-src">make-src</a> <a class=quiet href="#optional-key">&amp;optional-key</a> input (srate 1.0) (width 5)
- <a class=def name="src">src</a> s &amp;optional (sr-change 0.0) input-function
- <a class=def name="src?">src?</a> s
-</pre>
-
-<table border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>src methods</center></td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>srate arg to make-src</td></tr>
-</table>
-
-<p><b>src</b> performs sampling rate conversion
-by convolving its input with a sinc
-function.
-<i>srate</i> is the
-ratio between the old sampling rate and the new; an srate of 2 causes the sound to be half as long, transposed up an octave.
-<i>width</i> is how many neighboring samples to convolve with sinc.
-If you hear high-frequency artifacts in the conversion, try increasing this number;
-Perry Cook's default value is 40, and I've seen cases where it needs to be 100.
-It can also be set as low as 2 in some cases.
-The greater the width, the slower the src generator runs.
-The <i>sr-change</i>
-argument is the amount to add to the current <i>srate</i> on a sample by sample
-basis (if it's 0.0 and the original make-src srate argument was also 0.0, you get a constant output because the generator is not moving at all). Here's
-an instrument that provides time-varying sampling rate conversion:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> simple-src (start-time duration amp srt srt-env filename)
- (let* ((senv (<a class=quiet href="#make-env">make-env</a> srt-env :duration duration))
- (beg (floor (* start-time *srate*)))
- (end (+ beg (floor (* duration *srate*))))
- (src-gen (<em class=red>make-src</em> :input filename :srate srt)))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>src</em> src-gen (<a class=quiet href="#env">env</a> senv))))))))
-</pre>
-</td></tr></table>
-
-<!-- here's a multichannel version:
-(definstrument simple-src (start-time duration amp srt filename)
- (let* ((beg (floor (* start-time *srate*)))
- (end (+ beg (floor (* duration *srate*))))
- (chans (min (mus-channels *output*) (mus-channels filename)))
- (srcs (make-array chans)))
- (loop for i from 0 below chans do
- (setf (aref srcs i) (make-src :srate srt :input (make-file->sample :file filename :channel i))))
- (run
- (loop for i from beg below end do
- (loop for k from 0 below chans do
- (out-any i (* amp (src (aref srcs k))) k))))))
-
-
-;(with-sound (:channels 2) (simple-src 0 2 .5 1.5 "/home/bil/cl/2.snd"))
--->
-
-<p>src can provide an all-purpose "Forbidden Planet" sound effect:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> srcer (start-time duration amp srt fmamp fmfreq filename)
- (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a> :frequency fmfreq))
- (beg (floor (* start-time *srate*)))
- (end (+ beg (floor (* duration *srate*))))
- (src-gen (<em class=red>make-src</em> :input filename :srate srt)))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>src</em> src-gen (* fmamp (<a class=quiet href="#oscil">oscil</a> os)))))))))
-
-(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0 1 .3 20 "fyow.snd"))
-(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 25 10.0 .01 1 10 "fyow.snd"))
-(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0 .9 .05 60 "oboe.snd"))
-(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0 1.0 .5 124 "oboe.snd"))
-(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 10 10.0 .01 .2 8 "oboe.snd"))
-(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0 1 3 20 "oboe.snd"))
-
-(<a class=quiet href="#definstrument">definstrument</a> hello-dentist (beg dur file frq amp)
- (let ((rd (<em class=red>make-src</em> :input file))
- (rn (<a class=quiet href="#make-rand-interp">make-rand-interp</a> :frequency frq :amplitude amp))
- (end (+ beg dur)))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (<em class=red>src</em> rd (<a class=quiet href="#rand-interp">rand-interp</a> rn)))))))
-</pre>
-</td></tr></table>
-
-<p>The <i>input</i> argument to make-src and the <i>input-function</i> argument
-to src provide the generator with input as it is needed.
-The input function
-takes one argument (the desired read direction, if the reader can support it); it is funcall'd each time the src generator needs another
-sample of input. The input argument to src can also be an input file structure, as returned by
-open-input, or as here, simply the filename itself.
-The simple-src instrument above could be written to use an input function instead:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> src-with-readin (start-time duration amp srt srt-env filename)
- (let* ((senv (<a class=quiet href="#make-env">make-env</a> srt-env :duration duration))
- (beg (floor (* start-time *srate*)))
- (rd (<em class=red>make-readin</em> filename))
- (end (+ beg (floor (* duration *srate*))))
- (src-gen (<em class=red>make-src</em> :srate srt)))
- (run
- (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>src</em> src-gen (<a class=quiet href="#env">env</a> senv) #'(lambda (dir) (<em class=red>readin</em> rd)))))))))
-</pre>
-</td></tr></table>
-<p>
-If you jump around in the input (via <b>mus-location</b> for example), you can use the
-<b>mus-reset</b> function to clear out any lingering state before starting to read at
-the new position. (<b>src</b>, like many other generators, has an internal buffer
-of recently read samples, so a sudden jump to a new location will otherwise cause
-a click).
-</p>
-
-<br>
-
-
-
-<!-- ---------------------------------------- CONVOLVE ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>CONVOLVE</h4></td></tr></table>
-<pre>
- <a class=def name="make-convolve">make-convolve</a> <a class=quiet href="#optional-key">&amp;optional-key</a> input filter fft-size filter-size
- <a class=def name="convolve">convolve</a> ff &amp;optional input-function
- <a class=def name="convolve?">convolve?</a> ff
- <a class=def name="convolvefiles">convolve-files</a> file1 file2 &amp;optional (maxamp 1.0) (output-file "tmp.snd")
-</pre>
-
-<table border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>convolve methods</center></td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>fft size used in the convolution</td></tr>
-</table>
-
-<p>
-<b>convolve</b> convolves its input with the impulse response <i>filter</i>.
-The <i>filter</i> argument
-can be
-an array, the result of open-input, or a filename as a string.
-When not file based,
-<i>input</i> and <i>input-function</i> are functions of one argument (currently ignored) that are
-funcall'd whenever convolve needs input.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> convins (beg dur filter file &amp;optional (size 128))
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (ff (<em class=red>make-convolve</em> :input file :fft-size size :filter filter)))
- (run
- (loop for i from start below end do
- (<a class=quiet href="#outa">outa</a> i (<em class=red>convolve</em> ff))))))
-</pre>
-</td></tr></table>
-
-<p><b>convolve-files</b> handles a very common special case: you often want to convolve
-two files, normalizing the result to some maxamp. The convolve generator does not
-know in advance what its maxamp will be, and when the two files are more or less
-the same size, there's no real computational savings to using overlap-add (i.e.
-the generator), so a one-time giant FFT saved as a temporary sound file is much
-handier.</p>
-<br>
-
-
-
-<!-- ---------------------------------------- GRANULATE ---------------------------------------- -->
-
-<!-- INDEX grains:Granular synthesis --><A class=def NAME="grains"></a>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>GRANULATE (granular synthesis)</h4></td></tr></table>
-<pre>
- <a class=def name="make-granulate">make-granulate</a> <a class=quiet href="#optional-key">&amp;optional-key</a>
- input
- (expansion 1.0) ; how much to lengthen or compress the file
- (length .15) ; length of file slices that are overlapped
- (scaler .6) ; amplitude scaler on slices (to avoid overflows)
- (hop .05) ; speed at which slices are repeated in output
- (ramp .4) ; amount of slice-time spent ramping up/down
- (jitter 1.0) ; affects spacing of successive grains
- max-size ; internal buffer size
- edit ; grain editing function (Scheme/Ruby, not CL)
- <a class=def name="granulate">granulate</a> e &amp;optional input-function edit-function
- <a class=def name="granulate?">granulate?</a> e
-</pre>
-
-<table align=left border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>granulate methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>time (seconds) between output grains (<i>hop</i>)</td></tr>
-<tr><td><em class=gen>mus-ramp</em></td><td>length (samples) of grain envelope ramp segment</td></tr>
-<tr><td><em class=gen>mus-hop</em></td><td>time (samples) between output grains (<i>hop</i>)</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>grain amp (<i>scaler</i>)</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td><i>expansion</i></td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>grain length (samples)</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>grain samples (a vct)</td></tr>
-<tr><td><em class=gen>mus-location</em></td><td>granulate's local random number seed</td></tr>
-</table>
-<br>
-<pre>
-result = overlap add many tiny slices from input
-</pre>
-<br clear=left>
-
-<p><b>granulate</b> "granulates" its input (normally a sound file). It is the poor man's way
-to change the speed at which things happen in a recorded sound without
-changing the pitches. It works by slicing the input file into short
-pieces, then overlapping these slices to lengthen (or shorten) the
-result; this process is sometimes known as granular synthesis, and is
-similar to the freeze function.
-</p>
-
-<p>The duration of each slice is
-<i>length</i> &mdash; the longer the slice, the more like reverb the effect. The
-portion of the length (on a scale from 0 to 1.0) spent on each
-ramp (up or down) is <i>ramp</i>. This can control the smoothness of
-the result of the overlaps.
-</p>
-<p>
-<i>jitter</i> sets
-the accuracy with which we hop. If you set it to 0, you can get very strong
-comb filter effects, or tremolo.
-The more-or-less average time between
-successive segments is <i>hop</i>.
-If <i>jitter</i> is 0.0, and <i>hop</i> is very small (say .01),
-you're asking for trouble (a big comb filter).
-If you're granulating more than one channel at a time, and want the channels to remain
-in-sync, make each granulator use the same initial random number seed (via <b>mus-location</b>).
-</p>
-
-<p>The overall amplitude scaler on each segment is
-<i>scaler</i> &mdash; this is used to try to avoid overflows as we add
-all these zillions of segments together. <i>expansion</i>
-determines the input hop in relation to the output hop; an
-expansion-amount of 2.0 should more or less double the length of the
-original, whereas an expansion-amount of 1.0 should return something
-close to the original speed.
-<i>input</i> and <i>input-function</i> are the same as in src and convolve.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> granulate-sound (file beg &amp;optional dur (orig-beg 0.0) (exp-amt 1.0))
- (let* ((f-srate (<a class=quiet href="#sound-srate">sound-srate</a> file))
- (f-start (round (* f-srate orig-beg)))
- (f (<a class=quiet href="#open-input">open-input</a> file :start f-start))
- (st (floor (* beg *srate*)))
- (new-dur (or dur (- (<a class=quiet href="#sound-duration">sound-duration</a> file) orig-beg)))
- (exA (<em class=red>make-granulate</em> :input f :expansion exp-amt))
- (nd (+ st (floor (* *srate* new-dur)))))
- (run
- (loop for i from st below nd do
- (<a class=quiet href="#outa">outa</a> i (<em class=red>granulate</em> exA))))
- (<a class=quiet href="#close-input">close-input</a> f)))
-</pre>
-</td></tr></table>
-
-<p>See expsrc.ins. Here's an instrument that uses the <i>input-function</i>
-argument to granulate. It cause the granulation to run backwards through the file:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> grev (beg dur exp-amt file file-beg)
- (let* ((exA (<em class=red>make-granulate</em> :expansion exp-amt))
- (fil (<a class=quiet href="#open-input*">open-input*</a> file file-beg))
- (ctr file-beg))
- (run
- (loop for i from beg to (+ beg dur) do
- (<a class=quiet href="#outa">outa</a> i (<em class=red>granulate</em> exA
- #'(lambda (dir)
- (let ((inval (<a class=quiet href="#ina">ina</a> ctr fil)))
- (if (&gt; ctr 0) (setf ctr (1- ctr)))
- inval))))))
- (<a class=quiet href="#close-input">close-input</a> fil)))
-
-(<a class=quiet href="#with-sound">with-sound</a> () (grev 0 100000 2.0 "pistol.snd" 40000))
-</pre>
-</td></tr></table>
-
-<p>
-The <i>edit</i> argument can
-be a function of one argument, the current granulate generator. It is called just before
-a grain is added into the output buffer. The current grain is accessible via mus-data.
-The edit function, if any, should return the length in samples of the grain, or 0.
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- PHASE-VOCODER ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>PHASE-VOCODER</h4></td></tr></table>
-<pre>
- <a class=def name="make-phase-vocoder">make-phase-vocoder</a> <a class=quiet href="#optional-key">&amp;optional-key</a> input (fft-size 512) (overlap 4) interp (pitch 1.0) analyze edit synthesize
- <a class=def name="phase-vocoder">phase-vocoder</a> pv input-function analyze-function edit-function synthesize-function
- <a class=def name="phase-vocoder?">phase-vocoder?</a> pv
-</pre>
-
-<table border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>phase-vocoder methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>pitch shift</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>fft-size</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>interp</td></tr>
-<tr><td><em class=gen>mus-hop</em></td><td>fft-size / overlap</td></tr>
-<tr><td><em class=gen>mus-location</em></td><td>outctr (counter to next fft)</td></tr>
-</table>
-
-<p>phase-vocoder provides a generator to perform phase-vocoder analysis and resynthesis. The process is
-split into three pieces, the analysis stage, editing of the amplitudes and phases, then the resynthesis.
-Each stage has a default that is invoked if the <i>analyze</i>, <i>edit</i>, or <i>synthesize</i>
-arguments are omitted from make-phase-vocoder or the phase-vocoder generator. The edit and synthesize arguments are functions of one argument, the
-phase-vocoder generator. The analyze argument is a function of two arguments, the generator and
-the input function. The default is to read the current input,
-take an fft, get the new amplitudes and phases (as the edit
-function default), then resynthesize using sines; so, the
-default case simply returns a resynthesis of the original input. <i>interp</i> sets the time between
-ffts (for time stretching etc).
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument simple-pvoc (beg dur amp size file)
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (sr (<em class=red>make-phase-vocoder</em> file :fft-size size)))
- (run
- (loop for i from start to end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>phase-vocoder</em> sr)))))))
-</pre>
-</td></tr></table>
-
-<p>See ug3.ins for instruments that use the various function arguments. In Snd, clm23.scm
-has a variety of instruments calling the phase-vocoder generator, including pvoc-e that
-specifies all of the functions with their default values (that is, it explicitly passes
-in functions that do what the phase-vocoder would have done without any function arguments).
-</p>
-
-<br>
-
-
-
-<!-- ---------------------------------------- NRXYCOS, NRXYSIN ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>NRXYCOS, NRXYSIN</h4></td></tr></table>
-<pre>
- <a class=def name="make-nrxysin">make-nrxysin</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r .5)
- <a class=def name="nrxysin">nrxysin</a> s &amp;optional (fm 0.0)
- <a class=def name="nrxysin?">nrxysin?</a> s
-
- <a class=def name="make-nrxycos">make-nrxycos</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r .5)
- <a class=def name="nrxycos">nrxycos</a> s &amp;optional (fm 0.0)
- <a class=def name="nrxycos?">nrxycos?</a> s
-</pre>
-
-<table align=left border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>nrxysin methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>"a" parameter; sideband scaler</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>"n" parameter</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-<tr><td><em class=gen>mus-offset</em></td><td>"ratio" parameter</td></tr>
-</table>
-<br>
-<pre>
-(/ (- (sin phase) (* a (sin (- phase (* ratio phase))))
- (* (expt a (1+ n)) (- (sin (+ phase (* (+ N 1) (* ratio phase))))
- (* a (sin (+ phase (* N (* ratio phase))))))))
- (- (+ 1 (* a a)) (* 2 a (cos (* ratio phase)))))
-</pre>
-<br clear=left>
-
-<p>These three generators
-produce a kind of additive synthesis.
-"n" is the number of sidebands (0 gives a sine wave), "r" is the amplitude
-ratio between successive sidebands (don't set it to 1.0), and "ratio" is the ratio between the
-carrier frequency and the spacing between successive sidebands.
-A "ratio" of 2 gives odd-numbered harmonics for a (vaguely) clarinet-like sound.
-The basic idea is very similar to that used in the
-<a href="#ncos">ncos</a> generator, but you have control of the
-fall-off of the spectrum and the spacing of the partials.
-</p>
-
-<p>The peak amplitude of the nrxysin is hard to predict.
-I think nrxysin is close to the -1.0..1.0 ideal, and won't go over 1.0.
-<a href="#nrxycos">nrxycos</a> is normalized correctly.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> ss (beg dur freq amp &amp;optional (n 1) (r 0.5) (ratio 1.0))
- (let* ((st (floor (* *srate* beg)))
- (nd (+ st (floor (* *srate* dur))))
- (sgen (<em class=red>make-nrxycos</em> freq ratio n r)))
- (run
- (loop for i from st below nd do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>nrxycos</em> sgen)))))))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- ASYMMETRIC-FM ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>ASYMMETRIC-FM</h4></td></tr></table>
-<pre>
- <a class=def name="make-asymmetric-fm">make-asymmetric-fm</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (frequency *clm-default-frequency*) (initial-phase 0.0) (r 1.0) (ratio 1.0)
- <a class=def name="asymmetric-fm">asymmetric-fm</a> af index &amp;optional (fm 0.0)
- <a class=def name="asymmetric-fm?">asymmetric-fm?</a> af
-</pre>
-
-<table align=left border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>asymmetric-fm methods</center></td></tr>
-<tr><td><em class=gen>mus-frequency</em></td><td>frequency in Hz</td></tr>
-<tr><td><em class=gen>mus-phase</em></td><td>phase in radians</td></tr>
-<tr><td><em class=gen>mus-scaler</em></td><td>"r" parameter; sideband scaler</td></tr>
-<tr><td><em class=gen>mus-offset</em></td><td>"ratio" parameter</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>frequency in radians per sample</td></tr>
-</table>
-<br>
-<pre>
-(* (exp (* index (* 0.5 (- r (/ 1.0 r)))
- (cos (* ratio phase))))
- (sin (+ phase (* index (* 0.5 (+ r (/ 1.0 r)))
- (sin (* ratio phase))))))
-</pre>
-<br clear=left>
-
-<p><b>asymmetric-fm</b> provides a way around the symmetric spectra normally produced by FM.
-See Palamin and Palamin, "A Method of Generating and Controlling Asymmetrical
-Spectra" JAES vol 36, no 9, Sept 88, p671-685.
-The generator's output amplitude is not always easy to predict. <i>r</i> is the ratio between successive
-sideband amplitudes, <i>r</i> &gt; 1.0 pushes energy above the carrier, <i>r</i> &lt; 1.0 pushes it below. (<i>r</i> = 1.0
-gives normal FM). <i>ratio</i>
-is the ratio between the carrier and modulator (i.e. sideband spacing). It's somewhat inconsistent
-that asymmetric-fm takes <i>index</i> (the fm-index) as its second argument, but otherwise it
-would be tricky to get time-varying indices.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> asy (beg dur freq amp index &amp;optional (r 1.0) (ratio 1.0))
- (let* ((st (floor (* beg *srate*)))
- (nd (+ st (floor (* dur *srate*))))
- (asyf (<em class=red>make-asymmetric-fm</em> :r r :ratio ratio :frequency freq)))
- (run
- (loop for i from st below nd do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>asymmetric-fm</em> asyf index 0.0)))))))
-</pre>
-</td></tr></table>
-
-<p>For the other kind of asymmetric-fm, and for asymmetric spectra via "single sideband FM", see dsp.scm in Snd.
-</p>
-<br>
-
-
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>Other Generators</h4></td></tr></table>
-<p>There are a number of other generators in the CLM distribution that aren't
-loaded by default. Among these are:</p>
-<pre>
- <a href="balance.html#rms">rms</a> ; trace the rms of signal
- <a href="balance.html#gain">gain</a> ; modify signal to match rms power
- <a href="balance.html#balance">balance</a> ; combination of rms and gain
-</pre>
-<p>
-green.cl defines several special purpose noise generators.
-butterworth.cl has several Butterworth filters.
-(See analog-filter.scm in the Snd package for functions to design all the usual analog filters;
-the output is compatible with CLM's filter generator).
-</p>
-<br>
-
-
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4><A class=def NAME="generic-functions">Generic Functions</a></h4></td></tr></table>
-
-<p>The generators have internal state that is sometimes of interest at run-time. To get or
-set this state, use these functions (they are described in conjunction with the associated generators):</p>
-
-<table cellspacing=0 cellpadding=0 hspace=40>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-channel">mus-channel</a></td><td width=30 bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">channel being read/written</td></tr>
-<tr><td><a class=def name="mus-channels">mus-channels</a></td><td></td><td>channels open</td></tr>
-<tr><td><a class=def name="mus-data">mus-data</a></td><td></td><td>array of data</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-describe">mus-describe</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">description of current state</td></tr>
-<tr><td><a class=def name="mus-feedback">mus-feedback</a></td><td></td><td>feedback coefficient</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-feedforward">mus-feedforward</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">feedforward coefficient</td></tr>
-<tr><td><a class=def name="mus-file-name">mus-file-name</a></td><td></td><td>file being read/written</td></tr>
-<tr><td><a class=def name="mus-frequency">mus-frequency</a></td><td></td><td>frequency (Hz)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-hop">mus-hop</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">hop size for block processing</td></tr>
-<tr><td><a class=def name="mus-increment">mus-increment</a></td><td></td><td>various increments</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-interp-type">mus-interp-type</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">interpolation type (mus-interp-linear, etc)</td></tr>
-<tr><td><a class=def name="mus-length">mus-length</a></td><td></td><td>data array length</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-location">mus-location</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">sample location for reads/writes</td></tr>
-<tr><td><a class=def name="mus-name">mus-name</a></td><td></td><td>generator name ("oscil")</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-offset">mus-offset</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">envelope offset</td></tr>
-<tr><td><a class=def name="mus-order">mus-order</a></td><td></td><td>filter order</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-phase">mus-phase</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">phase (radians)</td></tr>
-<tr><td><a class=def name="mus-ramp">mus-ramp</a></td><td></td><td>granulate grain envelope ramp setting</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-reset">mus-reset</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">set gen to default starting state</td></tr>
-<tr><td><a class=def name="mus-run">mus-run</a></td><td></td><td>run any generator</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-scaler">mus-scaler</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">scaler, normally on an amplitude</td></tr>
-<tr><td><a class=def name="mus-width">mus-width</a></td><td></td><td>width of interpolation tables, etc</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-xcoeff">mus-xcoeff</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">x (input) coefficient</td></tr>
-<tr><td><a class=def name="mus-xcoeffs">mus-xcoeffs</a></td><td></td><td>array of x (input) coefficients</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def name="mus-ycoeff">mus-ycoeff</a></td><td bgcolor="#f6f8ff"></td><td bgcolor="#f6f8ff">y (output, feedback) coefficient</td></tr>
-<tr><td><a class=def name="mus-ycoeffs">mus-ycoeffs</a></td><td></td><td>array of y (feedback) coefficients</td></tr>
-
-</table>
-
-<p>Many of these are settable:
-<code>(setf (mus-frequency osc1) 440.0)</code>
-sets osc1's current frequency to (<a class=quiet href="#hztoradians">hz-&gt;radians</a> 440.0).
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument backandforth (onset duration file src-ratio)
- ;; read file forwards and backwards until dur is used up
- ;; a slightly improved version is 'scratch' in ug1.ins
- (let* ((last-sample (<a class=quiet href="#sound-frames">sound-frames</a> file))
- (beg (floor (* *srate* onset)))
- (end (+ beg (floor (* *srate* duration))))
- (input (<a class=quiet href="#make-readin">make-readin</a> file))
- (s (<a class=quiet href="#make-src">make-src</a> :srate src-ratio))
- (cs 0))
- (run
- (loop for i from beg below end do
- (declare (type :integer cs last-sample)
- (type :float src-ratio))
- (if (&gt;= cs last-sample) (setf (<em class=red>mus-increment</em> s) (- src-ratio)))
- (if (&lt;= cs 0) (setf (<em class=red>mus-increment</em> s) src-ratio))
- (<a class=quiet href="#outa">outa</a> i (<a class=quiet href="#src">src</a> s 0.0 #'(lambda (dir)
- (incf cs dir)
- (setf (<em class=red>mus-increment</em> input) dir)
- (<a class=quiet href="#readin">readin</a> input))))))))
-
-;;; (with-sound () (backandforth 0 10 "pistol.snd" 2.0))
-</pre>
-</td></tr></table>
-
-<br>
-
-
-
-<!-- ---------------------------------------- FRAME, MIXER ---------------------------------------- -->
-<br>
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A class=def NAME="framesandmixers">Frames, Mixers, Sound IO</a></h3></td></tr></table>
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>Frames and Mixers</h4></td></tr></table>
-
-<p>There are two special data types in CLM: frames and mixers.
-A frame is an array that represents
-a multichannel sample. For example, in a stereo file, at time 0.0, there
-are two samples, one for each channel, and the frame that represents it has 2 samples.
-A mixer is a array of arrays
-that represents a set of input to output scalers, as if it were the
-current state of a mixing console's volume controls. A frame (a multichannel
-input) can be mixed into a new frame (a multichannel output) by passing
-it through a mixer (a matrix, the operation being a (left) matrix multiply).
-These are combined with the notion of a sample (one datum of sampled music), and
-input/output ports (files, audio ports, etc) to handle all the underlying
-data IO.
-</p>
-
-<table cellspacing=0 cellpadding=0 hspace=40>
-<tr><td><em class=emdef>make-empty-frame</em><code> chans</code></td><td width=10></td><td>create frame of 0's</td></tr>
-<tr><td><a class=def name="make-frame">make-frame</a><code> chans &amp;rest args</code></td><td></td><td>create frame and load it with args</td></tr>
-<tr><td><a class=def name="frame?">frame?</a><code> obj</code></td><td></td><td>is obj a frame</td></tr>
-<tr><td><a class=def name="frame+">frame+</a><code> f1 f2 &amp;optional outf</code></td><td></td><td>add f1 and f2 element-wise, return new frame (or outf)</td></tr>
-<tr><td><a class=def name="frame*">frame*</a><code> f1 f2 &amp;optional outf</code></td><td></td><td>multiply f1 and f2 element-size, return new frame (or outf)</td></tr>
-<tr><td><a class=def name="frame-ref">frame-ref</a><code> f1 chan</code></td><td></td><td>return f1[chan]</td></tr>
-<tr><td><a class=def name="frame-set!">frame-set!</a><code> f1 chan val</code></td><td></td><td>f1[chan] = val (also setf with frame-ref)</td></tr>
-<tr><td><br></td><td></td><td></td></tr>
-<tr><td><em class=emdef>make-empty-mixer</em><code> chans</code></td><td></td><td>create a mixer of 0's</td></tr>
-<tr><td><a class=def name="make-identity-mixer">make-identity-mixer</a><code> chans</code></td><td></td><td>create a mixer of 1's on the diagonal</td></tr>
-<tr><td><a class=def name="make-scalar-mixer">make-scalar-mixer</a><code> chans scl</code></td><td></td><td>create a mixer with scl on the diagonal</td></tr>
-<tr><td><a class=def name="make-mixer">make-mixer</a><code> chans &amp;rest args</code></td><td></td><td>create a mixer and load it with args</td></tr>
-<tr><td><a class=def name="mixer?">mixer?</a><code> obj</code></td><td></td><td>is obj a mixer</td></tr>
-<tr><td><a class=def name="mixermultiply">mixer*</a><code> m1 m2 &amp;optional outm</code></td><td></td><td>matrix multiply of m1 and m2, return new mixer (or outm)</td></tr>
-<tr><td><a class=def name="mixeradd">mixer+</a><code> m1 m2 &amp;optional outm</code></td><td></td><td>matrix add of m1 and m2, return new mixer (or outm)</td></tr>
-<tr><td><a class=def name="mixer-ref">mixer-ref</a><code> m1 in out</code></td><td></td><td>m1[in,out] (use setf to change)</td></tr>
-<tr><td><a class=def name="mixer-set!">mixer-set!</a><code> m1 in out val</code></td><td></td><td>m1[in,out] = val (also setf with mixer-ref)</td></tr>
-<tr><td></td><td><br></td><td></td></tr>
-<tr><td><a class=def name="frametoframe">frame-&gt;frame</a><code> mf mf &amp;optional outf</code></td><td></td><td>pass frame through mixer, return new frame (or outf)</td></tr>
-<tr><td><a class=def name="frametolist">frame-&gt;list</a><code> frame</code></td><td></td><td>return list of frame's contents</td></tr>
-<tr><td><a class=def name="sampletoframe">sample-&gt;frame</a><code> mf sample &amp;optional outf</code></td><td></td><td>pass sample through mf (a frame or mixer), return new frame (or outf)</td></tr>
-<tr><td><a class=def name="frametosample">frame-&gt;sample</a><code> mf frame</code></td><td></td><td>pass frame through mf (a frame or mixer), return sample</td></tr>
-</table>
-
-<table border=1 cellpadding=4 hspace=20 vspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>frame and mixer methods</center></td></tr>
-<tr><td><em class=gen>mus-channels</em></td><td>number of channels accommodated</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>same as mus-channels</td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>the matrix data (float array)</td></tr>
-</table>
-
-<p>
-The arguments to frame*, frame+, mixer*, and mixer+ can be floats as well as mixers and
-frames. In that case, the mixer or frame is either scaled by the float, or the float is
-added to each element.
-</p>
-
-<p>fullmix.ins uses these functions to provide a mixer able to handle any number
-of channels of data in and out with optional scalers and envelopes on any in-&gt;out path.
-The heart of the instrument is:</p>
-<pre>
- (<em class=red>frame-&gt;file</em> *output* i
- (<em class=red>frame-&gt;frame</em>
- (<em class=red>file-&gt;frame</em> file inloc inframe)
- mx outframe))
-</pre>
-<p>Here the input file is read by <b>file-&gt;frame</b> producing a frame of data. That
-is then passed through the mixer <b>frame-&gt;frame</b>, and the resultant frame is written to
-the with-sound output file <b>*output*</b> by <b>frame-&gt;file</b>. Within <b>run</b>, the
-output frames of the various frame producing functions must be provided (I'm trying to avoid
-run-time memory management).
-In matrix terminology, a mixer is a square matrix, a frame is a column (or row) vector, mixer* is a
-matrix multiply, and so on.
-The form <code>(frame-&gt;frame frame mixer frame)</code> multiplies a row vector (the first frame)
-by a matrix (the mixer), whereas <code>(frame-&gt;frame mixer frame frame)</code> multiplies
-a matrix by a column vector.
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- IN-ANY/OUT-ANY ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4><a class=def NAME="soundio">Sound IO</a></h4></td></tr></table>
-
-<p>Sound file IO is supported by a variety of functions. To read and write sound files into an
-array, use <b>array-&gt;file</b> and <b>file-&gt;array</b>.
-Within the run-loop, <b>out-any</b>, <b>in-any</b>, and <b>readin</b>
-are the simplest input and output generators; <b>locsig</b> provides a sort of sound placement; <b>dlocsig</b> provides
-moving sound placement. When you use with-sound, the variable <b>*output*</b> is bound to a <b>sample-&gt;file</b>
-object, so output by default goes to with-sound's output file. You can open (for reading or
-writing) any sound files via <b>make-file-&gt;sample</b> (or -&gt;frame), and <b>make-sample-&gt;file</b>
-(or frame-&gt;). These return an IO object which you subsequently pass to <b>file-&gt;sample</b>
-(for input) and <b>sample-&gt;file</b> (for output). To close the connection to the file system,
-you can use <b>mus-close</b>, but it's also called automatically during garbage collection, if needed.
-</p>
-
-<table cellspacing=0 cellpadding=0 hspace=40>
-<tr><td><a class=def name="mus-input?">mus-input?</a><code> obj</code></td><td width=20></td><td>t if obj performs sound input</td></tr>
-<tr><td><a class=def name="mus-output?">mus-output?</a><code> obj</code></td><td></td><td>t if obj performs sound output</td></tr>
-<tr><td><a class=def name="filetosample?">file-&gt;sample?</a><code> obj</code></td><td></td><td>t if obj reads a sound file returning a sample</td></tr>
-<tr><td><a class=def name="sampletofile?">sample-&gt;file?</a><code> obj</code></td><td></td><td>t if obj writes a sample to a sound file</td></tr>
-<tr><td><a class=def name="frametofile?">frame-&gt;file?</a><code> obj</code></td><td></td><td>t if obj writes a frame to a sound file</td></tr>
-<tr><td><a class=def name="filetoframe?">file-&gt;frame?</a><code> obj</code></td><td></td><td>t if obj reads a sound file returning a frame</td></tr>
-<tr><td><br></td><td></td><td></td></tr>
-<tr><td><a class=def name="make-filetosample">make-file-&gt;sample</a><code> name buffer-size</code></td><td></td><td>return gen that reads samples from sound file name</td></tr>
-<tr><td><a class=def name="make-sampletofile">make-sample-&gt;file</a><code> name &amp;optional chans format type comment</code></td><td></td><td>return gen that writes samples to sound file name</td></tr>
-<tr><td><a class=def name="make-filetoframe">make-file-&gt;frame</a><code> name buffer-size</code></td><td></td><td>return gen that reads frames from sound file name</td></tr>
-<tr><td><a class=def name="make-frametofile">make-frame-&gt;file</a><code> name &amp;optional chans format type comment</code></td><td></td><td>return gen that writes frames to sound file name</td></tr>
-<tr><td><a class=def name="filetosample">file-&gt;sample</a><code> obj samp &amp;optional chan</code></td><td></td><td>return sample at samp in channel chan</td></tr>
-<tr><td><a class=def name="sampletofile">sample-&gt;file</a><code> obj samp chan val</code></td><td></td><td>write (add) sample val at samp in channel chan</td></tr>
-<tr><td><a class=def name="filetoframe">file-&gt;frame</a><code> obj samp &amp;optional outf</code></td><td></td><td>return frame at samp</td></tr>
-<tr><td><a class=def name="frametofile">frame-&gt;file</a><code> obj samp val</code></td><td></td><td>write (add) frame val at samp</td></tr>
-<tr><td><br></td><td></td><td></td></tr>
-<tr><td><a class=def name="filetoarray">file-&gt;array</a><code> file channel beg dur array</code></td><td></td><td>read samples from file into array</td></tr>
-<tr><td><a class=def name="arraytofile">array-&gt;file</a><code> file data len srate channels </code></td><td></td><td>write samples in array to file</td></tr>
-<tr><td><br></td><td></td><td></td></tr>
-<tr><td><a class=def name="continue-frametofile">continue-frame-&gt;file</a><code> file</code></td><td></td><td>reopen file for more output</td></tr>
-<tr><td><a class=def name="continue-sampletofile">continue-sample-&gt;file</a><code> file</code></td><td></td><td>reopen file for more output</td></tr>
-<tr><td><a class=def name="mus-close">mus-close</a><code> obj</code></td><td></td><td>close the output file associated with obj</td></tr>
-</table>
-<br>
-
-
-<!-- INDEX ina-outa:Input and output --><A class=def NAME="ina-outa"></a>
-<A class=def NAME="outa"></a>
-<A class=def NAME="ina"></a>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>OUT-ANY (sound file output)</h4></td></tr></table>
-<pre>
- <a class=def name="out-any">out-any</a> loc data &amp;optional (channel 0) (o-stream *output*)
-</pre>
-
-<p><b>out-any</b> adds <i>data</i> into <i>o-stream</i> at sample
-position <i>loc</i>. <i>O-stream</i> defaults to the current output
-file (it is a frame-&gt;file instance, not a file name). The reverb stream, if any,
-is named *reverb*; the direct output is *output*.
-You can output anywhere at any time, but because of the way data is buffered internally, your
-instrument will run much faster if it does sequential output.
-<a href="#locsig">Locsig</a> is another output function.</p>
-
-<p>Many of the CLM examples and instruments use <b>outa</b> and <b>outb</b>.
-These are macros equivalent to <code>(out-any loc data 0 *output*)</code> etc.
-</p>
-<br>
-
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>INA, INB, IN-ANY (sound file input)</h4></td></tr></table>
-<pre>
- <a class=def name="in-any">in-any</a> <i>loc channel i-stream</i>
-</pre>
-
-<p><b>in-any</b> returns the sample at position <i>loc</i> in
-<i>i-stream</i> as a float.
-Many of the CLM examples and instruments use <b>ina</b> and <b>inb</b>; one example is
-the digital zipper instrument <a href="zipper.ins">zipper.ins</a>.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(definstrument simple-ina (beg dur amp file)
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (fil (<em class=red>open-input</em> file))) ; actually make-file-&gt;sample
- (run
- (loop for i from start to end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>in-any</em> i 0 fil))))) ; actually file-&gt;sample
- (close-input fil)))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- READIN ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>READIN (sound file input)</h4></td></tr></table>
-<pre>
- <a class=def name="make-readin">make-readin</a> <a class=quiet href="#optional-key">&amp;optional-key</a> file (channel 0) start (direction 1)
- <a class=def name="readin">readin</a> rd
- <a class=def name="readin?">readin?</a> rd
-</pre>
-
-<table border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>readin methods</center></td></tr>
-<tr><td><em class=gen>mus-channel</em></td><td><i>channel</i> arg to make-readin (no setf)</td></tr>
-<tr><td><em class=gen>mus-location</em></td><td>current location in file</td></tr>
-<tr><td><em class=gen>mus-increment</em></td><td>sample increment (<i>direction</i> arg to make-readin)</td></tr>
-<tr><td><em class=gen>mus-file-name</em></td><td>name of file associated with gen</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>number of frames in file associated with gen</td></tr>
-</table>
-
-<p><b>readin</b> returns successive samples from <i>file</i>.
-<i>file</i> should be either an IO instance, as returned by <a href="#open-input">open-input</a>,
-or a filename.
-<i>start</i> is the frame at which to start reading <i>file</i>.
-<i>channel</i> is which channel to read (0-based).
-<i>size</i> is the read buffer size in samples. It defaults to <b>*clm-file-buffer-size*</b>.
-Here is an instrument that applies an envelope to a sound file using
-readin and <a href="#env">env</a> (see also the fullmix instrument in fullmix.ins):
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> env-sound (file beg &amp;optional (amp 1.0) (amp-env '(0 1 100 1)))
- (let* ((st (floor (* beg *srate*)))
- (dur (<a class=quiet href="#sound-duration">sound-duration</a> file))
- (rev-amount .01)
- (rdA (<em class=red>make-readin</em> file))
- (ampf (<a class=quiet href="#make-env">make-env</a> amp-env amp dur))
- (nd (+ st (floor (* *srate* dur)))))
- (run
- (loop for i from st below nd do
- (let ((outval (* (<a class=quiet href="#env">env</a> ampf) (<em class=red>readin</em> rdA))))
- (<a class=quiet href="#outa">outa</a> i outval)
- (if *reverb* (<a class=quiet href="#outa">outa</a> i (* outval rev-amount) *reverb*)))))))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- LOCSIG ---------------------------------------- -->
-
-<!-- INDEX make-locsig:Sound placement -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>LOCSIG (sound placement)</h4></td></tr></table>
-<pre>
- <a class=def name="make-locsig">make-locsig</a> <a class=quiet href="#optional-key">&amp;optional-key</a> (degree 0.0) (distance 1.0) (reverb 0.0) channels (type *clm-locsig-type*)
- <a class=def name="locsig">locsig</a> loc i in-sig
- <a class=def name="locsig?">locsig?</a> loc
- <a class=def name="locsig-ref">locsig-ref</a> loc chan
- <a class=def name="locsig-set!">locsig-set!</a> loc chan val
- <a class=def name="locsig-reverb-ref">locsig-reverb-ref</a> loc chan
- <a class=def name="locsig-reverb-set!">locsig-reverb-set!</a> loc chan val
- <a class=def name="move-locsig">move-locsig</a> loc degree distance
- <a class=def name="locsig-type">locsig-type</a> ()
-</pre>
-
-<table border=1 cellpadding=4 hspace=20>
-<tr><td colspan=2 bgcolor="beige"><center>locsig methods</center></td></tr>
-<tr><td><em class=gen>mus-data</em></td><td>output scalers (a vct)</td></tr>
-<tr><td><em class=gen>mus-xcoeff</em></td><td>reverb scaler</td></tr>
-<tr><td><em class=gen>mus-xcoeffs</em></td><td>reverb scalers (a vct)</td></tr>
-<tr><td><em class=gen>mus-channels</em></td><td>output channels</td></tr>
-<tr><td><em class=gen>mus-length</em></td><td>output channels</td></tr>
-</table>
-
-<p><b>locsig</b> normally takes the place of <a href="#outa">out-any</a> in an
-instrument. It tries to place a signal between channels 0 and 1 (or 4 channels placed in a circle) in
-an extremely dumb manner: it just scales the respective amplitudes
-("that old trick <i>never</i> works"). <i>reverb</i> determines how much of
-the direct signal gets sent to the reverberator. <i>distance</i> tries to
-imitate a distance cue by fooling with the relative amounts of direct and
-reverberated signal (independent of <i>reverb</i>). <i>distance</i> should
-be greater than or equal to 1.0.
-<i>type</i> (returned by the function <b>locsig-type</b>) can be <b>mus-interp-linear</b> (the default) or <b>mus-interp-sinusoidal</b>.
-This parameter can be set globally via <b>*clm-locsig-type*</b>. The mus-interp-sinusoidal
-case uses sin and cos to set the respective channel amplitudes (this is reported to
-help with the "hole-in-the-middle" problem).
-</p>
-
-<p>Locsig is a
-kludge, but then so is any pretence of placement when you're piping the signal
-out a loudspeaker. It is my current belief that locsig does the right
-thing for all the wrong reasons; a good concert hall provides auditory
-spaciousness by interfering with the ear's attempt to localize a sound.
-A diffuse sound source is the ideal! By sending an arbitrary mix of
-signal and reverberation to various speakers, locsig gives you a very
-diffuse source; it does the opposite of what it claims to do, and by
-some perversity of Mother Nature, that is what you want. (See "Binaural
-Phenomena" by J Blauert).
-</p>
-
-<p>Locsig can send output to any number of channels.
-If channels &gt; 2, the speakers are assumed to be evenly spaced in
-a circle.
-You can use <b>locsig-set!</b> and <b>locsig-ref</b> to override the placement decisions.
-To have full output to both channels,</p>
-<pre>
-(setf (locsig-ref loc 0) 1.0) ; or (<a class=quiet href="#locsig-set!">locsig-set!</a> loc 0 1.0)
-(setf (locsig-ref loc 1) 1.0)
-</pre>
-<p>These locations can be set via envelopes and so on within the run
-loop to pan between speakers (but see move-locsig below):</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> space (file onset duration &amp;key (distance-env '(0 1 100 10)) (amplitude-env '(0 1 100 1))
- (degree-env '(0 45 50 0 100 90)) (reverb-amount .05))
- (let* ((beg (floor (* onset *srate*)))
- (end (+ beg (floor (* *srate* duration))))
- (loc (<em class=red>make-locsig</em> :degree 0 :distance 1 :reverb reverb-amount))
- (rdA (<a class=quiet href="#make-readin">make-readin</a> :file file))
- (dist-env (<a class=quiet href="#make-env">make-env</a> distance-env :duration duration))
- (amp-env (<a class=quiet href="#make-env">make-env</a> amplitude-env :duration duration))
- (deg-env (<a class=quiet href="#make-env">make-env</a> (scale-envelope degree-env (/ 1.0 90.0)) :duration duration))
- (dist-scaler 0.0))
- (run
- (loop for i from beg below end do
- (let ((rdval (* (<a class=quiet href="#readin">readin</a> rdA) (<a class=quiet href="#env">env</a> amp-env)))
- (degval (<a class=quiet href="#env">env</a> deg-env))
- (distval (<a class=quiet href="#env">env</a> dist-env)))
- (setf dist-scaler (/ 1.0 distval))
- (setf (<em class=red>locsig-ref</em> loc 0) (* (- 1.0 degval) dist-scaler))
- (if (&gt; (<a class=quiet href="#mus-channels">mus-channels</a> *output*) 1) (setf (<em class=red>locsig-ref</em> loc 1) (* degval dist-scaler)))
- (when *reverb* (setf (<em class=red>locsig-reverb-ref</em> loc 0) (* reverb-amount (sqrt dist-scaler))))
- (<em class=red>locsig</em> loc i rdval))))))
-</pre>
-</td></tr></table>
-
-<p>For a moving sound
-source, see either move-locsig, or Fernando Lopez Lezcano's <a class=def href="http://ccrma.stanford.edu/~nando/clm/dlocsig/index.html">dlocsig</a>.
-Here is an example of move-locsig:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> move-osc (start dur freq amp &amp;key (degree 0) (dist 1.0) (reverb 0))
- (let* ((beg (floor (* start *srate*)))
- (end (+ beg (floor (* dur *srate*))) )
- (car (<a class=quiet href="#make-oscil">make-oscil</a> :frequency freq))
- (loc (<a class=quiet href="#make-locsig">make-locsig</a> :degree degree :distance dist :channels 2))
- (pan-env (<a class=quiet href="#make-env">make-env</a> '(0 0 1 90) :duration dur)))
- (run
- (loop for i from beg to end do
- (let ((ut (* amp (<a class=quiet href="#oscil">oscil</a> car))))
- (<em class=red>move-locsig</em> loc (<a class=quiet href="#env">env</a> pan-env) dist)
- (<a class=quiet href="#locsig">locsig</a> loc i ut))))))
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<!-- ---------------------------------------- MOVE-SOUND ---------------------------------------- -->
-
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>MOVE-SOUND (sound motion)</h4></td></tr></table>
-<pre>
- <a class=def name="make-move-sound">make-move-sound</a> dlocs-list (output *output*) (revout *reverb*)
- <a class=def name="move-sound">move-sound</a> dloc i in-sig
- <a class=def name="move-sound?">move-sound?</a> dloc
-</pre>
-
-<p><b>move-sound</b> is intended as the run-time portion of dlocsig. make-dlocsig (described in
-<a href="dlocsig.html">dlocsig.html</a>) creates a move-sound structure, passing it to the move-sound generator inside the
-dlocsig macro. All the necessary data is packaged up in a list:
-</p>
-<pre>
-(list
- (start 0) ; absolute sample number at which samples first reach the listener
- (end 0) ; absolute sample number of end of input samples
- (out-channels 0) ; number of output channels in soundfile
- (rev-channels 0) ; number of reverb channels in soundfile
- path ; interpolated delay line for doppler
- delay ; tap doppler env
- rev ; reverberation amount
- out-delays ; delay lines for output channels that have additional delays
- gains ; gain envelopes, one for each output channel
- rev-gains ; reverb gain envelopes, one for each reverb channel
- out-map) ; mapping of speakers to output channels
-</pre>
-
-<p>Here's an instrument that uses this generator to pan a sound through four channels:
-</p>
-
-<pre>
-(definstrument simple-dloc (beg dur freq amp)
- (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a> freq))
- (start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (loc (<em class=red>make-move-sound</em> (list start end 4 0
- (<a class=quiet href="#make-delay">make-delay</a> 12)
- (<a class=quiet href="#make-env">make-env</a> '(0 0 10 1) :duration dur)
- (<a class=quiet href="#make-env">make-env</a> '(0 0 1 0) :duration dur)
- (make-array 4 :initial-element nil)
- (make-array 4 :initial-contents
- (list
- (<a class=quiet href="#make-env">make-env</a> '(0 0 1 1 2 0 3 0 4 0) :duration dur)
- (<a class=quiet href="#make-env">make-env</a> '(0 0 1 0 2 1 3 0 4 0) :duration dur)
- (<a class=quiet href="#make-env">make-env</a> '(0 0 1 0 2 0 3 1 4 0) :duration dur)
- (<a class=quiet href="#make-env">make-env</a> '(0 0 1 0 2 0 3 0 4 1) :duration dur)))
- nil
- (make-integer-array 4 :initial-contents (list 0 1 2 3))))))
- (run
- (loop for i from start to end do
- (<em class=red>move-sound</em> loc i (* amp (<a class=quiet href="#oscil">oscil</a> os)))))))
-</pre>
-<br>
-
-
-
-<br>
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A class=def NAME="functions">Useful functions</a></h3></td></tr></table>
-
-<p>There are several commonly-used functions, some of which can occur in the run macro. These include
-a few that look for all the world like generators.</p>
-
-<table cellspacing=0 cellpadding=0 hspace=40>
-<tr><td><a class=def name="hztoradians">hz-&gt;radians</a><code> freq</code></td><td width=20></td><td>convert freq to radians per sample</td></tr>
-<tr><td><a class=def name="radianstohz">radians-&gt;hz</a><code> rads</code></td><td></td><td>convert rads to Hz</td></tr>
-<tr><td><a class=def name="dbtolinear">db-&gt;linear</a><code> dB</code></td><td></td><td>convert dB to linear value</td></tr>
-<tr><td><a class=def name="lineartodb">linear-&gt;db</a><code> val</code></td><td></td><td>convert val to dB</td></tr>
-<tr><td><a class=def Name="timestosamples">times-&gt;samples</a><code> start duration</code></td><td></td><td>convert start and duration from seconds to samples (beg+dur in latter case)</td></tr>
-<tr><td><a class=def name="samplestoseconds">samples-&gt;seconds</a><code> samps</code></td><td></td><td>convert samples to seconds</td></tr>
-<tr><td><a class=def name="secondstosamples">seconds-&gt;samples</a><code> secs</code></td><td></td><td>convert seconds to samples</td></tr>
-<tr><td><a class=def name="degreestoradians">degrees-&gt;radians</a><code> degs</code></td><td></td><td>convert degrees to radians</td></tr>
-<tr><td><a class=def name="radianstodegrees">radians-&gt;degrees</a><code> rads</code></td><td></td><td>convert radians to degrees</td></tr>
-<tr><td><a class=def name="clear-array">clear-array</a><code> arr</code></td><td></td><td>set all values in arr to 0.0</td></tr>
-<tr><td><a class=def Name="sound-samples">sound-samples</a><code> filename</code></td><td></td><td>samples of sound according to header (can be incorrect)</td></tr>
-<tr><td><a class=def Name="sound-frames">sound-frames</a><code> filename</code></td><td></td><td>samples per channel</td></tr>
-<tr><td><a class=def Name="sound-datum-size">sound-datum-size</a><code> filename</code></td><td></td><td>bytes per sample</td></tr>
-<tr><td><a class=def Name="sound-data-location">sound-data-location</a><code> filename</code></td><td></td><td>location of first sample (bytes)</td></tr>
-<tr><td><a class=def Name="sound-chans">sound-chans</a><code> filename</code></td><td></td><td>number of channels (samples are interleaved)</td></tr>
-<tr><td><a class=def Name="sound-srate">sound-srate</a><code> filename</code></td><td></td><td>sampling rate</td></tr>
-<tr><td><a class=def Name="sound-header-type">sound-header-type</a><code> filename</code></td><td></td><td>header type (aiff etc)</td></tr>
-<tr><td><a class=def Name="sound-data-format">sound-data-format</a><code> filename</code></td><td></td><td>data format (alaw etc)</td></tr>
-<tr><td><a class=def Name="sound-length">sound-length</a><code> filename</code></td><td></td><td>true file length (for error checks)</td></tr>
-<tr><td><a class=def Name="sound-duration">sound-duration</a><code> filename</code></td><td></td><td>file length in seconds</td></tr>
-<tr><td><a class=def Name="sound-maxamp">sound-maxamp</a><code> name vals</code></td><td></td><td>get max amp vals and times of file name</td></tr>
-<tr><td><a class=def Name="sound-loop-info">sound-loop-info</a><code> name vals</code></td><td></td><td>get loop info of file name in vals (make-integer-array 6)</td></tr>
-</table>
-
-<p>
-<b>hz-&gt;radians</b>
-converts its argument to radians/sample (for any situation where a
-frequency is used as an amplitude, glissando or FM). It
-can be used within run. hz-&gt;radians is equivalent to
-</p>
-<pre>
- freq-in-hz * 2 * pi / *srate*.
-</pre>
-
-<blockquote>
-<p>
-<i>Freq-in-hz</i> * 2 * pi gives us the number of radians traversed per
-second; we then divide by the number of samples per second to get the
-radians per sample; in dimensional terms: (radians/sec) /
-(sample/sec) = radians/sample. We need this conversion whenever a
-frequency-related value is actually being accessed on every sample, as
-an increment of a phase variable. (We are also assuming
-our wave table size is 2 * pi). This conversion value was named "mag"
-in Mus10 and "in-hz" in CLM-1. The inverse is radians-&gt;hz.
-</p></blockquote>
-
-<p>These names are different from the underlying sndlib names mostly due
-to confusion and inattention. Nearly all the sndlib constants and functions
-are imported into clm under names that are the same as the C name except
-"_" is replaced by "-". So <b>mus-sound-duration</b> exists,
-and is the same as <b>sound-duration</b> mentioned above. See <a href="sndlib.html">sndlib.html</a>
-for some info.
-<code>(mus-sound-srate (mus-file-name *output*))</code>
-for example, returns the
-current output sampling rate; this is the same as <code>*srate*</code>.
-</p>
-
-
-
-<!-- ---------------------------------------- POLYNOMIAL ---------------------------------------- -->
-<br>
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>POLYNOMIAL</h4></td></tr></table>
-<pre>
- <a class=def name="polynomial">polynomial</a> coeffs x
-</pre>
-
-<p><b>polynomial</b> evaluates a polynomial, defined by giving its coefficients,
-at a particular point (x).
-<i>coeffs</i> is an array of coefficients where
-coeffs[0] is the constant term, and so on. For
-waveshaping, use the function <a href="#partialstopolynomial">partials-&gt;polynomial</a>.
-Abramowitz and Stegun, "A Handbook of Mathematical Functions" is a
-treasure-trove of interesting polynomials.
-See also the <a href="#brighten">brighten</a> instrument.
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- ARRAY-INTERP ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>ARRAY-INTERP, DOT-PRODUCT</h4></td></tr></table>
-<pre>
- <a class=def name="array-interp">array-interp</a> fn x &amp;optional size
- <a class=def name="dot-product">dot-product</a> in1 in2
- <a class=def name="edot-product">edot-product</a> freq data [Scheme/C versions]
- <a class=def name="mus-interpolate">mus-interpolate</a> type x v size y1
-</pre>
-
-<p>These functions underlie some of the generators, and can be
-called within run. See <a href="mus.lisp">mus.lisp</a> for
-details. <b>array-interp</b> can be used for companding and similar functions &mdash;
-load the array (call it "compander" below) with the positive half
-of the companding function, then:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
- (let ((in-val (<a class=quiet href="#readin">readin</a> rd)) ; in-coming signal
- (func-len (length compander))) ; size of array
- (* (signum in-val)
- (<em class=red>array-interp</em> compander (abs (* in-val (1- func-len))) func-len)))
-</pre>
-</td></tr></table>
-
-<p>
-<b>dot-product</b> is the usual "inner product" or "scalar product".
-</p>
-
-<p>
-<b>mus-interpolate</b> is the function used whenever table lookup interpolation is requested, as in
-delay or wave-train. The <i>type</i> is one of the interpolation types (mus-interp-linear, for example).
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- CONTRAST-ENHANCEMENT ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>CONTRAST-ENHANCEMENT</h4></td></tr></table>
-<pre>
- <a class=def name="contrast-enhancement">contrast-enhancement</a> in-samp &amp;optional (fm-index 1.0)
-</pre>
-
-<p><b>contrast-enhancement</b> phase-modulates a sound file. It's like audio MSG.
-The actual algorithm is sin(<i>in-samp</i> * pi/2 +
-(<i>fm-index</i> * sin(<i>in-samp</i> * 2*pi))). The result is to brighten the
-sound, helping it cut through a huge mix.</p>
-
-<p>
-Waveshaping can provide a similar effect:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> <A class=def NAME="brighten">brighten</a> (start duration file file-maxamp partials)
- (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times-&gt;samples</a> start duration)
- (let ((fil (<a class=quiet href="#open-input*">open-input*</a> file)))
- (when fil
- (unwind-protect
- (let ((coeffs (<a class=quiet href="#partialstopolynomial">partials-&gt;polynomial</a> (normalize-partials partials)))
- (rd (<a class=quiet href="#make-readin">make-readin</a> fil)))
- (run (loop for i from beg below end do
- (<a class=quiet href="#outa">outa</a> i (* file-maxamp (<a class=quiet href="#polynomial">polynomial</a> coeffs (/ (<a class=quiet href="#readin">readin</a> rd) file-maxamp)))))))
- (<a class=quiet href="#close-input">close-input</a> fil))))))
-
-(<a class=quiet href="#with-sound">with-sound</a> () (brighten 0 3 "oboe" .15 '(1 1 3 .5 7 .1)))
-</pre>
-</td></tr></table>
-
-<p>In this case, it is important to scale the file input to the waveshaper to go from
--1.0 to 1.0 to get the full effect of the Chebyshev polynomials. Unfortunately,
-if you don't add an overall amplitude envelope to bring the output to 0, you'll
-get clicks if you include even numbered partials. These partials create a non-zero
-constant term in the polynomial, so when the sound decays to 0, the polynomial
-output decays to some (possibly large) non-zero value. In the example above,
-I've used only odd partials for this reason. Another thing to note here is that
-the process is not linear; that is the sinusoids that make up the input are not
-independently expanded into the output spectrum, but instead you get sum and difference
-tones, (not to mention phase cancellations) much as in FM with a complex wave.
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- AMPLITUDE-MODULATE ---------------------------------------- -->
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>RING-MODULATE, AMPLITUDE-MODULATE</h4></td></tr></table>
-<pre>
- <a class=def name="ring-modulate">ring-modulate</a> in1 in2
- <a class=def name="amplitude-modulate">amplitude-modulate</a> am-carrier input1 input2
-</pre>
-<b>ring-modulate</b> returns (* <i>in1</i> <i>in2</i>).
-<b>amplitude-modulate</b> returns (* <i>input1</i> (+ <i>am-carrier</i> <i>input2</i>))
-
-<p>ring-modulation is sometimes called "double-sideband-suppressed-carrier" modulation &mdash;
-that is, amplitude modulation with the carrier subtracted out (set to 0.0 above).
-The nomenclature here is a bit confusing &mdash; I can't remember now why I used
-these names; think of "carrier" as "carrier amplitude" and "input1" as "carrier". Normal amplitude modulation using this function would be:
-</p>
-<pre>
- (defvar carrier (<a class=quiet href="#make-oscil">make-oscil</a> carrier-freq (* .5 pi)))
- ...
- (amplitude-modulate 1.0 (<a class=quiet href="#oscil">oscil</a> carrier) signal)
-</pre>
-
-<p>
-Since neither needs any state information, there are no associated make
-functions.</p>
-
-<p>Both of these take advantage of the "Modulation Theorem"; since
-multiplying a signal by e^(iwt) translates its spectrum by w /
-two-pi Hz, multiplying by a sinusoid splits its spectrum into two equal parts
-translated up and down by w/two-pi Hz. The simplest case is: </p>
-<pre>
- cos f1 * cos f2 = (cos (f1 + f2) + cos (f1 - f2)) / 2.
-</pre>
-<p>We can use these to shift all the components of a signal by the same
-amount up or down ("single-sideband modulation").
-</p>
-<br>
-
-
-
-<!-- ---------------------------------------- FFT ---------------------------------------- -->
-
-<!-- INDEX fft:Fourier transforms -->
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3>FFT (Fourier Transform)</h3></td></tr></table>
-<pre>
- <a class=def Name="fft">fft</a> rdat idat fftsize &amp;optional sign
- <a class=def name="make-fft-window">make-fft-window</a> <a class=quiet href="#optional-key">&amp;optional-key</a> type size (beta 0.0) (alpha 0.0)
- <a class=def name="multiply-arrays">multiply-arrays</a> rdat window
- <a class=def name="rectangulartopolar">rectangular-&gt;polar</a> rdat idat
- <a class=def name="rectangulartomagnitudes">rectangular-&gt;magnitudes</a> rdat idat
- <a class=def name="polartorectangular">polar-&gt;rectangular</a> rdat idat
- <a class=def name="spectrum">spectrum</a> rdat idat window norm-type
- <a class=def name="convolution">convolution</a> rdat idat size
- <a class=def name="autocorrelate">autocorrelate</a> dat1 size
- <a class=def name="correlate">correlate</a> dat1 dat2 size
-</pre>
-
-<p>These provide run-time access to the standard fft routines and their habitual companions.
-<b>make-fft-window</b> can return many of the standard windows including:</p>
-<pre>
- rectangular-window ; no change in data
- bartlett-window ; triangle
- parzen-window ; raised triangle
- welch-window ; parzen squared
- hann-window ; cosine (sometimes known as "hanning-window" &mdash; a sort of in-joke)
- hamming-window ; raised cosine
- blackman2-window ; Blackman-Harris windows of various orders
- blackman3-window
- blackman4-window ; also blackman5..10
- exponential-window
- kaiser-window ; beta argument used here
-</pre>
-
-<p>The
-magnitude of the spectrum is returned by <b>rectangular-&gt;polar</b>. The data can be windowed
-with <b>multiply-arrays</b>. <b>spectrum</b> calls the fft, translates to polar coordinates,
-then returns the results (in the lower half of "rdat") in dB (<i>norm-type</i> = 0), or linear normalized to 1.0 (<i>norm-type</i> = 1),
-or linear unnormalized (<i>norm-type</i> not 0 or 1).
-</p>
-
-<p>The following instrument implements fft overlap-add, but instead
-of scaling the various spectral components to filter a sound, it reverses a portion
-of the spectrum, a distortion that can be effective with speech sounds.</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> inside-out (beg dur file amp lo hi &amp;optional (fftsize 1024))
- ;; fft overlap-add (and buffer), but the fft bins between lo and hi are reversed
- (let ((fil (<a class=quiet href="#open-input*">open-input*</a> file)))
- (when fil
- (unwind-protect
- (let* ((start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (fdr (make-double-float-array fftsize))
- (fdi (make-double-float-array fftsize))
- (wtb (make-double-float-array fftsize))
- (filptr 0)
- (fft2 (floor fftsize 2))
- (fft4 (floor fftsize 4))
- (ctr fft2)
- (fftn (/ 1.0 fftsize))
- (first-time 1)
- (mid (* .5 (+ hi lo))))
- (when (zerop lo) (setf lo 1))
- (run
- (loop for i from start below end do
- (when (= ctr fft2)
- (<em class=red>clear-array</em> fdr)
- (<em class=red>clear-array</em> fdi)
- (dotimes (k fft2)
- (setf (aref fdr (+ k fft4)) (* (<a class=quiet href="#ina">ina</a> filptr fil) fftn))
- (incf filptr))
- (<em class=red>fft</em> fdr fdi fftsize 1)
- (let ((j1 hi) ; now reverse bins between lo and hi
- (k0 (- fftsize lo))
- (k1 (- fftsize hi)))
- (loop for j0 from lo to mid do
- (let ((tmprj (aref fdr j0))
- (tmprk (aref fdr k0))
- (tmpij (aref fdi j0))
- (tmpik (aref fdi k0)))
- (setf (aref fdr j0) (aref fdr j1))
- (setf (aref fdr j1) tmprj)
- (setf (aref fdr k0) (aref fdr k1))
- (setf (aref fdr k1) tmprk)
- (setf (aref fdi j0) (aref fdi j1))
- (setf (aref fdi j1) tmpij)
- (setf (aref fdi k0) (aref fdi k1))
- (setf (aref fdi k1) tmpik)
- (incf k1)
- (decf k0)
- (decf j1))))
- (<em class=red>fft</em> fdr fdi fftsize -1)
- (dotimes (k fft2)
- (setf (aref wtb k) (aref wtb (+ k fft2)))
- (setf (aref wtb (+ k fft2)) 0.0))
- (if (= first-time 1)
- (progn
- (dotimes (k fftsize) (setf (aref wtb k) (aref fdr k)))
- (setf first-time 0)
- (setf ctr fft4))
- (progn
- (dotimes (k fft2) (incf (aref wtb k) (aref fdr k)))
- (dotimes (k fft2) (setf (aref wtb (+ k fft2)) (aref fdr (+ k fft2))))
- (setf ctr 0))))
- (<a class=quiet href="#outa">outa</a> i (* amp (aref wtb ctr)))
- (incf ctr))))
- (<a class=quiet href="#close-input">close-input</a> fil)))))
-
-(<a class=quiet href="#with-sound">with-sound</a> () (inside-out 0 1.0 "fyow" 1.0 3 8))
-
-</pre>
-</td></tr></table>
-
-<p>There are many other examples of run-time FFTs:
-the <a href="#cross-synthesis">cross-synthesis</a> instrument above,
-<a href="san.ins">san.ins</a>,
-and <a href="anoi.ins">anoi.ins</a>.
-</p>
-<br>
-
-
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4><a class=def name="def-clm-struct">def-clm-struct</a></h4></td></tr></table>
-
-<p><b>def-clm-struct</b> is syntactically like def-struct, but sets up
-the struct field names for the run macro. There are several examples in prc-toolkit95.lisp, and other instruments.
-The fields can only be of a numerical type (no generators, for example).
-</p>
-<br>
-
-
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><a class=def name="definstrument">Definstrument</a></h3></td></tr></table>
-
-<!-- INDEX ins-files:Instruments --><A class=def NAME="ins-files"></a>
-<p><b>definstrument</b> defines an instrument in CLM.
-Its syntax is almost the same as defun; it has a few bizarre options (for miserable
-historical reasons), but they should be resolutely ignored.
-There are a bazillion example instruments included in CLM and Snd.
-The following instruments live in *.ins files in the CLM
-directory (see also the file <a href="ins">ins</a>), and in various
-*.scm, *.rb, and *.fs files in the Snd tarball.
-</p>
-
-<table border=8 bordercolor="lightgreen" cellpadding=2>
-<tr><th width=120 bgcolor="beige">instrument</th><th bgcolor="beige">function</th><th bgcolor="beige">CL</th><th bgcolor="beige">Scheme</th><th bgcolor="beige">Ruby</th><th bgcolor="beige">Forth</th></tr>
-<tr><td>complete-add</td>
- <td>additive synthesis</td>
- <td><a href="add.ins">add.ins</a></td>
- </tr>
-
-<tr><td>addflts</td>
- <td>filters</td>
- <td><a href="addflt.ins">addflt.ins</a></td>
- <td><a href="dsp.scm">dsp.scm</a></td>
- <td><a href="dsp.rb">dsp.rb</a></td>
- </tr>
-
-<tr><td>add-sound</td>
- <td>mix in a sound file</td>
- <td><a href="addsnd.ins">addsnd.ins</a></td>
- </tr>
-
-<tr><td>anoi</td>
- <td>noise reduction</td>
- <td><a href="anoi.ins">anoi.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>autoc</td>
- <td>autocorrelation-based pitch estimation (Bret Battey)</td>
- <td><a href="autoc.ins">autoc.ins</a></td>
- </tr>
-
-<tr><td>badd</td>
- <td>fancier additive synthesis (Doug Fulton)</td>
- <td><a href="badd.ins">badd.ins</a></td>
- </tr>
-
-<tr><td>fm-bell</td>
- <td>fm bell sounds (Michael McNabb)</td>
- <td><a href="bell.ins">bell.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>bigbird</td>
- <td>waveshaping (bird.clm and bird.ins)</td>
- <td><a href="bigbird.ins">bigbird.ins</a></td>
- <td><a href="bird.scm">bird.scm</a></td>
- <td><a href="bird.rb">bird.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs, bird.fs</a></td>
- </tr>
-
-<tr><td>canter</td>
- <td>fm (<a href="bag.clm">bag.clm</a> &mdash; bagpipes) (Peter Commons)</td>
- <td><a href="canter.ins">canter.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>cellon</td>
- <td>feedback fm (Stanislaw Krupowicz)</td>
- <td><a href="cellon.ins">cellon.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>cnvrev</td>
- <td>convolution (aimed at reverb)</td>
- <td><a href="cnv.ins">cnv.ins</a></td>
- </tr>
-
-<tr><td>moving sounds</td>
- <td>quad sound movement (Fernando Lopez-Lezcano)</td>
- <td><a href="dlocsig.html">dlocsig.lisp</a></td>
- <td><a href="dlocsig.scm">dlocsig.scm</a></td>
- <td><a href="dlocsig.rb">dlocsig.rb</a></td>
- </tr>
-
-<tr><td>drone</td>
- <td>additive synthesis (bag.clm) (Peter Commons)</td>
- <td><a href="drone.ins">drone.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>expandn</td>
- <td>granular synthesis (Michael Klingbeil)</td>
- <td><a href="expandn.ins">expandn.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td></td>
- <td></td>
- </tr>
-
-<tr><td>granulate-sound</td>
- <td>examples of the granulate generator (granular synthesis)</td>
- <td><a href="expsrc.ins">expsrc.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>cross-fade</td>
- <td>cross-fades and dissolves in the frequency domain</td>
- <td><a href="fade.ins">fade.ins</a></td>
- <td><a href="fade.scm">fade.scm</a></td>
- </tr>
-
-<tr><td>filter-sound</td>
- <td>filter a sound file</td>
- <td><a href="fltsnd.ins">fltsnd.ins</a></td>
- <td><a href="dsp.scm">dsp.scm</a></td>
- </tr>
-
-<tr><td>stereo-flute</td>
- <td>physical model of a flute (Nicky Hind)</td>
- <td><a href="flute.ins">flute.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>fm examples</td>
- <td>fm bell, gong, drum (Paul Weineke, Jan Mattox)</td>
- <td><a href="fmex.ins">fmex.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>Jezar's reverb</td>
- <td>fancy reverb (Jezar Wakefield)</td>
- <td><a href="freeverb.html">freeverb/freeverb.ins</a></td>
- <td><a href="freeverb.scm">freeverb.scm</a></td>
- <td><a href="freeverb.rb">freeverb.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>fofins</td>
- <td>FOF synthesis</td>
- <td><a href="#wave-train">clm.html</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>fullmix</td>
- <td>a mixer</td>
- <td><a href="fullmix.ins">fullmix.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>grani</td>
- <td>granular synthesis (Fernando Lopez-Lezcano)</td>
- <td><a href="grani.ins">grani.ins</a></td>
- <td><a href="grani.scm">grani.scm</a></td>
- </tr>
-
-<tr><td>grapheq</td>
- <td>graphic equalizer (Marco Trevisani)</td>
- <td><a href="grapheq.ins">grapheq.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>fm-insect</td>
- <td>fm</td>
- <td><a href="insect.ins">insect.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- </tr>
-
-<tr><td>jc-reverb</td>
- <td>an old reverberator (jlrev is a cavernous version)</td>
- <td><a href="jcrev.ins">jcrev.ins</a></td>
- <td><a href="jcrev.scm">jcrev.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>fm-voice</td>
- <td>fm voice (John Chowning)</td>
- <td><a href="jcvoi.ins">jcvoi.ins</a></td>
- </tr>
-
-<tr><td>kiprev</td>
- <td>a fancier (temperamental) reverberator (Kip Sheeline)</td>
- <td><a href="kiprev.ins">kiprev.ins</a></td>
- </tr>
-
-<tr><td>lbj-piano</td>
- <td>additive synthesis piano (Doug Fulton)</td>
- <td><a href="lbjPiano.ins">lbjPiano.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>maraca</td>
- <td>Perry Cook's maraca physical models</td>
- <td><a href="maraca.ins">maraca.ins</a></td>
- <td><a href="maraca.scm">maraca.scm</a></td>
- <td><a href="maraca.rb">maraca.rb</a></td>
- </tr>
-
-<tr><td>maxfilter</td>
- <td>Juan Reyes modular synthesis</td>
- <td><a href="maxf.ins">maxf.ins</a></td>
- <td><a href="maxf.scm">maxf.scm</a></td>
- <td><a href="maxf.rb">maxf.rb</a></td>
- </tr>
-
-<tr><td>mlb-voice</td>
- <td>fm (originally waveshaping) voice (Marc LeBrun)</td>
- <td><a href="mlbvoi.ins">mlbvoi.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>moog filters</td>
- <td>Moog filters (Fernando Lopez-Lezcano)</td>
- <td><a href="moog.lisp">moog.lisp</a></td>
- <td><a href="moog.scm">moog.scm</a></td>
- </tr>
-
-<tr><td>fm-noise</td>
- <td>noise maker</td>
- <td><a href="noise.ins">noise.ins</a></td>
- <td><a href="noise.scm">noise.scm</a></td>
- <td><a href="noise.rb">noise.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>nrev</td>
- <td>a popular reverberator (Michael McNabb)</td>
- <td><a href="nrev.ins">nrev.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>one-cut</td>
- <td>a "cut and paste" instrument (Fernando Lopez-Lezcano)</td>
- <td><a href="one-cut.ins">one-cut.ins</a></td>
- </tr>
-
-<tr><td>p</td>
- <td>Scott van Duyne's piano physical model</td>
- <td><a href="piano.ins">piano.ins</a></td>
- <td><a href="piano.scm">piano.scm</a></td>
- <td><a href="piano.rb">piano.rb</a></td>
- </tr>
-
-<tr><td>pluck</td>
- <td>Karplus-Strong synthesis (David Jaffe)</td>
- <td><a href="pluck.ins">pluck.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>pqw</td>
- <td>waveshaping</td>
- <td><a href="pqw.ins">pqw.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>pqw-vox</td>
- <td>waveshaping voice</td>
- <td><a href="pqwvox.ins">pqwvox.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>physical models</td>
- <td>physical modelling (Perry Cook)</td>
- <td><a href="prc-toolkit95.lisp">prc-toolkit95.lisp</a></td>
- <td><a href="prc95.scm">prc95.scm</a></td>
- <td><a href="prc95.rb">prc95.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>various ins</td>
- <td>from Perry Cook's Synthesis Toolkit</td>
- <td><a href="prc96.ins">prc96.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>pvoc</td>
- <td>phase vocoder (Michael Klingbeil)</td>
- <td><a href="pvoc.ins">pvoc.ins</a></td>
- <td><a href="pvoc.scm">pvoc.scm</a></td>
- <td><a href="pvoc.rb">pvoc.rb</a></td>
- </tr>
-
-<tr><td>resflt</td>
- <td>filters (3 resonators) (Xavier Serra, Richard Karpen)</td>
- <td><a href="resflt.ins">resflt.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>reson</td>
- <td>fm formants (John Chowning)</td>
- <td><a href="reson.ins">reson.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>ring-modulate</td>
- <td>ring-modulation of sounds (Craig Sapp)</td>
- <td><a href="ring-modulate.ins">ring-modulate.ins</a></td>
- <td><a href="examp.scm">examp.scm</a></td>
- <td><a href="examp.rb">examp.rb</a></td>
- </tr>
-
-<tr><td>rmsenv</td>
- <td>rms envelope of sound (Bret Battey)</td>
- <td><a href="rmsenv.ins">rmsenv.ins</a></td>
- </tr>
-
-<tr><td>pins</td>
- <td>spectral modelling</td>
- <td><a href="san.ins">san.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>scanned</td>
- <td>Juan Reyes scanned synthesis instrument</td>
- <td><a href="scanned.ins">scanned.ins</a></td>
- <td><a href="dsp.scm">dsp.scm</a></td>
- </tr>
-
-<tr><td>scentroid</td>
- <td>spectral scentroid envelope (Bret Battey)</td>
- <td><a href="scentroid.ins">scentroid.ins</a></td>
- <td><a href="dsp.scm">dsp.scm</a></td>
- </tr>
-
-<tr><td>shepard</td>
- <td>Shepard tones (Juan Reyes)</td>
- <td><a href="shepard.ins">shepard.ins</a></td>
- <td><a href="sndscm.html#wsdoc">sndscm.html</a></td>
- <td></td>
- </tr>
-
-<tr><td>singer</td>
- <td>Perry Cook's vocal tract physical model</td>
- <td><a href="singer.ins">singer.ins</a></td>
- <td><a href="singer.scm">singer.scm</a></td>
- <td><a href="singer.rb">singer.rb</a></td>
- </tr>
-
-<tr><td>sndwarp</td>
- <td>Csound-like sndwarp generator (Bret Battey)</td>
- <td><a href="sndwarp.ins">sndwarp.ins</a></td>
- <td><a href="sndwarp.scm">sndwarp.scm</a></td>
- </tr>
-
-<tr><td>stochastic</td>
- <td>Bill Sack's stochastic synthesis implementation</td>
- <td><a href="stochastic.ins">stochastic.ins</a></td>
- </tr>
-
-<tr><td>bow</td>
- <td>Juan Reyes bowed string physical model</td>
- <td><a href="strad.ins">strad.ins</a></td>
- <td><a href="strad.scm">strad.scm</a></td>
- <td><a href="strad.rb">strad.rb</a></td>
- </tr>
-
-<tr><td>track-rms</td>
- <td>rms envelope of sound file (Michael Edwards)</td>
- <td><a href="track-rms.ins">track-rms.ins</a></td>
- </tr>
-
-<tr><td>fm-trumpet</td>
- <td>fm trumpet (Dexter Morrill)</td>
- <td><a href="trp.ins">trp.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>various ins</td>
- <td>granular synthesis, formants, etc</td>
- <td><a href="ugex.ins">ugex.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- </tr>
-
-<tr><td>test ins</td>
- <td>CLM regression tests &mdash; see clm-test.lisp</td>
- <td><a href="ug.ins">ug(1,2,3,4).ins</a></td>
- <td><a href="clm23.scm">clm23.scm</a></td>
- </tr>
-
-<tr><td>fm-violin</td>
- <td>fm violin (fmviolin.clm, popi.clm)</td>
- <td><a href="v.ins">v.ins</a></td>
- <td><a href="v.scm">v.scm</a></td>
- <td><a href="v.rb">v.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>vowel</td>
- <td>vowels via pulse-train and formant (Michelle Daniels)</td>
- <td><a href="vowel.ins">vowel.ins</a></td>
- </tr>
-
-<tr><td>vox</td>
- <td>fm voice (cream.clm)</td>
- <td><a href="vox.ins">vox.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>zc, zn</td>
- <td>interpolating delays</td>
- <td><a href="zd.ins">zd.ins</a></td>
- <td><a href="clm-ins.scm">clm-ins.scm</a></td>
- <td><a href="clm-ins.rb">clm-ins.rb</a></td>
- <td><a href="clm-ins.fs">clm-ins.fs</a></td>
- </tr>
-
-<tr><td>zipper</td>
- <td>The 'digital zipper' effect.</td>
- <td><a href="zipper.ins">zipper.ins</a></td>
- <td><a href="zip.scm">zip.scm</a></td>
- <td><a href="zip.rb">zip.rb</a></td>
- </tr>
-
-</table>
-
-<p>The file <a href="clm-test.lisp">clm-test.lisp</a> exercises most of these instruments.
-If you develop
-an interesting instrument that you're willing to share, please send it to me
-(bil@ccrma.stanford.edu). </p>
-
-<p>Although all the examples in this document use run followed by a loop,
-you can use other constructs instead:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> no-loop-1 (beg dur)
- (let ((o (<a class=quiet href="#make-oscil">make-oscil</a> 660)))
- (run
- (let ((j beg))
- (loop for i from 0 below dur do
- (<a class=quiet href="#outa">outa</a> (+ i j) (* .1 (<a class=quiet href="#oscil">oscil</a> o))))))))
-
-(<a class=quiet href="#definstrument">definstrument</a> no-loop-2 (beg dur)
- (let ((o (<a class=quiet href="#make-oscil">make-oscil</a> 440)))
- (run
- (dotimes (k dur)
- (<a class=quiet href="#outa">outa</a> (+ k beg) (* .1 (<a class=quiet href="#oscil">oscil</a> o)))))))
-</pre>
-</td></tr></table>
-
-<p>And, of course, <a href="#out-any">out-any</a> and <a href="#locsig">locsig</a> can be called any number of times
-(including zero) per sample and at any output location. Except in
-extreme cases (spraying samples to random locations several seconds
-apart), there is almost no speed penalty associated with such output,
-so don't feel constrained to write an instrument as a sample-at-a-time loop.
-That form was necessary in the old days, so nearly all current instruments
-still use it (they are translations of older instruments), but there's no
-good reason not to write an instrument such as:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> noisey (beg dur)
- (run
- (dotimes (i dur)
- (dotimes (k (random 10))
- (<a class=quiet href="#outa">outa</a> (+ beg (floor (random dur))) (centered-random .01))))))
-</pre>
-</td></tr></table>
-<br>
-<br>
-
-
-
-<!-- ---------------------------------------- WITH-SOUND ---------------------------------------- -->
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2><A class=def NAME="note-lists">Note Lists</a></h2></td></tr></table>
-</td></tr></table>
-
-<!-- INDEX note-lists:Note lists -->
-
-<p>A note list in CLM is any lisp expression that opens an output sound file and calls an instrument. The simplest way to
-do this is with with-sound or clm-load.
-</p>
-<br>
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3>With-sound and clm-load</h3></td></tr></table>
-<pre>
- <a class=def name="with-sound">with-sound</a> &amp;key
- ;; "With-sound: check it out!" &mdash; Duane Kuiper, Giants broadcaster after Strawberry homer
- (output <a href="#*clm-file-name*">*clm-file-name*</a>) ; name of output sound file ("test.snd" normally)
- (channels <a href="#*clm-channels*">*clm-channels*</a>) ; can be any number (defaults to 1, see defaults.lisp)
- (srate <a href="#*clm-srate*">*clm-srate*</a>) ; also 'sampling-rate' for backwards compatibility
- continue-old-file ; open and continue old output file
- reverb ; name of the reverberator, if any. The reverb
- ; is a normal clm instrument (see <a href="nrev.ins">nrev.ins</a>)
- reverb-data ; arguments passed to the reverberator; an unquoted list
- (reverb-channels *clm-reverb-channels*) ; chans in temp reverb stream (input to reverb)
- revfile ; reverb file name
- (play *clm-play*) ; play new sound automatically?
- (notehook *clm-notehook*) ; function evaluated on each instrument call
- (statistics *clm-statistics*) ; print out various fascinating numbers
- (decay-time 1.0) ; ring time of reverb after end of piece
- comment ; comment placed in header (set to :none to squelch comment)
- info ; non-comment header string
- (header-type <a href="#*clm-header-type*">*clm-header-type*</a>) ; output file type (see also <a href="#header-types">header types</a>)
- (data-format <a href="#*clm-data-format*">*clm-data-format*</a>) ; output data format (see <a href="#header-types">header types</a>)
- save-body ; if t, copy the body (as a string) into the header
- scaled-to ; if a number, scale results to have that max amp
- scaled-by ; scale output by some number
- (clipped *clm-clipped*) ; if t, clip output rather than allowing data to wrap-around
- (verbose <em class=emdef>*clm-verbose*</em>) ; some instruments use this to display info during computation
- (force-recomputation nil) ; if t, force with-mix calls to recompute
-</pre>
-
-<p><b>with-sound</b> is a macro that performs all the various services needed to
-produce and play a sound file; it also wraps an unwind-protect around its body to
-make sure that everything is cleaned up properly if you happen to interrupt
-computation; at the end it returns the output file name. with-sound opens an
-output sound file, evaluates its body (normally a bunch of instrument calls),
-applies reverb, if any, as a second pass, and plays the sound, if desired.
-The sound file's name defaults to "test.snd" or something similar; use the
-<b>output</b> argument to write some other file:
-</p>
-<pre>
- (with-sound (:<em class=red>output</em> "new.wave") (fm-violin 0 1 440 .1))
-</pre>
-
-<p>
-The <b>channels</b>, <b>srate</b>, <b>data-format</b>, and <b>header-type</b> arguments
-set the sound characteristics. The default values for these are set in defaults.lisp.
-Reverberation is handled as a second pass through a reverb instrument (nrev.ins for
-example). The <b>reverb</b> argument sets the choice of reverberator.
-</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> (:output "new.snd") (simp 0 1 440 .1))
- (<a class=quiet href="#with-sound">with-sound</a> (:srate 44100 :channels 2) ...)
- (<a class=quiet href="#with-sound">with-sound</a> (:reverb jc-reverb) ...)
- (<a class=quiet href="#with-sound">with-sound</a> (:reverb nrev :reverb-data (:reverb-factor 1.2 :lp-coeff .95))...)
-</pre>
-
-<p>With-sound can be called within itself, so you can make an output sound file
-for each section of a piece as well as the whole thing, all in one run. Since it is the basis of <a href="#mix-and-with-mix">with-mix</a> and
-<a href="#sound-let">sound-let</a>, all of these can be nested indefinitely:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#with-sound">with-sound</a> ()
- (mix (<a class=quiet href="#with-sound">with-sound</a> (:output "hiho.snd")
- (fm-violin 0 1 440 .1))))
-
-(<a class=quiet href="#with-sound">with-sound</a> ()
- (<a class=quiet href="#with-mix">with-mix</a> () "s1" 0
- (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
- (fm-violin 0 1 440 .1)))
- (mix tmp))))
-
-(<a class=quiet href="#with-sound">with-sound</a> (:verbose t)
- (<a class=quiet href="#with-mix">with-mix</a> () "s6" 0
- (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
- (fm-violin 0 1 440 .1))
- (tmp1 (:reverb nrev)
- (mix "oboe.snd")))
- (mix tmp1)
- (mix tmp :output-frame *srate*))
- (fm-violin .5 .1 330 .1)))
-
-(<a class=quiet href="#with-sound">with-sound</a> (:verbose t)
- (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
- (<a class=quiet href="#with-mix">with-mix</a> () "s7" 0
- (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
- (fm-violin 0 1 440 .1))
- (tmp1 ()
- (mix "oboe.snd")))
- (mix tmp1)
- (mix tmp :output-frame *srate*))
- (fm-violin .5 .1 330 .1))))
- (mix tmp)))
-</pre>
-</td></tr></table>
-
-<p>You can call with-sound within an instrument:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> msnd (beg dur freq amp)
- (let ((os (<a class=quiet href="#make-oscil">make-oscil</a> freq)))
- (run
- (loop for i from beg below (+ beg dur) do
- (<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#oscil">oscil</a> os)))))))
-
-(<a class=quiet href="#definstrument">definstrument</a> call-msnd (beg dur sr amp)
- (let* ((temp-file (<a class=quiet href="#with-sound">with-sound</a> (:output "temp.snd") (msnd 0 dur 440.0 .1)))
- (tfile (<a class=quiet href="#open-input">open-input</a> temp-file))
- (reader (<a class=quiet href="#make-src">make-src</a> :input tfile :srate sr))
- (new-dur (/ dur sr)))
- (run
- (loop for i from beg below (+ beg new-dur) do
- (<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#src">src</a> reader)))))
- (<a class=quiet href="#close-input">close-input</a> tfile)
- (delete-file temp-file)))
-</pre>
-</td></tr></table>
-
-<p>
-Besides :channels, :reverb, and :srate, the most useful options are :scaled-to and
-:statistics.
-<i>statistics</i>, if t, causes clm
-to keep track of a variety of interesting things and print them out at the end
-of the computation. <i>scaled-to</i> tells clm to make sure the final output
-file has a maxamp of whatever the argument is to :scaled-to &mdash; that is,</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> (:scaled-to .5)
- (dotimes (i 32) (mix "oboe.snd" :output-frame (* i *srate*))))
-</pre>
-<p>will produce test.snd with a maxamp of .5, no matter how loud the intermediate
-mix actually is.
-Similarly, the <i>scaled-by</i> argument causes all the output to
-be scaled (in amplitude) by its value.</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> (:scaled-by 2.0) (fm-violin 0 1 440 .1))
-</pre>
-<p>produces a note that is .2 in amplitude.
-</p>
-
-<p>If <i>revfile</i> is specfied, but not <i>reverb</i>, the reverb stream is
-written to revfile, but not mixed with the direct signal in any way.
-Normally the reverb output is not deleted by with-sound; you can set
-<b>*clm-delete-reverb*</b> to t to have it deleted automatically.
-</p>
-
-<p>
-The macro <b>scaled-by</b> scales its body by
-its first argument (much like <a href="#with-offset">with-offset</a>):</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#with-sound">with-sound</a> ()
- (fm-violin 0 1 440 .1)
- (scaled-by 2.0
- (fm-violin 0 .25 660 .1)) ; actual amp is .2
- (fm-violin .5 440 .1))
-</pre>
-</td></tr></table>
-
-<p>There is also the parallel macro <b>scaled-to</b>.
-These are built on the macro <em class=emdef>with-current-sound</em>
-which sets up an embedded with-sound call with all the current with-sound arguments in place
-except output, comment, scaled-to, and scaled-by.</p>
-
-<p>Other with-sound options that might need explanation are :notehook and :continue-old-file.</p>
-
-<p><a Name="notehook">Notehook</a> declares a function that is evaluated each time any instrument is called.
-The arguments passed to the notehook function are the current instrument name (a string) and all its
-arguments. The following prints out the instrument arguments for any
-calls on simp that are encountered:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#with-sound">with-sound</a> (<em class=red>:notehook</em>
- #'(lambda (name &amp;rest args)
- (when (string-equal name "simp")
- (print (format nil "(simp ~{~A ~})" args))
- (force-output))))
- (simp 0 1 440 .1)
- (toot .5 .5 660 .2))
-</pre>
-</td></tr></table>
-
-<p>If the notehook function returns :done, the instrument exits immediately.
-</p>
-
-<p><i>Continue-old-file</i>, if t, re-opens a previously existing file
-for further processing. Normally with-sound clobbers any existing file
-of the same name as the output file (see <i>output</i> above). By using
-<i>continue-old-file</i>, you can both add new stuff to an existing file, or
-(by subtracting) delete old stuff to any degree of selectivity. When you erase
-a previous note, remember that the subtraction has to be exact; you have
-to create exactly the same note again, then subtract it. By the same token,
-you can make a selected portion louder or softer by adding or subtracting a
-scaled version of the original.
-The option <i>data-format</i> underlies :scaled-to.
-CLM can read and write sound data in all the currently popular formats,
-leaving aside proprietary compression schemes. The names used in
-:data-format can be found in <a href="initmus.lisp">initmus.lisp</a>,
-along with the headers CLM knows about.</p>
-
-<p>You can make your own specialized versions of with-sound:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(defmacro with-my-sound ((&amp;rest args) &amp;body body)
- `(let ((filename (<a class=quiet href="#with-sound">with-sound</a> ,args ,.body)))
- ;; any post-processing you like here
- filename))
-</pre>
-</td></tr></table>
-
-
-<p>One such specialization is <a class=def name="with-threaded-sound">with-threaded-sound</a>,
-available in sbcl if you built sbcl with threads.
-with-threaded-sound looks exactly like with-sound, but
-each note (each separate expression in the with-sound body) is handled by a separate thread.
-</p>
-
-<pre>
- (with-threaded-sound ()
- (fm-violin 0 1 440 .1)
- (fm-violin 0 1 660 .1))
-</pre>
-
-<p>If start a thread for each note, then join them all at once, the computation slows down a lot due to
-all the thread overhead, so *clm-threads* sets the number of threads running
-through the note list at any one time. It defaults to 4. You can speed up
-with-threaded-sound if you set *clm-file-buffer-size* large enough to accommodate
-the entire output, then pass :output-safety 1 to with-threaded-sound.
-Even so, my tests indicate that
-it is sometimes faster to use with-sound; I need to figure out why...
-</p>
-
-
-
-<p><a class=def Name="clm-load">clm-load</a> is the same as with-sound, but its first argument is the name
-of a file containing clm instrument calls (i.e. the body of
-with-sound), the reverb argument is the name of the reverb function,
-and the reverb-data argument is the list; that is, clm-load's arguments
-look like normal lisp, whereas with-sound's are unquoted in these two cases.</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> (:reverb jc-reverb :reverb-data (:volume .3)) ...)
- (<a class=quiet href="#clm-load">clm-load</a> "test.clm" :reverb 'jc-reverb :reverb-data '(<a class=quiet href="#volume">volume</a> .3))
-</pre>
-
-<p>The with-sound output is normally sent to the speakers via the <b>play</b> function.
-There are several associated functions:</p>
-<pre>
- <em class=emdef>play</em> &amp;optional file start end wait
- <a class=def Name="dac">dac</a> &amp;optional file start end wait
- <a class=def Name="sldac">sl-dac</a> file &amp;optional (output-device mus-audio-default)
- <em class=emdef>stop-playing</em>
- <a class=def Name="stop-dac">stop-dac</a>
- <a class=def Name="volume">volume</a> &amp;optional (device mus-audio-default) channel
-</pre>
-
-<p><b>play</b> (or <b>dac</b>) starts playing <i>file</i> (or the last file played, if no
-argument is given); in some cases (MCL and ACL) it then returns to the lisp listener;
-to interrupt the dac in those cases, use <b>stop-playing</b> (or <b>stop-dac</b>). To set the speaker volume
-(setf (<em class=red>volume</em>) 1.0). Similarly (<em class=red>volume</em>)
-returns the current volume settings.
-Currently, <b>play</b> calls the sndplay program if possible; <b>sl-dac</b> is
-the same thing, but calls the sl_dac function. The latter gives you control over the
-output device (sndplay will also someday). In some cases, sndplay's default buffer
-size is not ideal; you can use <a href="#*clm-player*">*clm-player*</a> and sndplay's bufsize argument to
-set it to the correct value for your audio system. play's <i>start</i> and <i>end</i> arguments are in seconds,
-and default to playing the entire sound. The <i>wait</i> argument in some cases causes
-the play call to wait until the complete sound has been played before returning to the listener.
-</p>
-
-<p>The *clm-* variables (like *clm-srate*) set the default values.
-The corresponding un-clm'd versions (*srate*) hold the current values. So, if
-with-sound doesn't include the :srate argument, *srate* is the same as *clm-srate*;
-otherwise it reflects the :srate value for the duration of the with-sound call.
-The local variables that are currently exported are:
-*srate*, *safety*, and *debug*. Unexported, but available in the clm package
-are *channels*, *data-format*, *header-type*, *notehook*, *clipped*, *verbose*,
-and *statistics*.
-</p>
-<pre>
- <a class=def name="musfloatequalfudgefactor">mus-float-equal-fudge-factor</a> how far apart values can be and still be considered equal
- <a class=def name="musarrayprintlength">mus-array-print-length</a> () how many array (vct) elements to print in mus-describe
- <a class=def name="musfilebuffersize">mus-file-buffer-size</a> () size of input/ouput buffers (default 8192)
- <a class=def name="makefircoeffs">make-fir-coeffs</a> (order spectr)
- <a class=def name="mussrate">mus-srate</a> () current sampling rate
-</pre>
-<br>
-
-
-
-<!-- INDEX mix-and-with-mix:Checkpoints -->
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="mix-and-with-mix">With-mix</a></h3></td></tr></table>
-<pre>
- <a class=def name="with-mix">with-mix</a> options file begin &amp;body body
-</pre>
-
-<p><i>With-mix</i> is a macro, callable within <a href="#with-sound">with-sound</a> or <a href="#clm-load">clm-load</a>,
-which saves the computation in its body in a separate file named <i>file</i>
-(without the .snd extension), and can tell when that file's data is up to date
-and does not need to be recomputed.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#with-sound">with-sound</a> ()
- (fm-violin 0 .1 440 .1)
- (<em class=red>with-mix</em> () "sec1" .5
- (fm-violin 0 .1 550 .1)
- (fm-violin .1 .1 660 .1))
- (<em class=red>with-mix</em> (:reverb jc-reverb) "sec2" 1.0
- (fm-violin 0 .1 880 .1 :reverb-amount .2)
- (fm-violin .1 .1 1320 .1 :reverb-amount .2))
- (fm-violin 2 .1 220 .1)
- (<em class=red>mix</em> "/zap/slow.snd"))
-</pre>
-</td></tr></table>
-
-<p>Now, if we change just the first note in the with-mix call, the
-second with-mix section will not be recomputed, but will be mixed in from the
-saved file "sec2.snd". By surrounding stable sections of a piece with calls on
-mix or with-mix, you can save a huge amount of time that would
-otherwise be spent waiting for these notes to be recomputed. This check-point
-or makefile capability is built on <a href="#open-input">open-input</a>.</p>
-
-<blockquote>
-<small>
-With-mix performs a string comparison of its body to decide whether
-it needs to recompute its note calls. It then loads that body from
-a separate saved file. This can be confusing if global variables
-are present.
-<pre>
- &gt; USER(2): (let ((rstr .1)) (<a class=quiet href="#with-sound">with-sound</a> () (<a class=quiet href="#with-mix">with-mix</a> () "sec" 0 (fm-violin 0 1 440 rstr))))
- &gt; ; Loading /zap/sec.clm
- &gt; Error: Attempt to take the value of the unbound variable `RSTR'.
-</pre>
-Here the code evaluated is basically
-<code>
-(let ((rstr .1)) (load "/zap/sec.clm"))
-</code>
-where rstr has lexical scope. To make rstr visible within the load,
-<pre>
- (let ((rstr1 .1))
- (declare (special rstr1))
- (<a class=quiet href="#with-sound">with-sound</a> () (<a class=quiet href="#with-mix">with-mix</a> () "sec" 0 (fm-violin 0 1 440 rstr1))))
-</pre>
-but if you then evaluate the same form again, changing rstr1 to (say) .5,
-with-mix does not notice that rstr1's value has changed, so
-it does not recompute its body, leaving the resultant amplitude at .1.
-</small>
-</blockquote>
-
-<p>The fastest way to mix sound files is with <b>mix</b>:</p>
-<pre>
- <a class=def Name="mix">mix</a> &amp;optional-key filename (input-frame 0) (output-frame 0) frames output
-</pre>
-<br>
-
-
-<table width="50%" border=0><tr><td bgcolor="EEFDEE" valign="middle"><h4>C-level file IO</h4></td></tr></table>
-
-<!-- INDEX open-input:Sound file IO -->
-<pre>
- <a class=def Name="open-input">open-input</a> &amp;optional name &amp;key start channel restartable
- <a class=def Name="close-input">close-input</a> i-stream
- <a class=def Name="open-input*">open-input*</a> name &amp;key start channel restartable
-</pre>
-
-<p>These functions open and close input sound files. <b>open-input</b>
-takes either a string or a pathname and returns an IO object.
-Various clm
-functions use that object as a handle on the file. The variable
-<b>*clm-file-name*</b>, used as the default name in most such calls, is "/zap/test.snd" at CCRMA.</p>
-
-<p>Open-input normally opens the sound file <i>name</i> and returns a list or perhaps a structure
-that other clm functions can use to access the file. If you don't
-give a complete file name (<i>name</i> without the .snd extension),
-open-input checks to see if there's either no .snd file or a later .cm
-or .clm file, and in that case, suspends the current computation, makes the
-sound file from the sources, then resumes the old computation, opening the
-(newly computed) sound file. If you are working in sections, and keep the
-sections in separate files, the various layers of mixing can automatically
-notice when some section has changed, and update everything for you.
-Similarly, if all your sound files get deleted, the whole piece can still
-regenerate itself in one operation.
-If you want the convenience of the directory
-search (see <a href="#*clm-search-list*">*clm-search-list*</a>) <b>open-input*</b>.
-Normally if open-input* can't find a file, it prints a warning and returns
-nil. If you would rather that it drop into the debugger with an option
-to specify a new file name at that time, set the <i>restartable</i> argument to t.
-</p>
-
-<p>Open-input's &amp;key parameters are patterned after Lisp's load
-function:
-<i>verbose</i> (the default is nil) turns on some informational printout;
-<i>element-type</i> can be nil (the default), or :sound. In the latter case, the file passed to
-open-input is assumed to contain sound data, no matter what extension it has, providing
-a way to override the check for out of date sound files and so on;
-<i>if-does-not-exist</i> can be nil or :error (the default). In the latter case, if no sound file
-associated with name can be found or created, you get an error message.
-<i>start</i> is the sample to start at when reading the first data buffer.
-<i>end</i> is the sample to stop at when reading the initial buffer (it defaults to buffer-size).
-If you are reading only a small portion of a file many times, you can save some
-time by setting explicitly the bounds of the initial read via <i>start</i> and <i>end</i>.
-The implicit load triggered by open-input with a non-specific file name
-sets
-<a class=def Name="*open-input-pathname*">*open-input-pathname*</a> and
-<a class=def Name="*open-input-truename*">*open-input-truename*</a> and notices
-<a class=def Name="*open-input-verbose*">*open-input-verbose*</a> (if t, print out informational
-messages).</p>
-
-<br>
-
-
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><a name="sound-let">Sound-let</a></h3></td></tr></table>
-
-<p><b>sound-let</b> is a form of <i>let*</i> that creates temporary sound streams
-within with-sound. Its syntax is like that of <i>let</i> and
-with-sound:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<em class=red>sound-let</em> ((temp-1 () (fm-violin 0 1 440 .1))
- (temp-2 () (fm-violin 0 2 660 .1)
- (fm-violin .125 .5 880 .1)))
- (granulate-sound temp-1 0 2 0 2);temp-1's value is the name of the temp file
- (granulate-sound temp-2 1 1 0 2))
-</pre>
-</td></tr></table>
-
-<p>This creates two temporary files and passes them along to the subsequent calls
-on granulate-sound. The first list after the sound file identifier (i.e. after
-"temp-1" in the example) is the list of <a href="#with-sound">with-sound</a> options to be passed
-along when creating this temporary file. These default to :output
-with a unique name generated internally, and all other variables are taken from
-the overall (enclosing) output file. The rest of the list is the body of the
-associated <a href="#with-sound">with-sound</a>, which can contain embedded sound-lets.
-The difference between sound-let and a simple embedded with-sound is primarily that
-sound-let names and later deletes the temporary files it creates, whereas with-sound leaves
-its output intact.
-</p>
-<br>
-
-
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>CLM Defaults</h4></td></tr></table>
-
-<p>These default values are set in defaults.lisp. Generally, the default value is *clm-&lt;var&gt;, and the
-current dynamic value of that variable is *&lt;var&gt;*.
-</p>
-
-<table border=0 cellpadding=0 cellspacing=0 hspace=40>
-<tr><td width=200><a class=def Name="*clm-array-print-length*">*clm-array-print-length*</a></td><td>number of IO data buffer elements printed</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-channels*">*clm-channels*</a></td><td bgcolor="#f6f8ff">default output channels (1)</td></tr>
-<tr><td><a class=def Name="*clm-clipped*">*clm-clipped*</a></td><td>default for clipped arg in with-sound</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-dac-wait-default*">*clm-dac-wait-default*</a></td><td bgcolor="#f6f8ff">default choice of whether play function should wait for completion</td></tr>
-<tr><td><a class=def Name="*clm-data-format*">*clm-data-format*</a></td><td>default output sound file data format</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-date*">*clm-date*</a></td><td bgcolor="#f6f8ff">creation date of the current version</td></tr>
-<tr><td><a class=def Name="*clm-default-frequency*">*clm-default-frequency*</a></td><td>default make-* frequency (0.0)</td></tr>
-<tr><td><a class=def Name="*clm-delete-reverb*">*clm-delete-reverb*</a></td><td>should with-sound delete the temporary reverb output (default nil)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-file-buffer-size*">*clm-file-buffer-size*</a></td><td bgcolor="#f6f8ff">IO buffer sizes (in samples)</td></tr>
-<tr><td><a class=def Name="*clm-file-name*">*clm-file-name*</a></td><td>default sound file name</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-header-type*">*clm-header-type*</a></td><td bgcolor="#f6f8ff">default output sound file header type</td></tr>
-<tr><td><a class=def Name="*clm-init*">*clm-init*</a></td><td>name of site-specific initializations (see <a href="#clm-init.lisp">clm-init.lisp</a>)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-instruments*">*clm-instruments*</a></td><td bgcolor="#f6f8ff">list of the currently loaded clm instruments</td></tr>
-<tr><td><a class=def Name="*clm-locsig-type*">*clm-locsig-type*</a></td><td>locsig interpolation choice (<b>mus-interp-linear</b> or <b>mus-interp-sinusoidal</b>)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-news*">*clm-news*</a></td><td bgcolor="#f6f8ff">brief list of recent changes (HISTORY.clm)</td></tr>
-<tr><td><a class=def Name="*clm-notehook*">*clm-notehook*</a></td><td>default for notehook arg in with-sound</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-play*">*clm-play*</a></td><td bgcolor="#f6f8ff">default for play arg in with-sound</td></tr>
-<tr><td><a class=def Name="*clm-player*">*clm-player*</a></td><td>user-supplied DAC function</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-reverb-channels*">*clm-reverb-channels*</a></td><td bgcolor="#f6f8ff">reverb stream chans in with-sound</td></tr>
-<tr><td><a class=def Name="*clm-safety*">*clm-safety*</a></td><td>default safety setting (run loop debugging choices)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-search-list*">*clm-search-list*</a></td><td bgcolor="#f6f8ff">pathname list for file searches (open-input*)</td></tr>
-<tr><td><a class=def Name="*clm-srate*">*clm-srate*</a></td><td>default sampling rate (44100)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-statistics*">*clm-statistics*</a></td><td bgcolor="#f6f8ff">default statistics arg in with-sound</td></tr>
-<tr><td><a class=def Name="*clm-table-size*">*clm-table-size*</a></td><td>default table-lookup table size (in Scheme, the associated function is <b>clm-table-size</b>)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-tempfile-data-format*">*clm-tempfile-data-format*</a></td><td bgcolor="#f6f8ff">intermediate with-sound file data format</td></tr>
-<tr><td><a class=def Name="*clm-tempfile-header-type*">*clm-tempfile-header-type*</a></td><td>intermediate with-sound file header type</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*clm-version*">*clm-version*</a></td><td bgcolor="#f6f8ff">version identifier (a number &mdash; also *clm-revision*)</td></tr>
-<tr><td><a class=def Name="*output*">*output*</a></td><td>current output stream (for outa and friends)</td></tr>
-<tr><td bgcolor="#f6f8ff"><a class=def Name="*reverb*">*reverb*</a></td><td bgcolor="#f6f8ff">current reverb stream</td></tr>
-<tr><td><a class=def Name="two-pi">two-pi</a></td><td>2*pi</td></tr>
-</table>
-
-<p><b>*clm-player*</b> can be used to override CLM's normal play routine (which
-calls sndplay in most cases); say we want to send the sound
-to an ADAT output:</p>
-<pre>
-(setf *clm-player* (lambda (name) (<a class=quiet href="#sldac">sl-dac</a> name mus-audio-adat-out)))
-</pre>
-or change the sndplay buffer size:
-<pre>
-(setf *clm-player* (lambda (name) (clm::run-in-shell "sndplay" (format nil "~A -bufsize 1024" name))))
-</pre>
-
-<p>On machines with plenty of memory and slow disks, you can speed up CLM
-computations by setting <b>*clm-file-buffer-size*</b> to some number larger
-than its default (65536):
-</p>
-<pre>
- (let ((*clm-file-buffer-size* (* 1024 1024))) (<a class=quiet href="#with-sound">with-sound</a> ...) <!-- ) -->
-</pre>
-
-<p>The macro <a class=def Name="with-offset">with-offset</a> can be used to set local
-begin time offsets. Its argument is in seconds:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#with-sound">with-sound</a> ()
- (fm-violin 0 1 440 .1)
- (<em class=red>with-offset</em> 1.0
- (fm-violin 0 .25 660 .1)) ; actually starts at 1.0
- (fm-violin .5 440 .1))
-</pre>
-</td></tr></table>
-<br>
-<br>
-
-
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>CLM examples and whatnot</h4></td></tr></table>
-
-<p>The file <a href="files">files</a> describes briefly each of the files in the clm
-directory; <a href="clm-example.lisp">clm-example.lisp</a> shows one way to write notelists;
-<a href="cm-clm.lisp">cm-clm.lisp</a> is
-a brief example of using Rick Taube's Common Music to drive CLM. There are several
-*.clm files included in the clm distribution. clm-test.lisp runs my standard
-set of regression tests, exercising many of the instruments. <a href="pitches.cl">pitches.cl</a>
-provides the standard pitch names as lisp variables (a4 = 440.0 and so on).
-</p>
-<br>
-
-
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><a Name="run*">Run*</a></h3></td></tr></table>
-
-<p><b>run*</b> takes two arguments, a list of variables, and the usual
-run macro body. The run body is executed (in C normally) and then
-the variables are set to the values they had when the run loop
-exited.
-This extension of <a href="#run">run</a> is
-needed because in C
-instruments, everything that happens within the run loop is normally hidden
-from the lisp interpreter; if you set a global variable's value, for example,
-only the run-specific version of that variable is affected. You need <b>run*</b>
-to return such values back to Lisp.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> p (beg dur frq amp)
- (let* ((s (<a class=quiet href="#make-oscil">make-oscil</a> frq))
- (start (floor (* beg *srate*)))
- (end (+ start (floor (* dur *srate*))))
- (hi 0.0))
- (<em class=red>run*</em> (amp hi)
- (loop for i from start below end do
- (incf hi .001)
- (<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#oscil">oscil</a> s)))))
- (print (format nil "~A ~A" hi amp))))
-</pre>
-</td></tr></table>
-
-<p>A more useful instrument is Michael Edwards' <a href="track-rms.ins">track-rms.ins</a>; see also
-the sr3 instrument in ug.ins.
-Here's another instrument that implements legato between notes by using the previous note's phases:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(defstruct fmins carrier modulator)
-(<a class=quiet href="#definstrument">definstrument</a> fmsimp (beg dur frq amp ind &amp;optional previous-oscils)
- (let* ((start (floor (* *srate* beg)))
- (end (+ start (floor (* *srate* dur))))
- (carrier (if previous-oscils
- (fmins-carrier previous-oscils)
- (<a class=quiet href="#make-oscil">make-oscil</a>)))
- (modulator (if previous-oscils
- (fmins-modulator previous-oscils)
- (<a class=quiet href="#make-oscil">make-oscil</a>))))
- (setf (<a class=quiet href="#mus-frequency">mus-frequency</a> carrier) frq)
- (setf (<a class=quiet href="#mus-frequency">mus-frequency</a> modulator) frq)
- (<em class=red>run*</em> (carrier modulator)
- (loop for i from start below end do
- (<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#oscil">oscil</a> carrier (* ind (<a class=quiet href="#oscil">oscil</a> modulator)))))))
- (if previous-oscils
- (progn
- (setf (fmins-carrier previous-oscils) carrier)
- (setf (fmins-modulator previous-oscils) modulator)))))
-
-;;; (defvar oscs (make-fmins :carrier (<a class=quiet href="#make-oscil">make-oscil</a>) :modulator (<a class=quiet href="#make-oscil">make-oscil</a>)))
-;;; (<a class=quiet href="#with-sound">with-sound</a> () (fmsimp 0 1.01 440 .1 0.0 oscs) (fmsimp 1.01 1 660 .1 0.0 oscs))
-;;; (<a class=quiet href="#with-sound">with-sound</a> () (fmsimp 0 1.01 440 .1 0.0) (fmsimp 1.01 1 660 .1 0.0))
-;;; the 1.01 (as opposed to 1.0) is needed because the phases line up just by chance in the 1.0 case
-;;; for portamento, the instrument could notice an in-coming osc set and
-;;; change the frequency envelope accordingly
-</pre>
-</td></tr></table>
-<br>
-
-<br>
-
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2><A NAME="debugging-aids">Debugging</a></h2></td></tr></table>
-</td></tr></table>
-
-<!-- INDEX debugging-aids:Debugging -->
-
-<p>CLM provides several built-in data display and instrument debugging aids.
-But debugging an instrument is still too much pain. I suggest that you
-develop the algorithm in Snd/Scheme where there are elaborate and
-robust debugging tools.
-</p>
-
-<p>The optimize safety option can be used to check for array index and null
-generator problems (these will be reported as bus errors and segmentation
-faults, sigh). <code>(pushnew :debug *features*)</code> before loading CLM to see what it
-is sending to the C compiler.
-</p>
-<br>
-
-
-<table width="60%" border=0><tr><td bgcolor="lightgreen" valign="middle"><h4>The Error Handler</h4></td></tr></table>
-
-<p>When you hit an error within with-sound, depending on the context of the error and
-the lisp you're running, you'll see a variety of restart options:</p>
-<pre>
- Restart actions (select using :continue):
- 0: return from break.
- 1: try to exit current note cleanly and go on.
- 2: abort current note.
- 3: close files and return to top-level.
- 4: jump past remaining notes.
-</pre>
-<p>The last four are provided by CLM. The first tries to jump to the end of the
-current instrument, allowing open input files to be closed and so forth.
-The second jumps out of the current note, but tries to continue processing
-the body of with-sound. The third closes all files and jumps out of with-sound.
-The fourth jumps to the end of the body of with-sound and tries to handle
-all the usual with-sound closing options such as reverb, statistics, and
-scaling.
-</p>
-
-<p>If you hit a C error (segfault, etc), start gdb with lisp ('gdb /usr/local/lisp/acl'),
-'run', load clm, run your instrument, then when the error drops you into the gdb debugger, 'where'. This
-should give you some idea where the problem is. In the worst case, trace clm::run-in-shell and compile/load
-the instrument to find out what the C compilation sequence is on your machine; next, make whatever changes
-you like to the instrument C code (produced by the run macro, named clm_INSNAME.c); to add a print
-statement that will send its output to the lisp listener, use the function mus_error with a first argument
-of 0; next run the C compiler and loader, making a new instrument object file, start gdb with lisp, run
-lisp loading clm, load your instrument, and run it.
-</p>
-
-<p>In Windows using ACL, you can get into the debugger via:
-</p>
-<pre>
- c:\program files\acl80\mlisp.exe -! -I mlisp.dxl
-</pre>
-<p>or some facsimile thereof. When you hit a segfault, get a call stack (stack trace).
-I don't know how to print out function arguments in this case.
-In ACL, you can maximize the lisp-level information at an error with:
-</p>
-<pre>
- :zoom :all t :verbose t :count t
-</pre>
-
-<p>ffi-test.lisp has a bunch of FFI calls outside the with-sound/definstrument context.
-The base CLM test suite is clm-test.lisp, but it's more of a "regression" test &mdash; I run
-it in the various lisps whenever I make some code change.
-</p>
-
-<br>
-
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="sndcommunication">CLM and Snd</a></h3></td></tr></table>
-
-<p>This section refers to the communication path between the Common Lisp version of CLM and Snd.
-CLM is also built into Snd; <a href="grfsnd.html">grfsnd.html</a> has some info on that version.
-</p>
-
-<p>If the Snd sound editor is available, there are a variety of hooks in clm-snd.lisp that enable
-CLM and Snd to talk to each other. This portion of CLM has changed drastically three times now, so
-it is only for good sports. Currently,
-the most useful of the functions are:</p>
-<pre>
- <a class=def Name="start-snd">start-snd</a>
- <a class=def Name="send-snd">send-snd</a> code
- <a class=def Name="receive-snd">receive-snd</a>
- <a class=def Name="send-and-receive-snd">send-and-receive-snd</a> code &amp;optional with-eval
-
- <a class=def Name="snd-memo">snd-memo</a> file format-string &amp;rest args
- <a class=def Name="add-mark">add-mark</a> sample channel
- <a class=def Name="add-region">add-region</a> beg end
-
- <a class=def Name="snd-sound">snd-sound</a> &amp;optional file-name
- <a class=def Name="snd-region">snd-region</a> &amp;optional (reg 0)
- <a class=def Name="snd-cleanup">snd-cleanup</a> &amp;body body
-
- <a class=def Name="to-snd">to-snd</a> (&amp;rest args) &amp;body body
- <a class=def Name="snd-edit-sound">snd-edit-sound</a> new-name &amp;optional old-name
- <a class=def Name="snd-edit">snd-edit</a> (&amp;optional file) &amp;body body
-
- <a class=def Name="sndenv">snd-envelope</a> env
- <a class=def Name="clmenv">clm-envelope</a> env
-</pre>
-
-<p><b>snd-memo</b> provides access to the ".scm" file that can be associated with any sound
-in Snd; the memo file can contain any Snd-related Scheme code you want; it will be loaded
-just after the sound it itself is loaded. The variable <b>*snd-opened-sound*</b> is set during
-this process to the index of the current sound. You can save any arbitrary information
-you like at any time through this function; the predefined macro <b>add-mark</b> is
-just one simple example:</p>
-<pre>
- (defmacro add-mark (samp &amp;optional (chan 0))
- `(<em class=red>snd-memo</em> *output* "(<em class=red>add-mark</em> ~D *snd-opened-sound* ~D)~%" ,samp ,chan))
-</pre>
-
-<p>It appends the <code>(add-mark samp *snd-opened-sound* chan)</code> call to the current output's
-memo (.scm) file. Similarly, <b>add-region</b> defines a new region in Snd; it can be used
-to mark a note's begin and end points with a sound.
-</p>
-
-<p><b>snd-sound</b> returns the current edited state of the desired file in the
-Snd editor (or the currently active file if no file-name is given). This can
-be used anywhere a file name occurs in CLM:</p>
-<pre>
- (<a class=quiet href="#with-sound">with-sound</a> () (mix (snd-sound)))
-</pre>
-
-<p>Similarly, <b>snd-region</b> returns the contents of region <i>reg</i>.
-<b>snd-edit-sound</b> passes sound data back to sound, causing it to appear in
-the editor as an edit of either the file passed as old-name, or the currently
-active file if no old-name is given.</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#snd-edit-sound">snd-edit-sound</a>
- (<a class=quiet href="#with-sound">with-sound</a> ()
- (mix (<em class=red>snd-sound</em>))
- (fm-violin .1 .1 660 .1)))
-</pre>
-</td></tr></table>
-
-<p>takes the current state of the current active file in Snd (snd-sound), adds
-a short fm-violin note to it, then returns that to Snd as a kind of editing
-operation. </p>
-
-<p>Nearly everything that Snd can do is accessible to CLM by sending the
-appropriate Snd code through the function <b>send-snd</b> and friends.
-</p>
-<pre>
- (<a class=quiet href="#send-snd">send-snd</a> "(open-sound \"oboe.snd\")")
- (<a class=quiet href="#snd-edit">snd-edit</a> () (<a class=quiet href="#with-sound">with-sound</a> () (mix (snd-sound)) (fm-violin .1 .1 660 .1)))
- (<a class=quiet href="#send-and-receive-snd">send-and-receive-snd</a> "(save-sound 0)")
-</pre>
-
-<p>starts Snd, opens "oboe.snd", edits it by adding a fm-violin note, and
-saves the result under the same name, exiting Snd. All of this is
-compatible with the debugging and display uses of Snd. For example,
-'display' starts Snd itself if one isn't started yet,
-and that same Snd process can handle the editing operations described above.
-</p>
-
-<p>The Snd envelope editor can be used in conjunction with clm; <b>clm-envelope</b>
-passes its argument (assumed to be a list) to Snd, and <b>snd-envelope</b> returns
-Snd's notion of that envelope (presumably after it has been edited):</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(defvar hi '(0 0 1 1))
-(<a class=quiet href="#clmenv">clm-envelope</a> hi)
-(setf hi (<a class=quiet href="#sndenv">snd-envelope</a> hi))
-</pre>
-</td></tr></table>
-
-<p><b>send-snd</b> can also be called within the run loop, sending Snd any
-arbitrary command; the following instrument prints out the
-seconds as they go by in Snd's minibuffer:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#definstrument">definstrument</a> call-snd (beg dur frq)
- (let* ((bg (floor (* beg *srate*)))
- (nd (+ bg (floor (* dur *srate*))))
- (o (<a class=quiet href="#make-oscil">make-oscil</a> frq))
- (ctr 0)
- (secs 0))
- (run
- (loop for i from bg below nd do
- (incf ctr)
- (when (&gt;= ctr *srate*)
- (incf secs)
- (setf ctr 0)
- (<em class=red>send-snd</em> "(report-in-minibuffer (number-&gt;string ~D))" secs))
- (<a class=quiet href="#outa">outa</a> i (<a class=quiet href="#oscil">oscil</a> o))))))
-</pre>
-</td></tr></table>
-
-<p>In this case, if send-snd has extra arguments, they are treated like
-format or clm-print arguments.</p>
-
-<p>snd-sound creates a temporary file to pass the current state to CLM, and expects
-CLM to delete that file when it is done with it. The macros <b>snd-cleanup</b> and
-<b>snd-edit</b> provide this cleanup action for you. If you don't clean these
-files up as they are created, they are finally deleted when snd-stop is called,
-or when CLM is exited. If something goes wrong, just delete any file on
-the temp directory (/tmp or /var/tmp normally) whose name begins with "snd_".</p>
-
-<p><b>to-snd</b> is a version of with-sound that causes Snd to open the
-output file when with-sound is done.
-</p>
-<pre>
- (<a class=quiet href="#to-snd">to-snd</a> (:statistics t) (fm-violin 0 1 440 .1))
-</pre>
-
-<p>
-There are two gotchas with to-snd, both occurring only when to-snd has
-to start a new Snd image itself (i.e. there's no Snd already running).
-In this case, while Snd is active, it reads stdin, so typing to the ACL
-listener is actually communicating with Snd, not CLM. And, with the
-change to sndplay (for CLM's dac function) in most cases, sndplay is
-playing the sound at the very moment that Snd is starting up in the
-background and trying to figure out what audio devices are available.
-I added mus-audio-reinitialize to clear this confusion (i.e. if Snd
-complains it can't play the sound, force it to reinitialize its notion
-of what's out there).
-</p>
-<p>
-to-snd is just a simple macro (clm-snd.lisp) that calls send-snd
-opening the result of the with-sound call, so to open the new sound
-and make sure the control panel is open:
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(defmacro to-snd-with-controls ((&amp;rest args) &amp;body body)
- `(<a class=quiet href="#send-snd">send-snd</a> (format nil
- "(let ((snd (<a class=quiet href="extsnd.html#opensound">open-sound</a> ~S)))
- (set! (<a class=quiet href="extsnd.html#showcontrols">show-controls</a> snd) #t))"
- (<a class=quiet href="#with-sound">with-sound</a> ,args ,@body))))
-</pre>
-</td></tr></table>
-<br><br>
-
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2><A NAME="appendices">Appendices</a></h2></td></tr></table>
-</td></tr></table>
-
-<br>
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="header-types">Header and data types</a></h3></td></tr></table>
-<!-- INDEX header-types:Sound file formats -->
-<!-- INDEX header-types:Data formats -->
-<!-- INDEX header-types:Headers -->
-
-<p>CLM can write NeXT/Sun, AIFF/AIFC, RIFF ("wave"), RF64, CAFF, raw (no header), NIST-sphere, and "old-style" IRCAM headers.
-The default choice is set by <a href="#*clm-header-type*">*clm-header-type*</a>
-set in <a href="defaults.lisp">defaults.lisp</a>. The output data format is normally
-16-bit signed (2's complement) integer; the default is set by
-<a href="#*clm-data-format*">*clm-data-format*</a>.
-CLM can read most standard headers, and can read and write most uncompressed
-data formats.</p>
-
-<table border=0 hspace=20>
-<tr><td bgcolor="#EEFDEE">read/write (many data formats)</td></tr>
-<tr><td>
-<pre>
- NeXT/Sun/DEC/AFsp
- AIFF/AIFC
- RIFF (Microsoft wave)
- RF64
- IRCAM (old style)
- NIST-sphere
- CAFF
- no header ("raw")
-</pre>
-</td></tr>
-<tr><td><br></td></tr>
-<tr><td bgcolor="#EEFDEE">read-only (in selected data formats)</td></tr>
-<tr><td>
-<pre>
- 8SVX (IFF), EBICSF, INRS, ESPS, SPPACK, ADC (OGI), AVR, VOC, PVF, NVF,
- Sound Tools, Turtle Beach SMP, SoundFont 2.0, Sound Designer I, PSION, MAUD, Kurzweil 2000,
- Gravis Ultrasound, ASF, PAF, CSL, Comdisco SPW, Goldwave sample, omf, quicktime, sox,
- Sonic Foundry, SBStudio II, Delusion digital, Digiplayer ST3, Farandole Composer WaveSample,
- Ultratracker WaveSample, Sample Dump exchange, Yamaha SY85, SY99, and TX16, Covox v8, AVI,
- Impulse tracker, Korg, Akai, Turtle Beach, Matlab-5
-</pre>
-</td></tr>
-<tr><td><br></td></tr>
-<tr><td bgcolor="#EEFDEE">automatically translated to a readable format</td></tr>
-<tr><td>
-<pre>
- IEEE text, Mus10, SAM 16-bit (modes 1 and 4), AVI, NIST shortpack, HCOM, Intel,
- IBM, and Oki (Dialogic) ADPCM, G721, G723_24, G723_40, MIDI sample dump, Ogg, Speex,
- Flac, Midi, Mpeg, Shorten, Wavepack, tta (via external programs)
-</pre>
-</td></tr></table>
-
-<p>I am willing to add almost anything to this list.
-See <a href="headers.c">headers.c</a> for all the gory details. In
-<a href="#with-sound">with-sound</a>, you can set the output header type with
-the keyword :header-type, and the data type with the :data-format keyword.</p>
-
-<p>The CLM names for the output header types, as used with the :header-type argument to with-sound, are
-<a name="mus-aiff">mus-aiff</a>, <a name="mus-aifc">mus-aifc</a>, <a name="mus-next">mus-next</a>,
-<a name="mus-riff">mus-riff</a>, <a name="mus-rf64">mus-rf64</a>, and <a name="mus-ircam">mus-ircam</a>.
-The data-formats
-that are exported from the clm package are <a name="mus-bshort">mus-bshort</a>, mus-lshort, mus-bint, mus-lint,
-mus-bfloat, mus-lfloat, mus-mulaw, mus-alaw, mus-byte, mus-ubyte, mus-b24int, mus-l24int, mus-bdouble,
-and mus-ldouble. The "b" stands for big-endian, "l" for little-endian, "u" for unsigned.
-The other header and data format possibilities are listed in initmus.lisp.</p>
-
-<A NAME="raw-data"></a>
-<!-- INDEX raw-data:raw data -->
-<p>If you are trying to read raw (no header) sound files, CLM's default settings for
-the sampling rate, channels, and data format are 44100, 2, and mus-bshort
-respectively. To change these, call (<a name="mus-set-raw-header-defaults">mus-set-raw-header-defaults</a> srate chans format):
-</p>
-<pre>
-(<a class=quiet href="#mus-set-raw-header-defaults">mus-set-raw-header-defaults</a> 8012 1 mus-mulaw)
-(<a class=quiet href="#open-input">open-input</a> "raw.snd")
-</pre>
-<p>treats "raw.snd" as mono &micro;law data at 8012 Hz.</p>
-
-<br>
-
-
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="clm-init.lisp">clm-init.lisp</a></h3></td></tr></table>
-
-<!-- INDEX clm-init.lisp:CLM Initialization -->
-
-<p>If the file clm-init.lisp exists in the same directory as <a href="all.lisp">all.lisp,</a> or
-if you set the clm variable *clm-init* to point to some file, then CLM
-loads that file upon initialization.
-Here is my clm-init.lisp:</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(compile-and-load "v")
-(compile-and-load "jcrev")
-;;; my two favorite instruments
-
-(setf (volume) 1.0)
-;;; dac output volume
-
-(setf *clm-search-list*
- (append *clm-search-list*
- (list "/home/bil/cl/oboe.snd"
- "/home/bil/test/sounds/test.snd")))
-;;; these are my standard sound file directories &mdash; by including
-;;; these in the search list I don't need to remember where each
-;;; file happens to be. The file names are just fillers &mdash;
-;;; the important part of the path is the directory.
-</pre>
-</td></tr></table>
-<br>
-
-
-
-<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="savedimages">About CLM in saved images</a></h3></td></tr></table>
-
-<!-- INDEX savedimages:saved images -->
-
-<p>Many lisps have some mechanism to dump the current lisp image as an
-executable file. In ACL or MCL, some of CLM's state at run-time is handled in C-based
-foreign-function modules that are opaque to Lisp, so there are cases where the naive use
-of dumplisp (acl), or save-application (mcl)
-can fail with a segmentation fault or some other equally
-un-informative error message. This should only be a problem when the saved image
-has called clm-initialize-links (within with-sound or dac or some such function);
-if you build a clm image and immediately save it, everything
-should work without problem. Once clm-initialize-links has been called,
-the C modules assume they have been initialized; if code in the saved version of
-a module is then executed, the un-initialized variables may be accessed.
-To get around this problem, call
-<a class=def Name="restart-clm">restart-clm</a> before doing anything in the newly executed image.
-</p>
-<br>
-
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h1><A NAME="clmindex">Index</a></h1></td></tr></table>
-</td></tr></table>
-
-<br>
-
-<!-- created 21-Jan-09 -->
-<table cellspacing=0 cellpadding=1>
- <tr><td><em class=tab><a href="#add-mark">add-mark</a></em></td><td width=20></td><td><em class=tab><a href="#envelopetocoeffs">envelope-&gt;coeffs</a></em></td><td width=20></td><td><em class=tab><a href="#make-locsig">make-locsig</a></em></td><td width=20></td><td><em class=tab><a href="#mus-ramp">mus-ramp</a></em></td><td width=20></td><td><em class=tab><a href="#run*">run*</a></em></td></tr>
- <tr><td><em class=tab><a href="#add-region">add-region</a></em></td><td></td><td><em class=tab><a href="#envelope-exp">envelope-exp</a></em></td><td></td><td><em class=tab><a href="#make-mixer">make-mixer</a></em></td><td></td><td><em class=tab><a href="#mus-random">mus-random</a></em></td><td></td><td><em class=tab><a href="#lisp-functions"><b>Run support for Lisp</b></a></em></td></tr>
- <tr><td><em class=tab><a href="#all-pass">all-pass</a></em></td><td></td><td><em class=tab><a href="#envelope-interp">envelope-interp</a></em></td><td></td><td><em class=tab><a href="#make-move-sound">make-move-sound</a></em></td><td></td><td><em class=tab><a href="#mus-reset">mus-reset</a></em></td><td></td><td><em class=tab><a href="#sampletofile">sample-&gt;file</a></em></td></tr>
- <tr><td><em class=tab><a href="#all-pass?">all-pass?</a></em></td><td></td><td><em class=tab><a href="#envelopes"><b>Envelopes</b></a></em></td><td></td><td><em class=tab><a href="#make-moving-average">make-moving-average</a></em></td><td></td><td><em class=tab><a href="#mus-rf64">mus-rf64</a></em></td><td></td><td><em class=tab><a href="#sampletofile?">sample-&gt;file?</a></em></td></tr>
- <tr><td><em class=tab><a href="#amplitude-modulate">amplitude-modulate</a></em></td><td></td><td><em class=tab><a href="#fft">fft</a></em></td><td></td><td><em class=tab><a href="#make-ncos">make-ncos</a></em></td><td></td><td><em class=tab><a href="#mus-riff">mus-riff</a></em></td><td></td><td><em class=tab><a href="#sampletoframe">sample-&gt;frame</a></em></td></tr>
- <tr><td><em class=tab><a href="#arraytofile">array-&gt;file</a></em></td><td></td><td><em class=tab><a href="#filetoarray">file-&gt;array</a></em></td><td></td><td><em class=tab><a href="#make-notch">make-notch</a></em></td><td></td><td><em class=tab><a href="#mus-run">mus-run</a></em></td><td></td><td><em class=tab><a href="#samplestoseconds">samples-&gt;seconds</a></em></td></tr>
- <tr><td><em class=tab><a href="#array-interp">array-interp</a></em></td><td></td><td><em class=tab><a href="#filetoframe">file-&gt;frame</a></em></td><td></td><td><em class=tab><a href="#make-nrxycos">make-nrxycos</a></em></td><td></td><td><em class=tab><a href="#mus-scaler">mus-scaler</a></em></td><td></td><td><em class=tab><a href="#make-src"><b>sampling-rate conversion</b></a></em></td></tr>
- <tr><td><em class=tab><a href="#asymmetric-fm">asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="#filetoframe?">file-&gt;frame?</a></em></td><td></td><td><em class=tab><a href="#make-nrxysin">make-nrxysin</a></em></td><td></td><td><em class=tab><a href="#mus-set-rand-seed">mus-set-rand-seed</a></em></td><td></td><td><em class=tab><a href="#savedimages"><b>saved images</b></a></em></td></tr>
- <tr><td><em class=tab><a href="#asymmetric-fm?">asymmetric-fm?</a></em></td><td></td><td><em class=tab><a href="#filetosample">file-&gt;sample</a></em></td><td></td><td><em class=tab><a href="#make-nsin">make-nsin</a></em></td><td></td><td><em class=tab><a href="#mus-set-raw-header-defaults">mus-set-raw-header-defaults</a></em></td><td></td><td><em class=tab><a href="#sawtooth-wave">sawtooth-wave</a></em></td></tr>
- <tr><td><em class=tab><a href="#autocorrelate">autocorrelate</a></em></td><td></td><td><em class=tab><a href="#filetosample?">file-&gt;sample?</a></em></td><td></td><td><em class=tab><a href="#make-one-pole">make-one-pole</a></em></td><td></td><td><em class=tab><a href="#mussrate">mus-srate</a></em></td><td></td><td><em class=tab><a href="#sawtooth-wave?">sawtooth-wave?</a></em></td></tr>
- <tr><td><em class=tab><a href="#mix-and-with-mix"><b>Checkpoints</b></a></em></td><td></td><td><em class=tab><a href="#filter">filter</a></em></td><td></td><td><em class=tab><a href="#make-one-zero">make-one-zero</a></em></td><td></td><td><em class=tab><a href="#mus-width">mus-width</a></em></td><td></td><td><em class=tab><a href="#scale-envelope">scale-envelope</a></em></td></tr>
- <tr><td><em class=tab><a href="#clear-array">clear-array</a></em></td><td></td><td><em class=tab><a href="#filter?">filter?</a></em></td><td></td><td><em class=tab><a href="#make-oscil">make-oscil</a></em></td><td></td><td><em class=tab><a href="#mus-xcoeff">mus-xcoeff</a></em></td><td></td><td><em class=tab><a href="#secondstosamples">seconds-&gt;samples</a></em></td></tr>
- <tr><td><em class=tab><a href="#clm-init.lisp"><b>CLM Initialization </b></a></em></td><td></td><td><em class=tab><a href="#filtered-comb">filtered-comb</a></em></td><td></td><td><em class=tab><a href="#make-phase-vocoder">make-phase-vocoder</a></em></td><td></td><td><em class=tab><a href="#mus-xcoeffs">mus-xcoeffs</a></em></td><td></td><td><em class=tab><a href="#send-and-receive-snd">send-and-receive-snd</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-array-print-length*">*clm-array-print-length*</a></em></td><td></td><td><em class=tab><a href="#filtered-comb?">filtered-comb?</a></em></td><td></td><td><em class=tab><a href="#make-polyshape">make-polyshape</a></em></td><td></td><td><em class=tab><a href="#mus-ycoeff">mus-ycoeff</a></em></td><td></td><td><em class=tab><a href="#send-snd">send-snd</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-channels*">*clm-channels*</a></em></td><td></td><td><em class=tab><a href="#filters"><b>Filters</b></a></em></td><td></td><td><em class=tab><a href="#make-polywave">make-polywave</a></em></td><td></td><td><em class=tab><a href="#mus-ycoeffs">mus-ycoeffs</a></em></td><td></td><td><em class=tab><a href="#sldac">sl-dac</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-clipped*">*clm-clipped*</a></em></td><td></td><td><em class=tab><a href="#fir-filter">fir-filter</a></em></td><td></td><td><em class=tab><a href="#make-pulse-train">make-pulse-train</a></em></td><td></td><td><em class=tab><a href="#ncos">ncos</a></em></td><td></td><td><em class=tab><a href="#snd-cleanup">snd-cleanup</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-dac-wait-default*">*clm-dac-wait-default*</a></em></td><td></td><td><em class=tab><a href="#fir-filter?">fir-filter?</a></em></td><td></td><td><em class=tab><a href="#make-rand">make-rand</a></em></td><td></td><td><em class=tab><a href="#ncos?">ncos?</a></em></td><td></td><td><em class=tab><a href="#snd-edit">snd-edit</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-data-format*">*clm-data-format*</a></em></td><td></td><td><em class=tab><a href="#firmant">firmant</a></em></td><td></td><td><em class=tab><a href="#make-rand-interp">make-rand-interp</a></em></td><td></td><td><em class=tab><a href="#normalize-envelope">normalize-envelope</a></em></td><td></td><td><em class=tab><a href="#snd-edit-sound">snd-edit-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-date*">*clm-date*</a></em></td><td></td><td><em class=tab><a href="#firmant?">firmant?</a></em></td><td></td><td><em class=tab><a href="#make-readin">make-readin</a></em></td><td></td><td><em class=tab><a href="#notch">notch</a></em></td><td></td><td><em class=tab><a href="#sndenv">snd-envelope</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-default-frequency*">*clm-default-frequency*</a></em></td><td></td><td><em class=tab><a href="#formant">formant</a></em></td><td></td><td><em class=tab><a href="#make-sampletofile">make-sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="#notch?">notch?</a></em></td><td></td><td><em class=tab><a href="#snd-memo">snd-memo</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-delete-reverb*">*clm-delete-reverb*</a></em></td><td></td><td><em class=tab><a href="#formant?">formant?</a></em></td><td></td><td><em class=tab><a href="#make-sawtooth-wave">make-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="#note-lists"><b>Note lists </b></a></em></td><td></td><td><em class=tab><a href="#snd-region">snd-region</a></em></td></tr>
- <tr><td><em class=tab><a href="#clmenv">clm-envelope</a></em></td><td></td><td><em class=tab><a href="#fft"><b>Fourier transforms </b></a></em></td><td></td><td><em class=tab><a href="#make-scalar-mixer">make-scalar-mixer</a></em></td><td></td><td><em class=tab><a href="#notehook">notehook</a></em></td><td></td><td><em class=tab><a href="#snd-sound">snd-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-file-buffer-size*">*clm-file-buffer-size*</a></em></td><td></td><td><em class=tab><a href="#frame*">frame*</a></em></td><td></td><td><em class=tab><a href="#make-square-wave">make-square-wave</a></em></td><td></td><td><em class=tab><a href="#nrxycos">nrxycos</a></em></td><td></td><td><em class=tab><a href="#header-types"><b>Sound file formats </b></a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-file-name*">*clm-file-name*</a></em></td><td></td><td><em class=tab><a href="#frame+">frame+</a></em></td><td></td><td><em class=tab><a href="#make-src">make-src</a></em></td><td></td><td><em class=tab><a href="#nrxycos?">nrxycos?</a></em></td><td></td><td><em class=tab><a href="#open-input"><b>Sound file IO</b></a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-header-type*">*clm-header-type*</a></em></td><td></td><td><em class=tab><a href="#frametofile">frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="#make-ssb-am">make-ssb-am</a></em></td><td></td><td><em class=tab><a href="#nrxysin">nrxysin</a></em></td><td></td><td><em class=tab><a href="#make-locsig"><b>Sound placement</b></a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-init*">*clm-init*</a></em></td><td></td><td><em class=tab><a href="#frametofile?">frame-&gt;file?</a></em></td><td></td><td><em class=tab><a href="#make-table-lookup">make-table-lookup</a></em></td><td></td><td><em class=tab><a href="#nrxysin?">nrxysin?</a></em></td><td></td><td><em class=tab><a href="#sound-chans">sound-chans</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-instruments*">*clm-instruments*</a></em></td><td></td><td><em class=tab><a href="#frametoframe">frame-&gt;frame</a></em></td><td></td><td><em class=tab><a href="#make-triangle-wave">make-triangle-wave</a></em></td><td></td><td><em class=tab><a href="#nsin">nsin</a></em></td><td></td><td><em class=tab><a href="#sound-data-format">sound-data-format</a></em></td></tr>
- <tr><td><em class=tab><a href="#clm-load">clm-load</a></em></td><td></td><td><em class=tab><a href="#frametolist">frame-&gt;list</a></em></td><td></td><td><em class=tab><a href="#make-two-pole">make-two-pole</a></em></td><td></td><td><em class=tab><a href="#nsin?">nsin?</a></em></td><td></td><td><em class=tab><a href="#sound-data-location">sound-data-location</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-locsig-type*">*clm-locsig-type*</a></em></td><td></td><td><em class=tab><a href="#frametosample">frame-&gt;sample</a></em></td><td></td><td><em class=tab><a href="#make-two-zero">make-two-zero</a></em></td><td></td><td><em class=tab><a href="#one-pole">one-pole</a></em></td><td></td><td><em class=tab><a href="#sound-datum-size">sound-datum-size</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-news*">*clm-news*</a></em></td><td></td><td><em class=tab><a href="#frame-ref">frame-ref</a></em></td><td></td><td><em class=tab><a href="#make-wave-train">make-wave-train</a></em></td><td></td><td><em class=tab><a href="#one-pole?">one-pole?</a></em></td><td></td><td><em class=tab><a href="#sound-duration">sound-duration</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-notehook*">*clm-notehook*</a></em></td><td></td><td><em class=tab><a href="#frame-set!">frame-set!</a></em></td><td></td><td><em class=tab><a href="#mix">mix</a></em></td><td></td><td><em class=tab><a href="#one-zero">one-zero</a></em></td><td></td><td><em class=tab><a href="#sound-frames">sound-frames</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-play*">*clm-play*</a></em></td><td></td><td><em class=tab><a href="#frame?">frame?</a></em></td><td></td><td><em class=tab><a href="#mixermultiply">mixer*</a></em></td><td></td><td><em class=tab><a href="#one-zero?">one-zero?</a></em></td><td></td><td><em class=tab><a href="#sound-header-type">sound-header-type</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-player*">*clm-player*</a></em></td><td></td><td><em class=tab><a href="#generators"><b>Generators</b></a></em></td><td></td><td><em class=tab><a href="#mixeradd">mixer+</a></em></td><td></td><td><em class=tab><a href="#open-input">open-input</a></em></td><td></td><td><em class=tab><a href="#sound-length">sound-length</a></em></td></tr>
- <tr><td><em class=tab><a href="#clm-print">clm-print</a></em></td><td></td><td><em class=tab><a href="#grains"><b>Granular synthesis</b></a></em></td><td></td><td><em class=tab><a href="#mixer-ref">mixer-ref</a></em></td><td></td><td><em class=tab><a href="#open-input*">open-input*</a></em></td><td></td><td><em class=tab><a href="#sound-let">sound-let</a></em></td></tr>
- <tr><td><em class=tab><a href="#clm-random">clm-random</a></em></td><td></td><td><em class=tab><a href="#granulate">granulate</a></em></td><td></td><td><em class=tab><a href="#mixer-set!">mixer-set!</a></em></td><td></td><td><em class=tab><a href="#*open-input-pathname*">*open-input-pathname*</a></em></td><td></td><td><em class=tab><a href="#sound-loop-info">sound-loop-info</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-reverb-channels*">*clm-reverb-channels*</a></em></td><td></td><td><em class=tab><a href="#granulate?">granulate?</a></em></td><td></td><td><em class=tab><a href="#mixer?">mixer?</a></em></td><td></td><td><em class=tab><a href="#*open-input-truename*">*open-input-truename*</a></em></td><td></td><td><em class=tab><a href="#sound-maxamp">sound-maxamp</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-safety*">*clm-safety*</a></em></td><td></td><td><em class=tab><a href="#header-types"><b>Headers </b></a></em></td><td></td><td><em class=tab><a href="#move-locsig">move-locsig</a></em></td><td></td><td><em class=tab><a href="#*open-input-verbose*">*open-input-verbose*</a></em></td><td></td><td><em class=tab><a href="#sound-samples">sound-samples</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-search-list*">*clm-search-list*</a></em></td><td></td><td><em class=tab><a href="#hztoradians">hz-&gt;radians</a></em></td><td></td><td><em class=tab><a href="#move-sound">move-sound</a></em></td><td></td><td><em class=tab><a href="#optional-key">optional-key</a></em></td><td></td><td><em class=tab><a href="#sound-srate">sound-srate</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-srate*">*clm-srate*</a></em></td><td></td><td><em class=tab><a href="#iir-filter">iir-filter</a></em></td><td></td><td><em class=tab><a href="#move-sound?">move-sound?</a></em></td><td></td><td><em class=tab><a href="#oscil">oscil</a></em></td><td></td><td><em class=tab><a href="#spectrum">spectrum</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-statistics*">*clm-statistics*</a></em></td><td></td><td><em class=tab><a href="#iir-filter?">iir-filter?</a></em></td><td></td><td><em class=tab><a href="#moving-average">moving-average</a></em></td><td></td><td><em class=tab><a href="#oscil?">oscil?</a></em></td><td></td><td><em class=tab><a href="#square-wave">square-wave</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-table-size*">*clm-table-size*</a></em></td><td></td><td><em class=tab><a href="#in-any">in-any</a></em></td><td></td><td><em class=tab><a href="#moving-average?">moving-average?</a></em></td><td></td><td><em class=tab><a href="#out-any">out-any</a></em></td><td></td><td><em class=tab><a href="#square-wave?">square-wave?</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-tempfile-data-format*">*clm-tempfile-data-format*</a></em></td><td></td><td><em class=tab><a href="#ina-outa"><b>Input and output</b></a></em></td><td></td><td><em class=tab><a href="#multiply-arrays">multiply-arrays</a></em></td><td></td><td><em class=tab><a href="#*output*">*output*</a></em></td><td></td><td><em class=tab><a href="#src">src</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-tempfile-header-type*">*clm-tempfile-header-type*</a></em></td><td></td><td><em class=tab><a href="#ins-files"><b>Instruments</b></a></em></td><td></td><td><em class=tab><a href="#mus-aifc">mus-aifc</a></em></td><td></td><td><em class=tab><a href="#partialstopolynomial">partials-&gt;polynomial</a></em></td><td></td><td><em class=tab><a href="#src?">src?</a></em></td></tr>
- <tr><td><em class=tab><a href="#*clm-version*">*clm-version*</a></em></td><td></td><td><em class=tab><a href="#lineartodb">linear-&gt;db</a></em></td><td></td><td><em class=tab><a href="#mus-aiff">mus-aiff</a></em></td><td></td><td><em class=tab><a href="#partialstowave">partials-&gt;wave</a></em></td><td></td><td><em class=tab><a href="#ssb-am">ssb-am</a></em></td></tr>
- <tr><td><em class=tab><a href="#close-input">close-input</a></em></td><td></td><td><em class=tab><a href="#locsig">locsig</a></em></td><td></td><td><em class=tab><a href="#musarrayprintlength">mus-array-print-length</a></em></td><td></td><td><em class=tab><a href="#phase-partialstowave">phase-partials-&gt;wave</a></em></td><td></td><td><em class=tab><a href="#ssb-am?">ssb-am?</a></em></td></tr>
- <tr><td><em class=tab><a href="#comb">comb</a></em></td><td></td><td><em class=tab><a href="#locsig-ref">locsig-ref</a></em></td><td></td><td><em class=tab><a href="#mus-bshort">mus-bshort</a></em></td><td></td><td><em class=tab><a href="#phase-vocoder">phase-vocoder</a></em></td><td></td><td><em class=tab><a href="#start-snd">start-snd</a></em></td></tr>
- <tr><td><em class=tab><a href="#comb?">comb?</a></em></td><td></td><td><em class=tab><a href="#locsig-reverb-ref">locsig-reverb-ref</a></em></td><td></td><td><em class=tab><a href="#mus-channel">mus-channel</a></em></td><td></td><td><em class=tab><a href="#phase-vocoder?">phase-vocoder?</a></em></td><td></td><td><em class=tab><a href="#stop-dac">stop-dac</a></em></td></tr>
- <tr><td><em class=tab><a href="#continue-frametofile">continue-frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="#locsig-reverb-set!">locsig-reverb-set!</a></em></td><td></td><td><em class=tab><a href="#mus-channels">mus-channels</a></em></td><td></td><td><em class=tab><a href="#polartorectangular">polar-&gt;rectangular</a></em></td><td></td><td><em class=tab><a href="#stretch-envelope">stretch-envelope</a></em></td></tr>
- <tr><td><em class=tab><a href="#continue-sampletofile">continue-sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="#locsig-set!">locsig-set!</a></em></td><td></td><td><em class=tab><a href="#mus-close">mus-close</a></em></td><td></td><td><em class=tab><a href="#polynomial">polynomial</a></em></td><td></td><td><em class=tab><a href="#table-lookup">table-lookup</a></em></td></tr>
- <tr><td><em class=tab><a href="#contrast-enhancement">contrast-enhancement</a></em></td><td></td><td><em class=tab><a href="#locsig-type">locsig-type</a></em></td><td></td><td><em class=tab><a href="#mus-data">mus-data</a></em></td><td></td><td><em class=tab><a href="#polyshape">polyshape</a></em></td><td></td><td><em class=tab><a href="#table-lookup?">table-lookup?</a></em></td></tr>
- <tr><td><em class=tab><a href="#convolution">convolution</a></em></td><td></td><td><em class=tab><a href="#locsig?">locsig?</a></em></td><td></td><td><em class=tab><a href="#mus-describe">mus-describe</a></em></td><td></td><td><em class=tab><a href="#polyshape?">polyshape?</a></em></td><td></td><td><em class=tab><a href="#tap">tap</a></em></td></tr>
- <tr><td><em class=tab><a href="#convolve">convolve</a></em></td><td></td><td><em class=tab><a href="#make-all-pass">make-all-pass</a></em></td><td></td><td><em class=tab><a href="#mus-feedback">mus-feedback</a></em></td><td></td><td><em class=tab><a href="#polywave">polywave</a></em></td><td></td><td><em class=tab><a href="#timestosamples">times-&gt;samples</a></em></td></tr>
- <tr><td><em class=tab><a href="#convolvefiles">convolve-files</a></em></td><td></td><td><em class=tab><a href="#make-asymmetric-fm">make-asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="#mus-feedforward">mus-feedforward</a></em></td><td></td><td><em class=tab><a href="#polywave?">polywave?</a></em></td><td></td><td><em class=tab><a href="#to-snd">to-snd</a></em></td></tr>
- <tr><td><em class=tab><a href="#convolve?">convolve?</a></em></td><td></td><td><em class=tab><a href="#make-comb">make-comb</a></em></td><td></td><td><em class=tab><a href="#musfilebuffersize">mus-file-buffer-size</a></em></td><td></td><td><em class=tab><a href="#pulse-train">pulse-train</a></em></td><td></td><td><em class=tab><a href="#triangle-wave">triangle-wave</a></em></td></tr>
- <tr><td><em class=tab><a href="#correlate">correlate</a></em></td><td></td><td><em class=tab><a href="#make-convolve">make-convolve</a></em></td><td></td><td><em class=tab><a href="#mus-file-name">mus-file-name</a></em></td><td></td><td><em class=tab><a href="#pulse-train?">pulse-train?</a></em></td><td></td><td><em class=tab><a href="#triangle-wave?">triangle-wave?</a></em></td></tr>
- <tr><td><em class=tab><a href="#cross-synthesis"><b>cross synthesis</b></a></em></td><td></td><td><em class=tab><a href="#make-delay">make-delay</a></em></td><td></td><td><em class=tab><a href="#musfloatequalfudgefactor">mus-float-equal-fudge-factor</a></em></td><td></td><td><em class=tab><a href="#radianstodegrees">radians-&gt;degrees</a></em></td><td></td><td><em class=tab><a href="#two-pi">two-pi</a></em></td></tr>
- <tr><td><em class=tab><a href="#dac">dac</a></em></td><td></td><td><em class=tab><a href="#make-env">make-env</a></em></td><td></td><td><em class=tab><a href="#mus-frequency">mus-frequency</a></em></td><td></td><td><em class=tab><a href="#radianstohz">radians-&gt;hz</a></em></td><td></td><td><em class=tab><a href="#two-pole">two-pole</a></em></td></tr>
- <tr><td><em class=tab><a href="#header-types"><b>Data formats </b></a></em></td><td></td><td><em class=tab><a href="#make-fft-window">make-fft-window</a></em></td><td></td><td><em class=tab><a href="#mus-hop">mus-hop</a></em></td><td></td><td><em class=tab><a href="#rand">rand</a></em></td><td></td><td><em class=tab><a href="#two-pole?">two-pole?</a></em></td></tr>
- <tr><td><em class=tab><a href="#dbtolinear">db-&gt;linear</a></em></td><td></td><td><em class=tab><a href="#make-filetoframe">make-file-&gt;frame</a></em></td><td></td><td><em class=tab><a href="#mus-increment">mus-increment</a></em></td><td></td><td><em class=tab><a href="#rand-interp">rand-interp</a></em></td><td></td><td><em class=tab><a href="#two-zero">two-zero</a></em></td></tr>
- <tr><td><em class=tab><a href="#debugging-aids"><b>Debugging </b></a></em></td><td></td><td><em class=tab><a href="#make-filetosample">make-file-&gt;sample</a></em></td><td></td><td><em class=tab><a href="#mus-input?">mus-input?</a></em></td><td></td><td><em class=tab><a href="#rand-interp?">rand-interp?</a></em></td><td></td><td><em class=tab><a href="#two-zero?">two-zero?</a></em></td></tr>
- <tr><td><em class=tab><a href="#def-clm-struct">def-clm-struct</a></em></td><td></td><td><em class=tab><a href="#make-filter">make-filter</a></em></td><td></td><td><em class=tab><a href="#mus-interp-type">mus-interp-type</a></em></td><td></td><td><em class=tab><a href="#rand?">rand?</a></em></td><td></td><td><em class=tab><a href="#volume">volume</a></em></td></tr>
- <tr><td><em class=tab><a href="#definstrument">definstrument</a></em></td><td></td><td><em class=tab><a href="#make-filtered-comb">make-filtered-comb</a></em></td><td></td><td><em class=tab><a href="#mus-interpolate">mus-interpolate</a></em></td><td></td><td><em class=tab><a href="#randomnumbers"><b>Random Numbers</b></a></em></td><td></td><td><em class=tab><a href="#wave-train">wave-train</a></em></td></tr>
- <tr><td><em class=tab><a href="#degreestoradians">degrees-&gt;radians</a></em></td><td></td><td><em class=tab><a href="#makefircoeffs">make-fir-coeffs</a></em></td><td></td><td><em class=tab><a href="#mus-ircam">mus-ircam</a></em></td><td></td><td><em class=tab><a href="#raw-data"><b>raw data </b></a></em></td><td></td><td><em class=tab><a href="#wave-train?">wave-train?</a></em></td></tr>
- <tr><td><em class=tab><a href="#delay">delay</a></em></td><td></td><td><em class=tab><a href="#make-fir-filter">make-fir-filter</a></em></td><td></td><td><em class=tab><a href="#mus-length">mus-length</a></em></td><td></td><td><em class=tab><a href="#readin">readin</a></em></td><td></td><td><em class=tab><a href="#window-envelope">window-envelope</a></em></td></tr>
- <tr><td><em class=tab><a href="#delaytick">delay-tick</a></em></td><td></td><td><em class=tab><a href="#make-firmant">make-firmant</a></em></td><td></td><td><em class=tab><a href="#mus-location">mus-location</a></em></td><td></td><td><em class=tab><a href="#readin?">readin?</a></em></td><td></td><td><em class=tab><a href="#with-mix">with-mix</a></em></td></tr>
- <tr><td><em class=tab><a href="#delay?">delay?</a></em></td><td></td><td><em class=tab><a href="#make-formant">make-formant</a></em></td><td></td><td><em class=tab><a href="#mus-name">mus-name</a></em></td><td></td><td><em class=tab><a href="#receive-snd">receive-snd</a></em></td><td></td><td><em class=tab><a href="#with-offset">with-offset</a></em></td></tr>
- <tr><td><em class=tab><a href="#dot-product">dot-product</a></em></td><td></td><td><em class=tab><a href="#make-frame">make-frame</a></em></td><td></td><td><em class=tab><a href="#mus-next">mus-next</a></em></td><td></td><td><em class=tab><a href="#rectangulartopolar">rectangular-&gt;polar</a></em></td><td></td><td><em class=tab><a href="#with-sound">with-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="#edot-product">edot-product</a></em></td><td></td><td><em class=tab><a href="#make-frametofile">make-frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="#mus-offset">mus-offset</a></em></td><td></td><td><em class=tab><a href="#restart-clm">restart-clm</a></em></td><td></td><td><em class=tab><a href="#with-threaded-sound">with-threaded-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="#env">env</a></em></td><td></td><td><em class=tab><a href="#make-granulate">make-granulate</a></em></td><td></td><td><em class=tab><a href="#mus-order">mus-order</a></em></td><td></td><td><em class=tab><a href="#*reverb*">*reverb*</a></em></td><td></td>
-</tr>
- <tr><td><em class=tab><a href="#env-interp">env-interp</a></em></td><td></td><td><em class=tab><a href="#make-identity-mixer">make-identity-mixer</a></em></td><td></td><td><em class=tab><a href="#mus-output?">mus-output?</a></em></td><td></td><td><em class=tab><a href="#ring-modulate">ring-modulate</a></em></td><td></td>
-</tr>
- <tr><td><em class=tab><a href="#env?">env?</a></em></td><td></td><td><em class=tab><a href="#make-iir-filter">make-iir-filter</a></em></td><td></td><td><em class=tab><a href="#mus-phase">mus-phase</a></em></td><td></td><td><em class=tab><a href="#run">run</a></em></td><td></td>
-</tr>
-
-</table>
-
-
-<br><br>
-<center>
-<table bgcolor="aliceblue" border=0 cellspacing=8><tr>
-<td><small>related documentation:</small></td>
-<td><small><a href="snd.html" onmouseout="UnTip()" onmouseover="Tip('basic Snd user-interface documentation')">snd.html</a></small></td>
-<td><small><a href="extsnd.html" onmouseout="UnTip()" onmouseover="Tip('Snd extension and customization')">extsnd.html</a></small></td>
-<td><small><a href="grfsnd.html" onmouseout="UnTip()" onmouseover="Tip('Snd configuration, connection to other libraries and programs')">grfsnd.html</a></small></td>
-<td><small><a href="sndscm.html" onmouseout="UnTip()" onmouseover="Tip('Scheme, Ruby, and Forth files included with Snd')">sndscm.html</a></small></td>
-<td><small><a href="sndclm.html" onmouseout="UnTip()" onmouseover="Tip('CLM in Snd')">sndclm.html</a></small></td>
-<td><small><a href="sndlib.html" onmouseout="UnTip()" onmouseover="Tip('library that handles sound files')">sndlib.html</a></small></td>
-<td><small><a href="libxm.html" onmouseout="UnTip()" onmouseover="Tip('library that ties Motif and Gtk into Snd')">libxm.html</a></small></td>
-<td><small><a href="cl-fm.html" onmouseout="UnTip()" onmouseover="Tip('introduction to frequency modulation')">cl-fm.html</a></small></td>
-</tr></table>
-</center>
-
-</body></html>
diff --git a/clm.rb b/clm.rb
index 78d03dd..63cec3e 100644
--- a/clm.rb
+++ b/clm.rb
@@ -2,7 +2,7 @@
# Author: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Wed Oct 14 23:02:57 CEST 2009
-# Changed: Thu Oct 15 00:29:48 CEST 2009
+# Changed: Wed Oct 28 22:37:22 CET 2009
# Commentary:
#
@@ -536,6 +536,23 @@ if provided? :snd
end
alias sine_summation nrxysin
alias sine_summation? nrxysin?
+
+ if provided?(:snd_nogui)
+ def x_bounds(*args)
+ []
+ end
+
+ def y_bounds(*args)
+ []
+ end
+ def set_x_bounds(bounds, *args)
+ bounds
+ end
+
+ def set_y_bounds(bounds, *args)
+ bounds
+ end
+ end
end
# enum("foo", :bar, "FOO_BAR")
diff --git a/clm2xen.c b/clm2xen.c
index 92dfa21..3d415b9 100644
--- a/clm2xen.c
+++ b/clm2xen.c
@@ -182,6 +182,17 @@ int mus_optkey_to_int(XEN key, const char *caller, int n, int def)
}
+bool mus_optkey_to_bool(XEN key, const char *caller, int n, bool def)
+{
+ if (!(XEN_KEYWORD_P(key)))
+ {
+ XEN_ASSERT_TYPE(XEN_BOOLEAN_P(key), key, n, caller, "#f or #t");
+ return(XEN_TO_C_BOOLEAN(key));
+ }
+ return(def);
+}
+
+
mus_long_t mus_optkey_to_mus_long_t(XEN key, const char *caller, int n, mus_long_t def)
{
if (!(XEN_KEYWORD_P(key)))
@@ -204,7 +215,7 @@ const char *mus_optkey_to_string(XEN key, const char *caller, int n, char *def)
}
-vct *mus_optkey_to_vct(XEN key, const char *caller, int n, vct *def)
+static vct *mus_optkey_to_vct(XEN key, const char *caller, int n, vct *def)
{
if ((!(XEN_KEYWORD_P(key))) && (!(XEN_FALSE_P(key))))
{
@@ -231,7 +242,7 @@ static bool local_arity_ok(XEN proc, int args) /* from snd-xen.c minus (inconven
return(rargs == args);
#endif
-#if HAVE_GUILE || HAVE_S7
+#if HAVE_SCHEME
{
int oargs, restargs;
rargs = XEN_TO_C_INT(XEN_CAR(arity));
@@ -1013,7 +1024,7 @@ static XEN g_mus_generator_p(XEN obj)
if (MUS_XEN_P(obj)) return(XEN_TRUE);
-#if HAVE_GUILE || HAVE_FORTH || HAVE_S7
+#if HAVE_SCHEME || HAVE_FORTH
/* defgenerator defines "mus-name", and I can't see why a non-generator would include it in def-clm-struct, so... */
if ((XEN_LIST_P(obj)) &&
(XEN_LIST_LENGTH(obj) > 1) &&
@@ -1330,7 +1341,7 @@ static mus_xen *mus_any_to_mus_xen_with_two_vcts(mus_any *ge, XEN v1, XEN v2)
static XEN call_get_method(XEN gen, const char *method_name)
{
-#if HAVE_GUILE || HAVE_FORTH || HAVE_S7
+#if HAVE_SCHEME || HAVE_FORTH
XEN pair;
pair = XEN_ASSOC(C_STRING_TO_XEN_SYMBOL(method_name),
XEN_LIST_REF(gen,
@@ -1349,7 +1360,7 @@ static XEN call_get_method(XEN gen, const char *method_name)
static XEN call_get_method_2(XEN gen, XEN arg, const char *method_name)
{
-#if HAVE_GUILE || HAVE_FORTH || HAVE_S7
+#if HAVE_SCHEME || HAVE_FORTH
XEN pair;
pair = XEN_ASSOC(C_STRING_TO_XEN_SYMBOL(method_name),
XEN_LIST_REF(gen,
@@ -1368,7 +1379,7 @@ static XEN call_get_method_2(XEN gen, XEN arg, const char *method_name)
static XEN call_get_method_3(XEN gen, XEN arg1, XEN arg2, const char *method_name)
{
-#if HAVE_GUILE || HAVE_FORTH || HAVE_S7
+#if HAVE_SCHEME || HAVE_FORTH
XEN pair;
pair = XEN_ASSOC(C_STRING_TO_XEN_SYMBOL(method_name),
XEN_LIST_REF(gen,
@@ -1387,7 +1398,7 @@ static XEN call_get_method_3(XEN gen, XEN arg1, XEN arg2, const char *method_nam
static XEN call_set_method(XEN gen, XEN value, const char *method_name)
{
-#if HAVE_GUILE || HAVE_FORTH || HAVE_S7
+#if HAVE_SCHEME || HAVE_FORTH
XEN pair;
pair = XEN_ASSOC(C_STRING_TO_XEN_SYMBOL(method_name),
XEN_LIST_REF(gen,
@@ -1421,7 +1432,7 @@ static XEN call_set_method(XEN gen, XEN value, const char *method_name)
static XEN call_set_method_2(XEN gen, XEN arg, XEN value, const char *method_name)
{
-#if HAVE_GUILE || HAVE_FORTH || HAVE_S7
+#if HAVE_SCHEME || HAVE_FORTH
XEN pair;
pair = XEN_ASSOC(C_STRING_TO_XEN_SYMBOL(method_name),
XEN_LIST_REF(gen,
@@ -5502,6 +5513,12 @@ static XEN g_in_any_1(const char *caller, XEN frame, XEN chan, XEN inp)
XEN_ASSERT_TYPE(false, inp, XEN_ARG_3, caller, "a procedure of 2 arguments: the sample number and the channel");
}
+ if (XEN_VECTOR_P(inp))
+ {
+ if (pos < XEN_VECTOR_LENGTH(inp))
+ return(XEN_VECTOR_REF(inp, pos)); /* TODO: doc/test vector in-any, and add chan arg if s7 and multidim vects */
+ }
+
return(C_TO_XEN_DOUBLE(0.0));
}
@@ -5601,6 +5618,13 @@ static XEN g_out_any_1(const char *caller, XEN frame, XEN chan, XEN val, XEN out
XEN_ASSERT_TYPE(false, outp, XEN_ARG_4, caller, "a procedure of 3 arguments: the sample number, the sample value, and the channel");
}
+ if (XEN_VECTOR_P(outp))
+ {
+ if (pos < XEN_VECTOR_LENGTH(outp))
+ XEN_VECTOR_SET(outp, pos, C_TO_XEN_DOUBLE(XEN_TO_C_DOUBLE(XEN_VECTOR_REF(outp, pos)) + inv));
+ /* TODO: doc/test out-any to vector + s7/multidim */
+ }
+
return(val);
}
@@ -5655,7 +5679,7 @@ static XEN g_mus_close(XEN ptr)
}
#endif
- XEN_ASSERT_TYPE(MUS_VCT_P(ptr) || XEN_FALSE_P(ptr) || sound_data_p(ptr) || XEN_PROCEDURE_P(ptr),
+ XEN_ASSERT_TYPE(MUS_VCT_P(ptr) || XEN_FALSE_P(ptr) || sound_data_p(ptr) || XEN_PROCEDURE_P(ptr) || XEN_VECTOR_P(ptr),
ptr, XEN_ONLY_ARG, S_mus_close, "an IO gen or its outa equivalent");
return(XEN_ZERO);
}
@@ -6415,7 +6439,7 @@ return a new generator for signal placement in n channels. Channel 0 correspond
{
if (XEN_PROCEDURE_P(keys3)) /* don't combine this with vct case above -- sound-data thinks it is a procedure */
ov = keys3;
- else XEN_ASSERT_TYPE(XEN_KEYWORD_P(keys[3]) || XEN_FALSE_P(keys[3]), keys[3], orig_arg[3], S_make_locsig, "an output gen, vct, sound-data object, or a function");
+ else XEN_ASSERT_TYPE(XEN_KEYWORD_P(keys[3]) || XEN_FALSE_P(keys[3]), keys[3], orig_arg[3], S_make_locsig, "an output gen, vct, vector, sound-data object, or a function");
}
}
}
diff --git a/clm2xen.h b/clm2xen.h
index b081538..2866306 100644
--- a/clm2xen.h
+++ b/clm2xen.h
@@ -34,9 +34,9 @@ MUS_EXPORT mus_any *mus_optkey_to_mus_any(XEN key, const char *caller, int n, mu
MUS_EXPORT int mus_optkey_unscramble(const char *caller, int nkeys, XEN *keys, XEN *args, int *orig);
MUS_EXPORT mus_float_t mus_optkey_to_float(XEN key, const char *caller, int n, mus_float_t def);
MUS_EXPORT int mus_optkey_to_int(XEN key, const char *caller, int n, int def);
+MUS_EXPORT bool mus_optkey_to_bool(XEN key, const char *caller, int n, bool def);
MUS_EXPORT mus_long_t mus_optkey_to_mus_long_t(XEN key, const char *caller, int n, mus_long_t def);
MUS_EXPORT const char *mus_optkey_to_string(XEN key, const char *caller, int n, char *def);
-MUS_EXPORT vct *mus_optkey_to_vct(XEN key, const char *caller, int n, vct *def);
MUS_EXPORT XEN mus_optkey_to_procedure(XEN key, const char *caller, int n, XEN def, int required_args, const char *err);
MUS_EXPORT mus_xen *mus_any_to_mus_xen(mus_any *ge);
MUS_EXPORT mus_float_t mus_locsig_or_move_sound_to_vct_or_sound_data(mus_xen *ms, mus_any *loc_gen, mus_long_t pos, mus_float_t fval, bool from_locsig);
diff --git a/configure b/configure
index 2161d8d..f1c5b67 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for snd 11.0.
+# Generated by GNU Autoconf 2.64 for snd 11.1.
#
# Report bugs to <bil@ccrma.stanford.edu>.
#
@@ -549,8 +549,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='snd'
PACKAGE_TARNAME='ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-11.tar.gz'
-PACKAGE_VERSION='11.0'
-PACKAGE_STRING='snd 11.0'
+PACKAGE_VERSION='11.1'
+PACKAGE_STRING='snd 11.1'
PACKAGE_BUGREPORT='bil@ccrma.stanford.edu'
PACKAGE_URL=''
@@ -767,6 +767,7 @@ with_fam
with_gmp
with_s7
with_extension_language
+with_directfb
with_sample_width
with_motif_prefix
with_temp_dir
@@ -1343,7 +1344,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures snd 11.0 to adapt to many kinds of systems.
+\`configure' configures snd 11.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1413,7 +1414,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of snd 11.0:";;
+ short | recursive ) echo "Configuration of snd 11.1:";;
esac
cat <<\_ACEOF
@@ -1427,7 +1428,7 @@ Optional Features:
--enable-snd-debug include internal Snd debugging functions
--disable-nls do not use Native Language Support
--disable-rpath do not hardcode runtime library paths
- --disable-deprecated do not include any deprecated stuff from gtk, guile, motif, clm, or sndlib
+ --disable-deprecated do not include any deprecated stuff from gtk, s7, motif, clm, or sndlib
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1443,9 +1444,9 @@ Optional Packages:
--with-static-xm include the xm module
--with-static-xg include the xg module
--with-guile use Guile
- --with-gl include OpenGL support
- --with-just-gl include OpenGL support, but omit the GL/Guile bindings
- --with-gl2ps include gl2ps
+ --with-gl include OpenGL support, Motif only
+ --with-just-gl include OpenGL support, but omit the extension language bindings, Motif only
+ --with-gl2ps include gl2ps, Motif only
--with-motif use libXm to build Snd
--with-static-motif use libXm.a to build Snd
--with-modules use if sndlib uses modules
@@ -1467,6 +1468,7 @@ Optional Packages:
--with-gmp include multiprecision arithmetic via gmp, mpfr, and mpc, default=no
--with-s7 use S7, default=yes
--with-extension-language use some extension language, default=yes
+ --with-directfb use directfb config scripts, rather than gtk, default=no
--with-sample-width=N use N bits of samples
--with-motif-prefix=PFX where Motif is installed
--with-temp-dir directory to use for temp files
@@ -1564,7 +1566,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-snd configure 11.0
+snd configure 11.1
generated by GNU Autoconf 2.64
Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2277,7 +2279,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by snd $as_me 11.0, which was
+It was created by snd $as_me 11.1, which was
generated by GNU Autoconf 2.64. Invocation command line was
$ $0 $@
@@ -3975,7 +3977,7 @@ LOCAL_LANGUAGE="None"
GRAPHICS_TOOLKIT="None"
PACKAGE=Snd
-VERSION=11.0
+VERSION=11.1
cat >>confdefs.h <<_ACEOF
#define SND_PACKAGE "$PACKAGE"
_ACEOF
@@ -4008,7 +4010,7 @@ _ACEOF
# --with-gmp include multiprecision arithmetic via gmp, mpfr, and mpc
# --enable-snd-debug include Snd internal debugging stuff
# --enable-threads include pthread stuff [also "--with-threads" since I can't remember which is correct]
-# --disable-deprecated do not include any deprecated stuff (in gtk, motif, guile, sndlib, clm, etc)
+# --disable-deprecated do not include any deprecated stuff (in gtk, motif, s7, sndlib, clm, etc)
# --with-ladspa include LADSPA plugin support (Linux)
# --with-sample-width=N use N bits of samples (default = 24)
# --with-esd use Enlightened Sound Daemon
@@ -4027,9 +4029,9 @@ _ACEOF
# --with-temp-dir directory to use for temp files
# --with-save-dir directory to use for saved-state files
# --with-doc-dir directory to search for documentation
-# --with-gl include OpenGL support (default=no)
-# --with-just-gl include OpenGL support but omit the Guile bindings (gl.o) (default=no)
-# --with-gl2ps include gl2ps
+# --with-gl include OpenGL support (default=no, Motif only)
+# --with-just-gl include OpenGL support but omit the extension language bindings (default=no, Motif only)
+# --with-gl2ps include gl2ps (Motif only)
# --with-modules accommodate sndlib that was built with modules
# --with-editres include EditRes in xm
# --with-shared-sndlib load sndlib.so if possible
@@ -4264,6 +4266,14 @@ if test "${with_extension_language+set}" = set; then :
fi
+# an experiment
+
+# Check whether --with-directfb was given.
+if test "${with_directfb+set}" = set; then :
+ withval=$with_directfb;
+fi
+
+
# -------- internal sample data type --------
@@ -6039,26 +6049,12 @@ $as_echo_n "checking for fftw3... " >&6; }
FFTW_CFLAGS="`$PKG_CONFIG fftw3 --cflags`"
$as_echo "#define HAVE_FFTW3 1" >>confdefs.h
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
+ OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw3"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw2" >&5
-$as_echo_n "checking for fftw2... " >&6; }
- if $PKG_CONFIG fftw --exists ; then
- FFTW_LIBS="`$PKG_CONFIG fftw --libs`"
- FFTW_CFLAGS="`$PKG_CONFIG fftw --cflags`"
- $as_echo "#define HAVE_FFTW 1" >>confdefs.h
-
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
fi
else
SAVELIBS=$LIBS
@@ -6081,39 +6077,12 @@ if ac_fn_c_try_link "$LINENO"; then :
$as_echo "yes" >&6; }
$as_echo "#define HAVE_FFTW3 1" >>confdefs.h
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
+ OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw3"
FFTW_LIBS="-lfftw3"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
LIBS=$SAVELIBS
- LIBS="$LIBS -lrfftw -lfftw -lm"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw-2" >&5
-$as_echo_n "checking for fftw-2... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <rfftw.h>
-int
-main ()
-{
-rfftw_one(NULL, NULL, NULL)
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- $as_echo "#define HAVE_FFTW 1" >>confdefs.h
-
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
- FFTW_LIBS="-lrfftw -lfftw"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
@@ -8223,7 +8192,6 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else
-# redundant... AC_MSG_RESULT(no)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find the Motif library! -- will look for Gtk" >&5
$as_echo "$as_me: WARNING: can't find the Motif library! -- will look for Gtk" >&2;}
with_gtk=yes
@@ -8383,7 +8351,11 @@ $as_echo "$as_me: WARNING: trouble with gtk -- will try to make Snd without any
GTK_LD_LIBS="$GTK_LIBS"
if test x$PKG_CONFIG != xno ; then
- GTK_LD_LIBS="`$PKG_CONFIG gtk+-2.0 --libs-only-L` `$PKG_CONFIG gtk+-2.0 --libs-only-l`"
+ if test "$with_directfb" = yes ; then
+ GTK_LD_LIBS="`$PKG_CONFIG gtk+-directfb-2.0 --libs-only-L` `$PKG_CONFIG gtk+-directfb-2.0 --libs-only-l`"
+ else
+ GTK_LD_LIBS="`$PKG_CONFIG gtk+-2.0 --libs-only-L` `$PKG_CONFIG gtk+-2.0 --libs-only-l`"
+ fi
pango_version="`$PKG_CONFIG pango --modversion`"
cat >>confdefs.h <<_ACEOF
#define MUS_PANGO_VERSION "${pango_version}"
@@ -9483,7 +9455,7 @@ if test "x$ac_cv_lib_m_gtk_status_icon_get_title" = x""yes; then :
fi
- # for 2.17.7
+ # for 2.17.7, 2.18.n
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk_widget_get_visible in -lm" >&5
$as_echo_n "checking for gtk_widget_get_visible in -lm... " >&6; }
if test "${ac_cv_lib_m_gtk_widget_get_visible+set}" = set; then :
@@ -9525,6 +9497,48 @@ if test "x$ac_cv_lib_m_gtk_widget_get_visible" = x""yes; then :
fi
+ # for 2.19.n
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk_spinner_new in -lm" >&5
+$as_echo_n "checking for gtk_spinner_new in -lm... " >&6; }
+if test "${ac_cv_lib_m_gtk_spinner_new+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $GTK_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gtk_spinner_new ();
+int
+main ()
+{
+return gtk_spinner_new ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_gtk_spinner_new=yes
+else
+ ac_cv_lib_m_gtk_spinner_new=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_gtk_spinner_new" >&5
+$as_echo "$ac_cv_lib_m_gtk_spinner_new" >&6; }
+if test "x$ac_cv_lib_m_gtk_spinner_new" = x""yes; then :
+ $as_echo "#define HAVE_GTK_SPINNER_NEW 1" >>confdefs.h
+
+fi
+
# for gdk|pango_cairo
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_cairo_create in -lm" >&5
@@ -9742,7 +9756,7 @@ GL_FILES=""
GL_FLAGS=""
have_gl=no
if test "$with_gl" = yes || test "$with_just_gl" = yes ; then
- if test "$with_motif" = yes || test "$with_gtk" = yes ; then
+ if test "$with_motif" = yes ; then
ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
if test "x$ac_cv_header_GL_gl_h" = x""yes; then :
have_gl=yes
@@ -9793,72 +9807,10 @@ fi
GL_LIBS="$GL_LIBS -lGL"
- if test "$with_gtk" = yes ; then
- # motif uses built-in support, but gtk uses gtkglext, so we need to check for the latter
- if test x$PKG_CONFIG != xno && $PKG_CONFIG gtkglext-1.0 --exists ; then
- GL_LIBS="$GL_LIBS `$PKG_CONFIG gtkglext-1.0 --libs`"
- GL_FLAGS="$GL_FLAGS `$PKG_CONFIG gtkglext-1.0 --cflags`"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_gl_context_copy in -lm" >&5
-$as_echo_n "checking for gdk_gl_context_copy in -lm... " >&6; }
-if test "${ac_cv_lib_m_gdk_gl_context_copy+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm $GL_LIBS $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gdk_gl_context_copy ();
-int
-main ()
-{
-return gdk_gl_context_copy ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_m_gdk_gl_context_copy=yes
-else
- ac_cv_lib_m_gdk_gl_context_copy=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_gdk_gl_context_copy" >&5
-$as_echo "$ac_cv_lib_m_gdk_gl_context_copy" >&6; }
-if test "x$ac_cv_lib_m_gdk_gl_context_copy" = x""yes; then :
-
- $as_echo "#define HAVE_GDK_GL_CONTEXT_COPY 1" >>confdefs.h
-
- have_gl=yes
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES gtkglext"
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gtkglext version is too old" >&5
-$as_echo "$as_me: WARNING: gtkglext version is too old" >&2;}
- have_gl=no
-
-fi
-
- else
- have_gl=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find gtkglext" >&5
-$as_echo "$as_me: WARNING: can't find gtkglext" >&2;}
- fi
- fi
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GL only works with Motif or Gtk2" >&5
-$as_echo "$as_me: WARNING: GL only works with Motif or Gtk2" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GL only works with Motif" >&5
+$as_echo "$as_me: WARNING: GL only works with Motif" >&2;}
fi
fi
@@ -10384,8 +10336,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
$as_echo "$as_me: WARNING: can't find Ruby!" >&2;}
$as_echo "#define HAVE_RUBY 0" >>confdefs.h
- $as_echo "#define HAVE_EXTENSION_LANGUAGE 0" >>confdefs.h
-
+# AC_DEFINE(HAVE_EXTENSION_LANGUAGE,0)
fi
fi
fi
@@ -10584,14 +10535,6 @@ fi
# Guile
#--------------------------------------------------------------------------------
-# TODO: change from guile-config to pkg-config guile-2.0.pc
-# if test x$PKG_CONFIG != xno ; then
-# if $PKG_CONFIG guile-2.0 --exists ; then
-# XEN_LIBS="`$PKG_CONFIG guile-2.0 --libs`"
-# XEN_CFLAGS="`$PKG_CONFIG guile-2.0 --cflags`"
-# fi
-# fi
-
if test "$with_guile" = yes && test "$ac_snd_have_extension_language" = yes ; then
with_guile=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You asked for both Guile and $LOCAL_LANGUAGE -- $LOCAL_LANGUAGE will be used" >&5
@@ -10619,6 +10562,13 @@ if test "$with_guile" = no && test "$with_snd_as_pd_external" = no; then
else
+# if test x$PKG_CONFIG != xno ; then
+# if $PKG_CONFIG guile-2.0 --exists ; then
+# XEN_LIBS="`$PKG_CONFIG guile-2.0 --libs`"
+# XEN_CFLAGS="`$PKG_CONFIG guile-2.0 --cflags`"
+# fi
+# fi
+
as_ac_File=`$as_echo "ac_cv_file_/usr/lib/snd/bin/${GUILE_CONFIG_name}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/lib/snd/bin/${GUILE_CONFIG_name}" >&5
$as_echo_n "checking for /usr/lib/snd/bin/${GUILE_CONFIG_name}... " >&6; }
@@ -10694,8 +10644,6 @@ if test $GUILE_CONFIG_works = yes; then
$as_echo "$as_me: WARNING: Snd needs Guile 1.3.4 or later" >&2;}
$as_echo "#define HAVE_GUILE 0" >>confdefs.h
- $as_echo "#define HAVE_EXTENSION_LANGUAGE 0" >>confdefs.h
-
else
if test "$XM_LIBS" = ""; then
@@ -13589,7 +13537,7 @@ fi
#--------------------------------------------------------------------------------
#
# look for sndlib-config, check mus_sample_bits against current choice [with-float-sample, with-sample-width]
-# also language (Guile, Ruby) needs to match (what about versions!) and audio choice
+# also language (s7, Ruby, Forth) needs to match (what about versions!) and audio choice
# check against needed version (17.2 for now -- need mus_vct_copy in vct.c)
# set SNDLIB_FILES and SNDLIB_LIB
@@ -15370,6 +15318,10 @@ if test "${enable_deprecated+set}" = set; then :
$as_echo "#define XEN_DISABLE_DEPRECATED 1" >>confdefs.h
+ $as_echo "#define S7_DISABLE_DEPRECATED 1" >>confdefs.h
+
+ $as_echo "#define SND_DISABLE_DEPRECATED 1" >>confdefs.h
+
fi
fi
@@ -15428,8 +15380,8 @@ if test "$ac_snd_have_extension_language" = no ; then
if test "$ac_cv_header_dlfcn_h" = yes ; then
LDFLAGS="$LDFLAGS -ldl"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Snd needs either an extension language (Guile, s7, Fth, or Ruby), or a graphics toolkit (Gtk or Motif), or preferably both. As currently configured, this version of Snd is useless." >&5
-$as_echo "$as_me: WARNING: Snd needs either an extension language (Guile, s7, Fth, or Ruby), or a graphics toolkit (Gtk or Motif), or preferably both. As currently configured, this version of Snd is useless." >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Snd needs either an extension language (s7, Fth, Ruby, or Guile), or a graphics toolkit (Gtk or Motif), or preferably both. As currently configured, this version of Snd is useless." >&5
+$as_echo "$as_me: WARNING: Snd needs either an extension language (s7, Fth, Ruby, or Guile), or a graphics toolkit (Gtk or Motif), or preferably both. As currently configured, this version of Snd is useless." >&2;}
if test "$with_snd_as_pd_external" = yes ; then
as_fn_error "Guile is needed when making snd as a pd external." "$LINENO" 5
fi
@@ -15950,7 +15902,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by snd $as_me 11.0, which was
+This file was extended by snd $as_me 11.1, which was
generated by GNU Autoconf 2.64. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16014,7 +15966,7 @@ Report bugs to <bil@ccrma.stanford.edu>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-snd config.status 11.0
+snd config.status 11.1
configured by $0, generated by GNU Autoconf 2.64,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.ac b/configure.ac
index b85b0d5..5f726b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
# Configuration script for Snd
-AC_INIT(snd, 11.0, bil@ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-11.tar.gz)
+AC_INIT(snd, 11.1, bil@ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-11.tar.gz)
AC_CONFIG_SRCDIR(snd.c)
AC_CANONICAL_HOST
@@ -19,7 +19,7 @@ LOCAL_LANGUAGE="None"
GRAPHICS_TOOLKIT="None"
PACKAGE=Snd
-VERSION=11.0
+VERSION=11.1
AC_DEFINE_UNQUOTED(SND_PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(SND_VERSION, "$VERSION")
AC_SUBST(SND_PACKAGE)
@@ -43,7 +43,7 @@ AC_DEFINE_UNQUOTED(SND_HOST, "$host")
# --with-gmp include multiprecision arithmetic via gmp, mpfr, and mpc
# --enable-snd-debug include Snd internal debugging stuff
# --enable-threads include pthread stuff [also "--with-threads" since I can't remember which is correct]
-# --disable-deprecated do not include any deprecated stuff (in gtk, motif, guile, sndlib, clm, etc)
+# --disable-deprecated do not include any deprecated stuff (in gtk, motif, s7, sndlib, clm, etc)
# --with-ladspa include LADSPA plugin support (Linux)
# --with-sample-width=N use N bits of samples (default = 24)
# --with-esd use Enlightened Sound Daemon
@@ -62,9 +62,9 @@ AC_DEFINE_UNQUOTED(SND_HOST, "$host")
# --with-temp-dir directory to use for temp files
# --with-save-dir directory to use for saved-state files
# --with-doc-dir directory to search for documentation
-# --with-gl include OpenGL support (default=no)
-# --with-just-gl include OpenGL support but omit the Guile bindings (gl.o) (default=no)
-# --with-gl2ps include gl2ps
+# --with-gl include OpenGL support (default=no, Motif only)
+# --with-just-gl include OpenGL support but omit the extension language bindings (default=no, Motif only)
+# --with-gl2ps include gl2ps (Motif only)
# --with-modules accommodate sndlib that was built with modules
# --with-editres include EditRes in xm
# --with-shared-sndlib load sndlib.so if possible
@@ -96,9 +96,9 @@ AC_ARG_WITH(static-gsl, [ --with-static-gsl use libgsl.a to build Snd (for o
AC_ARG_WITH(static-xm, [ --with-static-xm include the xm module])
AC_ARG_WITH(static-xg, [ --with-static-xg include the xg module])
AC_ARG_WITH(guile, [ --with-guile use Guile])
-AC_ARG_WITH(gl, [ --with-gl include OpenGL support])
-AC_ARG_WITH(just-gl, [ --with-just-gl include OpenGL support, but omit the GL/Guile bindings])
-AC_ARG_WITH(gl2ps, [ --with-gl2ps include gl2ps])
+AC_ARG_WITH(gl, [ --with-gl include OpenGL support, Motif only])
+AC_ARG_WITH(just-gl, [ --with-just-gl include OpenGL support, but omit the extension language bindings, Motif only])
+AC_ARG_WITH(gl2ps, [ --with-gl2ps include gl2ps, Motif only])
AC_ARG_WITH(motif, [ --with-motif use libXm to build Snd])
AC_ARG_WITH(static-motif,[ --with-static-motif use libXm.a to build Snd])
AC_ARG_WITH(modules, [ --with-modules use if sndlib uses modules])
@@ -124,6 +124,9 @@ AC_ARG_WITH(gmp, [ --with-gmp include multiprecision arithmetic via
AC_ARG_WITH(s7, [ --with-s7 use S7, default=yes])
AC_ARG_WITH(extension-language, [ --with-extension-language use some extension language, default=yes])
+# an experiment
+AC_ARG_WITH(directfb, [ --with-directfb use directfb config scripts, rather than gtk, default=no])
+
# -------- internal sample data type --------
@@ -404,20 +407,10 @@ if test "$with_fftw" != no; then
FFTW_LIBS="`$PKG_CONFIG fftw3 --libs`"
FFTW_CFLAGS="`$PKG_CONFIG fftw3 --cflags`"
AC_DEFINE(HAVE_FFTW3)
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
+ OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw3"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
- AC_MSG_CHECKING(for fftw2)
- if $PKG_CONFIG fftw --exists ; then
- FFTW_LIBS="`$PKG_CONFIG fftw --libs`"
- FFTW_CFLAGS="`$PKG_CONFIG fftw --cflags`"
- AC_DEFINE(HAVE_FFTW)
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
fi
else
SAVELIBS=$LIBS
@@ -427,19 +420,10 @@ if test "$with_fftw" != no; then
[fftw_plan plan; fftw_execute(plan)])],
[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_FFTW3)
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
+ OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw3"
FFTW_LIBS="-lfftw3"],
[AC_MSG_RESULT(no)
LIBS=$SAVELIBS
- LIBS="$LIBS -lrfftw -lfftw -lm"
- AC_MSG_CHECKING([for fftw-2])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <rfftw.h>],
- [rfftw_one(NULL, NULL, NULL)])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_FFTW)
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES fftw"
- FFTW_LIBS="-lrfftw -lfftw"],
- [AC_MSG_RESULT(no)])
])
LIBS=$SAVELIBS
fi
@@ -1012,7 +996,6 @@ else
fi
],
[
-# redundant... AC_MSG_RESULT(no)
AC_MSG_WARN([can't find the Motif library! -- will look for Gtk])
with_gtk=yes
with_motif=no
@@ -1066,7 +1049,11 @@ else
GTK_LD_LIBS="$GTK_LIBS"
if test x$PKG_CONFIG != xno ; then
- GTK_LD_LIBS="`$PKG_CONFIG gtk+-2.0 --libs-only-L` `$PKG_CONFIG gtk+-2.0 --libs-only-l`"
+ if test "$with_directfb" = yes ; then
+ GTK_LD_LIBS="`$PKG_CONFIG gtk+-directfb-2.0 --libs-only-L` `$PKG_CONFIG gtk+-directfb-2.0 --libs-only-l`"
+ else
+ GTK_LD_LIBS="`$PKG_CONFIG gtk+-2.0 --libs-only-L` `$PKG_CONFIG gtk+-2.0 --libs-only-l`"
+ fi
pango_version="`$PKG_CONFIG pango --modversion`"
AC_DEFINE_UNQUOTED(MUS_PANGO_VERSION,"${pango_version}")
fi
@@ -1147,8 +1134,10 @@ else
AC_CHECK_LIB(m, gtk_info_bar_new, [AC_DEFINE(HAVE_GTK_INFO_BAR_NEW)], ,$GTK_LIBS)
# for 2.17.3|4|5|6
AC_CHECK_LIB(m, gtk_status_icon_get_title, [AC_DEFINE(HAVE_GTK_STATUS_ICON_GET_TITLE)], ,$GTK_LIBS)
- # for 2.17.7
+ # for 2.17.7, 2.18.n
AC_CHECK_LIB(m, gtk_widget_get_visible, [AC_DEFINE(HAVE_GTK_WIDGET_GET_VISIBLE)], ,$GTK_LIBS)
+ # for 2.19.n
+ AC_CHECK_LIB(m, gtk_spinner_new, [AC_DEFINE(HAVE_GTK_SPINNER_NEW)], ,$GTK_LIBS)
# for gdk|pango_cairo
AC_CHECK_LIB(m, gdk_cairo_create,
@@ -1204,7 +1193,7 @@ GL_FILES=""
GL_FLAGS=""
have_gl=no
if test "$with_gl" = yes || test "$with_just_gl" = yes ; then
- if test "$with_motif" = yes || test "$with_gtk" = yes ; then
+ if test "$with_motif" = yes ; then
AC_CHECK_HEADER(GL/gl.h,
[have_gl=yes],
[
@@ -1230,30 +1219,9 @@ if test "$with_gl" = yes || test "$with_just_gl" = yes ; then
GL_LIBS="$GL_LIBS -lGLU"
])
GL_LIBS="$GL_LIBS -lGL"
- if test "$with_gtk" = yes ; then
- # motif uses built-in support, but gtk uses gtkglext, so we need to check for the latter
- if test x$PKG_CONFIG != xno && $PKG_CONFIG gtkglext-1.0 --exists ; then
- GL_LIBS="$GL_LIBS `$PKG_CONFIG gtkglext-1.0 --libs`"
- GL_FLAGS="$GL_FLAGS `$PKG_CONFIG gtkglext-1.0 --cflags`"
- AC_CHECK_LIB(m, gdk_gl_context_copy,
- [
- AC_DEFINE(HAVE_GDK_GL_CONTEXT_COPY)
- have_gl=yes
- OPTIONAL_LIBRARIES="$OPTIONAL_LIBRARIES gtkglext"
- ],
- [
- AC_MSG_WARN([gtkglext version is too old])
- have_gl=no
- ],
- $GL_LIBS)
- else
- have_gl=no
- AC_MSG_WARN([can't find gtkglext])
- fi
- fi
fi
else
- AC_MSG_WARN([GL only works with Motif or Gtk2])
+ AC_MSG_WARN([GL only works with Motif])
fi
fi
@@ -1471,7 +1439,7 @@ AC_ARG_WITH(ruby,
else
AC_MSG_WARN([can't find Ruby!])
AC_DEFINE(HAVE_RUBY,0)
- AC_DEFINE(HAVE_EXTENSION_LANGUAGE,0)
+# AC_DEFINE(HAVE_EXTENSION_LANGUAGE,0)
fi
fi)
@@ -1510,14 +1478,6 @@ AC_ARG_WITH(forth,
# Guile
#--------------------------------------------------------------------------------
-# TODO: change from guile-config to pkg-config guile-2.0.pc
-# if test x$PKG_CONFIG != xno ; then
-# if $PKG_CONFIG guile-2.0 --exists ; then
-# XEN_LIBS="`$PKG_CONFIG guile-2.0 --libs`"
-# XEN_CFLAGS="`$PKG_CONFIG guile-2.0 --cflags`"
-# fi
-# fi
-
if test "$with_guile" = yes && test "$ac_snd_have_extension_language" = yes ; then
with_guile=no
AC_MSG_WARN([You asked for both Guile and $LOCAL_LANGUAGE -- $LOCAL_LANGUAGE will be used])
@@ -1543,6 +1503,13 @@ if test "$with_guile" = no && test "$with_snd_as_pd_external" = no; then
AC_DEFINE(HAVE_GUILE,0)
else
+# if test x$PKG_CONFIG != xno ; then
+# if $PKG_CONFIG guile-2.0 --exists ; then
+# XEN_LIBS="`$PKG_CONFIG guile-2.0 --libs`"
+# XEN_CFLAGS="`$PKG_CONFIG guile-2.0 --cflags`"
+# fi
+# fi
+
AC_CHECK_FILE(/usr/lib/snd/bin/${GUILE_CONFIG_name},[
GUILE_CONFIG_path=/usr/lib/snd/bin/
GUILE_LIB_path=/usr/lib/snd/lib
@@ -1591,7 +1558,6 @@ if test $GUILE_CONFIG_works = yes; then
if test "`${GUILE_CONFIG_path}${GUILE_name} -c '(display (string>=? (version) "1.3.4"))'`" != "#t"; then
AC_MSG_WARN(Snd needs Guile 1.3.4 or later)
AC_DEFINE(HAVE_GUILE,0)
- AC_DEFINE(HAVE_EXTENSION_LANGUAGE,0)
else
AC_SUBST(XEN_CFLAGS)
if test "$XM_LIBS" = ""; then
@@ -2261,7 +2227,7 @@ fi
#--------------------------------------------------------------------------------
#
# look for sndlib-config, check mus_sample_bits against current choice [with-float-sample, with-sample-width]
-# also language (Guile, Ruby) needs to match (what about versions!) and audio choice
+# also language (s7, Ruby, Forth) needs to match (what about versions!) and audio choice
# check against needed version (17.2 for now -- need mus_vct_copy in vct.c)
# set SNDLIB_FILES and SNDLIB_LIB
@@ -2356,13 +2322,15 @@ AM_GNU_GETTEXT([external])
#--------------------------------------------------------------------------------
AC_ARG_ENABLE(deprecated,
- [ --disable-deprecated do not include any deprecated stuff from gtk, guile, motif, clm, or sndlib],
+ [ --disable-deprecated do not include any deprecated stuff from gtk, s7, motif, clm, snd, or sndlib],
if test "$enable_deprecated" = no ; then
CFLAGS="-DGTK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DCAIRO_DISABLE_DEPRECATED $CFLAGS"
AC_DEFINE(XM_DISABLE_DEPRECATED)
AC_DEFINE(CLM_DISABLE_DEPRECATED)
AC_DEFINE(SNDLIB_DISABLE_DEPRECATED)
AC_DEFINE(XEN_DISABLE_DEPRECATED)
+ AC_DEFINE(S7_DISABLE_DEPRECATED)
+ AC_DEFINE(SND_DISABLE_DEPRECATED)
fi)
if test "$enable_snd_debug" = yes ; then
@@ -2419,7 +2387,7 @@ if test "$ac_snd_have_extension_language" = no ; then
if test "$ac_cv_header_dlfcn_h" = yes ; then
LDFLAGS="$LDFLAGS -ldl"
fi
- AC_MSG_WARN([Snd needs either an extension language (Guile, s7, Fth, or Ruby), or a graphics toolkit (Gtk or Motif), or preferably both. As currently configured, this version of Snd is useless.])
+ AC_MSG_WARN([Snd needs either an extension language (s7, Fth, Ruby, or Guile), or a graphics toolkit (Gtk or Motif), or preferably both. As currently configured, this version of Snd is useless.])
if test "$with_snd_as_pd_external" = yes ; then
AC_MSG_ERROR(Guile is needed when making snd as a pd external.)
fi
diff --git a/dlocsig.html b/dlocsig.html
deleted file mode 100644
index cbca15a..0000000
--- a/dlocsig.html
+++ /dev/null
@@ -1,703 +0,0 @@
-<html>
-<head>
-<title>"dlocsig" dynamic spatial location unit generator</title>
-</head>
-
-<body bgcolor="#ffffff">
-
-<p><table width=100% bgcolor="#e0e0e0"><tr><td>
-<!-- <img src="/CCRMA/Images/LogoM.gif" border=0 alt="CCRMA"> -->
-<h1><a href="dlocsig.lisp">dlocsig</a>: a dynamic spatial location unit generator for CLM-2</h1></table></p>
-
-<p><font size="-1">by <a href="http://www-ccrma.stanford.edu/~nando/">Fernando Lopez-Lezcano</a>, <a href="mailto:nando@ccrma.stanford.edu">nando@ccrma.stanford.edu</a></font>
-
-<p><a href="dlocsig.lisp">dlocsig.lisp</a> is a unit generator that dynamically moves a sound source in 2d or 3d space and can be used as a replacement for the standard <em>locsig</em> in new or existing CLM instruments (this is a new and much improved version of the old dlocsig). </p>
-
-<p><em><strong>Caveat:</strong> this version of dlocsig only works in clm-3!.</em></p>
-
-<p><em>dlocsig</em> can generate spatial positioning cues for any number of speakers which can be <a href="#arrange-speakers">arbitrarily arranged</a> in 2d or 3d space. There are two speaker arrangements for each possible number of speakers, one in 2d and another in 3d space. The number of output channels of the current output stream (usually defined by the <em>:channels</em> keyword in the enclosing <em>with-sound</em>) and the value of <a href="#dlocsig-3d">dlocsig-3d</a> will determine which speaker arrangement is used. In pieces which can be recompiled from scratch this feature allows the composer to easily create several renditions of the same piece, each one optimized for a particular number, spatial configuration of speakers and rendering technique. Each user-defined speaker arrangement can also include fixed delays for some or all speakers and can map each speaker to an arbitrary output channel. </p>
-
-<p><em>dlocsig</em> can render the output soundfile with different techniques. The default is to use plain vanilla amplitude panning between adyacent speakers (between two speakers in 2d space or three speaker groups in 3d space). <em>dlocsig</em> can also create an <a href="http://www.york.ac.uk/inst/mustech/3d_audio/ambison.htm">Ambisonics</a> encoded four channel output soundfile suitable for feeding into an appropriate decoder for multiple speaker reproduction. Or it can decode the Ambisonics encoded information to an arbitrary number of output channels if the speaker configuration is known in advance. In the (near?) future <em>dlocsig</em> will also be able to render to stereo soundfiles with hrtf generated cues for heaphone or speaker listening environments. In all cases doppler shift is also generated as well as amplitude scaling due to distance with user-defined exponents and ratio of direct to reverberated sound. </p>
-
-<p>The movement of sound sources is described through <em>paths</em>. These are CLOS (Common Lisp Object System) objects that hold the information needed by <em>dlocsig</em> to move the source in space and are independent of the unit generator itself. Paths can be reused across many calls to <em>dlocsig</em> and can be translated, scaled and rotated in space as needed. There are several ways to describe a path in space. Bezier paths are described by a set of discrete points in 2d or 3d space that are latter joined by smoothly curved bezier segments. This description is very compact and easy to specify. A few points can describe a complex trajectory in 3d space. Paths can also be specified in geometric terms and one such implementation (spirals) is currently provided (more to come). </p>
-
-<p>The <em>dlocsig</em> unit generator uses the same interface as all other CLM unit generators. <em>make-dlocsig</em> creates a structure for a given path and returns (as multiple values) the structure and the beginning and ending samples of the note. <em>dlocsig</em> is the macro that gets compiled inside the run loop and localizes the samples in space. </p>
-
-<h2>Contents</h2>
-
-<dl>
-<dt>Source code: <a href="dlocsig.lisp">dlocsig.lisp</a>
-<dt><a href="#rendering">Rendering techniques</a>
-<dt><a href="#global-params">Global parameters</a>
-<dt><a href="#speaker-config">Speaker configuration</a>
-<dt><a href="#paths">Paths</a>
- <dd><a href="#bezier-paths">Bezier paths</a>
- <dd><a href="#geometric-paths">Geometric paths</a>
- <dd><a href="#transformations">Transformations</a>
- <dd><a href="#visualization">Visualization</a>
-<dt><a href="#dlocsig-ug">Dlocsig (the unit generator)</a>
-<dt><a href="#dlocsig-examples">Examples</a>
-</dl>
-
-<p><table width="100%" cellpadding="5">
-
-<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
-<a name="global-params"><font size="+2">Rendering techniques</font></a>
-</td>
-<tr><td bgcolor="#e0e0e0" width="20%"></td>
-
-<td>
-<p>Several different techniques can be selected to render the output samples. Each one has advantages and disadvantages and there's no reason not to mix them in a piece. The value of the special variable <a href="#dlocsig-render-using"><font color="b01010">dlocsig-render-using</font></a> or the <a href="#render-using"><font color="b01010">render-using</font></a> <em>make-dlocsig</em> parameter defines which one is used:</p>
-
-<dl>
-
-<dt><strong>amplitude-panning</strong> [1]
-<dd><p>Generates amplitude panning between adyacent speakers. In two-dimensional speaker configurations panning is done between adyacent speakers. Three-dimensional speaker configurations split space in non-overlapping triangles with vertices at the speaker positions. Panning is done within each three speaker group. Transitions between two or three speaker groups define new breakpoints in the trajectory so that the proper speakers reache zero amplitude when transitioning between groups. </p>
-
-<dt><strong>b-format-ambisonics</strong> [2]
-<dd><p>Generates a four channel first order b-format encoded soundfile (an error will be generated if the current output stream is not four channels). The Ambisonics b-format has four discrete channels with information encoded as follows:</p>
-
-<table border>
-<tr><td><strong>W</strong></td><td>(* signal 0.707) (omnidirectional component)</td>
-<tr><td><strong>X</strong></td><td>(* signal (cos A)(cos B))</td>
-<tr><td><strong>Y</strong></td><td>(* signal (sin A)(cos B))</td>
-<tr><td><strong>Z</strong></td><td>(* signal (sin B))</td>
-</table>
-
-<p>A is the counter-clockwise angle of rotation from the front center and B is the angle of elevation above the horizontal plane. Note that our coordinate system is different. The <strong>X</strong> component is in the direction of our y axis (positive values in front of the listener) and the <strong>Y</strong> component is in the direction of our -x axis (to the left of the listener). </p>
-
-<dt><strong>decoded-ambisonics</strong> [3]
-<dd><p>The Ambisonics encoded information is decoded to an arbitrary number of speakers as defined by the currently selected speaker configuration. The decoded channels have higher amplitudes than the equivalent amplitude panning rendering, <a href="#dlocsig-ambisonics-scaler"><font color="b01010">dlocsig-ambisonics-scaler</font></a> is used to (approximately) equalize the amplitude. The default value is a quite arbitrary (but seems to do the trick) 0.707. </p>
-
-<dt><strong>stereo-hrtf</strong> [4]
-<dd><p>Not implemented yet... </p>
-
-
-<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
-<a name="global-params"><font size="+2">Global parameters</font></a>
-</td>
-
-<tr><td bgcolor="#e0e0e0" width="20%"></td>
-
-<td>
-
-<p>The following parameters are global bindings (special variables) that control the global behavior of dlocsig:</p>
-
-<p><table>
-
-<tr valign=top>
-<td><a name="dlocsig-one-turn"><font color="b01010">dlocsig-one-turn</font></a><br>[number]<br>360</td>
-<td><p>A number that defines the units used to represent angles. By default angles are measured in degrees. Change the variable to represent one turn in the units of interest (for example, setting it to 1.0 will represent angles in turns). </p></td>
-
-<tr valign=top>
-<td><a name="dlocsig-speed-of-sound"><font color="b01010">dlocsig-speed-of-sound</font></a><br>[number]<br>344</td>
-<td><p>A number that defines the units used to represent distances through the value of the speed of sound. The default measures distances in meters. Change the variable to represent the speed of sound in the desired units (ie: <tt>(setf dlocsig-speed-of-sound 1128)</tt> will enable you to measure all distances in feet). </p>
-
-<tr valign=top>
-<td><a name="dlocsig-3d"><font color="b01010">dlocsig-3d</font></a><br>[t|nil]<br>nil</td>
-<td><p>A boolean value that defines what speaker configuration will be used for a given number of channels. Speakers can be arranged in two or three-dimensional patterns. Together with the number of channels of the current output stream <em>dlocsig-3d</em> is used to select a configuration. </p>
-
-<tr valign=top>
-<td><a name="path-3d"><font color="b01010">path-3d</font></a><br>[t|nil]<br>t</td>
-<td><p>A boolean value that defines how bezier paths are going to be parsed. </p>
-
-<tr valign=top>
-<td><a name="dlocsig-render-using"><font color="b01010">dlocsig-render-using</font></a><br>[num]<br>1</td>
-<td><p>A number selected from predefined constants that defines which rendering technique will be used. The default is <strong>amplitude-panning</strong>. Currently available rendering technique constants are: <strong>amplitude-panning</strong>, <strong>b-format-ambisonics</strong>, <strong>decoded-ambisonics</strong></p>
-
-</table>
-
-</td>
-
-<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
-<a name="speaker-config"><font size="+2">Speaker configuration</font></a>
-</td>
-
-<tr><td bgcolor="#e0e0e0" width="20%"></td>
-
-<td>
-
-<p>The following functions are used to arrange speaker configurations in 2 or 3d space. <a href="#arrange-speakers">arrange-speakers</a> creates a new configuration for a given number of speakers. The configuration includes the position of the speakers in space, optional delays for some or all speakers and a mapping from speakers to output channels. The configurations are stored in <a href="#dlocsig-speaker-configs">dlocsig-speaker-configs</a>, a special variable that holds a bidimensional array. The first index of the array has dimension 2 and is used to differenciate between 2d and 3d configurations (a given number of speakers can be arranged both in 2d or 3d patterns). The second index is by default of dimension 9 and represent the number of speakers of a given configuration. <a href="#set-speaker-configuration">set-speaker-configuration</a> and <a href="#get-speaker-configuration">get-speaker-configuration</a> can be used to store and retrieve a configuration. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="arrange-speakers"><strong>arrange-speakers</strong></a></td><td> &amp;optional-key
-<tr><td></td><td>(<i>speakers</i> '())<br>
- (<i>groups</i> '())<br>
- (<i>distances</i> '())<br>
- (<i>delays</i> '())<br>
- (<i>map</i> '())<br>
-</table></p>
-
-<p><em>arrange-speakers</em> returns a speaker configuration structure for a particular number of speakers and associated output channels. It defines the location of all speakers in two or three dimensional space, groups the speakers for panning purposes and optionally adds fixed delays to some speakers and maps individual speakers to output channels. </p>
-
-<p><table>
-
-<tr valign=top>
-<td><a name="speakers"><font color="b01010">speakers</font></a><br>[list]</td>
-<td><p>A list that specifies the location of all speakers in space containing either: sub-lists with azimut and elevation angles (for three dimensional speaker distributions) or just numbers that represent azimut angles (for two dimensional speaker distributions). </p></td>
-
-<tr valign=top>
-<td><a name="groups"><font color="b01010">groups</font></a><br>[list]</td>
-<td><p>A list of lists that describes the grouping of speakers for the purposes of amplitude panning (the signal will be panned between speakers that belong to the same group). Each group can be composed of either two or three speakers and all groups for a given speaker configuration have to have the same length. This parameter <strong>can</strong> be ommited if the speakers are arranged in a two dimensional configuration (and thus have no elevation angles). Each speaker in a group is represented by an integer that is the zero based index of the speaker in the previously defined <a href="#speakers"><font color="b01010">speakers</font></a> list. This is the definition for a simple two dimensional grouping of four speakers:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(arrange-speakers :speakers '((-45 0)(45 0)(135 0)(225 0))
- :groups '((0 1)(1 2)(2 3)(3 0)))
-</pre></font></table>
-
-<p>The elevation angles and the group information can be ommited in this case:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(arrange-speakers :speakers '(-45 45 135 225))
-</pre></font></table>
-
-<p>This is another example where the same four speakers are rearranged in a 3d pattern:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(arrange-speakers :speakers '((1 -60 0)(1 60 0)(1 180 0)(1 0 90))
- :groups '((0 1 3)(1 2 3)(2 0 3)
- ;; floor
- (0 1 2)))
-</pre></font></table>
-
-<p>All angles are measured by default in degrees, 0 degrees is right in front of the listener and angles increment clockwise. The unit used to represent angles can be changed by setting <a href="#dlocsig-one-turn">dlocsig-one-turn</a> to the number that represents one turn in the desired unit (ie: <tt>(setf dlocsig-one-turn 1)</tt> will enable you to express all angles in fractions of a turn). </p></td>
-
-<tr valign=top>
-<td><a name="distances"><font color="b01010">distances</font></a><br>[list]</td>
-<td><p>A list of relative distances between the listener and all speakers. This parameter can be used to specify relative fixed delays between speakers to compensate for arrangements where not all speakers are equidistant from the listener. Distances are measured in meters by default. This example configuration will add 14.5mSeconds of delay (5 meters at 344m/s) to the two back channels of a four speaker configuration:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(arrange-speakers :speakers '(-45 45 135 225)
- :distances '(0 0 5 5)
-</pre></font></table>
-
-<p>The unit used to represent distances can be changed by setting <a href="#dlocsig-speed-of-sound">dlocsig-speed-of-sound</a> to a number that represents the speed of sound in the desired unit (ie: <tt>(setf dlocsig-speed-of-sound 1128)</tt> will enable you to express all distances in feet). Delays can also be specified directly by using the <a href="#delays"><font color="b01010">delays</font></a> keyword. </p></td>
-
-<tr valign=top>
-<td><a name="delays"><font color="b01010">delays</font></a><br>[list]</td>
-<td><p>A list of relative delays of all speakers. Delays are specified in seconds and must be zero or positive. A fixed delay line of the appropriate length is inserted on all channels that have a non-zero delay. </p></td>
-
-<tr valign=top>
-<td><a name="map"><font color="b01010">map</font></a><br>[list]</td>
-<td><p>A list that maps the speakers to output channels. Each number of the list defines the zero-based output channel where that speaker will be sent. The following configuration of four speakers will generate a soundfile where left front and back speakers have even channel numbers and right front and back speakers have odd channel numbers:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(arrange-speakers :speakers '(-45 45 135 225)
- :map '(0 1 3 2)
-</pre></font></table>
-
-</td>
-</table>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="set-speaker-configuration"><strong>set-speaker-configuration</strong></a></td>
-<td> <em>config</em>
-</table></p>
-
-<p><em>set-speaker-configuration</em> sets a speaker configuration for a particular number of output channels. The argument <em>config</em> must be a configuration structure created by <a href="#arrange-speakers"><font color="b01010">arrange-speakers</font></a>. The configuration will be stored at the appropriate index in the global configuration array depending on the number of speakers it defines. This example will store a new configuration in the slot corresponding to four output channels:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(set-speaker-configuration (arrange-speakers :speakers '(-45 45 135 225)
- :map '(0 1 3 2)
-</pre></font></table>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="get-speaker-configuration"><strong><strong>get-speaker-configuration</strong></a></td>
-<td> <em>channels</em>
-</table></p>
-
-<p><em>get-speaker-configuration</em> retrieves a speaker configuration definition from the global configuration array. The returned configuration will have the number of channels specified by <em>channels</em> and will be either two or three dimensional depending on the value of <a href="#dlocsig-3d"><font color="b01010">dlocsig-3d</font></a>. <a href="#make-dlocsig">make-dlocsig</a> uses this function to retrieve the configuration that matches the number of channels of the enveloping with-sound. </p>
-
-</td>
-</tr>
-
-<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
-<p><a name="paths"><font size="+2">Paths</font></a></p>
-</td>
-
-<tr><td></td>
-<td>
-
-<p>Paths are used to describe the trajectory of the moving sound source in space. </p>
-
-<p><table width="100%">
-<tr><td bgcolor="#e0e0e0"><a name="bezier-paths"><strong>Bezier paths</strong></a></td></tr>
-</table>
-
-<table width="100%"><tr valign="top"><td><p>Bezier paths are defined by a list of points in 2d or 3d space that the sound source will move through. The bezier path classes will create a curved trajectory that passes through all the specified points and is composed of bezier segments, one segment for each two points in the original description of the path.</p>
-
-<p>The trajectory pictured on the right was created by evaluating the following lisp code:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(make-path
- '((-10 10 0 1)(0 5 0 0)(10 10 5 1.5)))
-</pre></font></table>
-
-<p>All the intermediate points that create the smooth trajectory were rendered from the bezier segments fitted by <em>make-path</em> to the three supplied points. </p>
-</td>
-
-<td><img src="pix/fig1.png"></td>
-
-<tr valign="top">
-<td><img src="pix/fig2.png"></td>
-<td><p>The fourth optional parameter controls the relative velocity of the movement. In our example the sound source slows down to zero velocity on the second point and reaches the third point at 1.5 times the speed it started it. </p>
-
-<p>These are the corresponding graphs of average velocity, acceleration and doppler shift for each segment of the trajectory. </p>
-
-</table>
-
-<p>This rendition of the trajectory in terms of a smooth curve is necessary for a perceptually convincing rendition of the doppler frequency effect. A trajectory composed of straigh lines connecting the points would imply a sudden change of the velocity vector at each inflection point. Any such change in the radial velocity component will produce a sudden jump in doppler shift which will translate perceptually in a jump in pitch instead of a jump in doppler shift. This is one way in which the illusion of a moving sound source can be easily destroyed. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="make-path"><strong>make-path</strong></a></td><td> &amp;optional-key
-<tr><td></td><td>(<i>3d</i> path-3d)<br>
- (<i>path</i> '())<br>
- (<i>polar</i> nil)<br>
- (<i>closed</i> nil)<br>
- (<i>curvature</i> nil)<br>
- (<i>error</i> 0.01)<br>
- (<i>initial-direction</i> '())<br>
- (<i>final-direction</i> '())<br>
-</table></p>
-
-<p><em>make-path</em> returns a bezier path object that can be used as an argument to the <em>make-dlocsig</em> unit generator creation function. </p>
-
-<p><table>
-
-<tr valign=top>
-<td><a name="bezier-3d"><font color="b01010">3d</font></a><br>[t|nil]</td>
-<td><p>Defines how the <a href="#bezier-path"><font color="b01010">path</font></a> parameter will be parsed. If <em>t</em> the path will be interpreted as containing points in 3d space. If <em>nil</em> it will be interpreted as containing 2d points. The default for <em>3d</em> is defined by the <a href="#path-3d">path-3d</a> special variable (normally <em>t</em>. </p>
-
-<tr valign=top>
-<td><a name="bezier-path"><font color="b01010">path</font></a><br>[list]</td>
-<td><p>A list that contains the points in 2d or 3d space the sound source will have to move through and the optional relative velocity of the source at each of those points. Points can be defined in cartesian (the default) or <a href="#bezier-polar"><font color="b01010">polar</font></a> coordinates. To be rendered as a set of bezier segments the path description has to contain at least three points (four points if the path is <a href="#bezier-closed"><font color="b01010">closed</font></a>). Paths with only two points will be rendered as a straight line. Paths with only one point define stationary sound sources. </p>
-
-<p>These are the recognized formats for each point if the components of <a href="#bezier-path"><font color="b01010">path</font></a> are lists and <a href="#bezier-3d"><font color="b01010">3d</font></a> is <em>t</em>: </p>
-
-<dl>
-
-<dt><strong>(x y z v)</strong>
-<dd>x, y, z are the coordinates of the point, v is a relative velocity value
-
-<dt><strong>(x y z)</strong>
-<dd>x, y, z are the coordinates of the point, velocity is <em>nil</em>
-
-<dt><strong>(x y) </strong>
-<dd>x and y are the coordinates of the point, z is 0.0 and velocity is <em>nil</em>
-
-</dl>
-
-<p>If <a href="#bezier-3d"><font color="b01010">3d</font></a> is <em>nil</em>:</p>
-
-<dl>
-
-<dt><strong>(x y v)</strong>
-<dd>x, y are the coordinates, z is 0.0 and v is a relative velocity value
-
-<dt><strong>(x y) </strong>
-<dd>x and y are the coordinates, z is 0.0 and velocity is <em>nil</em>
-
-</dl>
-
-<p>This will move the sound source from left to the right and up and the source's velocity will be zero right in front of the listener's position:</p>
-
-<pre> (make-path :path '((-10 10 0 1)(0 5 0 0)(10 10 10 1)))</pre>
-
-<tr valign=top>
-<td><a name="bezier-polar"><font color="b01010">polar</font></a><br>[nil|t]</td>
-<td><p>If <em>polar</em> is <em>t</em> <a href="#bezier-path"><font color="b01010">path</font></a> will be interpreted as a list of points in polar coordinates. The formats recognized are the same except the first coordinate is the distance from the source to the listener, the second is the azimut angle and the third (and optional) is the elevation angle. </p>
-
-<tr valign=top>
-<td><a name="bezier-closed"><font color="b01010">closed</font></a><br>[nil|t]</td>
-<td><p>Defines a path as closed. The first and last points of a closed path have to have the same coordinates. Because of limitations in the bezier curve fitting algorithm closed paths have to have at least 4 points. </p>
-
-
-<tr valign=top>
-<td><a name="bezier-curvature"><font color="b01010">curvature</font></a><br>[number|list]</td>
-<td><p>The curvature parameter can be used to affect the transitions between consecutive bezier segments. The default value of 1.0 does not change the fitted value of the bezier segment control points. Values above 1.0 will result in more open transitions between segments. Values below 1.0 will create faster transitions between bezier segments. <em>curvature</em> can be a number in which case it will affect all transitions or it can be a list with one component for each pair of points in the trajectory. In this case each component can be a number (both ends of the segment will have the same curvature) or a list with two numbers (each end of the segment can have a different curvature). </p>
-
-<p>The figure on the left was created by <tt>(make-path '((-10 10)(0 5)(10 10)) :curvature '(0.4 1))</tt>. The first segment of the trajectory changes direction more abruptly than the second that uses the default of 1 for the parameter. The second was created by <tt>(make-path '((-10 10)(0 5)(10 10)) :curvature 0.4)</tt>, now both segments share the same curvature. </p>
-
-<p><table cellpadding="5"><tr>
-<td><img src="pix/c0.png"><br><br>:curvature '(0.4 1)</td>
-<td><img src="pix/c1.png"><br><br>:curvature 0.4</td>
-</table></p>
-
-<tr valign=top>
-<td><a name="bezier-error"><font color="b01010">error</font></a><br>[number]</td>
-<td><p>The bezier curves that represent the trajectory are rendered into a straight line representation. This parameter defines the maximum error allowed between the ideal bezier curve and the midpoint of each rendered linear segment. </p>
-
-<p>The following figures illustrate the effect of the <a href="#bezier-error">error</a> parameter. All figures represent the same path in 2d space <tt>'((-10 10)(0 5)(10 10))</tt>. The one on the left was created with <tt>(make-path '((-10 10)(0 5)(10 10)) :error 3)</tt>. The error bound is so large that no points are actually interpolated between the three supplied points (even though internally the bezier curve control points were calculated). The one on the center was created with <tt>(make-path '((-10 10)(0 5)(10 10)) :error 0.3)</tt>. Two intermediate points are calculated between each of the three supplied points. The one on the right was created with <tt>(make-path '((-10 10)(0 5)(10 10)) :error 0.01)</tt> and closely approaches the ideal bezier curve. </p>
-
-<p><table cellpadding="5"><tr>
-<td><img src="pix/e0.png"><br><br>:error 3</td>
-<td><img src="pix/e1.png"><br><br>:error 0.3</td>
-<td><img src="pix/e2.png"><br><br>:error 0.01</td>
-</table></p>
-
-<tr valign=top>
-<td><a name="initial-direction"><font color="b01010">initial-direction</font></a><br>[list]</td>
-<td><p>If the path is not closed this list defines the initial direction of the movement. The list specifies the direction as a vector expressed in x, y, z coordinates. </p></td>
-
-<tr valign=top>
-<td><a name="final-direction"><font color="b01010">final-direction</font></a><br>[list]</td>
-<td><p>If the path is not closed this list defines the final direction of the movement. The list specifies the direction as a vector expressed in x, y, z coordinates. </p></td>
-
-</table>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="make-polar-path"><strong>make-polar-path</strong></a></td><td> &amp;optional-key
-<tr><td></td><td>(<i>3d</i> path-3d)<br>
- (<i>path</i> '())<br>
- (<i>closed</i> nil)<br>
- (<i>curvature</i> nil)<br>
- (<i>error</i> 0.01)<br>
- (<i>initial-direction</i> '())<br>
- (<i>final-direction</i> '())<br>
-</table></p>
-
-<p><em>make-polar-path</em> returns a bezier path object that can be used as an argument to the <em>make-dlocsig</em> unit generator creation function. It will automatically parse the trajectory points as being represented in polar coordinates. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="make-closed-path"><strong>make-closed-path</strong></a></td><td> &amp;optional-key
-<tr><td></td><td>(<i>3d</i> path-3d)<br>
- (<i>path</i> '())<br>
- (<i>polar</i> nil)<br>
- (<i>curvature</i> nil)<br>
- (<i>error</i> 0.01)<br>
- (<i>initial-direction</i> '())<br>
- (<i>final-direction</i> '())<br>
-</table></p>
-
-<p><em>make-polar-path</em> returns a bezier path object that can be used as an argument to the <em>make-dlocsig</em> unit generator creation function. It will create a closed path. </p>
-
-<p><table width="100%">
-<tr><td bgcolor="#e0e0e0"><a name="geometric-paths"><strong>Geometric paths</strong></a></td></tr>
-</table>
-
-<p>Geometric paths are defined by a description of the path in terms of geometry. For now only one type of geometric path has been defined as an extension to 3d of the old spiral-path of the old dlocsig implementation. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="make-spiral-path"><strong>make-spiral-path</strong></a></td><td> &amp;optional-key
-<tr><td></td><td>(<i>start-angle</i> 0d0)<br>
- (<i>total-angle</i> nil)<br>
- (<i>step-angle</i> (/ <a href="#dlocsig-one-turn">dlocsig-one-turn</a> 100))<br>
- (<i>turns</i> nil)<br>
- (<i>distance</i> '(0 10 1 10))<br>
- (<i>height</i> '(0 0 1 0))<br>
- (<i>velocity</i> '(0 1 1 1))<br>
-</table></p>
-
-<p><em>make-spiral-path</em> returns a spiral trajectory centered around the listener's position. </p>
-
-<p><table>
-
-<tr valign=top>
-<td><a name="start-angle"><font color="b01010">start-angle</font></a><br>[number]</td>
-<td><p>The start angle for the spiral. </p></td>
-
-<tr valign=top>
-<td><a name="total-angle"><font color="b01010">total-angle</font></a><br>[number]</td>
-<td><p>The total angle for the spiral. </p></td>
-
-<tr valign=top>
-<td><a name="step-angle"><font color="b01010">step-angle</font></a><br>[number]</td>
-<td><p>The step angle that will be used to render the spiral. The default is 1/100 of a turn. </p></td>
-
-<tr valign=top>
-<td><a name="turns"><font color="b01010">turns</font></a><br>[number]</td>
-<td><p>An alternative way of specifying the total angle comprised by the spiral. Mutually exclusive with <a href="#total-angle"><font color="b01010">total-angle</font></a></p></td>
-
-<tr valign=top>
-<td><a name="distance"><font color="b01010">distance</font></a><br>[envelope]</td>
-<td><p>Distance from the source to xy = 0,0 expressed as an envelope. </p></td>
-
-<tr valign=top>
-<td><a name="height"><font color="b01010">height</font></a><br>[envelope]</td>
-<td><p>Height of the source expressed as an envelope. </p></td>
-
-<tr valign=top>
-<td><a name="velocity"><font color="b01010">velocity</font></a><br>[envelope]</td>
-<td><p>Relative velocity of the source expressed as an envelope. </p></td>
-
-</table></p>
-
-<p><table width="100%">
-<tr><td bgcolor="#e0e0e0"><a name="transformations"><strong>Path transformations</strong></a></td></tr>
-</table>
-
-<p>Not written yet...</p>
-
-<p><table width="100%">
-<tr><td bgcolor="#e0e0e0"><a name="visualization"><strong>Path visualization</strong></a></td></tr>
-</table>
-
-<p>Ahem, there is no graphical path editor... yet. If your system includes the <em>gnuplot</em> utility you can use the following functions to graphically visualize the path and its properties. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="plot"><strong>plot</strong></a></td><td> <i>path</i>
-</table></p>
-
-<p>This will plot two views, one containing the trajectory and the other containing overlapping plots of the velocity, acceleration and doppler shift of the moving sound source. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="plot-trajectory"><strong>plot-trajectory</strong></a></td><td> <i>path</i>
-</table></p>
-
-<p>Plots the trajectory of the moving sound source. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="plot-velocity"><strong>plot-velocity</strong></a></td><td> <i>path</i>
-</table></p>
-
-<p>Plots the velocity of the moving sound source. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="plot-acceleration"><strong>plot-acceleration</strong></a></td><td> <i>path</i>
-</table></p>
-
-<p>Plots the acceleration of the moving sound source. </p>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><a name="plot-doppler"><strong>plot-doppler</strong></a></td><td> <i>path</i>
-</table></p>
-
-<p>Plots the doppler shift of the moving sound source. </p>
-
-</td>
-</tr>
-
-<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
-<p><a name="dlocsig-ug"><font size="+2">DLOCSIG</font></a></p>
-</td>
-
-<tr><td></td>
-<td>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><strong>make-dlocsig</strong></td><td> &amp;optional-key<br>
-<tr><td></td><td>(<i>start-time</i> nil)<br>
- (<i>duration</i> nil)<br>
- (<i>path</i> dlocsig-path)<br>
- (<i>scaler</i> dlocsig-scaler)<br>
- (<i>direct-power</i> dlocsig-direct-power)<br>
- (<i>reverb-power</i> dlocsig-reverb-power)<br>
- (<i>inside-radius</i> dlocsig-inside-radius)<br>
- (<i>inside-direct-power</i> dlocsig-inside-direct-power)<br>
- (<i>inside-reverb-power</i> dlocsig-inside-reverb-power)<br>
- (<i>reverb-amount</i> dlocsig-reverb-amount)<br>
- (<i>initial-delay</i> dlocsig-initial-delay)<br>
- (<i>unity-gain-dist</i> dlocsig-unity-gain-dist)<br>
- (<i>minimum-segment-size</i> dlocsig-minimum-segment-size)<br>
- (<i>render-using</i> dlocsig-render-using)<br>
-
-</table></p>
-
-<p><em>make-dlocsig</em> creates a dlocsig structure that can be used as parameter to <em>dlocsig</em> in the Run loop. It returns three values, the first one the structure itself, the second the starting absolute sample in the output soundfile and the third the end sample in the output soundfile. A <em>multiple-value-bind</em> can be used to bind to all three values: </p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(multiple-value-bind (<font color="000000">dloc beg end</font>)
- (<font color="000000">make-dlocsig</font> :start-time start-time
- :duration duration
- :path path)
-...
- (run
- (loop for i from <font color="000000">beg</font> below <font color="000000">end</font> do
- (<font color="000000">dlocsig dloc</font> i sample)))
-</pre></font></table>
-
-<p>All default values are asigned to special variables named <font color="b01010">dlocsig-xxx</font>, where <font color="b01010">xxx</font> stands for the name of the parameter. This enables calls to the instrument to be surrounded by let statements so that local bindings can be established for default parameters. In the following example the first two notes are rendered using amplitude panning between speakers (if the default has not been changed before) and the second two are rendered using ambisonics because they are within the enclosing let that rebinds the special variable dlocsig-render-using:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(with-sound(:channels 8)
- (some-instrument 0 1 440 0.1)
- (another-instrument 2.33 0.4 880 0.18)
- (let* ((dlocsig-render-using decoded-ambisonics))
- (some-instrument 2 2.5 1000 0.07)
- (some-instrument 4 2.2 1002 0.05)))
-</pre></font></table>
-
-
-<font size="-1">
-<dl>
-<dt><a href="#dlocsig-reqparms">Required parameters</a>
-<dd><a href="#start-time"><font color="b01010">start-time</font></a>, <a href="#duration"><font color="b01010">duration</font></a>, <a href="#path"><font color="b01010">path</font></a>
-<dt><a href="#dlocsig-keyparms">Optional parameters</a>
-<dd><a href="#scaler"><font color="b01010">scaler</font></a>, <a href="#direct-power"><font color="b01010">direct-power</font></a>, <a href="#reverb-power"><font color="b01010">reverb-power</font></a>, <a href="#inside-radius"><font color="b01010">inside-radius</font></a>, <a href="#inside-direct-power"><font color="b01010">inside-direct-power</font></a>, <a href="#inside-reverb-power"><font color="b01010">inside-reverb-power</font></a>, <a href="#reverb-amount"><font color="b01010">reverb-amount</font></a>, <a href="#initial-delay"><font color="b01010">initial-delay</font></a>, <a href="#unity-gain-distance"><font color="b01010">unity-gain-distance</font></a>, <a href="#minimum-segment-size"><font color="b01010">minimum-segment-size</font></a>, <a href="#render-using"><font color="b01010">render-using</font></a>
-</dl>
-</font>
-
-<p><table>
-
-<tr valign=top><td><a name="start-time"><font color="b01010">start-time</font></a><br>[num]</td>
-<td>Start time of the note in the output soundfile. <p></td>
-
-<tr valign=top><td><a name="duration"><font color="b01010">duration</font></a><br>[num]</td>
-<td><p>Duration of the note. Actually this is <em>not</em> going to be the real duration of the note. This is the duration of the note at the moving source's position. Depending on the net change of distance from the source to the listener the actual duration of the note can be shorter (ending distance is less than starting distance) or longer (ending distance longer than starting distance). The doppler effect due to radial movement of the source translates into a sample rate change of the source which directly leads to the change in duration. The actual duration of the note is returned (indirectly) through the second and third values returned by <em>make-dlocsig</em>. Those numbers (absolute starting and ending samples of the note) should be used to control the main iteration loop inside the run macro. </p></td>
-
-<tr valign=top><td><a name="path"><font color="b01010">path</font></a><br>[path]</td>
-<td><p>A <a href="#paths">path object</a> that describes the movement of the sound source in space. </p></td>
-
-<tr valign=top><td><a name="scaler"><font color="b01010">scaler</font></a>
-<br>[num]<br>1.0</td>
-
-<td><p>Overall amplitude scaler. This number scales the gain envelopes for all output and reverb channels. </p></td>
-
-<tr valign=top><td><a name="direct-power"><font color="b01010">direct-power</font></a>
-<br>[num]<br>1.5</td>
-<td><p>The amplitude of the sound normally decreases as <em>(/ dist)</em> where <em>dist</em> is the distance between the source and the listener. This number can alter the exponent of the denominator so that the law of change becomes <em>(/ (expt dist direct-power)</em>. Positive numbers will make the attenuation with distance increase faster than what would be normal. </p></td>
-
-<tr valign=top><td><a name="reverb-power"><font color="b01010">reverb-power</font></a>
-<br>[num]<br>0.5</td>
-<td><p>Defines how the amplitude of the signal sent to the reverberator output channels changes in amplitude with distance. </p></td>
-
-<tr valign=top><td><a name="inside-radius"><font color="b01010">inside-radius</font></a>
-<br>[num]<br>1.0</td>
-<td><p>Rendering cues are calculated differently when the sound source is inside the sphere delimited by <a href="#inside-radius"><font color="b01010">inside-radius</font></a> (ie: when the sound is somehow "inside" the head of the listener). The exact difference depends on the rendering method used but the general idea is that within that sphere all speakers emit signal which is proportional to the distance to the center of the sphere (the listener's position). </p></td>
-
-<tr valign=top><td><a name="inside-direct-power"><font color="b01010">inside-direct-power</font></a>
-<br>[num]<br>1.5</td>
-<td><p>Within the sphere delimited by <a href="#inside-radius"><font color="b01010">inside-radius</font></a> and when rendering to amplitude panning all speakers output signal proportional to the distance to the listeners position. </p></td>
-
-<tr valign=top><td><a name="inside-reverb-power"><font color="b01010">inside-reverb-power</font></a>
-<br>[num]<br>0.5</td>
-<td><p>This number controls the exponent of the attenuation curve for the revererated sound when inside the sphere delimited by <a href="#inside-radius"><font color="b01010">inside-radius</font></a>. </p></td>
-
-<tr valign=top><td><a name="reverb-amount"><font color="b01010">reverb-amount</font></a>
-<br>[num|env]<br>0.04</td>
-<td>How much signal is sent to the reverberator output channel. Can be a number or an envelope. </p></td>
-
-<tr valign=top><td><a name="initial-delay"><font color="b01010">initial-delay</font></a>
-<br>[t|nil]<br>nil</td>
-<td><p>If set to <em>nil</em> the minumum time delay between the source and the listener is substracted from the delay line. This will reduce but not necessarily eliminate the initial delay from the start of the note at the position of the source and the arrival of the sound at the listener's position. </p></td>
-
-<tr valign=top><td><a name="unity-gain-distance"><font color="b01010">unity-gain-distance</font></a>
-<br>[t|nil|num]<br>nil</td>
-<td><p>If a number is specified it represents the distance at which dlocsig processes the samples with unity gain. If set to <em>nil</em> the minimum distance between source and listener is used as the unity gain distance. If set to <em>t</em> no amplitude normalization is done and the attenuation will accurately represent the object's distance. </p></td>
-
-<tr valign=top><td><a name="minimum-segment-size"><font color="b01010">minimum-segment-size</font></a>
-<br>[num]<br>1.0</td>
-<td><p>Defines the minimum distance between segment breakpoints. If a segment is longer than this distance it is split into smaller segments until the condition is satisfied. Otherwise long segments would not properly render the attenuation versus distance curve (ie: it would be just a linear curve instead of the specified power curve). </p></td>
-
-<tr valign=top><td><a name="render-using"><font color="b01010">render-using</font></a>
-<br>[num]<br>1</td>
-<td><p>Defines the rendering technique used to generate the output samples. Acceptable values are the following predefined constants: <strong>amplitude-panning</strong> (1) for speaker group amplitude panning, <strong>b-format-ambisonics</strong> (2) for four channel ambisonics encoded output and <strong>decoded-ambisonics</strong> (3) for a multichannel decoding of the ambisonics components. </p></td>
-
-</table>
-
-<p><table>
-<tr><td bgcolor="#e0e0e0"><strong>dlocsig</strong></td><td> <i>dloc</i> <i>i</i> <i>sample</i>
-</table></p>
-
-<p>Localizes a sample and merges it into the output file at absolute sample number i. </p>
-
-<p><table>
-
-<tr valign=top><td><a name="dloc"><font color="b01010">dloc</font></a><br>[dlocs]</td>
-<td>dlocsig structure created with <a href="#make-dlocsig">make-dlocsig</a>. <p></td>
-
-<tr valign=top><td><a name="i"><font color="b01010">i</font></a><br>[integer]</td>
-<td><p>Absolute sample number in the output soundfile, normally the loop counter of the run loop. </p></td>
-
-<tr valign=top><td><a name="sample"><font color="b01010">sample</font></a><br>[sample]</td>
-<td><p>The sample to be localized. </p></td>
-
-</table>
-
-</td>
-</tr>
-
-<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
-<p><a name="dlocsig-examples"><font size="+2">Examples</font></a></p>
-</td>
-
-<tr><td></td>
-<td>
-
-<p>This is a very <a href="sinetest.ins">simple instrument</a> that dynamically moves a sine wave in space using dlocsig:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(definstrument sinewave (start-time duration freq amp
- &key
- (amp-env '(0 1 1 1))
- (path (make-path :path '(-10 10 0 5 10 10))))
- (multiple-value-bind (dloc beg end)
- (make-dlocsig :start-time start-time
- :duration duration
- :path path)
- (let* ((osc (make-oscil :frequency freq))
- (aenv (make-env :envelope amp-env :scaler amp)))
- (run
- (loop for i from beg below end do
- (dlocsig dloc i (* (env aenv)(oscil osc))))))))
-</pre></font></table>
-
-<p>Note how the starting and ending samples of the main loop in the run macro are provided by the second and third values returned by make-dlocsig. Other than that this a very simple example. This instrument can be called as follows (in a four channel environment): </p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(with-sound(:channels 4)
- (sinetest 0 1 440 0.5 :path (make-path '((-10 10)(0 5)(10 10)))))
-</pre></font></table>
-
-<p>This will select the default 2d speaker configuration for four channels (if the default value of dlocsig-3d is not changed to t). The same instrument could be used to render a 3d soundfile for eight channels by calling it with the following parameters:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-;; tell the system I want to use the 3d speaker configuration
-(setf dlocsig-3d t)
-;; render the sound with a 3d path
-(with-sound(:channels 8)
- (sinetest 0 1 440 0.5 :path (make-path '((-10 10 0)(0 5 10)(10 10 5)))))
-</pre></font></table>
-
-<p>Existing instruments can be easily converted to use <em>dlocsig</em>: </p>
-
-<ul>
-<li>add parameters to the <em>definstrument</em> definition. You will need at least one additional parameter to supply the path.
-<li>replace the calculation of the run loop begin and end samples with the second and third values that are returned by <em>make-dlocsig</em>. Use a <em>multiple-value-bind</em> to get them (see the example above) instead of basing the calculation solely on the starting time and duration of the note (which must be supplied to <em>make-dlocsig</em>).
-<li>replace the current output code with a call to <em>dlocsig</em>. Look for either the standard <em>locsig</em> or <em>outa</em>.
-</ul>
-
-<p><em>dlocsig</em> assumes it receives time-ordered samples from the instrument. It will not work in instruments like <a href="http://www-ccrma.stanford.edu/~nando/clm/grani/">grani</a>, a granular synthesis instrument that can randomly splatter samples all over the duration of the note. It will also not work in instruments that generate more than one output channel (ie: <em>dlocsig</em> needs a mono source). In those cases you can use a second instrument which contains dlocsig and a <em>sound-let</em> to hold the rendered sound until it is spatialized. This solution can also be used to spatialize arbitrary instruments when you want to avoid modifying the instrument code (of course, at the expense of having to create the temporary soundfile). Obviously you can also modify your multichannel instrument to use an array of dlocsig structures and spatialize each channel independently!. </p>
-
-<p>Take a look at the <a href="move-sound.ins">move-sound.ins</a> example instrument. The file includes an instrument (<em>move</em>) that can spatialize multichannel soundfiles and a macro (<em>move-it</em>) that can wrap arbitrary lisp code and will spatialize the resulting soundfile. Before trying the example compile and load <em>dlocsig</em>, <em>move-it</em> and Bill's <em>fm-violin</em>:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(with-sound(:channels 4 :play nil)
- (move-it (:path (make-path '((-10 10)(0.1 0.1)(10 -10))))
- (fm-violin 0 1 440 0.1)
- (fm-violin 0.3 2 1020 0.05)))
-</pre></font></table>
-
-<p>The preceding code fragment will create a temporary soundfile with the output of the two fm-violin notes and then will spatialize it using the supplied path. The body of the macro could be made to generate a multichannel soundfile in which case you would have to supply as many paths as channels are generated (each channel is independently spatialized). This rather pointless example illustrates this. The first call to fm-violin outputs to the left channel of the temporary file and the second to the right channel:</p>
-
-<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
-(with-sound(:channels 4 :play nil)
- (move-it (:channels 2
- :paths (list (make-path '((-10 10)(0.1 0.1)(10 -10)))
- (make-spiral-path :turns 2)))
- (fm-violin 0 1 440 0.1 :degree 0)
- (fm-violin 0.3 2 1020 0.05 :degree 90)))
-</pre></font></table>
-
-</td>
-</tr>
-
-</table></p>
-
-<p><table width=100% bgcolor="#e0e0e0"><tr><td>
-<a name="history"><font size="+2">History</font></a></table>
-
-<p>The original "dlocsig" was born in 1992 while I was working at Keio University in Japan. It was originally written to create localization cues for a four channel environment, the hardware being the QuadBox, a four channel D/A that attached to the DSP port of a NeXT computer. The hardware was originally built by Atau Tanaka at CCRMA while I worked on the software in Japan (mainly a 56K DSP program to play four channel soundfiles on the NeXT and an accompaining c code player - quadplay). </p>
-
-<p>Thanks to Juan Pampin for prodding me to write this second version and for his help in the first stages of the project. </p>
-
-<hr>
-
-<table><tr><td><!--- <img src="/CCRMA/Images/Logo:Small.gif" alt=""> -->
- <td><font size="2">&copy;1999, 2000, 2001 Fernando Lopez-Lezcano. All Rights Reserved.<br>
- Created and mantained by Fernando Lopez-Lezcano,
- <a href="mailto:nando@ccrma.stanford.edu">nando@ccrma.stanford.edu</a></font><p>
-</table>
-
-</body>
-</html>
diff --git a/dlocsig.scm b/dlocsig.scm
index 8b32564..9107ef3 100644
--- a/dlocsig.scm
+++ b/dlocsig.scm
@@ -227,7 +227,7 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
"(listp lst) is #t is 'lst' is a non-null list"
(and (list? a) (not (null? a))))
-(define (make-list n val)
+(define (make-list-1 n val)
(let ((lst '()))
(do ((i 0 (+ i 1)))
((= i n))
@@ -864,7 +864,7 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
(set! px (cons (list-ref points i) px))
(set! py (cons (list-ref points (+ i 1)) py))
(set! pz (cons (list-ref points (+ i 2)) pz)))
- (list (reverse px) (reverse py) (reverse pz) (make-list (length px) #f)))
+ (list (reverse px) (reverse py) (reverse pz) (make-list-1 (length px) #f)))
;; it's a two dimensional list
;; '(x0 y0 x1 y1 ... xn yn)
@@ -876,7 +876,7 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
((>= i len))
(set! px (cons (list-ref points i) px))
(set! py (cons (list-ref points (+ i 1)) py)))
- (list (reverse px) (reverse py) (make-list (length px) 0.0) (make-list (length px) #f))))))
+ (list (reverse px) (reverse py) (make-list-1 (length px) 0.0) (make-list-1 (length px) #f))))))
;;; Parse a set of 2d or 3d polar points into the separate coordinates
@@ -936,7 +936,7 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
(set! x (cons (* dxy (imag-part avec)) x))
(set! y (cons (* dxy (real-part avec)) y))
(set! z (cons (* d (imag-part evec)) z))))
- (list (reverse x) (reverse y) (reverse z) (make-list (length x) #f)))
+ (list (reverse x) (reverse y) (reverse z) (make-list-1 (length x) #f)))
;; decode a two dimensional list
;; '(d0 a0 d1 a1 ... dn an)
@@ -953,7 +953,7 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
(avec (cis (* (/ a dlocsig-one-turn) 2 pi))))
(set! x (cons (* d (imag-part avec)) x))
(set! y (cons (* d (real-part avec)) y))))
- (list (reverse x) (reverse y) (make-list (length x) 0.0) (make-list (length x) #f))))))
+ (list (reverse x) (reverse y) (make-list-1 (length x) 0.0) (make-list-1 (length x) #f))))))
(define (xparse-path xpath)
@@ -1503,7 +1503,7 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
(set! xrz (append xrz (list zi-bz) zs))
;; accumulate intermediate unknown velocities as nils
- (set! xrv (append xrv (list vi-bz) (make-list (length xs) #f)))
+ (set! xrv (append xrv (list vi-bz) (make-list-1 (length xs) #f)))
(if (= i (- len 1))
(begin
;; add the last point
diff --git a/draw.fs b/draw.fs
index baabad4..4f35d54 100644
--- a/draw.fs
+++ b/draw.fs
@@ -3,7 +3,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Sun Dec 18 23:36:09 CET 2005
-\ Changed: Sun Jun 14 18:48:14 CEST 2009
+\ Changed: Sat Jul 25 17:37:39 CEST 2009
\ Commentary:
@@ -27,7 +27,7 @@ hide
snd channels 0 ?do
'inset-envelope snd i channel-property { vals }
\ set edit-position to impossible value
- vals if vals 'edit-position -2 array-assoc-set! to vals then
+ vals array? if vals 'edit-position -2 array-assoc-set! to vals then
loop
then
#f
@@ -59,7 +59,7 @@ hide
x-offset lx + chan-offset rx lx - 1 max height
snd grf-chn selection-context #f fill-rectangle drop
'inset-envelope snd chn channel-property { old-env }
- old-env if
+ old-env array? if
new-peaks not
old-env 'width array-assoc-ref width = &&
old-env 'height array-assoc-ref height = &&
@@ -154,7 +154,6 @@ hide
( vals ) 'y-offset y-offset array-assoc-set! { vals }
'inset-envelope vals snd chn set-channel-property drop
then
- \ FIXME
data1 length 2 mod if data1 array-pop drop then
data0 snd grf-chn time-graph draw-lines drop
data1 if data1 snd grf-chn time-graph draw-lines drop then
diff --git a/dsp.fs b/dsp.fs
index 99fb479..41b4a6e 100644
--- a/dsp.fs
+++ b/dsp.fs
@@ -2,7 +2,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Fri Dec 30 04:52:13 CET 2005
-\ Changed: Sat Sep 26 02:09:32 CEST 2009
+\ Changed: Tue Nov 17 16:30:58 CET 2009
\ src-duration ( en -- dur )
\ src-fit-envelope ( e1 target-dur -- e2 )
@@ -168,56 +168,58 @@ for time-varying sampling-rate conversion."
;
: src-fit-envelope { e1 target-dur -- e2 } e1 e1 src-duration target-dur f/ scale-envelope ;
-\ ;;; -------- Dolph-Chebyshev window
-\ ;;;
-\ ;;; formula taken from Richard Lyons, "Understanding DSP"
-\ ;;; see clm.c for C version (using either GSL's or GCC's complex trig functions)
-
-: dolph ( n gamma -- im )
- doc" Produces a Dolph-Chebyshev FFT data window of N points using GAMMA as the window parameter."
- { n gamma }
- 10.0 gamma f** cacosh n c/ ccosh { alpha }
- alpha cacosh n c* ccosh 1/c { den }
- n 0.0 make-vct { rl }
- n 0.0 make-vct { im }
- pi n f/ { freq }
- 0.0 { phase }
- n 0 ?do
- phase ccos alpha c* cacos n c* ccos den c* { val }
- rl i val real-ref vct-set! drop
- im i val imag-ref vct-set! drop
- phase freq f+ to phase
- loop
- rl im -1 fft ( rl ) dup vct-peak 1/f vct-scale! ( rl ) n 2/ cycle-start!
- n 0 ?do im i rl cycle-ref vct-set! drop loop
- im
-;
-
-\ ;;; this version taken from Julius Smith's "Spectral Audio..." with three changes
-\ ;;; it does the DFT by hand, and is independent of anything from Snd (fft, vcts etc)
-
-: dolph-1 ( n gamma -- im )
- { n gamma }
- 10.0 gamma f** cacosh n c/ ccosh { alpha }
- alpha cacosh n c* ccosh 1/c { den }
- pi n f/ { freq }
- half-pi fnegate { phase }
- -1.0 { mult }
- n make-array map!
- phase ccos alpha c* cacos n c* ccos den c* mult c* ( val )
- mult fnegate to mult
- phase freq f+ to phase
- ( val )
- end-map { vals }
- \ now take the DFT
- 0.0 { pk }
- n make-array map!
- 0.0 ( sum )
- vals each ( val ) 0+1.0i two-pi c* j c* i c* n c/ cexp c* c+ ( sum++ ) end-each cabs { sum }
- sum pk f> if sum to pk then
- sum
- end-map ( w ) map! *key* pk f/ end-map ( w )
-;
+'complex provided? [if]
+ \ ;;; -------- Dolph-Chebyshev window
+ \ ;;;
+ \ ;;; formula taken from Richard Lyons, "Understanding DSP"
+ \ ;;; see clm.c for C version (using either GSL's or GCC's complex trig functions)
+
+ : dolph ( n gamma -- im )
+ doc" Produces a Dolph-Chebyshev FFT data window of N points using GAMMA as the window parameter."
+ { n gamma }
+ 10.0 gamma f** cacosh n c/ ccosh { alpha }
+ alpha cacosh n c* ccosh 1/c { den }
+ n 0.0 make-vct { rl }
+ n 0.0 make-vct { im }
+ pi n f/ { freq }
+ 0.0 { phase }
+ n 0 ?do
+ phase ccos alpha c* cacos n c* ccos den c* { val }
+ rl i val real-ref vct-set! drop
+ im i val imag-ref vct-set! drop
+ phase freq f+ to phase
+ loop
+ rl im -1 fft ( rl ) dup vct-peak 1/f vct-scale! ( rl ) n 2/ cycle-start!
+ n 0 ?do im i rl cycle-ref vct-set! drop loop
+ im
+ ;
+
+ \ ;;; this version taken from Julius Smith's "Spectral Audio..." with three changes
+ \ ;;; it does the DFT by hand, and is independent of anything from Snd (fft, vcts etc)
+
+ : dolph-1 ( n gamma -- im )
+ { n gamma }
+ 10.0 gamma f** cacosh n c/ ccosh { alpha }
+ alpha cacosh n c* ccosh 1/c { den }
+ pi n f/ { freq }
+ half-pi fnegate { phase }
+ -1.0 { mult }
+ n make-array map!
+ phase ccos alpha c* cacos n c* ccos den c* mult c* ( val )
+ mult fnegate to mult
+ phase freq f+ to phase
+ ( val )
+ end-map { vals }
+ \ now take the DFT
+ 0.0 { pk }
+ n make-array map!
+ 0.0 ( sum )
+ vals each ( val ) 0+1.0i two-pi c* j c* i c* n c/ cexp c* c+ ( sum++ ) end-each cabs { sum }
+ sum pk f> if sum to pk then
+ sum
+ end-map ( w ) map! *key* pk f/ end-map ( w )
+ ;
+[then]
\ ;;; ------- move sound down by n (a power of 2) ---
@@ -247,26 +249,28 @@ for time-varying sampling-rate conversion."
rl2 0 n len * snd chn #f $" %s %s" #( n get-func-name ) string-format vct->channel
;
-: stretch-sound-via-dft <{ factor :optional snd #f chn #f -- }>
- doc" Makes the given channel longer (FACTOR should be > 1.0) \
-by squeezing in the frequency domain, then using the inverse DFT to get the time domain result."
- snd chn #f frames { n }
- n f2/ floor f>s { n2 }
- n factor f* fround->s { out-n }
- 0 n snd chn #f channel->vct { in-data }
- out-n :initial-element 0.0 make-array { fr }
- two-pi n f/ { freq }
- n 0 ?do
- i n2 < if
- fr i freq 0.0-1.0i c* i c* in-data edot-product array-set!
- else
- fr out-n n - 1- i + freq 0.0-1.0i c* i c* in-data edot-product array-set!
- then
- loop
- two-pi out-n f/ { freq }
- out-n 0.0 make-vct map! freq 0.0+1.0i c* i c* fr edot-product n c/ real-ref end-map ( out-data )
- 0 out-n snd chn #f $" %s %s" #( factor get-func-name ) string-format vct->channel drop
-;
+'complex provided? [if]
+ : stretch-sound-via-dft <{ factor :optional snd #f chn #f -- }>
+ doc" Makes the given channel longer (FACTOR should be > 1.0) \
+ by squeezing in the frequency domain, then using the inverse DFT to get the time domain result."
+ snd chn #f frames { n }
+ n f2/ floor f>s { n2 }
+ n factor f* fround->s { out-n }
+ 0 n snd chn #f channel->vct { in-data }
+ out-n :initial-element 0.0 make-array { fr }
+ two-pi n f/ { freq }
+ n 0 ?do
+ i n2 < if
+ fr i freq 0.0-1.0i c* i c* in-data edot-product array-set!
+ else
+ fr out-n n - 1- i + freq 0.0-1.0i c* i c* in-data edot-product array-set!
+ then
+ loop
+ two-pi out-n f/ { freq }
+ out-n 0.0 make-vct map! freq 0.0+1.0i c* i c* fr edot-product n c/ real-ref end-map ( out-data )
+ 0 out-n snd chn #f $" %s %s" #( factor get-func-name ) string-format vct->channel drop
+ ;
+[then]
\ ;;; -------- compute-uniform-circular-string
\ ;;;
@@ -512,7 +516,7 @@ Global variable CHORDALIZE-CHORD is an array of members of chord such as #( 1 5/
: rotate-phase <{ func :optional snd #f chn #f -- vct }>
doc" Calls fft, applies FUNC, a proc or xt, to each phase, then un-ffts."
- func proc? func xt? || func 1 $" a proc or xt" _ assert-type
+ func proc? func xt? || func 1 $" a proc or xt" assert-type
snd chn #f frames { len }
2.0 len flog 2.0 flog f/ fceil ( pow2 ) f** fround->s { fftlen }
fftlen 2/ { fftlen2 }
@@ -1257,7 +1261,7 @@ its order is M * 2, F1 and F2 are the band edge frequencies in Hz."
: notch-selection <{ freqs :optional filter-order #f notch-width 2 -- f }>
doc" Returns a notch filter removing freqs."
- selection? if
+ undef selection? if
selection-srate s>f freqs notch-width make-notch-frequency-response ( nf )
filter-order
2.0 selection-srate notch-width f/ flog 2.0 flog f/ fceil f** fround->s || ( order )
@@ -1293,21 +1297,23 @@ if angle=1.0, you get a normal Fourier transform."
end-map ( hr ) hi
;
-: z-transform ( data n z -- )
- doc" Performs a Z transform on DATA; \
-if z=e^2*pi*j/n you get a Fourier transform; complex results in returned vector."
- { f n z }
- n make-array map!
- 0.0 ( sum )
- 1.0 { t }
- z i f** { m }
- n 0 ?do
- f i vct-ref t c* c+ ( sum += ... )
- t m c* to t
- loop ( sum )
- end-map
-;
-\ data n 0.0 2.0 n f/ pi f* make-rectangular cexp z-transform
+'complex provided? [if]
+ : z-transform ( data n z -- )
+ doc" Performs a Z transform on DATA; \
+ if z=e^2*pi*j/n you get a Fourier transform; complex results in returned vector."
+ { f n z }
+ n make-array map!
+ 0.0 ( sum )
+ 1.0 { t }
+ z i f** { m }
+ n 0 ?do
+ f i vct-ref t c* c+ ( sum += ... )
+ t m c* to t
+ loop ( sum )
+ end-map
+ ;
+ \ data n 0.0 2.0 n f/ pi f* make-rectangular cexp z-transform
+[then]
\ ;;; -------- slow Hartley transform
@@ -1328,45 +1334,47 @@ if z=e^2*pi*j/n you get a Fourier transform; complex results in returned vector.
arr
;
-: find-sine ( freq beg dur -- amp ph )
- doc" Returns the amplitude and initial-phase (for sin) at FREQ."
- { freq beg dur }
- freq hz->radians { incr }
- 0.0 0.0 { sw cw }
- beg #f #f 1 #f make-sampler { reader }
- dur 0 do
- reader next-sample { samp }
- i incr c* csin samp c* sw c+ to sw
- i incr c* ccos samp c* cw c+ to sw
- loop
- sw sw c* cw cw c* c+ csqrt dur c/ 2.0 c* ( amp )
- cw sw catan2 ( ph )
-;
+'complex provided? [if]
+ : find-sine ( freq beg dur -- amp ph )
+ doc" Returns the amplitude and initial-phase (for sin) at FREQ."
+ { freq beg dur }
+ freq hz->radians { incr }
+ 0.0 0.0 { sw cw }
+ beg #f #f 1 #f make-sampler { reader }
+ dur 0 do
+ reader next-sample { samp }
+ i incr c* csin samp c* sw c+ to sw
+ i incr c* ccos samp c* cw c+ to sw
+ loop
+ sw sw c* cw cw c* c+ csqrt dur c/ 2.0 c* ( amp )
+ cw sw catan2 ( ph )
+ ;
-hide
-: goert-cb { y0 y1 y2 cs -- prc; y self -- f }
- 1 proc-create y0 , y1 , y2 , cs , ( prc )
- does> { y self -- f }
- self 1 cells + @ self 2 cells + ! ( y2 = y1 )
- self @ self 1 cells + ! ( y1 = y0 )
- self 1 cells + @ { y1 }
- self 2 cells + @ { y2 }
- self 3 cells + @ { cs }
- y1 cs c* y2 c- y c+ self ! ( y0 = ... )
- #f
-;
-set-current
-: goertzel <{ freq :optional beg 0 dur #f -- amp }>
- doc" Returns the amplitude of the FREQ spectral component."
- #f srate { sr }
- 0.0 0.0 0.0 { y0 y1 y2 }
- two-pi freq f* sr f/ { rfreq }
- rfreq fcos f2* { cs }
- dur unless #f #f #f frames to dur then
- y0 y1 y2 cs goert-cb beg dur #f #f #f scan-channel drop
- 0.0 rfreq fnegate make-rectangular cexp y1 c* y0 c+ magnitude
-;
-previous
+ hide
+ : goert-cb { y0 y1 y2 cs -- prc; y self -- f }
+ 1 proc-create y0 , y1 , y2 , cs , ( prc )
+ does> { y self -- f }
+ self 1 cells + @ self 2 cells + ! ( y2 = y1 )
+ self @ self 1 cells + ! ( y1 = y0 )
+ self 1 cells + @ { y1 }
+ self 2 cells + @ { y2 }
+ self 3 cells + @ { cs }
+ y1 cs c* y2 c- y c+ self ! ( y0 = ... )
+ #f
+ ;
+ set-current
+ : goertzel <{ freq :optional beg 0 dur #f -- amp }>
+ doc" Returns the amplitude of the FREQ spectral component."
+ #f srate { sr }
+ 0.0 0.0 0.0 { y0 y1 y2 }
+ two-pi freq f* sr f/ { rfreq }
+ rfreq fcos f2* { cs }
+ dur unless #f #f #f frames to dur then
+ y0 y1 y2 cs goert-cb beg dur #f #f #f scan-channel drop
+ 0.0 rfreq fnegate make-rectangular cexp y1 c* y0 c+ magnitude
+ ;
+ previous
+[then]
: make-spencer-filter ( -- gen )
doc" It's a version of make-fir-filter; \
@@ -1873,10 +1881,10 @@ DB-FLOOR is the level below which data will be ignored."
file mus-sound-srate { fsr }
fsr rfreq f/ fround->s { incrsamps }
beg fsr f* fround->s { start }
- dur if dur fsr f* else file mus-sound-frames beg b- then { end }
+ dur if dur fsr f* else file mus-sound-frames beg d- then { end }
fftsize 0.0 make-vct { fdr }
fftsize 0.0 make-vct { fdi }
- end start b- incrsamps b/ 1+ { windows }
+ end start d- incrsamps d/ 1 d+ { windows }
windows 0.0 make-vct { results }
fftsize 2/ { fft2 }
fsr fftsize f/ fround->s { binwidth }
diff --git a/edit123.scm b/edit123.scm
index 1b3ec5a..1ad41cf 100644
--- a/edit123.scm
+++ b/edit123.scm
@@ -305,7 +305,7 @@
(lambda (snd)
(set! (channel-style snd) channels-superimposed)))
- (play (cursor)))
+ (play (selected-sound) :start (cursor)))
(define (play-end)
(key (char->integer #\>) 1)
@@ -313,7 +313,7 @@
(key (char->integer #\t) 4)
(set! status 2)
(set! (cursor) (- (cursor) 100000))
-(play (cursor))
+(play (selected-sound) :start (cursor))
)
(define (toggle-play)
diff --git a/effects.fs b/effects.fs
index d2ff1c8..703a1b7 100644
--- a/effects.fs
+++ b/effects.fs
@@ -3,7 +3,7 @@
\ Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Sun Oct 16 23:04:30 CEST 2005
-\ Changed: Sat Sep 26 02:10:11 CEST 2009
+\ Changed: Tue Nov 17 16:31:38 CET 2009
\ Commentary:
\
@@ -148,10 +148,10 @@ hide
: unmanage-cb <{ w c i -- }> c FXtUnmanageChild drop ;
: make-effect-dialog { label ok-prc help-prc reset-prc -- dialog }
- "Dismiss" _ FXmFONTLIST_DEFAULT_TAG FXmStringCreate { xdismiss }
- "Help" _ FXmFONTLIST_DEFAULT_TAG FXmStringCreate { xhelp }
- "DoIt" _ FXmFONTLIST_DEFAULT_TAG FXmStringCreate { xok }
- label _ FXmFONTLIST_DEFAULT_TAG FXmStringCreate { titlestr }
+ "Dismiss" FXmFONTLIST_DEFAULT_TAG FXmStringCreate { xdismiss }
+ "Help" FXmFONTLIST_DEFAULT_TAG FXmStringCreate { xhelp }
+ "DoIt" FXmFONTLIST_DEFAULT_TAG FXmStringCreate { xok }
+ label FXmFONTLIST_DEFAULT_TAG FXmStringCreate { titlestr }
main-widgets 1 array-ref label
#( FXmNcancelLabelString xdismiss
FXmNhelpLabelString xhelp
@@ -172,7 +172,7 @@ hide
new-dialog FXmNhelpCallback help-prc undef FXtAddCallback drop
new-dialog FXmNokCallback ok-prc undef FXtAddCallback drop
reset-prc if
- "Reset" _ FxmPushButtonWidgetClass new-dialog
+ "Reset" FxmPushButtonWidgetClass new-dialog
#( FXmNbackground reset-button-color
FXmNforeground black-pixel
FXmNarmColor pushed-button-color ) undef FXtCreateManagedWidget ( reset-button )
@@ -232,7 +232,7 @@ hide
\ semitone scaler widget
24 value semi-range
-: semi-scale-label ( val -- str ) $" semitones: %s" _ swap semi-range - 1 >array string-format ;
+: semi-scale-label ( val -- str ) $" semitones: %s" swap semi-range - 1 >array string-format ;
: semitones->ratio ( val -- r )
2.0 swap 12.0 f/ f**
;
@@ -241,7 +241,7 @@ hide
;
: scale-semi-cb <{ w c info -- }> c info Fvalue semi-scale-label change-label ;
: create-semi-scale-widget { parent title init cb -- scale-label-list }
- $" semitones: %s" _ #( init ratio->semitones ) string-format { str }
+ $" semitones: %s" #( init ratio->semitones ) string-format { str }
str FxmLabelWidgetClass parent
#( FXmNbackground basic-color ) undef FXtCreateManagedWidget { label }
"scale" FxmScaleWidgetClass parent
@@ -337,7 +337,7 @@ hide
dpy scr FDefaultColormap { cmap }
undef undef undef undef undef undef FXColor { col }
dpy cmap self cell+ @ ( color-str ) col col FXAllocNamedColor 0= if
- $" can't allocate color!" _ snd-error drop
+ $" can't allocate color!" snd-error drop
else
col Fpixel self !
then
@@ -368,9 +368,9 @@ hide
FXmNrightAttachment FXmATTACH_FORM
FXmNentryClass FxmToggleButtonWidgetClass
FXmNisHomogeneous #t ) undef FXtCreateManagedWidget { rc }
- #( #( $" entire sound" _ 'sound )
- #( $" selection" _ 'selection )
- #( $" between marks" _ 'marks ) ) each { lst }
+ #( #( $" entire sound" 'sound )
+ #( $" selection" 'selection )
+ #( $" between marks" 'marks ) ) each { lst }
lst 1 array-ref { typ }
lst 0 array-ref ( name ) FxmToggleButtonWidgetClass rc
#( FXmNbackground basic-color
@@ -381,13 +381,13 @@ hide
typ 'sound equal? if wid #t #t FXmToggleButtonSetState drop then
typ 'selection equal? if
selection-buttons wid array-push drop
- selection? unless wid #f FXtSetSensitive drop then
+ undef selection? unless wid #f FXtSetSensitive drop then
then
end-each
truncate-prc if
"trsep" FxmSeparatorWidgetClass mainform
#( FXmNorientation FXmHORIZONTAL ) undef FXtCreateManagedWidget drop
- $" truncate at end" _ FxmToggleButtonWidgetClass mainform
+ $" truncate at end" FxmToggleButtonWidgetClass mainform
#( FXmNbackground basic-color
FXmNset #t
FXmNselectColor yellow-pixel ) undef FXtCreateManagedWidget ( trbutton )
@@ -472,14 +472,14 @@ hide
;
: map-chan-over-target-with-sync { func target origin-func decay -- }
- target 'selection equal? selection? not && if
- $" no selection" _ snd-warning drop
+ target 'selection equal? undef selection? not && if
+ $" no selection" snd-warning drop
else
target 'sound equal? sounds nil? && if
- $" no sound" _ snd-warning drop
+ $" no sound" snd-warning drop
else
target 'marks equal? sounds nil? && if
- $" no marks" _ snd-warning drop
+ $" no marks" snd-warning drop
else
#f sync { snc }
target 'marks = if
@@ -643,14 +643,14 @@ hide
then
else
gen target@ 'selection equal? if
- selection? if
+ undef selection? if
with-env array? if
with-env 1.0 env-selection drop
else
gen amount@ scale-selection-by drop
then
else
- $" no selection" _ snd-warning drop
+ $" no selection" snd-warning drop
then
else
plausible-mark-samples { pts }
@@ -667,7 +667,7 @@ hide
pts 0 array-ref - #f #f #f normalize-channel drop
then
else
- $" no marks" _ snd-warning drop
+ $" no marks" snd-warning drop
then
then
then
@@ -695,9 +695,9 @@ hide
gen dialog@ FWidget? unless
gen label@
gen gain-ok-cb
- gen label@ $" Move the slider to change the gain scaling amount." _ help-cb
+ gen label@ $" Move the slider to change the gain scaling amount." help-cb
gen gain-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( "gain" _ 0.0 gen amount@ 5.0 gen gain-slider-cb 100 ) )
+ gen dialog@ #( #( "gain" 0.0 gen amount@ 5.0 gen gain-slider-cb 100 ) )
add-sliders gen sliders!
"fr" FxmFrameWidgetClass gen sliders@ 0 array-ref FXtParent FXtParent
#( FXmNheight 200
@@ -749,10 +749,10 @@ hide
gen amount@ #f #f scale-to drop
else
gen target@ 'selection equal? if
- selection? if
+ undef selection? if
gen amount@ scale-selection-to drop
else
- $" no selection" _ snd-warning drop
+ $" no selection" snd-warning drop
then
else
plausible-mark-samples { pts }
@@ -762,7 +762,7 @@ hide
pts 1 array-ref
pts 0 array-ref - #f #f #f normalize-channel drop
else
- $" no marks" _ snd-warning drop
+ $" no marks" snd-warning drop
then
then
then
@@ -791,9 +791,9 @@ hide
gen label@
gen normalize-ok-cb
gen label@ $" Normalize scales amplitude to the normalize amount. \
-Move the slider to change the scaling amount." _ help-cb
+Move the slider to change the scaling amount." help-cb
gen normalize-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( "normalize" _ 0.0 gen amount@ 1.0 gen normalize-slider-cb 100 ) )
+ gen dialog@ #( #( "normalize" 0.0 gen amount@ 1.0 gen normalize-slider-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target drop
then
@@ -869,13 +869,13 @@ end-struct gate%
gen label@
gen gate-ok-cb
gen label@
- $" Move the slider to change the gate intensity. Higher values gate more of the sound." _
+ $" Move the slider to change the gate intensity. Higher values gate more of the sound."
help-cb
gen gate-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( "gate" _ 0.0 gen amount@ 0.1 gen gate-slider-cb 1000 ) )
+ gen dialog@ #( #( "gate" 0.0 gen amount@ 0.1 gen gate-slider-cb 1000 ) )
add-sliders gen sliders!
- $" Omit silence" _ FXmStringCreateLocalized { s1 }
- $" Omit silence" _ FxmToggleButtonWidgetClass gen sliders@ 0 array-ref FXtParent
+ $" Omit silence" FXmStringCreateLocalized { s1 }
+ $" Omit silence" FxmToggleButtonWidgetClass gen sliders@ 0 array-ref FXtParent
#( FXmNselectColor pushed-button-color
FXmNbackground basic-color
FXmNvalue gen omit-silence@ if 1 else 0 then
@@ -1069,11 +1069,11 @@ hide
gen dialog@ FWidget? unless
gen label@
gen echo-ok-cb
- gen label@ $" The sliders change the delay time and echo amount." _ help-cb
+ gen label@ $" The sliders change the delay time and echo amount." help-cb
gen echo-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" delay time" _ 0.0 gen delay-time@ 2.0 gen echo-delay-slider-cb 100 )
- #( $" echo amount" _ 0.0 gen amount@ 1.0 gen echo-amount-slider-cb 100 ) )
+ #( #( $" delay time" 0.0 gen delay-time@ 2.0 gen echo-delay-slider-cb 100 )
+ #( $" echo amount" 0.0 gen amount@ 1.0 gen echo-amount-slider-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb gen truncate-cb add-target drop
then
@@ -1156,12 +1156,12 @@ hide
gen dialog@ FWidget? unless
gen label@
gen flecho-ok-cb
- gen label@ $" Move the sliders to set the filter scaler and the delay time in seconds." _
+ gen label@ $" Move the sliders to set the filter scaler and the delay time in seconds."
help-cb
gen flecho-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" filter scaler" _ 0.0 gen amount@ 1.0 gen echo-amount-slider-cb 100 )
- #( $" delay time (secs)" _ 0.0 gen delay-time@ 3.0 gen echo-delay-slider-cb 100 ) )
+ #( #( $" filter scaler" 0.0 gen amount@ 1.0 gen echo-amount-slider-cb 100 )
+ #( $" delay time (secs)" 0.0 gen delay-time@ 3.0 gen echo-delay-slider-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb gen truncate-cb add-target drop
then
@@ -1283,13 +1283,13 @@ hide
gen label@
gen zecho-ok-cb
gen label@ $" Move the sliders to set the echo scaler, \
-the delay time in seconds, the modulation frequency, and the echo amplitude." _ help-cb
+the delay time in seconds, the modulation frequency, and the echo amplitude." help-cb
gen zecho-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" echo scaler" _ 0.0 gen scaler@ 1.0 gen zecho-scl-slider-cb 100 )
- #( $" delay time (secs)" _ 0.0 gen delay-time@ 3.0 gen zecho-del-slider-cb 100 )
- #( $" modulatio frequency" _ 0.0 gen frequency@ 100.0 gen zecho-frq-slider-cb 100 )
- #( $" modulatio amplitude" _ 0.0 gen amplitude@ 100.0 gen zecho-amp-slider-cb 100 ) )
+ #( #( $" echo scaler" 0.0 gen scaler@ 1.0 gen zecho-scl-slider-cb 100 )
+ #( $" delay time (secs)" 0.0 gen delay-time@ 3.0 gen zecho-del-slider-cb 100 )
+ #( $" modulatio frequency" 0.0 gen frequency@ 100.0 gen zecho-frq-slider-cb 100 )
+ #( $" modulatio amplitude" 0.0 gen amplitude@ 100.0 gen zecho-amp-slider-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb gen truncate-cb add-target drop
then
@@ -1438,11 +1438,11 @@ end-struct bp-filter%
gen label@
gen bp-ok-cb
gen label@ $" Butterworth band-pass filter. \
-Move the sliders to change the center frequency and bandwidth." _ help-cb
+Move the sliders to change the center frequency and bandwidth." help-cb
gen bp-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" center frequency" _ 20.0 gen frequency@ 22050.0 gen bp-freq-slider-cb 1 'log )
- #( $" bandwidth" _ 0 gen band-pass-bw@ 1000 gen bp-bw-slider-cb 1 ) )
+ #( #( $" center frequency" 20.0 gen frequency@ 22050.0 gen bp-freq-slider-cb 1 'log )
+ #( $" bandwidth" 0 gen band-pass-bw@ 1000 gen bp-bw-slider-cb 1 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref 0 array-ref FXtParent gen target-cb #f add-target drop
then
@@ -1532,11 +1532,11 @@ end-struct notch%
gen label@
gen br-ok-cb
gen label@ $" Butterworth band-reject filter. \
-Move the sliders to change the center frequency and bandwidth." _ help-cb
+Move the sliders to change the center frequency and bandwidth." help-cb
gen br-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" center frequency" _ 20.0 gen frequency@ 22050.0 gen br-freq-slider-cb 1 'log )
- #( $" bandwidth" _ 0 gen notch-bw@ 1000 gen br-bw-slider-cb 1 ) )
+ #( #( $" center frequency" 20.0 gen frequency@ 22050.0 gen br-freq-slider-cb 1 'log )
+ #( $" bandwidth" 0 gen notch-bw@ 1000 gen br-bw-slider-cb 1 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref 0 array-ref FXtParent gen target-cb #f add-target drop
then
@@ -1611,10 +1611,10 @@ hide
gen label@
gen hp-ok-cb
gen label@ $" Butterworth high-pass filter. \
-Move the slider to change the high-pass cutoff frequency." _ help-cb
+Move the slider to change the high-pass cutoff frequency." help-cb
gen hp-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" high-pass cutoff frequency" _
+ #( #( $" high-pass cutoff frequency"
20.0 gen frequency@ 22050.0 gen hp-freq-slider-cb 1 'log ) ) add-sliders gen sliders!
gen sliders@ 0 array-ref 0 array-ref FXtParent gen target-cb #f add-target drop
then
@@ -1687,10 +1687,10 @@ hide
gen label@
gen lp-ok-cb
gen label@ $" Butterworth low-pass filter. \
-Move the slider to change the low-pass cutoff frequency." _ help-cb
+Move the slider to change the low-pass cutoff frequency." help-cb
gen lp-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" low-pass cutoff frequency" _
+ #( #( $" low-pass cutoff frequency"
20.0 gen frequency@ 22050.0 gen lp-freq-slider-cb 1 'log ) ) add-sliders gen sliders!
gen sliders@ 0 array-ref 0 array-ref FXtParent gen target-cb #f add-target drop
then
@@ -1768,11 +1768,11 @@ hide
gen dialog@ FWidget? unless
gen label@
gen comb-ok-cb
- gen label@ $" Move the slider to change the comb scaler and size." _ help-cb
+ gen label@ $" Move the slider to change the comb scaler and size." help-cb
gen comb-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( "scaler" _ 0.0 gen scaler@ 1.0 gen scaler-slider-cb 100 )
- #( "size" _ 0 gen size@ 100 gen size-slider-cb 1 ) ) add-sliders gen sliders!
+ #( #( "scaler" 0.0 gen scaler@ 1.0 gen scaler-slider-cb 100 )
+ #( "size" 0 gen size@ 100 gen size-slider-cb 1 ) ) add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target drop
then
gen dialog@ activate-dialog
@@ -1861,12 +1861,12 @@ hide
gen label@
gen cc-ok-cb
gen label@ $" Creates chords by using filters at harmonically related sizes. \
-Move the sliders to set the comb chord parameters." _ help-cb
+Move the sliders to set the comb chord parameters." help-cb
gen cc-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" chord scaler" _ 0.0 gen scaler@ 1.0 gen cc-scaler-cb 100 )
- #( $" chord size" _ 0 gen size@ 100 gen cc-size-cb 1 )
- #( $" amplitude" _ 0.0 gen amplitude@ 1.0 gen cc-amplitude-cb 100 ) )
+ #( #( $" chord scaler" 0.0 gen scaler@ 1.0 gen cc-scaler-cb 100 )
+ #( $" chord size" 0 gen size@ 100 gen cc-size-cb 1 )
+ #( $" amplitude" 0.0 gen amplitude@ 1.0 gen cc-amplitude-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target drop
then
@@ -1963,11 +1963,11 @@ end-struct moog%
gen label@
gen moog-ok-cb
gen label@ $" Moog-style 4-pole lowpass filter with 24db/oct rolloff and variable resonance. \
-Move the sliders to set the filter cutoff frequency and resonance." _ help-cb
+Move the sliders to set the filter cutoff frequency and resonance." help-cb
gen moog-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" cutoff frequency" _ 20.0 gen frequency@ 22050.0 gen moog-freq-cb 1 'log )
- #( $" resonanze" _ 0.0 gen moog-resonance@ 1.0 gen moog-res-cb 100 ) )
+ #( #( $" cutoff frequency" 20.0 gen frequency@ 22050.0 gen moog-freq-cb 1 'log )
+ #( $" resonanze" 0.0 gen moog-resonance@ 1.0 gen moog-res-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref 0 array-ref FXtParent gen target-cb #f add-target drop
then
@@ -2068,9 +2068,9 @@ hide
gen dialog@ FWidget? unless
gen label@
gen adsat-ok-cb
- gen label@ $" Move the slider to change the saturation scaling factor." _ help-cb
+ gen label@ $" Move the slider to change the saturation scaling factor." help-cb
gen adsat-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( $" adaptive saturation size" _ 0 gen size@ 10 gen adsat-size-cb 1 ) )
+ gen dialog@ #( #( $" adaptive saturation size" 0 gen size@ 10 gen adsat-size-cb 1 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -2105,13 +2105,13 @@ hide
gen amount@ 1.0 undef undef undef src-sound drop
else
gen target@ 'selection equal? if
- selection? if
+ undef selection? if
gen amount@ 1.0 src-selection drop
else
- $" no selection" _ snd-warning drop
+ $" no selection" snd-warning drop
then
else
- $" can't apply src between marks yet" _ snd-warning drop
+ $" can't apply src between marks yet" snd-warning drop
then
then
;
@@ -2139,9 +2139,9 @@ hide
gen label@
gen src-ok-cb
gen label@ $" Move the slider to change the sample rate. \
-Values greater than 1.0 speed up file play, negative values reverse it." _ help-cb
+Values greater than 1.0 speed up file play, negative values reverse it." help-cb
gen src-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( $" sample rate" _ -2.0 gen amount@ 2.0 gen src-amount-cb 100 ) )
+ gen dialog@ #( #( $" sample rate" -2.0 gen amount@ 2.0 gen src-amount-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -2208,7 +2208,7 @@ end-struct expsrc%
pts 1 array-ref
pts 0 array-ref - 1+ apply-controls drop
else
- $" no marks" _ snd-warning drop
+ $" no marks" snd-warning drop
then
else
snd gen target@ 'sound equal? if 0 else 2 then undef undef apply-controls drop
@@ -2276,14 +2276,14 @@ end-struct expsrc%
gen dialog@ FWidget? unless
gen label@
gen expsrc-ok-cb
- gen label@ $" Move the slider to change the time/pitch scaling parameter." _ help-cb
+ gen label@ $" Move the slider to change the time/pitch scaling parameter." help-cb
gen expsrc-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" time scale" _ 0.0 gen time-scale@ 5.0 gen expsrc-ts-cb 100 )
- #( $" hop size" _ 0.0 gen size@ 1.0 gen expsrc-hs-cb 100 )
- #( $" segment-length" _ 0.0 gen segment-length@ 0.5 gen expsrc-sl-cb 100 )
- #( $" ramp scale" _ 0.0 gen ramp-scale@ 0.5 gen expsrc-rs-cb 100 )
- #( $" pitch scale" _ 0.0 gen pitch-scale@ 5.0 gen expsrc-ps-cb 100 ) )
+ #( #( $" time scale" 0.0 gen time-scale@ 5.0 gen expsrc-ts-cb 100 )
+ #( $" hop size" 0.0 gen size@ 1.0 gen expsrc-hs-cb 100 )
+ #( $" segment-length" 0.0 gen segment-length@ 0.5 gen expsrc-sl-cb 100 )
+ #( $" ramp scale" 0.0 gen ramp-scale@ 0.5 gen expsrc-rs-cb 100 )
+ #( $" pitch scale" 0.0 gen pitch-scale@ 5.0 gen expsrc-ps-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -2328,7 +2328,7 @@ hide
selected-sound #f selection-member? if
en 1.0 src-selection drop
else
- $" no selection" _ snd-warning drop
+ $" no selection" snd-warning drop
then
else
plausible-mark-samples { pts }
@@ -2338,7 +2338,7 @@ hide
end beg - { len }
:envelope en :length len make-env beg len selected-sound #f #f src-channel drop
else
- $" no marks" _ snd-warning drop
+ $" no marks" snd-warning drop
then
then
then
@@ -2367,9 +2367,9 @@ hide
gen dialog@ FWidget? unless
gen label@
gen src-timevar-ok-cb
- gen label@ $" Move the slider to change the src-timevar scaling amount." _ help-cb
+ gen label@ $" Move the slider to change the src-timevar scaling amount." help-cb
gen src-timevar-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( $" Resample factor" _ 0.0 gen scaler@ 10.0 gen src-timevar-slider-cb 100 ) )
+ gen dialog@ #( #( $" Resample factor" 0.0 gen scaler@ 10.0 gen src-timevar-slider-cb 100 ) )
add-sliders gen sliders!
"fr" FxmFrameWidgetClass gen sliders@ 0 array-ref FXtParent FXtParent
#( FXmNheight 200
@@ -2519,9 +2519,9 @@ hide
gen dialog@ FWidget? unless
gen label@
gen am-ok-cb
- gen label@ $" Move the slider to change the modulation amount." _ help-cb
+ gen label@ $" Move the slider to change the modulation amount." help-cb
gen am-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( $" amplitude modulation" _ 0.0 gen amount@ 1000.0 gen am-slider-cb 1 ) )
+ gen dialog@ #( #( $" amplitude modulation" 0.0 gen amount@ 1000.0 gen am-slider-cb 1 ) )
add-sliders gen sliders!
"fr" FxmFrameWidgetClass gen sliders@ 0 array-ref FXtParent FXtParent
#( FXmNheight 200
@@ -2630,11 +2630,11 @@ hide
gen dialog@ FWidget? unless
gen label@
gen rm-ok-cb
- gen label@ $" Move the slider to change ring modulation parameters." _ help-cb
+ gen label@ $" Move the slider to change ring modulation parameters." help-cb
gen rm-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" modulation frequency" _ 0 gen frequency@ 1000 gen rm-freq-cb 1 )
- #( $" modulation radians" _ 0 gen scaler@ 360 gen rm-radians-cb 1 ) )
+ #( #( $" modulation frequency" 0 gen frequency@ 1000 gen rm-freq-cb 1 )
+ #( $" modulation radians" 0 gen scaler@ 360 gen rm-radians-cb 1 ) )
add-sliders gen sliders!
"fr" FxmFrameWidgetClass gen sliders@ 0 array-ref FXtParent FXtParent
#( FXmNheight 200
@@ -2801,7 +2801,7 @@ end-struct nrev-reverb%
pts 1 array-ref
pts 0 array-ref - 1+ apply-controls drop
else
- $" no marks" _ snd-warning drop
+ $" no marks" snd-warning drop
then
else
snd gen target@ 'sound equal? if 0 else 2 then undef undef apply-controls drop
@@ -2849,12 +2849,12 @@ end-struct nrev-reverb%
gen nrev-ok-cb
gen label@ $" Reverberator from Michael McNabb. \
Adds reverberation scaled by reverb amount, lowpass filtering, and feedback. \
-Move the sliders to change the reverb parameters." _ help-cb
+Move the sliders to change the reverb parameters." help-cb
gen nrev-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" reverb amount" _ 0.0 gen amount@ 1.00 gen nrev-amount-cb 100 )
- #( $" reverb filter" _ 0.0 gen reverb-filter@ 1.00 gen nrev-filter-cb 100 )
- #( $" reverb feedback" _ 0.0 gen reverb-feedback@ 1.25 gen nrev-feedback-cb 100 ) )
+ #( #( $" reverb amount" 0.0 gen amount@ 1.00 gen nrev-amount-cb 100 )
+ #( $" reverb filter" 0.0 gen reverb-filter@ 1.00 gen nrev-filter-cb 100 )
+ #( $" reverb feedback" 0.0 gen reverb-feedback@ 1.25 gen nrev-feedback-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent FXtParent gen target-cb #f add-target drop
then
@@ -2951,11 +2951,11 @@ end-struct jc-reverb%
gen label@
gen jc-ok-cb
gen label@ $" Nice reverb from John Chowning. \
-Move the sliders to set the reverb parameters." _ help-cb
+Move the sliders to set the reverb parameters." help-cb
gen jc-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" decay duration" _ 0.0 gen jc-reverb-decay@ 10.0 gen jc-decay-cb 100 )
- #( $" reverb volume" _ 0.0 gen jc-reverb-volume@ 1.00 gen jc-volume-cb 100 ) )
+ #( #( $" decay duration" 0.0 gen jc-reverb-decay@ 10.0 gen jc-decay-cb 100 )
+ #( $" reverb volume" 0.0 gen jc-reverb-volume@ 1.00 gen jc-volume-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent FXtParent gen target-cb gen truncate-cb add-target drop
then
@@ -3059,12 +3059,12 @@ Use the Normalize amplitude effect to rescale the output. \
The convolution data file typically defines a natural reverberation source, \
and the output from this effect can provide very striking reverb effects. \
You can find convolution data files on sites listed at \
-http://www.bright.net/~dlphilp/linux_csound.html under Impulse Response Data." _ help-cb
+http://www.bright.net/~dlphilp/linux_csound.html under Impulse Response Data." help-cb
gen cnv-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" impulse response file" _ 0 gen convolve-one@ 24 gen cnv-one-cb 1 )
- #( $" sound file" _ 0 gen convolve-two@ 24 gen cnv-two-cb 1 )
- #( $" amplitude" _ 0.0 gen amplitude@ 0.10 gen cnv-amp-cb 100 ) )
+ #( #( $" impulse response file" 0 gen convolve-one@ 24 gen cnv-one-cb 1 )
+ #( $" sound file" 0 gen convolve-two@ 24 gen cnv-two-cb 1 )
+ #( $" amplitude" 0.0 gen amplitude@ 0.10 gen cnv-amp-cb 100 ) )
add-sliders gen sliders!
then
gen dialog@ activate-dialog
@@ -3332,12 +3332,12 @@ end-struct effects-place-sound%
gen dialog@ FWidget? unless
gen label@
gen ps-ok-cb
- gen label@ $" Mixes mono sound into stereo sound field." _ help-cb
+ gen label@ $" Mixes mono sound into stereo sound field." help-cb
gen ps-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" mono sound" _ 0 gen mono-snd@ 50 gen ps-mono-cb 1 )
- #( $" stereo sound" _ 0 gen stereo-snd@ 50 gen ps-stereo-cb 1 )
- #( $" pan position" _ 0 gen pan-pos@ 90 gen ps-pos-cb 1 ) ) add-sliders gen sliders!
+ #( #( $" mono sound" 0 gen mono-snd@ 50 gen ps-mono-cb 1 )
+ #( $" stereo sound" 0 gen stereo-snd@ 50 gen ps-stereo-cb 1 )
+ #( $" pan position" 0 gen pan-pos@ 90 gen ps-pos-cb 1 ) ) add-sliders gen sliders!
"fr" FxmFrameWidgetClass gen sliders@ 0 array-ref FXtParent FXtParent
#( FXmNheight 200
FXmNleftAttachment FXmATTACH_FORM
@@ -3411,10 +3411,10 @@ hide
gen label@
gen silence-ok-cb
gen label@
- $" Move the slider to change the number of seconds of silence added at the cursor position." _
+ $" Move the slider to change the number of seconds of silence added at the cursor position."
help-cb
gen silence-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( "silence" _ 0.0 gen amount@ 5.0 gen silence-amount-cb 100 ) )
+ gen dialog@ #( #( "silence" 0.0 gen amount@ 5.0 gen silence-amount-cb 100 ) )
add-sliders gen sliders!
then
gen dialog@ activate-dialog
@@ -3460,7 +3460,7 @@ hide
pts 1 array-ref
pts 0 array-ref - 1+ apply-controls drop
else
- $" no marks" _ snd-warning drop
+ $" no marks" snd-warning drop
then
else
snd gen target@ 'sound equal? if 0 else 2 then 0 undef apply-controls drop
@@ -3490,9 +3490,9 @@ hide
gen dialog@ FWidget? unless
gen label@
gen contrast-ok-cb
- gen label@ $" Move the slider to change the contrast intensity." _ help-cb
+ gen label@ $" Move the slider to change the contrast intensity." help-cb
gen contrast-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( $" contrast enhancement" _ 0.0 gen amount@ 10.0 gen contrast-amount-cb 100 ) )
+ gen dialog@ #( #( $" contrast enhancement" 0.0 gen amount@ 10.0 gen contrast-amount-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -3618,14 +3618,14 @@ end-struct effects-cross%
gen label@
gen cs-ok-cb
gen label@ $" The sliders set the number of the soundfile to be cross-synthesized, \
-the synthesis amplitude, the FFT size, and the radius value." _ help-cb
+the synthesis amplitude, the FFT size, and the radius value." help-cb
gen cs-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" input sound" _ 0 gen cs-sound@ 20 gen cs-snd-cb 1 )
- #( $" amplitude" _ 0.0 gen amplitude@ 1.0 gen cs-amp-cb 100 )
- #( $" radius" _ 0.0 gen cs-radius@ 360.0 gen cs-rad-cb 100 ) ) add-sliders gen sliders!
+ #( #( $" input sound" 0 gen cs-sound@ 20 gen cs-snd-cb 1 )
+ #( $" amplitude" 0.0 gen amplitude@ 1.0 gen cs-amp-cb 100 )
+ #( $" radius" 0.0 gen cs-radius@ 360.0 gen cs-rad-cb 100 ) ) add-sliders gen sliders!
#( 64 128 256 512 1024 4096 ) { sizes }
- $" FFT size" _ FXmStringCreateLocalized { s1 }
+ $" FFT size" FXmStringCreateLocalized { s1 }
"frame" FxmFrameWidgetClass gen sliders@ 0 array-ref FXtParent
#( FXmNborderWidth 1
FXmNshadowType FXmSHADOW_ETCHED_IN
@@ -3637,7 +3637,7 @@ the synthesis amplitude, the FFT size, and the radius value." _ help-cb
FXmNbottomAttachment FXmATTACH_FORM
FXmNbackground basic-color ) undef FXtCreateManagedWidget { frm }
use-combo-box-for-fft-size if
- $" FFT size" _ FxmLabelWidgetClass frm
+ $" FFT size" FxmLabelWidgetClass frm
#( FXmNleftAttachment FXmATTACH_FORM
FXmNrightAttachment FXmATTACH_NONE
FXmNtopAttachment FXmATTACH_FORM
@@ -3671,7 +3671,7 @@ the synthesis amplitude, the FFT size, and the radius value." _ help-cb
FXmNtopAttachment FXmATTACH_FORM
FXmNbottomAttachment FXmATTACH_NONE
FXmNbackground basic-color ) undef FXtCreateManagedWidget { rc }
- $" FFT size" _ FxmLabelWidgetClass frm
+ $" FFT size" FxmLabelWidgetClass frm
#( FXmNleftAttachment FXmATTACH_FORM
FXmNrightAttachment FXmATTACH_FORM
FXmNtopAttachment FXmATTACH_WIDGET
@@ -3800,12 +3800,12 @@ end-struct effects-flange%
gen dialog@ FWidget? unless
gen label@
gen flange-ok-cb
- gen label@ $" Move the slider to change the flange speed, amount, and time." _ help-cb
+ gen label@ $" Move the slider to change the flange speed, amount, and time." help-cb
gen flange-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" flange speed" _ 0.0 gen flange-speed@ 100.0 gen flange-speed-cb 10 )
- #( $" flange amount" _ 0.0 gen amount@ 100.0 gen flange-amount-cb 10 )
- #( $" flange time" _ 0.0 gen flange-time@ 1.0 gen flange-time-cb 100 ) )
+ #( #( $" flange speed" 0.0 gen flange-speed@ 100.0 gen flange-speed-cb 10 )
+ #( $" flange amount" 0.0 gen amount@ 100.0 gen flange-amount-cb 10 )
+ #( $" flange time" 0.0 gen flange-time@ 1.0 gen flange-time-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -3874,9 +3874,9 @@ hide
gen dialog@ FWidget? unless
gen label@
gen rp-ok-cb
- gen label@ $" Move the slider to change the randomization amplitude scaler." _ help-cb
+ gen label@ $" Move the slider to change the randomization amplitude scaler." help-cb
gen rp-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( $" amplitude scaler" _ 0.0 gen scaler@ 100.0 gen rp-scl-cb 100 ) )
+ gen dialog@ #( #( $" amplitude scaler" 0.0 gen scaler@ 100.0 gen rp-scl-cb 100 ) )
add-sliders gen sliders!
then
gen dialog@ activate-dialog
@@ -3968,13 +3968,13 @@ end-struct effects-robotize%
gen label@
gen robotize-ok-cb
gen label@
- $" Move the sliders to set the sample rate, oscillator amplitude, and oscillator frequency." _
+ $" Move the sliders to set the sample rate, oscillator amplitude, and oscillator frequency."
help-cb
gen robotize-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" sample rate" _ 0.0 gen samp-rate@ 2.0 gen robotize-sam-cb 100 )
- #( $" oscillator amplitude" _ 0.0 gen amplitude@ 1.0 gen robotize-amp-cb 100 )
- #( $" oscillator frequency" _ 0.0 gen frequency@ 60.0 gen robotize-frq-cb 100 ) )
+ #( #( $" sample rate" 0.0 gen samp-rate@ 2.0 gen robotize-sam-cb 100 )
+ #( $" oscillator amplitude" 0.0 gen amplitude@ 1.0 gen robotize-amp-cb 100 )
+ #( $" oscillator frequency" 0.0 gen frequency@ 60.0 gen robotize-frq-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -4041,9 +4041,9 @@ end-struct effects-rubber%
gen rubber-ok-cb
gen label@
$" Stretches or contracts the time of a sound. \
-Move the slider to change the stretch factor." _ help-cb
+Move the slider to change the stretch factor." help-cb
gen rubber-reset-cb make-effect-dialog gen dialog!
- gen dialog@ #( #( $" stretch factor" _ 0.0 gen factor@ 5.0 gen rubber-factor-cb 100 ) )
+ gen dialog@ #( #( $" stretch factor" 0.0 gen factor@ 5.0 gen rubber-factor-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -4120,11 +4120,11 @@ hide
gen dialog@ FWidget? unless
gen label@
gen wobble-ok-cb
- gen label@ $" Move the sliders to set the wobble frequency and amplitude." _ help-cb
+ gen label@ $" Move the sliders to set the wobble frequency and amplitude." help-cb
gen wobble-reset-cb make-effect-dialog gen dialog!
gen dialog@
- #( #( $" wobble frequency" _ 0.0 gen frequency@ 100.0 gen wobble-frq-cb 100 )
- #( $" wobble amplitude" _ 0.0 gen amplitude@ 1.0 gen wobble-amp-cb 100 ) )
+ #( #( $" wobble frequency" 0.0 gen frequency@ 100.0 gen wobble-frq-cb 100 )
+ #( $" wobble amplitude" 0.0 gen amplitude@ 1.0 gen wobble-amp-cb 100 ) )
add-sliders gen sliders!
gen sliders@ 0 array-ref FXtParent gen target-cb #f add-target
then
@@ -4149,49 +4149,49 @@ set-current
;
previous
-$" Effects" _ value effects-menu-label
+$" Effects" value effects-menu-label
: make-effects-menu ( -- widget )
effects-menu-label make-main-menu { main }
#( FXmNbackground basic-color ) { args }
- $" Amplitude Effects" _ main args make-menu { menu }
- menu $" Gain" _ make-gain-dialog menu-entry
- menu $" Normalize" _ make-normalize-dialog menu-entry
- menu $" Gate" _ make-gate-dialog menu-entry
- $" Delay Effects" _ main args make-menu to menu
- menu $" Echo" _ make-echo-dialog menu-entry
- menu $" Filtered echo" _ make-flecho-dialog menu-entry
- menu $" Modulated echo" _ make-zecho-dialog menu-entry
- $" Filter Effects" _ main args make-menu to menu
- menu $" Band-pass filter" _ make-band-pass-dialog menu-entry
- menu $" Band-reject filter" _ make-notch-dialog menu-entry
- menu $" High-pass filter" _ make-high-pass-dialog menu-entry
- menu $" Low-pass filter" _ make-low-pass-dialog menu-entry
- menu $" Comb filter" _ make-comb-dialog menu-entry
- menu $" Comb chord filter" _ make-comb-chord-dialog menu-entry
- menu $" Moog filter" _ make-moog-dialog menu-entry
- $" Frequency Effects" _ main args make-menu to menu
- menu $" Adaptive saturation" _ make-adsat-dialog menu-entry
- menu $" Sample rate conversion" _ make-src-dialog menu-entry
- menu $" Time/pitch scaling" _ make-expsrc-dialog menu-entry
- menu $" Src-Timevar" _ make-src-timevar-dialog menu-entry
- $" Modulation Effects" _ main args make-menu to menu
- menu $" Amplitude modulation" _ make-am-effect-dialog menu-entry
- menu $" Ring modulation" _ make-rm-effect-dialog menu-entry
- $" Reverbs" _ main args make-menu to menu
- menu $" McNabb reverb" _ make-reverb-dialog menu-entry
- menu $" Chowning reverb" _ make-jc-reverb-dialog menu-entry
- menu $" Convolution" _ make-convolve-dialog menu-entry
- $" Various" _ main args make-menu to menu
- menu $" Place sound" _ make-place-sound-dialog menu-entry
- menu $" Add silence" _ make-silence-dialog menu-entry
- menu $" Contrast enhancement" _ make-contrast-dialog menu-entry
- menu $" Cross synthesis" _ make-cross-synth-dialog menu-entry
- menu $" Flange" _ make-flange-dialog menu-entry
- menu $" Randomize phase" _ make-random-phase-dialog menu-entry
- menu $" Robotize" _ make-robotize-dialog menu-entry
- menu $" Rubber sound" _ make-rubber-dialog menu-entry
- menu $" Wobble" _ make-wobble-dialog menu-entry
+ $" Amplitude Effects" main args make-menu { menu }
+ menu $" Gain" make-gain-dialog menu-entry
+ menu $" Normalize" make-normalize-dialog menu-entry
+ menu $" Gate" make-gate-dialog menu-entry
+ $" Delay Effects" main args make-menu to menu
+ menu $" Echo" make-echo-dialog menu-entry
+ menu $" Filtered echo" make-flecho-dialog menu-entry
+ menu $" Modulated echo" make-zecho-dialog menu-entry
+ $" Filter Effects" main args make-menu to menu
+ menu $" Band-pass filter" make-band-pass-dialog menu-entry
+ menu $" Band-reject filter" make-notch-dialog menu-entry
+ menu $" High-pass filter" make-high-pass-dialog menu-entry
+ menu $" Low-pass filter" make-low-pass-dialog menu-entry
+ menu $" Comb filter" make-comb-dialog menu-entry
+ menu $" Comb chord filter" make-comb-chord-dialog menu-entry
+ menu $" Moog filter" make-moog-dialog menu-entry
+ $" Frequency Effects" main args make-menu to menu
+ menu $" Adaptive saturation" make-adsat-dialog menu-entry
+ menu $" Sample rate conversion" make-src-dialog menu-entry
+ menu $" Time/pitch scaling" make-expsrc-dialog menu-entry
+ menu $" Src-Timevar" make-src-timevar-dialog menu-entry
+ $" Modulation Effects" main args make-menu to menu
+ menu $" Amplitude modulation" make-am-effect-dialog menu-entry
+ menu $" Ring modulation" make-rm-effect-dialog menu-entry
+ $" Reverbs" main args make-menu to menu
+ menu $" McNabb reverb" make-reverb-dialog menu-entry
+ menu $" Chowning reverb" make-jc-reverb-dialog menu-entry
+ menu $" Convolution" make-convolve-dialog menu-entry
+ $" Various" main args make-menu to menu
+ menu $" Place sound" make-place-sound-dialog menu-entry
+ menu $" Add silence" make-silence-dialog menu-entry
+ menu $" Contrast enhancement" make-contrast-dialog menu-entry
+ menu $" Cross synthesis" make-cross-synth-dialog menu-entry
+ menu $" Flange" make-flange-dialog menu-entry
+ menu $" Randomize phase" make-random-phase-dialog menu-entry
+ menu $" Robotize" make-robotize-dialog menu-entry
+ menu $" Rubber sound" make-rubber-dialog menu-entry
+ menu $" Wobble" make-wobble-dialog menu-entry
main
;
@@ -4253,13 +4253,13 @@ previous
effects-menu-label main-widget-exists? [unless] make-effects-menu drop [then]
#f effects-noop add-to-effects-menu \ separator
-$" Octave-down" _ lambda: <{ -- }> 2 #f #f down-oct ; add-to-effects-menu
-$" Remove clicks" _ lambda: <{ -- }> #f #f effects-remove-clicks ; add-to-effects-menu
-$" Remove DC" _ lambda: <{ -- }> #f #f effects-remove-dc ; add-to-effects-menu
-$" Spiker" _ lambda: <{ -- }> #f #f spike ; add-to-effects-menu
-$" Compand" _ lambda: <{ -- }> #f #f effects-compand ; add-to-effects-menu
-$" Invert" _ lambda: <{ -- }> -1 #f #f scale-by ; add-to-effects-menu
-$" Reverse" _ lambda: <{ -- }> #f #f #f reverse-sound ; add-to-effects-menu
-$" Null phase" _ lambda: <{ -- }> #f #f zero-phase ; add-to-effects-menu
+$" Octave-down" lambda: <{ -- }> 2 #f #f down-oct ; add-to-effects-menu
+$" Remove clicks" lambda: <{ -- }> #f #f effects-remove-clicks ; add-to-effects-menu
+$" Remove DC" lambda: <{ -- }> #f #f effects-remove-dc ; add-to-effects-menu
+$" Spiker" lambda: <{ -- }> #f #f spike ; add-to-effects-menu
+$" Compand" lambda: <{ -- }> #f #f effects-compand ; add-to-effects-menu
+$" Invert" lambda: <{ -- }> -1 #f #f scale-by ; add-to-effects-menu
+$" Reverse" lambda: <{ -- }> #f #f #f reverse-sound ; add-to-effects-menu
+$" Null phase" lambda: <{ -- }> #f #f zero-phase ; add-to-effects-menu
\ effects.fs ends here
diff --git a/enved.fs b/enved.fs
index 2a78efa..8fab1bc 100644
--- a/enved.fs
+++ b/enved.fs
@@ -3,7 +3,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Sun Nov 13 13:59:42 CET 2005
-\ Changed: Mon Jun 15 02:30:45 CEST 2009
+\ Changed: Fri Nov 06 00:28:14 CET 2009
\ Commentary:
@@ -44,9 +44,9 @@ fth-enved make-?obj enved?
: make-enved ( envelope -- enved )
{ envelope }
- envelope array? envelope 1 $" an array" _ assert-type
+ envelope array? envelope 1 $" an array" assert-type
enved% %alloc { enved }
- enved unless 'system-error #( get-func-name $" cannot create enved" _ ) fth-throw then
+ enved unless 'system-error #( get-func-name $" cannot create enved" ) fth-throw then
envelope enved enved-fs-envelope !
enved fth-enved make-instance
;
@@ -65,20 +65,20 @@ previous
: enved-copy ( obj -- obj2 ) envelope@ array-copy make-enved ;
: enved-ref ( obj index -- point )
{ obj index }
- obj enved? obj 1 $" an enved object" _ assert-type
+ obj enved? obj 1 $" an enved object" assert-type
index 0< if index obj enved-length + to index then
obj index object-range? if
index 2* to index
#( obj envelope@ index array-ref obj envelope@ index 1+ array-ref )
else
'out-of-range
- #( get-func-name $" index %s, enved length %s" _ #( index obj enved-length ) )
+ #( get-func-name $" index %s, enved length %s" #( index obj enved-length ) )
fth-throw
then
;
: enved-set! ( obj index point -- )
{ obj index point }
- obj enved? obj 1 $" an enved object" _ assert-type
+ obj enved? obj 1 $" an enved object" assert-type
index 0< if index obj enved-length + to index then
obj index object-range? if
index 2* to index
@@ -86,7 +86,7 @@ previous
obj envelope@ index 1+ point 1 array-ref array-set!
else
'out-of-range
- #( get-func-name $" index %s, enved length %s" _ #( index obj enved-length ) )
+ #( get-func-name $" index %s, enved length %s" #( index obj enved-length ) )
fth-throw
then
;
@@ -118,13 +118,13 @@ previous
\ ENVED-INDEX, ENVED-INSERT!, ENVED-DELETE!
: enved-index ( obj x -- index|-1 )
{ obj x }
- obj enved? obj 1 $" an enved object" _ assert-type
+ obj enved? obj 1 $" an enved object" assert-type
-1 obj each 0 array-ref x f= if drop i leave then end-each
;
: enved-insert! ( obj index point -- )
{ obj index point }
- obj enved? obj 1 $" an enved object" _ assert-type
- point array? point object-length 2 = && point 3 $" a point array #( x y )" _ assert-type
+ obj enved? obj 1 $" an enved object" assert-type
+ point array? point object-length 2 = && point 3 $" a point array #( x y )" assert-type
obj enved-length 0= if
point
else
@@ -134,14 +134,14 @@ previous
obj envelope@ index point array-insert
else
'out-of-range
- #( get-func-name $" index %s, enved length %s" _ #( index obj enved-length ) )
+ #( get-func-name $" index %s, enved length %s" #( index obj enved-length ) )
fth-throw
then
then obj envelope!
;
: enved-delete! ( obj index -- )
{ obj index }
- obj enved? obj 1 $" an enved object" _ assert-type
+ obj enved? obj 1 $" an enved object" assert-type
index 0< if index obj enved-length + to index then
obj index object-range? if
index 2* to index
@@ -149,7 +149,7 @@ previous
obj envelope@ index array-delete! drop
else
'out-of-range
- #( get-func-name $" index %s, enved length %s" _ #( index obj enved-length ) )
+ #( get-func-name $" index %s, enved length %s" #( index obj enved-length ) )
fth-throw
then
;
diff --git a/examp.fs b/examp.fs
index 8494a58..efdea8e 100644
--- a/examp.fs
+++ b/examp.fs
@@ -3,7 +3,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Tue Jul 05 13:09:37 CEST 2005
-\ Changed: Tue Oct 06 00:09:54 CEST 2009
+\ Changed: Thu Nov 26 18:25:33 CET 2009
\ Commentary:
\
@@ -257,7 +257,7 @@ require extensions
\ this mainly involves keeping track of the current sound/channel
: selection-rms ( -- val )
doc" Returns rms of selection data using sample readers."
- selection? if
+ undef selection? if
selection-position #f #f 1 #f make-sampler { rd }
selection-frames { len }
0.0 ( sum ) len 0 ?do rd next-sample dup f* f+ ( sum += ... ) loop
@@ -287,7 +287,7 @@ require extensions
: display-energy <{ snd chn -- v }>
doc" A lisp-graph-hook function to display the time domain data as energy (squared).\n\
-list-graph-hook ' display-energy add-hook!"
+list-graph-hook <'> display-energy add-hook!"
snd chn undef undef undef make-graph-data dup array? if 1 array-ref then { data }
data if
snd chn left-sample { ls }
@@ -299,14 +299,14 @@ list-graph-hook ' display-energy add-hook!"
#f
then
;
-\ lisp-graph-hook ' display-energy add-hook!
+\ lisp-graph-hook <'> display-energy add-hook!
hide
: db-calc ( val -- r ) { val } val 0.001 f< if -60.0 else 20.0 val flog10 f* then ;
set-current
: display-db <{ snd chn -- v }>
doc" A lisp-graph-hook function to display the time domain data in dB.\n\
-list-graph-hook ' display-db add-hook!"
+list-graph-hook <'> display-db add-hook!"
snd chn undef undef undef make-graph-data dup array? if 1 array-ref then { data }
data if
snd chn left-sample { ls }
@@ -320,7 +320,7 @@ list-graph-hook ' display-db add-hook!"
then
;
previous
-\ lisp-graph-hook ' display-db add-hook!
+\ lisp-graph-hook <'> display-db add-hook!
: window-rms ( -- val )
doc" Returns rms of data in currently selected graph window."
@@ -341,7 +341,7 @@ previous
#f
then
;
-\ after-transform-hook ' fft-peak add-hook!
+\ after-transform-hook <'> fft-peak add-hook!
\ ;;; -------- 'info' from extsnd.html using format --------
@@ -399,7 +399,7 @@ y0 and y1 are ignored."
$" %s wants stereo input" #( get-func-name ) string-format snd #f report-in-minibuffer
then
;
-\ graph-hook ' display-correlate add-hook!
+\ graph-hook <'> display-correlate add-hook!
\ ;;; -------- set transform-size based on current time domain window size
\ ;;;
@@ -415,7 +415,7 @@ y0 and y1 are ignored."
then
#f
;
-\ graph-hook ' zoom-spectrum add-hook!
+\ graph-hook <'> zoom-spectrum add-hook!
\ ;;; -------- superimpose spectra of sycn'd sounds
@@ -443,7 +443,7 @@ y0 and y1 are ignored."
then
#f
;
-\ graph-hook ' superimpose-ffts add-hook!
+\ graph-hook <'> superimpose-ffts add-hook!
\ ;;; -------- c-g? example (Anders Vinjar)
@@ -534,7 +534,7 @@ y0 and y1 are ignored."
then
#f
;
-\ graph-hook ' auto-dot add-hook!
+\ graph-hook <'> auto-dot add-hook!
\ ;;; -------- move window left edge to mark upon 'm'
\ ;;;
@@ -991,7 +991,7 @@ is like fft-squelch."
\ 0.05 0.05 make-one-pole filter-fft
\ lambda: <{ y -- val }> y 0.1 f< if 0.0 else y then ; filter-fft
\ 0 0 0 1 0 make-sampler filter-fft
-\ ' contrast-enhancement filter-fft
+\ <'> contrast-enhancement filter-fft
\ lambda: <{ y -- val }> y y f* y f* ; filter-fft
: fft-smoother <{ cutoff start samps :optional snd #f chn #f -- val }>
@@ -1502,7 +1502,7 @@ previous
: swap-selection-channels ( -- )
doc" Swaps the currently selected data's channels."
- selection? if
+ undef selection? if
selection-chans 2 = if
selection-position { beg }
selection-frames { len }
@@ -2009,7 +2009,7 @@ hide
: rpl-cb { reg -- prc; self -- val }
0 proc-create reg , ( prc )
does> { self -- val }
- self @ ( reg ) undef undef play-region
+ self @ ( reg ) play
;
set-current
: region-play-list ( data -- )
@@ -2064,13 +2064,13 @@ into a bunch of files of the form sample-name.aif."
else
#f #f #f frames
then { end }
- vals 2 array-ref start b- { loop-start }
- vals 3 array-ref start b- { loop-end }
+ vals 2 array-ref start d- { loop-start }
+ vals 3 array-ref start d- { loop-end }
name ".aif" $+ { filename }
- selection? if #f #t #f set-selection-member? drop then
+ undef selection? if #f #t #f set-selection-member? drop then
#t #f #f set-selection-member? drop
start #f #f set-selection-position drop
- end start b- #f #f set-selection-frames drop
+ end start d- #f #f set-selection-frames drop
:file filename :header-type mus-aifc save-selection drop
filename open-sound { temp }
temp #( loop-start loop-end ) set-sound-loop-info drop
diff --git a/examp.rb b/examp.rb
index 5584248..a951f94 100644
--- a/examp.rb
+++ b/examp.rb
@@ -2,307 +2,8 @@
# Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Wed Sep 04 18:34:00 CEST 2002
-# Changed: Wed Oct 14 04:45:55 CEST 2009
+# Changed: Thu Nov 26 19:34:47 CET 2009
-# Commentary:
-#
-# Extensions to Ruby:
-#
-# provided?(feature)
-# provide(feature)
-# features(all)
-#
-# array?(obj) alias list?(obj)
-# hash?(obj)
-# string?(obj)
-# regexp?(obj)
-# symbol?(obj)
-# number?(obj)
-# integer?(obj)
-# float?(obj)
-# rational?(obj)
-# complex?(obj)
-# boolean?(obj)
-# proc?(obj)
-# thunk?(obj)
-# method?(obj)
-# func?(obj)
-# mus?(obj)
-# get_func_name(n)
-# assert_type(condition, obj, pos, msg)
-# identity(arg)
-# ignore(*rest)
-# enum(*names)
-#
-# class Object
-# null?
-# function?(obj)
-# snd_func(name, *rest, &body)
-# set_snd_func(name, val, *rest, &body)
-# snd_apropos(str_or_sym)
-#
-# NilClass(arg)
-# Fixnum(arg)
-#
-# class NilClass
-# each
-# apply(func, *rest, &body)
-# empty?
-# zero?
-# nonzero?
-# to_vct
-# to_vector
-# to_poly
-# +(other)
-# -(other)
-# *(other)
-#
-# backward compatibility methods:
-# String#to_sym, Symbol#to_sym
-# make_array(len, init, &body)
-# Array#insert
-# Float#step
-# Range#step
-# Enumerable#each_index
-# Enumerable#zip
-#
-# class Array
-# to_pairs
-# each_pair do |x, y| ... end
-# to_string(len)
-# first=(val)
-# last=(val)
-# pick
-# rand
-# rand!
-# add(other)
-# add!(other)
-# subtract(other)
-# subtract!(other)
-# multiply(other)
-# multiply!(other)
-# offset(scl)
-# offset!(scl)
-# scale(scl)
-# scale!(scl)
-# to_vector
-# car
-# car=
-# cadr
-# cadr=
-# caddr
-# caddr=
-# cadddr
-# cadddr=
-# caddddr
-# caddddr=
-# cdr
-# step(n)
-# apply(func, *rest, &body)
-#
-# class Vec < Array
-# Vec[]
-# initialize(len, init, &body)
-# inspect
-# to_s
-# to_vector
-# +(other)
-# -(other)
-# *(other)
-#
-# Vec(obj)
-# make_vector(len, init, &body)
-# vector?(obj)
-# vector(*args)
-#
-# class String
-# to_vector
-# to_vct
-#
-# Vct(obj)
-# make_vct!(len, init) do |i| ... end
-#
-# class Vct
-# Vct[]
-# name
-# to_sound_data(sd, chn)
-# to_vct
-# to_vector
-# apply(func, *rest, &body)
-# +(other) handles self.offset (Numeric) and self.add (Array, Vec, Vct)
-# -(other) handles self.offset (Numeric) and self.subtract (Array, Vec, Vct)
-# *(other) handles self.scale (Numeric) and self.multiply (Array, Vec, Vct)
-# step(n)
-# [](idx, size)
-#
-# class Fixnum
-# +(other) handles other.offset on Vct, Array, and Vec
-# *(other) handles other.scale on Vct, Array, and Vec
-#
-# class Float
-# +(other) handles other.offset on Vct, Array, and Vec
-# *(other) handles other.scale on Vct, Array, and Vec
-#
-# SoundData(ary) can be used to reread evaled output from sound_data2string
-# sound_data2string(sd) produces a string which can be evaled and reread with SoundData
-#
-# class SoundData
-# name
-# to_vct(chn)
-# to_a
-# length
-# scale!(scl)
-# fill!(val)
-# each(chn)
-# each_with_index(chn)
-# map(chn)
-# map!(chn)
-#
-# mus_a0(gen)
-# set_mus_a0(gen, val)
-# mus_a1(gen)
-# set_mus_a1(gen, val)
-# mus_a2(gen)
-# set_mus_a2(gen, val)
-# mus_b1(gen)
-# set_mus_b1(gen, val)
-# mus_b2(gen)
-# set_mus_b2(gen, val)
-#
-# class Mus
-# run(arg1, arg2)
-# apply(*rest)
-# inspect
-# close
-# xcoeff=(index, val)
-# ycoeff=(index, val)
-# a0 a0=(val)
-# a1 a1=(val)
-# a2 a2=(val)
-# b1 b1=(val)
-# b2 b2=(val)
-#
-# class Musgen base class for generators written in Ruby
-# initialize
-# inspect
-# to_s
-# run(val1, val2)
-# apply(*rest)
-# eql?(other)
-# reset
-#
-# class Numeric
-# positive?
-# negative?
-#
-# class Integer
-# even?
-# odd?
-# prime?
-#
-# module Enumerable
-# map_with_index do |x, i| ... end
-# map_with_index! do |x, i| ... end
-# clm_cycle
-# clm_cycle=(val)
-#
-# as_one_edit_rb(*origin, &body)
-# map_channel_rb(beg, dur, snd, chn, edpos, edname, &body)
-# map_chan_rb(beg, dur, edpos, snd, chn, &body)
-#
-# with_silence(exception) do |old_verbose, old_debug| ... end
-#
-# module Info
-# description=(text)
-# description
-#
-# class Proc
-# to_method(name, klass)
-# to_str
-# to_body
-# source
-# source=
-#
-# make_proc2method(name, prc)
-# make_proc_with_setter(name, getter, setter)
-# make_proc_with_source(string, bind)
-# proc_source(prc) set_proc_source(prc, val)
-#
-# Multi-line input to the Snd listener and Emacs/inf-snd.el
-#
-# $emacs_eval_hook.call(line)
-# run_emacs_eval_hook(line)
-#
-# class Snd_eval
-# Snd_eval.count_level(line)
-#
-# class Snd_prompt
-# initialize(level)
-# inspect
-# update(level)
-# reset
-#
-# start_emacs_eval(file)
-# start_listener_eval(file)
-# stop_emacs_eval
-# stop_listener_eval
-#
-# Debugging resp. inspecting local variables
-#
-# debug_properties(name) set_debug_properties(name, val)
-# debug_property(key, name) set_debug_property(key, val, name)
-# debug_binding(name) set_debug_binding(bind, name)
-# display_all_variables(name)
-# each_variables(&body)
-#
-# let(*rest) do |*rest| ... end
-#
-# Utilities:
-#
-# close_sound_extend(snd)
-# times2samples(start, dur)
-# random(n)
-# logn(r, b)
-# car(v), cadr(v), caddr(v), cdr(v)
-# warning(*args), die(*args), error(*args)
-# clm_message(*args), message(*args), debug(*args), debug_trace(*args)
-#
-# class Snd
-# Snd.add_sound_path(path)
-# Snd.open_from_path(fname)
-# Snd.find_from_path(fname)
-# Snd.fullname(fname)
-# Snd.load_path
-# Snd.message(*args)
-# Snd.display(*args)
-# Snd.warning(*args)
-# Snd.die(*args)
-# Snd.error(*args)
-# Snd.debug(*args)
-# Snd.debug_trace(*args)
-# Snd.sounds
-# Snd.regions
-# Snd.marks(snd, chn)
-# Snd.snd(snd)
-# Snd.chn(chn)
-# Snd.catch(tag, retval)
-# Snd.throw(tag, *rest)
-# Snd.raise(tag, *rest)
-#
-# snd_catch(tag, retval)
-# snd_throw(tag, *rest)
-# snd_raise(tag, *rest)
-#
-# gloop(*args) do |args| ... end
-# get_args(args, key, default)
-# get_shift_args(args, key, default)
-# get_class_or_key(args, klass, key, default)
-# optkey(args, *rest)
-# load_init_file(file)
-#
-# edit_list_proc_counter
-# set_edit_list_proc_counter
-#
# module Examp (examp.scm)
# selection_rms
# region_rms(n)
@@ -452,2665 +153,7 @@
#
# Code:
-unless defined? $LOADED_FEATURES then alias $LOADED_FEATURES $" end
-
-# Ruby 1.9.x moved Continuation to 'continuation'!
-# (See ruby/ChangeLog Tue Jan 20 16:17:12 2009.)
-unless defined? Kernel.callcc then require 'continuation' end
-
-def provided?(feature)
- assert_type((symbol?(feature) or string?(feature)), feature, 0, "a symbol or a string")
- $LOADED_FEATURES.map do |f| File.basename(f) end.member?(feature.to_s.tr("_", "-"))
-end
-
-def provide(feature)
- assert_type((symbol?(feature) or string?(feature)), feature, 0, "a symbol or a string")
- $LOADED_FEATURES.push(feature.to_s)
-end
-
-def features(all = nil)
- if all
- $LOADED_FEATURES.map do |f| File.basename(f) end
- else
- $LOADED_FEATURES.map do |f|
- next if f.include?("/") or f.include?(".")
- f
- end.compact
- end
-end
-
-def make_polar(r, theta)
- Complex(cos(theta) * r, sin(theta) * r)
-end
-
-def make_rectangular(re, im = 1.0)
- Complex(re, im)
-end
-
-def array?(obj)
- obj.kind_of?(Array)
-end
-alias list? array?
-
-def hash?(obj)
- obj.kind_of?(Hash)
-end
-
-def string?(obj)
- obj.kind_of?(String)
-end
-
-def regexp?(obj)
- obj.kind_of?(Regexp)
-end
-
-def symbol?(obj)
- obj.kind_of?(Symbol)
-end
-
-def number?(obj)
- obj.kind_of?(Numeric)
-end
-
-def integer?(obj)
- obj.kind_of?(Fixnum)
-end
-
-def float?(obj)
- obj.kind_of?(Float)
-end
-
-def rational?(obj)
- obj.kind_of?(Rational)
-end
-
-def complex?(obj)
- obj.kind_of?(Complex)
-end
-
-def boolean?(obj)
- obj.kind_of?(TrueClass) or obj.kind_of?(FalseClass)
-end
-
-def proc?(obj)
- obj.kind_of?(Proc)
-end
-
-def thunk?(obj)
- obj.kind_of?(Proc) and obj.arity.zero?
-end
-
-def method?(obj)
- obj.kind_of?(Method)
-end
-
-def func?(obj)
- obj.kind_of?(String) or obj.kind_of?(Symbol)
-end
-
-def mus?(obj)
- obj.kind_of?(Mus)
-end
-
-def binding?(obj)
- obj.kind_of?(Binding)
-end
-
-def get_func_name(n = 1)
- if ca = caller(n)[0].scan(/^.*:in `(.*)'/).first
- ca.first
- else
- "top_level"
- end
-end
-
-def assert_type(condition, obj, pos, msg)
- condition or Kernel.raise(TypeError,
- format("%s: wrong type arg %d, %s, wanted %s",
- get_func_name(2), pos, obj.inspect, msg))
-end
-
-def identity(arg)
- arg
-end
-
-def ignore(*rest)
- nil
-end
-
-# backward compatibility aliases and constants (mostly from snd7.scm)
-# alias new old
-if provided? :snd
- alias save_options save_state
- alias delete_samples_with_origin delete_samples
- alias default_output_type default_output_header_type
- alias default_output_format default_output_data_format
- alias previous_files_sort view_files_sort
- alias preload_directory add_directory_to_view_files_list
- alias preload_file add_file_to_view_files_list
- alias $previous_files_select_hook $view_files_select_hook
- Sort_files_by_name = 0
- Sort_files_by_date = 2
- Sort_files_by_size = 4
- Sort_files_by_entry = -1
- alias mus_audio_sun_outputs mus_sun_set_outputs
- alias set_oss_buffers mus_oss_set_buffers
- alias mus_audio_set_oss_buffers mus_oss_set_buffers
- unless defined? mus_file_data_clipped
- alias mus_file_data_clipped mus_clipping
- alias set_mus_file_data_clipped set_mus_clipping
- end
- alias mus_data_clipped mus_clipping
- alias set_mus_data_clipped set_mus_clipping
- alias dac_is_running playing
- # backwards compatibility for snd 8
- alias make_ppolar make_two_pole
- alias make_zpolar make_two_zero
- alias make_average make_moving_average
- alias average moving_average
- alias average? moving_average?
- # *windowed_maxamp -> dsp.rb
- def samples2sound_data(beg = 0,
- num = false,
- snd = false,
- chn = false,
- obj = false,
- pos = false,
- sd_chan = 0)
- len = (num or frames(snd, chn))
- gen = (obj or make_sound_data(1, len))
- vct2sound_data(channel2vct(beg, len, snd, chn, pos), gen, sd_chan)
- end
-
- def open_sound_file(*args)
- mus_sound_open_output(get_args(args, :file, (little_endian ? "test.wav" : "test.snd")),
- get_args(args, :srate, 22050),
- get_args(args, :channels, 1),
- (little_endian ? Mus_lfloat : Mus_bfloat),
- get_args(args, :header_type, (little_endian ? Mus_riff : Mus_next)),
- get_args(args, :comment, ""))
- end
-
- alias close_sound_file mus_sound_close_output
-
- def vct2sound_file(fd, v, samps)
- mus_sound_write(fd, 0, samps - 1, 1, vct2sound_data(v))
- end
-
- # snd10.scm
- def make_sum_of_sines(*args)
- sines, frequency, initial_phase = nil
- optkey(args, binding,
- [:sines, 1],
- [:frequency, 0.0],
- [:initial_phase, 0.0])
- gen = make_nsin(:frequency, frequency, :n, sines)
- gen.phase = initial_phase
- gen
- end
- alias sum_of_sines nsin
- alias sum_of_sines? nsin?
-
- def make_sum_of_cosines(*args)
- cosines, frequency, initial_phase = nil
- optkey(args, binding,
- [:cosines, 1],
- [:frequency, 0.0],
- [:initial_phase, 0.0])
- gen = make_ncos(:frequency, frequency, :n, cosines)
- gen.phase = initial_phase
- gen
- end
- alias sum_of_cosines ncos
- alias sum_of_cosines? ncos?
-
- def make_sine_summation(*args)
- frequency, initial_phase, n, a, ratio = nil
- optkey(args, binding,
- [:frequency, 0.0],
- [:initial_phase, 0.0],
- [:n, 1],
- [:a, 0.5],
- [:ratio, 1.0])
- gen = make_nrxysin(:frequency, frequency, :ratio, ratio, :n, n, :r, a)
- gen.phase = initial_phase
- gen
- end
- alias sine_summation nrxysin
- alias sine_summation? nrxysin?
-end
-
-# enum("foo", :bar, "FOO_BAR")
-# produces three constants
-# Foo == 0
-# Bar == 1
-# FOO_BAR == 2
-def enum(*names)
- names.flatten.map_with_index do |name, i|
- const_name = name.to_s
- if const_name[0].between?(?a, ?z)
- const_name[0] += ?A - ?a
- end
- Object.const_set(const_name, i)
- const_name
- end
-end
-
-class Object
- def null?
- self.nil? or
- (self.respond_to?(:zero?) and self.zero?) or
- (self.respond_to?(:empty?) and self.empty?) or
- (self.respond_to?(:length) and self.length.zero?)
- end
-
- def function?(obj)
- func?(obj) and Snd.catch(:all, false) do self.method(obj) end.first
- rescue
- false
- end
-
- # Float(nil) ==> 0.0 like Integer(nil) ==> 0
- alias old_Float Float
- def new_Float(numb)
- if numb.kind_of?(NilClass)
- 0.0
- else
- old_Float(numb)
- end
- end
- alias Float new_Float
-
- def snd_func(name, *rest, &body)
- assert_type(func?(name), name, 0, "a string or symbol")
- send(name.to_s, *rest, &body)
- end
-
- def set_snd_func(name, val, *rest, &body)
- assert_type(func?(name), name, 0, "a string or symbol")
- send(format("set_%s", name.to_s), val, *rest, &body)
- end
-
-# snd_apropos(str_or_sym)
-# if `str_or_sym' is a symbol, returns snd_help result,
-# if `str_or_sym' is a string or regexp it looks in
-# self.public_methods,
-# self.protected_methods,
-# self.private_methods,
-# Object.constants, and
-# Kernel.global_variables and returns an array of strings or nil.
-#
-# [].snd_apropos(/^apply/) ==> ["apply", "apply_controls"]
-# vct(0).snd_apropos("subseq") ==> ["subseq", "vct_subseq"]
-# snd_apropos(/^mus_sound/) ==> ["mus_sound_...", ...]
- def snd_apropos(str_or_sym)
- case str_or_sym
- when Symbol
- snd_help(str_or_sym)
- when String, Regexp
- res = []
- [self.public_methods,
- self.protected_methods,
- self.private_methods,
- Object.constants,
- Kernel.global_variables].each do |m| res += m.grep(/#{str_or_sym}/) end
- res
- else
- nil
- end
- end
-end
-
-def NilClass(arg)
- nil
-end
-
-alias Fixnum Integer
-
-class NilClass
- # FIXME (dangerous)
- # def method_missing(id, *args, &body)
- # nil
- # end
-
- def each
- nil
- end
-
- def apply(func, *rest, &body)
- nil
- end
-
- def empty?
- true
- end
-
- # Integer(nil) ==> 0
- def zero?
- true
- end
-
- def nonzero?
- false
- end
-
- def to_vct
- vector2vct([])
- end
-
- def to_vector
- vector()
- end
-
- def to_poly
- poly()
- end
-
- def +(other)
- other
- end
-
- def -(other)
- other
- end
-
- def *(other)
- snd_func(other.class.name, nil)
- end
-end
-
-# If $DEBUG = true, on older Ruby versions warnings occur about
-# missing NilClass#to_str and Symbol#to_str
-if $DEBUG and RUBY_VERSION < "1.8.0"
- class Object
- def method_missing(id, *args)
- if id == :to_str
- self.class.class_eval do define_method(id, lambda do | | self.to_s end) end
- id.id2name
- else
- Kernel.raise(NameError,
- format("[version %s] undefined method `%s'", RUBY_VERSION, id.id2name))
- end
- end
- end
-end
-
-class String
- def to_sym
- self.intern
- end unless defined? "a".to_sym
-end
-
-class Symbol
- def to_sym
- self
- end unless defined? :a.to_sym
-end
-
-alias object_id __id__ unless defined? object_id
-
-# with_silence(exception) do |old_verbose, old_debug| ... end
-#
-# subpress debug messages (mostly on older Ruby versions)
-#
-# with_silence do $global_var ||= value end
-# with_silence(LoadError) do require("nonexistent.file") end
-def with_silence(exception = StandardError)
- old_verbose = $VERBOSE
- old_debug = $DEBUG
- $VERBOSE = false
- $DEBUG = false
- ret = if block_given?
- begin
- yield(old_verbose, old_debug)
- rescue exception
- false
- end
- else
- false
- end
- $VERBOSE = old_verbose
- $DEBUG = old_debug
- ret
-end
-
-# Provides descriptions of instances of classes, see nb.rb,
-# xm-enved.rb, etc.
-#
-# m = lambda do |*args| puts args end
-# m.info = "my description"
-# puts m.info
-module Info
- def description=(val)
- @description = val.to_s
- end
- alias info= description=
-
- def description
- if defined?(@description) and string?(@description) and (not @description.empty?)
- @description
- else
- "no description available"
- end
- end
- alias info description
-end
-
-require "ws"
-alias snd_help get_help unless defined? snd_help
-
-$array_print_length = 10
-
-def print_length
- $array_print_length
-end unless defined? print_length
-
-def set_print_length(val)
- $array_print_length = val
-end unless defined? set_print_length
-
-module Enumerable
- def map_with_index
- i = -1
- self.map do |x| yield(x, i += 1) end
- end
-
- def map_with_index!
- i = -1
- self.map! do |x| yield(x, i += 1) end
- end
-
- def clm_cycle
- unless defined? @clm_cycle_index then @clm_cycle_index = 0 end
- val = self[@clm_cycle_index % self.length]
- @clm_cycle_index += 1
- if @clm_cycle_index == self.length then @clm_cycle_index = 0 end
- val
- end
-
- def clm_cycle=(val)
- unless defined? @clm_cycle_index then @clm_cycle_index = 0 end
- self[@clm_cycle_index % self.length] = val
- @clm_cycle_index += 1
- if @clm_cycle_index == self.length then @clm_cycle_index = 0 end
- val
- end
- attr_accessor :clm_cycle_index
-
- # backward compatibility methods
- def each_index
- self.each_with_index do |val, i| yield(i) end
- end unless vct(0).respond_to?(:each_index)
-
- # Enumerable#zip, new in ruby core since 19-Nov-2002.
- # a = [4, 5, 6]
- # b = [7, 8, 9]
- # [1, 2, 3].zip(a, b) --> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
- # [1, 2].zip(a, b) --> [[1, 4, 7], [2, 5, 8]]
- # a.zip([1, 2],[8]) --> [[4, 1, 8], [5, 2, nil], [6, nil, nil]]
- def clm_zip(*objs)
- args = objs.map do |obj| obj.to_a end
- res = self.to_a
- res.each_with_index do |val, i|
- ary = [val]
- args.each do |obj| ary.push(obj[i]) end
- if block_given?
- yield(*ary)
- else
- res[i] = ary
- end
- end
- res
- end
- alias zip clm_zip unless [].respond_to?(:zip)
-end
-
-# Older Ruby versions lack Array.new(10) do |i| ... end
-# make_array
-# make_array(10)
-# make_array(10, 1.0)
-# make_array(10) do |i| ... end
-def make_array(len = 0, init = nil)
- assert_type((number?(len) and len >= 0), len, 0, "a number")
- len = Integer(len)
- if block_given?
- Array.new(len, init).map_with_index do |x, i| yield(i) end
- else
- Array.new(len, init)
- end
-end
-
-class Array
- def insert(pos, *args)
- unless args.empty?
- if pos < 0
- pos = self.length - (pos.abs - 1)
- end
- tmp = self.dup
- self[pos, args.length] = args
- self[pos + args.length..-1] = tmp[pos..-1]
- end
- self
- end unless defined? [].insert
-
- # [0.0, 0.0, 0.5, 0.2, 1.0, 1.0].to_pairs --> [[0.0, 0.0], [0.5, 0.2], [1.0, 1.0]]
- def to_pairs
- ary = []
- self.step(2) do |a, b| ary.push([a, b]) end
- ary
- end
-
- # [0.0, 0.0, 0.5, 0.2, 1.0, 1.0].each_pair do |x, y| print x, " ", y, "\n" end
- # --> 0.0 0.0
- # 0.5 0.2
- # 1.0 1.0
- def each_pair
- ary = []
- self.step(2) do |a, b| ary.push(yield(a, b)) end
- ary
- end
-
- # prints flat float array more prettily
- def to_string(len = print_length)
- ary = self.flatten
- str = "["
- ary.each_with_index do |val, i|
- if i < len
- str += "%1.3f, " % val.to_f
- else
- break
- end
- end
- if ary.length > len
- str += "..."
- else
- str.chop!.chop!
- end
- str += "]"
- end
-
- alias old_to_s to_s
- alias to_s inspect
-
- def first=(val)
- self[0] = val
- end
-
- def last=(val)
- self[-1] = val
- end
-
- # ary.pick ==> random value
- # ary.pick(3) ==> [x, y, z]
- # ary.pick(true) ==> whole ary randomized
- def array_pick(n = 1)
- n = self.length if n == true
- if n == 1
- self[kernel_rand(self.length)]
- else
- (0...n).map do |i| self[kernel_rand(self.length)] end
- end
- end
- alias pick array_pick
-
- def array_rand
- tmp = self.dup
- tmp.each_index do |i|
- r = kernel_rand(tmp.length)
- tmp[r], tmp[i] = tmp[i], tmp[r]
- end
- tmp
- end
- alias rand array_rand
-
- def array_rand!
- self.each_index do |i|
- r = kernel_rand(self.length)
- self[r], self[i] = self[i], self[r]
- end
- self
- end
- alias rand! array_rand!
-
- def add(other)
- assert_type((array?(other) or vct?(other)), 0, other, "an array, a vector or a vct")
- new_ary = self.dup
- [self.length, other.length].min.times do |i| new_ary[i] += other[i] end
- new_ary
- end
-
- def add!(other)
- assert_type((array?(other) or vct?(other)), 0, other, "an array, a vector or a vct")
- [self.length, other.length].min.times do |i| self[i] += other[i] end
- self
- end
-
- def subtract(other)
- assert_type((array?(other) or vct?(other)), 0, other, "an array, a vector or a vct")
- new_ary = self.dup
- [self.length, other.length].min.times do |i| new_ary[i] -= other[i] end
- new_ary
- end
-
- def subtract!(other)
- assert_type((array?(other) or vct?(other)), 0, other, "an array, a vector or a vct")
- [self.length, other.length].min.times do |i| self[i] -= other[i] end
- self
- end
-
- def multiply(other)
- assert_type((array?(other) or vct?(other)), 0, other, "an array, a vector or a vct")
- new_ary = self.dup
- [self.length, other.length].min.times do |i| new_ary[i] *= other[i] end
- new_ary
- end
-
- def multiply!(other)
- assert_type((array?(other) or vct?(other)), 0, other, "an array, a vector or a vct")
- [self.length, other.length].min.times do |i| self[i] *= other[i] end
- self
- end
-
- def offset(scl)
- assert_type(number?(scl), 0, scl, "a number")
- scl = Float(scl)
- self.class.new(self.length) do |i| self[i] + scl end
- end
-
- def offset!(scl)
- assert_type(number?(scl), 0, scl, "a number")
- scl = Float(scl)
- self.map! do |val| val += scl end
- end
-
- def scale(scl)
- assert_type(number?(scl), 0, scl, "a number")
- scl = Float(scl)
- self.class.new(self.length) do |i| self[i] * scl end
- end
-
- def scale!(scl)
- assert_type(number?(scl), 0, scl, "a number")
- scl = Float(scl)
- self.map! do |val| val *= scl end
- end
-
- def to_vector
- Vec.new(self.length) do |i| Float(self[i]) end
- end
-
- def car
- self[0]
- end
-
- def car=(val)
- self[0] = val
- end
-
- def cadr
- self[1]
- end
-
- def cadr=(val)
- self[1] = val
- end
-
- def caddr
- self[2]
- end
-
- def caddr=(val)
- self[2] = val
- end
-
- def cadddr
- self[3]
- end
- def cadddr=(val)
- self[3] = val
- end
-
- def caddddr
- self[4]
- end
-
- def caddddr=(val)
- self[4] = val
- end
-
- def cdr
- self[1..-1]
- end
-
- def step(n = 1)
- 0.step(self.length - n, n) do |i| yield(*self[i, n]) end
- self
- end
-
- add_help(:apply,
- "Array#apply([:func,] *rest, &body)
-applies function or procedure with possible rest args \
-to each element of Array or subclasses of Array.
- [0, 1, 2].apply(\"a: %d\\n\") do |fmt, a| printf(fmt, a) end
- [0, 1, 2].apply(:printf, \"a: %d\\n\")
-both produce
-a: 0
-a: 1
-a: 2
- [1, 2, 3, 4].apply(:+) # ==> 10
- %w(snd sndplay with_sound).apply(:length) # ==> [3, 7, 10]
- [[1, 2, 3, 4], [1, 2, 3], [1, 2]].apply(:max) # ==> [4, 3, 2]
-[vct(0.1, 0.2, 0.3), vct(-0.1, -0.2, -0.3)].apply(:peak) # ==> [0.3, 0.3]
- sounds.apply(:map) do |s| puts s end
- sounds.apply(:close_sound)")
- def apply(func, *rest, &body)
- if block_given? and (not symbol?(func))
- rest.unshift(func)
- self.map do |item| yield(*rest + [item]) end
- else
- assert_type((func?(func) or proc?(func) or method?(func)),
- func, 0, "a function (string or symbol), a method or a proc")
- case func
- when Proc, Method
- self.map do |item| func.call(*rest + [item]) end
- when Symbol, String
- meths = self.methods
- if body and (meths.member?(func.to_s) or meths.member?(func.to_sym))
- # map, each, ...
- self.send(func, *rest, &body)
- else
- receiver = self.compact.first
- meths = receiver.methods
- if receiver and (meths.member?(func.to_s) or meths.member?(func.to_sym))
- # methods
- case func.to_sym
- when :+, :-, :*
- res = receiver
- self[1..-1].compact.map do |item| res = res.send(func, *rest + [item]) end
- res
- else
- len = rest.length + ((array?(receiver) and receiver.length) or 1)
- if receiver.method(func).arity.abs == len
- # remove_file (String(WS) in ws.rb)
- self.map do |item| send(func, *rest + [item]) end
- else
- # length, max, min, ...
- self.map do |item| item.send(func, *rest) end
- end
- end
- else
- # functions
- self.map do |item| send(func, *rest + [item]) end
- end
- end
- end
- end
- end
-
- # original operands +, -, and * can now handle nil and numberic (offset, multiply)
- #
- # [].+(ary) concatenate arrays
- # [].+(number) [].add(number)
- unless defined? [].ary_plus
- alias old_ary_plus +
- def ary_plus(other)
- case other
- when Numeric
- self.offset(other)
- when NilClass
- self
- else
- self.old_ary_plus(other)
- end
- end
- alias + ary_plus
- end
-
- # [].-(ary) intersection
- # [1, 2, 3, 4] - [2, 3] ==> [1, 4]
- # [] - number [].offset
- unless defined? [].ary_minus
- alias old_ary_minus -
- def ary_minus(other)
- case other
- when Numeric
- self.offset(-other)
- when NilClass
- self
- else
- self.old_ary_minus(other)
- end
- end
- alias - ary_minus
- end
-
- # [].*(n) repetition or [].join(n)
- # [5] * 3 ==> [5, 5, 5]
- # ["foo", "bar"] * "-" ==> "foo-bar"
- unless defined? [].ary_times
- alias old_ary_times *
- def ary_times(other)
- case other
- when NilClass
- nil.to_a
- else
- self.old_ary_times(other)
- end
- end
- alias * ary_times
- end
-end
-
-# name Vector is in use (lib/ruby/1.9/matrix.rb)
-class Vec < Array
- def self.[](*ary)
- self.new(ary.length) do |i| ary[i] end
- end
-
- def initialize(len, init = 0.0, &body)
- assert_type((number?(len) and len >= 0), len, 0, "a number")
- @name = "vector"
- len = Integer(len)
- if block_given?
- super(len, &body)
- else
- super(len, init)
- end
- test = self.detect do |x| (not number?(x)) end
- assert_type((not test), test, 0, "only numeric elements")
- end
-
- def inspect
- str = "%s(" % @name
- self.each do |val| str += "%s, " % val end
- if self.length > 0 then str.chop!.chop! end
- str += ")"
- str
- end
-
- def to_s
- if self.length > 0
- vals = ":"
- self.map do |val| vals += " %s" % val end
- else
- vals = ""
- end
- format("#<%s[%d]%s>", self.class, self.length, vals)
- end
-
- def +(other)
- case other
- when Numeric
- self.offset(other).to_vector
- when Array, Vec, Vct
- self.add(other.to_vector)
- when NilClass
- self
- end
- end
-
- def -(other)
- case other
- when Numeric
- self.offset(-other).to_vector
- when Array, Vec, Vct
- self.subtract(other.to_vector)
- when NilClass
- self
- end
- end
-
- def *(other)
- case other
- when Numeric
- self.scale(other).to_vector
- when Array, Vec, Vct
- self.multiply(other.to_vector)
- when NilClass
- nil.to_vector
- end
- end
-end
-
-def Vec(obj)
- if obj.nil? then obj = [] end
- assert_type(obj.respond_to?(:to_vector), obj, 0,
- "an object containing method 'to_vector' (Vct, String, Array and subclasses)")
- obj.to_vector
-end
-
-def make_vector(len, init = 0.0, &body)
- Vec.new(len, init, &body)
-end
-
-def vector?(obj)
- obj.kind_of?(Vec)
-end
-
-def vector(*args)
- args.to_vector
-end
-
-class String
- def to_vector
- if self.scan(/^vector\([-+,.)\d\s]+/).null?
- nil
- else
- eval(self)
- end
- end
-
- def to_vct
- if self.scan(/^vct\([-+,.)\d\s]+/).null?
- nil
- else
- eval(self)
- end
- end
-end
-
-def Vct(obj)
- if obj.nil? then obj = [] end
- assert_type(obj.respond_to?(:to_vct), obj, 0,
- "an object containing method 'to_vct' (Vct, String, Array and subclasses)")
- obj.to_vct
-end
-
-def make_vct!(len, init = 0.0, &body)
- if block_given?
- Vct.new(len, &body)
- else
- Vct.new(len, init)
- end
-end
-
-class Vct
- def self.[](*ary)
- self.new(ary.length) do |i| ary[i] end
- end
-
- def name
- self.class.to_s.downcase
- end
-
- def to_sound_data(sd = nil, chn = 0)
- if sound_data?(sd)
- vct2sound_data(self, sd, chn)
- else
- vct2sound_data(self)
- end
- end
-
- def to_vct(chn = 0) # CHN for compatibility with sound-data
- self
- end
-
- def to_vector
- Vec.new(self.length) do |i| self[i] end
- end
-
- def apply(*rest, &body)
- self.to_a.apply(*rest, &body)
- end
-
- def +(other)
- assert_type((number?(other) or vct?(other) or array?(other) or other.nil?), other, 0,
- "a number, an array, a vector or a vct")
- case other
- when Numeric
- self.offset(other)
- when Array, Vec, Vct
- self.add(other.to_vct)
- when NilClass
- self
- end
- end
-
- def -(other)
- assert_type((number?(other) or vct?(other) or array?(other) or other.nil?), other, 0,
- "a number, an array, a vector or a vct")
- case other
- when Numeric
- self.offset(-other)
- when Array, Vec, Vct
- self.subtract(other.to_vct)
- when NilClass
- self
- end
- end
-
- def *(other)
- assert_type((number?(other) or vct?(other) or array?(other) or other.nil?), other, 0,
- "a number, an array, a vector or a vct")
- case other
- when Numeric
- self.scale(other)
- when Array, Vec, Vct
- self.multiply(other.to_vct)
- when NilClass
- nil.to_vct
- end
- end
-
- def step(n = 1, &body)
- self.to_a.step(n, &body)
- end
-
- # v = vct(0, 1, 2, 3, 4)
- # v[2..4] ==> vct(2.000, 3.000, 4.000)
- # v[2...4] ==> vct(2.000, 3.000)
- # v[3, 4] ==> vct(3.000, 4.000)
- # v[-1] ==> 4.0
- def vct_ref_extend(idx, size = nil)
- case idx
- when Fixnum
- if idx < 0 then idx += self.length end
- if idx < 0 then Snd.raise(:out_of_range, "index < 0", idx) end
- if integer?(size)
- size += idx - 1
- if size >= self.length then size = self.length - 1 end
- if size.between?(0, self.length - 1) and size >= idx
- self.subseq(idx, size)
- else
- nil.to_vct # i.e. false
- end
- else
- vct_ref(self, idx)
- end
- when Range
- beg = idx.first
- len = idx.last
- if beg < 0 then beg += self.length end
- if len < 0 then len += self.length end
- if len >= self.length then len = self.length - 1 end
- # exclude_end?: (1..2) ==> false
- # (1...2) ==> true
- if idx.exclude_end? then len -= 1 end
- if beg.between?(0, self.length - 1) and len >= beg
- self.subseq(beg, len)
- else
- nil.to_vct # i.e. false
- end
- end
- end
- # alias [] vct_ref_extend
-
- # This is required since Ruby 1.9.
- alias zip clm_zip if [].respond_to?(:zip)
-end
-
-class Fixnum
- # no reloading (load "examp.rb")
- unless defined? 0.new_int_plus
- alias int_plus +
- def new_int_plus(other)
- case other
- when Vct, Array, Vec
- other.offset(Float(self))
- when NilClass
- self
- else
- self.int_plus(other)
- end
- end
- alias + new_int_plus
- end
-
- unless defined? 0.new_int_times
- alias int_times *
- def new_int_times(other)
- case other
- when Vct, Array, Vec
- other.scale(self)
- when NilClass
- 0
- else
- self.int_times(other)
- end
- end
- alias * new_int_times
- end
-end
-
-class Float
- # no reloading (load "examp.rb")
- unless defined? 0.0.new_float_plus
- alias float_plus +
- def new_float_plus(other)
- case other
- when Vct, Array, Vec
- other.offset(self)
- when NilClass
- self
- else
- self.float_plus(other)
- end
- end
- alias + new_float_plus
- end
-
- unless defined? 0.0.new_float_times
- alias float_times *
- def new_float_times(other)
- case other
- when Vct, Array, Vec
- other.scale(self)
- when NilClass
- 0.0
- else
- self.float_times(other)
- end
- end
- alias * new_float_times
- end
-
- unless defined? 0.0.imag
- def imag
- 0.0
- end
- alias image imag
- end
-end
-
-def SoundData(ary)
- assert_type((array?(ary) and vct?(ary.first)), ary, 0, "an array of vcts")
- sd = SoundData.new(ary.length, ary.first.length)
- ary.each_with_index do |v, chn| vct2sound_data(v, sd, chn) end
- sd
-end
-
-def sound_data2string(sd)
- sd.to_a.to_s
-end
-
-class SoundData
- def name
- "sound-data"
- end
-
- def to_vct(chn = 0)
- sound_data2vct(self, chn)
- end
-
- # returns an array of sd.chans vcts
- def to_a
- sound_data2vector(self)
- end
-
- alias sd_length length
- def length
- self.size / self.chans
- end
-
- def fill!(val)
- sound_data_fill!(self, val)
- end
-
- alias sd_each each
- def each(chn = nil)
- if chn
- self.length.times do |i| yield(self[chn, i]) end
- else
- self.sd_each do |val| yield(val) end
- end
- end
-
- def each_with_index(chn = nil)
- if chn
- self.length.times do |i| yield(self[chn, i], i) end
- else
- self.length.times do |i|
- self.chans.times do |j| yield(self[j, i], i) end
- end
- end
- end
-
- def map(chn = nil)
- sd = nil
- if chn
- sd = self.dup
- self.each_with_index(chn) do |val, i| sd[chn, i] = yield(val) end
- else
- sd = SoundData.new(self.chans, self.length)
- self.chans.times do |j|
- self.each_with_index(j) do |val, i| sd[j, i] = yield(val) end
- end
- end
- sd
- end
-
- def map!(chn = nil)
- if chn
- self.each_with_index(chn) do |val, i| self[chn, i] = yield(val) end
- else
- self.chans.times do |j|
- self.each_with_index(j) do |val, i| self[j, i] = yield(val) end
- end
- end
- self
- end
-end
-
-def mus_a0(gen)
- mus_xcoeff(gen, 0)
-end
-
-def set_mus_a0(gen, val)
- set_mus_xcoeff(gen, 0, val)
-end
-
-def mus_a1(gen)
- mus_xcoeff(gen, 1)
-end
-
-def set_mus_a1(gen, val)
- set_mus_xcoeff(gen, 1, val)
-end
-
-def mus_a2(gen)
- mus_xcoeff(gen, 2)
-end
-
-def set_mus_a2(gen, val)
- set_mus_xcoeff(gen, 2, val)
-end
-
-def mus_b1(gen)
- mus_ycoeff(gen, 1)
-end
-
-def set_mus_b1(gen, val)
- set_mus_ycoeff(gen, 1, val)
-end
-
-def mus_b2(gen)
- mus_ycoeff(gen, 2)
-end
-
-def set_mus_b2(gen, val)
- set_mus_ycoeff(gen, 2, val)
-end
-
-class Mus
- # clm_gen.call(a1, a2) requires 2 arguments but clm_gen.run([a1, [a2]])
- # 0, 1 or 2.
- #
- # clm_gen.run([arg1, [arg2]])
- def run(arg1 = 0.0, arg2 = 0.0)
- mus_run(self, arg1, arg2)
- end
-
- def apply(*rest)
- mus_apply(self, *rest)
- end
-
- alias mus_inspect inspect
- def inspect
- "#<" + mus_describe(self) + ">"
- end
-
- def close
- mus_close(self)
- end
-
- # gen.xcoeff = 0, 0.4
- # set_mus_xcoeff(gen, index, val)
- def xcoeff=(args)
- set_mus_xcoeff(self, *args.flatten[0, 2])
- end
-
- # gen.ycoeff = 0, 0.4
- # set_mus_ycoeff(gen, index, val)
- def ycoeff=(args)
- set_mus_ycoeff(self, *args.flatten[0, 2])
- end
-
- def a0
- mus_xcoeff(self, 0)
- end
-
- def a0=(val)
- set_mus_xcoeff(self, 0, val)
- end
-
- def a1
- mus_xcoeff(self, 1)
- end
-
- def a1=(val)
- set_mus_xcoeff(self, 1, val)
- end
-
- def a2
- mus_xcoeff(self, 2)
- end
-
- def a2=(val)
- set_mus_xcoeff(self, 2, val)
- end
-
- def b1
- mus_ycoeff(self, 1)
- end
-
- def b1=(val)
- set_mus_ycoeff(self, 1, val)
- end
-
- def b2
- mus_ycoeff(self, 2)
- end
-
- def b2=(val)
- set_mus_ycoeff(self, 2, val)
- end
-end
-
-# base class for generators written in Ruby
-class Musgen
- def initialize
- @frequency = $clm_default_frequency
- @phase = 0.0
- @scaler = 1.0
- @length = 0
- @data = nil
- @increment = 0
- @interp_type = -1
- @file_name = ""
- end
- attr_accessor :frequency
- attr_accessor :phase
- attr_accessor :scaler
- attr_accessor :increment
- attr_reader :length
- attr_reader :data
- attr_reader :interp_type
- attr_reader :file_name
-
- def inspect
- format("%s.new()", self.class)
- end
-
- def to_s
- format("#<%s>", self.class)
- end
-
- def run(val1 = 0.0, val2 = 0.0)
- self.run_func(val1, val2)
- end
- alias call run
-
- def apply(*rest)
- self.run_func(*rest)
- end
-
- def eql?(other)
- self == other
- end
-
- def reset
- @frequency = $clm_default_frequency
- @phase = 0.0
- @scaler = 1.0
- @increment = 0
- self
- end
-end
-
-class Numeric
- def positive?
- self > 0
- end
-
- def negative?
- self < 0
- end
-end
-
-class Integer
- def even?
- self.modulo(2) == 0
- end unless defined? 1.even?
-
- def odd?
- self.modulo(2) != 0
- end unless defined? 1.odd?
-
- def prime?
- (self == 2) or
- (self.odd? and 3.step(sqrt(self), 2) do |i| return false if self.modulo(i) == 0 end)
- end
-end
-
-class Float
- # step accepts floats as arguments (still implemented in newer versions)
- def step(upto, step)
- counter = self
- while counter < upto
- yield(counter)
- counter += step
- end
- counter
- end unless 1.1.respond_to?(:step)
-end
-
-class Range
- def step(n = 1, &body)
- self.to_a.step(n, &body)
- end unless defined? Range.new(0, 1).step
-end
-
-def as_one_edit_rb(*origin, &body)
- # ruby compatibility:
- # ruby pre 1.9: lambda do end.arity != lambda do | | end.arity
- # ruby 1.9: they are even (0)
- as_one_edit(lambda do | | body.call end, origin.empty? ? "" : format(*origin))
-end
-
-def map_channel_rb(beg = 0, dur = false,
- snd = false, chn = false, edpos = false, edname = false, &func)
- map_channel(func, beg, dur, snd, chn, edpos, edname)
-end
-
-add_help(:map_chan_rb,
- "map_chan(func,[start=0,[end=false,[edname=false,[snd=false,[chn=false,[edpos=false]]]]]])\
- map_chan applies func to samples in the specified channel.\
- It is the old (\"irregular\") version of map_channel.")
-def map_chan_rb(beg = 0, dur = false, ednam = false, snd = false, chn = false, edpos = false, &func)
- map_chan(func, beg, dur, ednam, snd, chn, edpos)
-end
-
-class Proc
- include Info
- alias run call
-
- add_help(:to_method,
- "Proc#to_method(name, [klass=Object]) \
-converts a Proc to a Method 'name' in the given class, default Object. \
-'name' can be a string or a symbol.
-
-m = lambda do |*args| p args end
-m.to_method(:func)
-func(1, 2, 3) ==> [1, 2, 3]
-
-lambda do |x| p x end.to_method(:foo); foo(\"text1\") ==> \"text1\"
-lambda do |x| p x end.to_method(\"bar\"); bar(\"text2\") ==> \"text2\"")
- def to_method(name, klass = Object)
- assert_type((symbol?(name) or string?(name)), name, 0, "a symbol or a string")
- assert_type((klass.kind_of?(Class) and klass.class == Class), name, 1, "a class, e.g. Object")
- name = case name
- when String
- name.intern
- when Symbol
- name
- end
- body = self
- klass.class_eval do define_method(name, body) end
- end
-
- # Important:
- # The following works only with newer ruby versions (I assume >=
- # 1.8.x). Proc#inspect must return #<Proc:0x80c96a0@xxx:x> to
- # locate the source file of the procedure, not only #<Proc:0x80c96a0>!
-
- # Functions to_str and to_body try to search the procedure source
- # code in a file determined by to_s. It is only a simple scanner
- # which doesn't look for the whole Ruby syntax. ;-)
- #
- # It doesn't work if no source file exists, i.e, if the code is
- # eval'ed by the Snd listener (or in Emacs). You must load the file
- # instead.
- #
- # with_sound(:notehook, lambda do |name| snd_print(name) if name =~ /viol/ end) do
- # fm_violin(0, 1, 440, 0.3)
- # end
- #
- # $clm_notehook = lambda do |name| clm_print(name) if name =~ /viol/ end
- #
- # with_sound do
- # fm_violin(0, 1, 440, 0.3)
- # end
- #
- # with_sound(:save_body, true) do
- # ...
- # end
-
- # returns something like 'lambda do ... end'
- def to_str
- if body = self.source
- return body
- end
- file, line = self.to_s.sub(/>/, "").split(/@/).last.split(/:/)
- if file[0] == ?( and file[-1] == ?)
- if $VERBOSE
- warning("%s#%s: no file found for procedure %s", self.class, get_func_name, self.inspect)
- end
- body = ""
- elsif (not File.exist?(file))
- if $VERBOSE
- warning("%s#%s: Sorry, you need a higher ruby version to use Proc#to_str.
-It works only with newer ruby versions (I assume >= 1.8.x).
-Proc#inspect must return #<Proc:0x01234567@xxx:x> not only %s!",
- self.class, get_func_name, self.inspect)
- end
- body = ""
- else
- lineno = line.to_i
- body = ""
- blck = i = 0
- first_line = true
- File.foreach(file) do |ln|
- i += 1
- next if i < lineno
- body << ln
- if first_line
- if (ln.scan(/\s*do\b|\{/).length - ln.scan(/\s*end\b|\}/).length).zero? and
- (ln.scan(/\(/).length - ln.scan(/\)/).length).zero?
- break
- else
- first_line = false
- blck = 1
- next
- end
- end
- next if /\s*\S+\s*(if|unless|while|until)+/ =~ ln
- break if (blck += Snd_eval.count_level(ln)).zero?
- break if blck.negative?
- end
- end
- unless self.source then self.source = body end
- body
- end
-
- # returns the inner body without 'lambda do end'
- def to_body
- if (body = self.to_str).null?
- ""
- elsif body.split(/\n/).length == 1
- body.chomp.sub(/^(?:\s*\w+(?:\(.*\))??\s*(?:do\s+|\{\s*))(.*)\s*(?:end|\})$/, '\1').strip
- else
- body.split(/\n/)[1..-2].join("\n")
- end
- end
-
- # property set in g_edit_list_to_function (snd-edits.c)
- def source
- property(self.object_id, :proc_source)
- end
-
- def source=(val)
- set_property(self.object_id, :proc_source, val)
- end
-end
-
-def make_proc2method(name, prc)
- assert_type(func?(name), name, 0, "a symbol or a string")
- assert_type(proc?(prc), prc, 1, "a proc")
- prc.to_method(name)
-end
-
-# produces two new functions: NAME and SET_NAME
-# val = 10
-# make_proc_with_setter(:foo, lambda { puts val }, lambda { |a| val = a })
-# foo ==> 10
-# set_foo(12)
-# foo ==> 12
-def make_proc_with_setter(name, getter, setter)
- make_proc2method(name, getter)
- make_proc2method(format("set_%s", name).intern, setter)
-end
-
-# prc = make_proc_with_source(%(lambda do |a, b, c| puts a, b, c end))
-# prc.call(1, 2, 3)
-# prc.source ==> "lambda do |a, b, c| puts a, b, c end"
-#
-# With the second argument BIND one can use local variables known in
-# the current (or other) environment in the proc body:
-#
-# os = make_oscil(:frequency, 330)
-# prc = make_proc_with_source(%(lambda do | | 10.times do |i| p os.run end end), binding)
-# puts prc.source ==> lambda do | | 10.times do |i| p os.run end end
-# prc.call ==> ..., 0.748837699712728
-# puts
-# prc.call ==> ..., 0.97679449812022
-def make_proc_with_source(string, bind = binding)
- assert_type(string?(string), string, 0, "a string")
- assert_type(binding?(bind), bind, 1, "a binding object")
- if proc?(prc = (res = Snd.catch(:all) do eval(string, bind) end).first)
- prc.source = string
- prc
- else
- Snd.raise(:runtime_error, res, prc, string)
- end
-end
-
-make_proc_with_setter(:proc_source,
- lambda { |prc|
- assert_type(proc?(prc), prc, 0, "a proc")
- prc.source
- },
- lambda { |prc, val|
- assert_type(proc?(prc), prc, 0, "a proc")
- assert_type(string?(val), val, 1, "a string")
- prc.source = val
- })
-
-# Multi-line input to the Snd listener and Emacs/inf-snd.el.
-# A simple parser collects multi-line input, e.g.
-#
-# with_sound do
-# fm_violin(0.0, 0.1, 330, 0.1)
-# fm_violin(0.1, 0.1, 660, 0.1)
-# end
-#
-# and evals it.
-#
-# ~/.snd
-# set_listener_prompt("snd> ") # optional
-# start_listener_eval # installs read-hook for snd-listener input
-# start_emacs_eval # installs emacs-eval-hook
-
-make_hook("$emacs_eval_hook", 1, "\
-emacs_eval_hook(line): called each time inf-snd.el sends a line to the Snd process. \
-The hook functions may do their best to deal with multi-line input; \
-they can collect multi-line input and eval it by itself. \
-One example is install_eval_hooks(file, retval, input, hook, &reset_cursor) in examp.rb.")
-
-# inf-snd.el calls this function each time a line was sent to the
-# emacs buffer.
-def run_emacs_eval_hook(line)
- if $emacs_eval_hook.empty?
- # without emacs-eval-hook only single line eval
- file = "(emacs-eval-hook)"
- set_snd_input(:emacs)
- begin
- Snd.display(eval(line, TOPLEVEL_BINDING, file, 1).inspect)
- rescue Interrupt, ScriptError, NameError, StandardError
- Snd.display(verbose_message_string(true, "# ", file))
- end
- set_snd_input(:snd)
- nil
- else
- $emacs_eval_hook.call(line)
- end
-end
-
-class Snd_eval
- class << Snd_eval
- Open_token = %w(class module def do { while until if unless case begin for)
- Close_token = %w(end })
-
- def count_level(line)
- eval_level = 0
- # skip strings and symbols which may contain reserved words
- line.gsub(/(:\w+|".+")/, "").split(/\b/).each do |s|
- case s
- when *Open_token
- eval_level += 1
- when *Close_token
- eval_level -= 1
- end
- end
- eval_level
- end
- end
-end
-
-class Snd_prompt
- # level number inserted into original prompt
- # ">" --> "(0)>"
- # "snd> " --> "snd(0)> "
- def initialize(level)
- @listener_prompt = listener_prompt
- @base_prompt = listener_prompt.split(/(\(\d+\))?(>)?\s*$/).car.to_s
- @rest_prompt = listener_prompt.scan(/>\s*$/).car.to_s
- update(level)
- end
-
- def inspect
- format("#<%s %s(0)%s>", self.class, @base_prompt, @rest_prompt)
- end
-
- def update(level)
- set_listener_prompt(format("%s(%d)%s", @base_prompt, level, @rest_prompt))
- end
-
- def reset
- set_listener_prompt(@listener_prompt)
- end
-end
-
-def install_eval_hooks(file, retval, input, hook, &reset_cursor)
- eval_level = 0
- eval_line = ""
- prompt = Snd_prompt.new(eval_level)
- reset_cursor.nil? or reset_cursor.call
- $exit_hook.add_hook!(file) do | | prompt.reset end
- hook.add_hook!(file) do |line|
- eval_line << line << "\n"
- eval_level += Snd_eval.count_level(line)
- if eval_level.negative?
- eval_level = 0
- eval_line = ""
- end
- if eval_level.zero?
- set_snd_input(input)
- begin
- Snd.display(eval(eval_line, TOPLEVEL_BINDING, file, 1).inspect)
- rescue Interrupt, ScriptError, NameError, StandardError
- Snd.display(verbose_message_string(true, "# ", file))
- ensure
- eval_line = ""
- end
- end
- prompt.update(eval_level)
- reset_cursor.nil? or reset_cursor.call
- retval
- end
-end
-
-# installs the emacs-eval-hook
-def start_emacs_eval(name = "(emacs)")
- install_eval_hooks(name, nil, :emacs, $emacs_eval_hook) do
- $stdout.print(listener_prompt)
- $stdout.flush
- end
-end
-
-# installs the read-hook
-def start_listener_eval(name = "(snd)")
- set_show_listener(true)
- install_eval_hooks(name, true, :snd, $read_hook)
-end
-
-def stop_emacs_eval(name = "(emacs)")
- $emacs_eval_hook.remove_hook!(name)
- $exit_hook.run_hook_by_name(name)
- $exit_hook.remove_hook!(name)
-end
-
-def stop_listener_eval(name = "(snd)")
- $read_hook.remove_hook!(name)
- $exit_hook.run_hook_by_name(name)
- $exit_hook.remove_hook!(name)
- reset_listener_cursor
- clm_print("\n%s", listener_prompt)
-end
-
-# Debugging resp. inspecting local variables
-
-make_proc_with_setter(:debug_properties,
- lambda { |name|
- property(name, :debug_property)
- },
- lambda { |name, val|
- set_property(name, :debug_property, val)
- })
-
-make_proc_with_setter(:debug_property,
- lambda { |key, name|
- hash?(h = debug_properties(name)) and h[key]
- },
- lambda { |key, val, name|
- unless hash?(h = debug_properties(name)) and h.store(key, [val] + h[key])
- unless array?(a = property(:debug, :names)) and a.push(name)
- set_property(:debug, :names, [name])
- end
- set_debug_properties(name, {key => [val]})
- end
- })
-
-make_proc_with_setter(:debug_binding,
- lambda { |name|
- debug_property(:binding, name)
- },
- lambda { |bind, *name|
- assert_type(binding?(bind), bind, 0, "a binding object")
- name = (name.car or get_func_name(3))
- set_debug_property(:binding, bind, name)
- })
-
-# shows all local variables of functions prepared by set_debug_binding(binding)
-#
-# def function1
-# [...]
-# set_debug_binding(binding)
-# end
-#
-# def function2
-# [...]
-# set_debug_binding(binding)
-# end
-# [...]
-#
-# display_all_variables
-def display_all_variables(name = nil)
- if name
- [name]
- else
- (property(:debug, :names) or [])
- end.each do |nm|
- debug_binding(nm).each do |bind|
- Snd.message("=== %s ===", nm)
- Snd.message()
- eval("local_variables", bind).each do |var|
- Snd.message("%s = %s", var, eval(var, bind).inspect)
- end
- Snd.message()
- end
- end
-end
-
-# each_variables provides all local variable names and their values in
-# the given proc context
-#
-# def function
-# [...]
-# each_variables do |k, v|
-# Snd.display("%s = %s", k, v)
-# end
-# end
-def each_variables(&prc)
- eval("local_variables", prc).each do |var| yield(var, eval(var, prc)) end
-end
-
-# let(8, :foo, "bar") do |a, b, c|
-# printf("a: %d, b: %s, c: %s\n", a, b, c)
-# end
-#
-# Simulates a save local variable environment and restores old
-# variables to their original values.
-#
-# EVAL doesn't take any longer a proc for a binding. The date is a
-# guess.
-if RUBY_RELEASE_DATE > "2006-12-21"
- def let(*args, &prc)
- prc.call(*args)
- rescue Interrupt, ScriptError, NameError, StandardError
- Kernel.raise
- end
-else
- def let(*args, &prc)
- locals = Hash.new
- eval("local_variables", prc).each do |name| locals[name] = eval(name, prc) end
- # yield(*args)
- # See ruby/ChangeLog: Tue Jul 18 16:52:29 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
- prc.call(*args)
- rescue Interrupt, ScriptError, NameError, StandardError
- Kernel.raise
- ensure
- @locals = locals
- locals.each_key do |name| eval("#{name} = @locals[#{name.inspect}]", prc) end
- remove_instance_variable("@locals")
- end
-end
-
-include Math
-
-TWO_PI = PI * 2.0 unless defined? TWO_PI
-HALF_PI = PI * 0.5 unless defined? HALF_PI
-
-# for irb (rgb.rb)
-def make_color(r, g, b)
- [:Pixel, 0]
-end unless defined? make_color
-
-def doc(*rest)
- # dummy for old Kernel.doc
-end
-
-require "env"
-require "dsp"
-require "rgb"
-
-##
-## Utilities
-##
-
-if provided? :snd_nogui
- alias close_sound_extend close_sound
-else
- def close_sound_extend(snd)
- # 5 == Notebook
- if main_widgets[5]
- idx = Snd.sounds.index(snd)
- if idx.nil? then idx = 0 end
- close_sound(snd)
- snds = sounds() and set_selected_sound(snds[idx < snds.length ? idx : -1])
- else
- close_sound(snd)
- end
- end
-end
-
-add_help(:times2samples,
- "times2samples(start, dur) \
-START and DUR are in seconds; returns array [beg, end] in samples.")
-def times2samples(start, dur)
- beg = seconds2samples(start)
- [beg, beg + seconds2samples(dur)]
-end
-
-def random(val)
- if val.zero?
- val
- else
- case val
- when Fixnum
- kernel_rand(val)
- when Float
- val.negative? ? -mus_random(val).abs : mus_random(val).abs
- end
- end
-end
-
-def logn(r, b = 10)
- if r <= 0 then Snd.raise(:ruby_error, r, "r must be > 0") end
- if b <= 0 or b == 1 then Snd.raise(:ruby_error, b, "b must be > 0 and != 1") end
- log(r) / log(b)
-end
-
-def car(v)
- v[0]
-end
-
-def cadr(v)
- v[1]
-end
-
-def caddr(v)
- v[2]
-end
-
-def cdr(v)
- v[1..-1]
-end
-
-def verbose_message_string(stack_p, remark, *args)
- fmt_remark = format("\n%s", remark)
- args.to_a.car = String(args.to_a.car)
- str = if args.length < 2
- args.car
- else
- format(*args)
- end
- str = if str.split(/\n/).length > 1
- str.split(/\n/).join(fmt_remark)
- else
- format("%s%s", remark, args.car)
- end
- if $!
- str += format("[%s] %s (%s)", rb_error_to_mus_tag.inspect, snd_error_to_message, $!.class)
- if stack_p then str += format("\n%s%s", remark, $!.backtrace.join(fmt_remark)) end
- else
- if stack_p and caller(2) then str += format("\n%s%s", remark, caller(2).join(fmt_remark)) end
- end
- str
-end
-
-def warning(*args)
- str = "Warning: " << verbose_message_string($VERBOSE, nil, *args)
- if provided? :snd
- snd_warning(str)
- nil
- else
- clm_message(str)
- end
-end
-
-def die(*args)
- message(verbose_message_string(true, nil, *args))
- exit(1) unless provided? :snd
-end
-
-def error(*args)
- Snd.raise(:runtime_error, verbose_message_string(true, nil, *args))
-end
-
-make_proc_with_setter(:snd_input,
- lambda { property(:snd_input, :snd_listener) },
- lambda { |val| set_property(:snd_input, :snd_listener, val) })
-
-# like clm_print(fmt, *args)
-
-def clm_message(*args)
- msg = if args.null?
- ""
- elsif args.length == 1
- String(args.car)
- else
- format(*args)
- end
- if provided?(:snd)
- clm_print("\n%s", msg)
- unless provided?(:snd_nogui)
- $stdout.print(msg, "\n")
- end
- else
- $stdout.print(msg, "\n")
- end
-end
-
-# like clm_print(*args), in emacs it prepends msg with a comment sign
-
-def message(*args)
- msg = if args.null?
- ""
- elsif args.length == 1
- String(args.car)
- else
- format(*args)
- end
- clm_message(verbose_message_string(false, "# ", msg))
-end
-
-# debug(var1, var2) --> #<DEBUG: ClassName: value1, ClassName: value2>
-
-def debug(*args)
- fmt = ""
- args.each do |arg|
- fmt += format("%s: %s", arg.class, arg.inspect)
- fmt += ", "
- end
- message("#<DEBUG: %s>", fmt.chomp(", "))
-end
-
-def debug_trace(*args)
- debug(*args)
- clm_message(verbose_message_string(true, "# "))
-end
-
-if provided? :snd then set_snd_input(:snd) end
-
-class Snd
- class << Snd
- Snd_path = Array.new
-
- if provided? :snd
- def add_sound_path(path)
- Snd_path.push(path)
- add_directory_to_view_files_list(path)
- end
-
- def open_from_path(fname)
- snd_file = Snd.fullname(fname)
- find_sound(snd_file) or open_sound(snd_file)
- end
-
- def find_from_path(fname)
- find_sound(Snd.fullname(fname))
- end
- else
- def add_sound_path(path)
- Snd_path.push(path)
- end
- end
-
- def fullname(fname)
- if File.exist?(fname)
- fname
- else
- f = File.basename(fname)
- Snd_path.each do |path|
- if File.exist?(path + "/" + f)
- return path + "/" + f
- end
- end
- Snd.raise(:no_such_file, fname)
- end
- end
-
- def load_path
- Snd_path
- end
-
- def message(*args)
- msg = if args.null?
- ""
- elsif args.length == 1
- String(args.car)
- else
- format(*args)
- end
- clm_message(verbose_message_string(false, "# ", msg))
- end
-
- def display(*args)
- args[0] = String(args[0])
- msg = format(*args)
- if snd_input == :snd
- snd_print("\n" + msg)
- if $VERBOSE then $stdout.print(msg, "\n") end
- nil
- else
- $stdout.print(msg, "\n")
- end
- end
-
- def warning(*args)
- if provided? :snd
- snd_warning(verbose_message_string($VERBOSE, nil, *args))
- nil
- else
- args[0] = "Warning: " + String(args[0])
- Snd.display(verbose_message_string($VERBOSE, "# ", *args))
- end
- end
-
- def die(*args)
- Snd.display(verbose_message_string(true, nil, *args))
- exit(1) unless provided? :snd
- end
-
- def error(*args)
- Snd.raise(:runtime_error, verbose_message_string(true, nil, *args))
- end
-
- def debug(*args)
- fmt = ""
- args.each do |arg|
- fmt += format("%s: %s", arg.class, arg.inspect)
- fmt += ", "
- end
- Snd.message("#<DEBUG: %s>", fmt.chomp(", "))
- end
-
- def debug_trace(*args)
- Snd.debug(*args)
- Snd.display(verbose_message_string(true, "# "))
- end
-
- def sounds
- (Kernel.sounds or []).reverse
- end
-
- def regions
- (Kernel.regions or []).reverse
- end
-
- def marks(snd = false, chn = false)
- (Kernel.marks(snd, chn) or [])
- end
-
- def snd(sn = false)
- sn or selected_sound or Snd.sounds.car
- end
-
- def chn(ch = false)
- ch or selected_channel or 0
- end
-
- def catch(tag = :all, retval = :undefined)
- old_debug = $DEBUG
- $DEBUG = false
- val = Kernel.catch(tag) do yield end
- # catch/throw part
- if array?(val) and val.car == :snd_throw # [:snd_throw, tag, get_func_name(2), *rest]
- if retval != :undefined
- if proc?(retval)
- retval.call(val.cdr)
- else
- [retval]
- end
- else
- val.cdr
- end
- else
- [val]
- end
- # ruby1.9/ChangeLog
- # Thu Feb 2 16:01:24 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
- # * error.c (Init_Exception): change NameError to direct subclass of
- # Exception so that default rescue do not handle it silently.
- rescue Interrupt, ScriptError, NameError, StandardError
- mus_tag = rb_error_to_mus_tag
- # raise part
- if (tag == mus_tag) or (tag == :all)
- if retval != :undefined
- if proc?(retval)
- retval.call(mus_tag, snd_error_to_message)
- else
- [retval]
- end
- else
- [mus_tag, snd_error_to_message]
- end
- else
- Kernel.raise
- end
- ensure
- $DEBUG = old_debug
- end
-
- def throw(tag, *rest)
- Kernel.throw(tag, [:snd_throw, tag, get_func_name(2), *rest])
- end
-
- def raise(tag, *rest)
- msg = format("%s: %s:", get_func_name(2), tag)
- rest.each do |s| msg += format(" %s,", s) end
- msg.chomp!(",")
- exception = case tag
- when :out_of_range
- RangeError
- when :wrong_type_arg
- TypeError
- when *Snd_error_tags
- StandardError
- else
- Ruby_exceptions[tag] or RuntimeError
- end
- Kernel.raise(exception, msg, caller(1))
- end
- end
-end
-
-# almost all StandardError
-Snd_error_tags = [# clm2xen.c
- :mus_error,
- :no_such_method,
- :wrong_type_arg, # TypeError
- # snd-0.h
- :no_such_envelope,
- :no_such_sample,
- :no_such_edit,
- :cannot_save,
- :cant_update_file,
- # snd-chn.c
- :cant_open_file,
- # snd-dac.c
- :bad_format,
- :no_such_player,
- :arg_error,
- # snd-draw.c
- :no_such_widget,
- :no_such_graphics_context,
- :no_such_axis,
- :bad_length,
- # snd-edits.c
- :no_such_direction,
- :no_such_region,
- :no_such_auto_delete_choice,
- # snd-env.c
- :env_error,
- # snd-error.c
- :snd_error,
- # snd-gxcolormaps.c
- :no_such_colormap,
- :colormap_error,
- # snd-key.c
- :no_such_key,
- # snd-ladspa.c
- :no_such_plugin,
- :plugin_error,
- # snd-marks.c
- :no_such_mark,
- # snd-menu.c
- :no_such_menu,
- # snd-mix.c
- :no_such_mix,
- # snd-print.c
- :cannot_print,
- # snd-region.c
- :io_error,
- # run.c
- :wrong_number_of_args,
- :cannot_parse,
- # snd-snd.c
- :no_such_sound,
- :not_a_sound_file,
- :cannot_apply_controls,
- :bad_size,
- :snd_internal_error,
- # snd-xen.c
- :no_active_selection,
- :bad_arity,
- # snd-xmain.c
- :xt_error,
- # snd-xchn.c
- :no_such_color,
- # snd.c
- :snd_top_level,
- :gsl_error,
- # sndlib2xen.h
- :out_of_range,
- :no_such_channel,
- :no_such_file,
- :bad_type,
- :no_data,
- :bad_header,
- # xm.c
- :no_such_resource]
-
-def rb_error_to_mus_tag
- # to_s and string error-names intended here
- # otherwise e.g. NameError goes to case StandardError!
- case $!.class.to_s
- # case 1
- # No_such_file: file->array /baddy/hiho No such file or directory
- # case 2
- # insert_region: No_such_region: 1004
- # case 3 (mus_error)
- # mus_ycoeff__invalid_index_123__order___3?: Mus_error
- # can't translate /usr/gnu/sound/sf1/oboe.g721 to /usr/gnu/sound/sf1/oboe.g721.snd:
- # : Mus_error>
- when "StandardError"
- err = $!.message.split(/\n/).first.downcase.split(/:/).map do |e| e.strip.chomp(">") end
- # err = $!.message.delete("\n").downcase.split(/:/).compact.map do |e| e.strip.chomp(">") end
- Snd_error_tags.detect do |tag| err.member?(tag.to_s) end or :standard_error
- when "RangeError"
- :out_of_range
- when "TypeError"
- :wrong_type_arg
- when "ArgumentError"
- :wrong_number_of_args
- else
- # converts ruby exceptions to symbols: NoMethodError --> :no_method_error
- $!.class.to_s.gsub(/([A-Z])/) do |c| "_" + c.tr("A-Z", "a-z") end[1..-1].intern
- end
-end
-
-def snd_error_to_message
- err = $!.message.split(/:/).map do |e| e.strip.chomp("\n") end
- str = err.join(": ")
- if err.length > 1 and (len = str.scan(/~A/).length).positive?
- str.gsub!(/~A/, "%s")
- str = if $!.class == RangeError
- format(str.strip, if string?(s = err.cadr.split(/,/)[1..-2].join(","))
- eval(s)
- else
- 0
- end)
- else
- format(str.strip, *if string?(s = str.slice!(str.index("[")..str.index("]")))
- eval(s)
- else
- [0] * len
- end)
- end
- end
- str.gsub(rb_error_to_mus_tag.to_s.capitalize + ": ", "")
-rescue Interrupt, ScriptError, NameError, StandardError
- if $DEBUG
- $stderr.printf("# Warning (%s)\n", get_func_name)
- each_variables do |k, v| $stderr.printf("# %s = %s\n", k, v.inspect) end
- end
- str
-end
-
-add_help(:snd_catch,
- "snd_catch([tag=:all, [retval=:undefined]]) \
-catchs snd_throw and exceptions and \
-returns body's last value wrapped in an array if all goes well. \
-If a snd_throw tag meets snd_catch's, returns an array with the tag name, \
-the function name from where was thrown and optional arguments given to snd_throw. \
-If an exception was risen and the exception name meets tag name, \
-returns an array with tag name and the exception message, otherwise reraises exception. \
-If retval is given and tag matches exception or snd_throw tag, returns retval. \
-If retval is a procedure, calls retval with tag name and message.
-
-res = snd_catch do 10 + 2 end
-puts res ==> [12]
-
-res = Snd.catch(:no_such_file) do
- open_sound(\"unknown-file.snd\")
-end
-puts res ==> [:no_such_file,
- \"open_sound: no_such_file: Unknown_file.snd No such file or directory\"]
-
-res = Snd.catch(:finish) do
- 10.times do |i|
- if i == 8 then snd_throw(:finish, i) end
- end
-end
-puts res ==> [:finish, \"top_level\", 8]
-
-res = Snd.catch(:all, lambda do |tag, msg| Snd.display([tag, msg]) end) do
- set_listener_prompt(17)
-end
-==> [:wrong_type_arg, \"set_listener-prompt: wrong type arg 0, 17, wanted a string\"]
-puts res ==> nil
-
-The lambda function handles the error in the last case.")
-def snd_catch(tag = :all, retval = :undefined, &body)
- Snd.catch(tag, retval, &body)
-end
-
-add_help(:snd_throw,
- "snd_throw(tag, *rest) \
-jumps to the corresponding snd_catch('tag') and returns an array \
-with tag, function name and possible *rest strings or values.")
-def snd_throw(tag, *rest)
- Snd.throw(tag, *rest)
-end
-
-class Break < StandardError
-end
-
-Ruby_exceptions = {
- :script_error => ScriptError,
- :load_error => LoadError,
- :name_error => NameError,
- :not_implemented_error => NotImplementedError,
- :syntax_error => SyntaxError,
- :interrupt => Interrupt,
- :system_exit => SystemExit,
- :standard_error => StandardError,
- :arg_error => ArgumentError,
- :float_domain_error => FloatDomainError,
- :index_error => IndexError,
- :io_error => IOError,
- :eof_error => EOFError,
- :local_jump_error => LocalJumpError,
- :no_memory_error => NoMemoryError,
- :range_error => RangeError,
- :regexp_error => RegexpError,
- :runtime_error => RuntimeError,
- :security_error => SecurityError,
- :system_call_error => SystemCallError,
- :system_stack_error => SystemStackError,
- :thread_error => ThreadError,
- :type_error => TypeError,
- :zero_division_error => ZeroDivisionError,
- :break => Break}
-
-add_help(:snd_raise,
- "snd_raise(tag, *rest) \
-raises an exception 'tag' with an error message \
-containing function name, tag and possible *rest strings or values. \
-'tag' is a symbol, \
-a Ruby exception looks like :local_jump_error instead of LocalJumpError, \
-a Snd error tag looks like :no_such_sound.")
-def snd_raise(tag, *rest)
- Snd.raise(tag, *rest)
-end
-
-# for irb
-def c_g?
- false
-end unless defined? c_g?
-
-def srate
- mus_srate
-end unless defined? srate
-
-# general purpose loop
-
-add_help(:gloop,
- "gloop(*args) { |args| ... }
- :step = 1
- :before = nil (thunk)
- :after = nil (thunk)
-
-args[0]: Range (each)
- Hash(s) (each)
- Array(s) (each_with_index) [args.last == Fixnum --> step]
- Fixnum (times)
- Fixnum [args[1] == :step --> step]
-
-A general purpose loop, handling Range, Hash, Array, Vec, Vct, Fixnum,
-with optional step. Returns the result of body as array like map.
-
-Examples:
- Range
- gloop(0..3) do |i| puts i end
- Hash (loops over all Hashs consecutively)
- gloop({1 => :a, 2 => :b}, {11 => :aa => 22 => :bb}) do |k, v|
- print('key: ', k, ' value: ', v)
- puts
- end
- Array, Vec, Vct
- gloop([0, 1]) do |x, i|
- print(i, ': ', x)
- puts end
- Arrays with step (mixes all Arrays)
- gloop([0, 1, 2, 3], [:a, :b, :c, :d], [55, 66, 77, 88, 99], 2) do |x, i|
- print(i, ': ', x.inspect)
- puts
- end
- Numeric (like Integer#times)
- gloop(3) do |i| puts i end
- Numeric with step (like Integer#step)
- gloop(6, 2) do |i| puts i end
- a simple body call
- gloop do puts 'empty' end")
-def gloop(*args, &body)
- step = get_shift_args(args, :step, 1)
- before = get_shift_args(args, :before)
- after = get_shift_args(args, :after)
- do_extra = lambda do |thunk| thunk?(thunk) ? thunk.call : snd_func(thunk) end
- result = []
- case args[0]
- when Range
- args[0].step(step) do |i|
- do_extra.call(before) if before
- result << body.call(i)
- do_extra.call(after) if after
- end
- when Array, Vec, Vct
- lmax = args.map do |x| x.length end.max
- 0.step(lmax - 1, step.round) do |i|
- do_extra.call(before) if before
- result << body.call(*args.map do |x| x[i] end << i)
- do_extra.call(after) if after
- end
- when Hash
- args.each do |x| x.each do |k, v|
- do_extra.call(before) if before
- result << body.call(k, v)
- do_extra.call(after) if after
- end
- end
- when Numeric
- 0.step(args[0], number?(args[1]) ? args[1] : step) do |i|
- do_extra.call(before) if before
- result << body.call(i)
- do_extra.call(after) if after
- end
- else
- do_extra.call(before) if before
- result << body.call
- do_extra.call(after) if after
- end
- result
-end
-
-# get_args(args, key, default = nil)
-#
-# returns value, whether DEFAULT or value of KEY found in ARGS
-
-def get_args(args, key, default = nil)
- if args.member?(key)
- arg = args[args.index(key) + 1]
- default = arg.nil? ? default : arg
- end
- default
-end
-
-def get_shift_args(args, key, default = nil)
- default = get_args(args, key, default)
- if args.member?(key)
- i = args.index(key)
- 2.times do args.delete_at(i) end
- end
- default
-end
-
-# var = get_class_or_key(args, Klass, :key, default = nil)
-
-def get_class_or_key(args, klass, key, default = nil)
- if (not symbol?(args.first)) and args.first.kind_of?(klass)
- args.shift
- else
- get_shift_args(args, key, default)
- end
-end
-
-# var1, var2, var3, var4 = optkey(args, [:key, default],
-# [:number, 1],
-# [Array, :list, [0, 1, 2, 3]],
-# :var_w/o_default_value)
-#
-# Key-default pairs must be included in brackets while keys alone can
-# be included in brackets or not, see last key
-# ":var_w/o_default_value" above. If no default value is specified,
-# nil is used.
-
-def optkey(args, *rest)
- args_1 = args.dup
- bind = binding?(rest.car) ? rest.shift : nil
- @locals = nil
- vals = rest.map do |keys|
- val = if array?(keys)
- case keys.length
- when 1
- name = keys.car.to_s
- get_class_or_key(args_1, Object, keys.car, nil)
- when 2
- name = keys.car.to_s
- get_class_or_key(args_1, keys.cadr.class, *keys)
- when 3
- name = keys.cadr.to_s
- get_class_or_key(args_1, *keys)
- else
- assert_type(keys.length.between?(1, 3), keys, 1,
- "an array of one to three elements [class, :key, default]")
- end
- else
- name = keys.to_s
- get_class_or_key(args_1, Object, keys, nil)
- end
- @locals = val
- eval("#{name} = @locals", bind)
- val
- end
- remove_instance_variable("@locals")
- if vals.length == 1
- vals.first
- else
- vals
- end
-end
-
-add_help(:load_init_file,
- "load_init_file(file) \
-Returns false if file doesn't exist, otherwise loads it. \
-File may reside in current working dir or in $HOME dir.")
-def load_init_file(file)
- if File.exist?(file)
- Snd.catch do load(file) end
- elsif File.exist?(f = ENV["HOME"] + "/" + file)
- Snd.catch do load(f) end
- else
- false
- end
-end
-
-let(-1) do |count|
- # see rotate_phase(func, snd, chn) in dsp.rb
- # it's necessary to produce a uniq method name
- make_proc_with_setter(:edit_list_proc_counter, lambda { count }, lambda { count += 1 })
-end
+require "clm"
module Examp
# (ext)snd.html examples made harder to break
@@ -3319,7 +362,9 @@ end")
def superimpose_ffts(snd, chn, y0, y1)
maxsync = Snd.sounds.map do |s| sync(s) end.max
if sync(snd) > 0 and
- snd == Snd.sounds.map do |s| sync(snd) == sync(s) ? s : maxsync + 1 end.min
+ snd == Snd.sounds.map do |s|
+ sync(snd) == sync(s) ? sound2integer(s) : (maxsync + 1)
+ end.min
ls = left_sample(snd, chn)
rs = right_sample(snd, chn)
pow2 = (log(rs - ls) / log(2)).ceil
@@ -4939,7 +1984,7 @@ region_play_list([[0.0, 0], [0.5, 1], [1.0, 2], [1.0, 0]])")
(data or []).each do |tm, rg|
tm = (1000.0 * tm).floor
if region?(rg)
- call_in(tm, lambda do | | play_region(rg) end)
+ call_in(tm, lambda do | | play(rg) end)
end
end
end
diff --git a/examp.scm b/examp.scm
index 84512c9..3b1765d 100644
--- a/examp.scm
+++ b/examp.scm
@@ -33,7 +33,7 @@
;;; time varying FIR filter, notch filter
;;; sound-interp, env-sound-interp
;;; add date and time to title bar
-;;; how to get 'display' to write to Snd's listener
+;;; how to get 'display' to write to Snd's listener (Guile only)
;;; filtered-env (low-pass and amplitude follow envelope)
;;; multi-colored rxvt printout
;;; lisp graph with draggable x axis
@@ -1692,7 +1692,7 @@ this clock, set retitle-time to 0"
-;;; -------- how to get 'display' to write to Snd's listener
+;;; -------- how to get 'display' to write to Snd's listener in Guile (not s7)
;;;
;;; scheme's display function writes to current-output-port which defaults to stdout.
;;; This is a bit annoying since we'd like everything to go to the listener in many cases
diff --git a/extensions.fs b/extensions.fs
index fc617b9..cef52d7 100644
--- a/extensions.fs
+++ b/extensions.fs
@@ -3,7 +3,7 @@
\ Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Sun Dec 18 19:21:00 CET 2005
-\ Changed: Sat Sep 26 02:11:04 CEST 2009
+\ Changed: Tue Nov 17 16:32:19 CET 2009
\ Commentary:
\
@@ -424,7 +424,7 @@ for which FUNC does not return #f."
doc" Returns an array of lists of #( snd chn ) indicating the channels \
participating in the current selection."
#() { sndlist }
- selection? if
+ undef selection? if
sounds each { snd }
snd channels 0 ?do
snd i selection-member? if sndlist #( snd i ) array-push drop then
@@ -445,7 +445,7 @@ END defaults to end of channel, BEG defaults to 0, SND defaults to the currently
snd snd-snd { current-sound }
current-sound sound? unless 'no-such-sound #( get-func-name beg end snd chn ) fth-throw then
current-sound sync { current-sync }
- selection? if
+ undef selection? if
sounds each { s }
s channels 0 ?do
s i selection-member? ( need-update )
@@ -478,7 +478,7 @@ END defaults to end of channel, BEG defaults to 0, SND defaults to the currently
: delete-selection-and-smooth ( -- )
doc" Deletes the current selection and smooths the splice."
- selection? if
+ undef selection? if
#f #f selection-position { beg }
#f #f selection-frames { len }
all-chans each { lst }
@@ -503,7 +503,7 @@ END defaults to end of channel, BEG defaults to 0, SND defaults to the currently
: eval-over-selection <{ func -- val }>
doc" Evaluates FUNC on each sample in the current selection."
func proc?
- selection? && if
+ undef selection? && if
#f #f selection-position { beg }
#f #f selection-frames { len }
$" <'> %s %s" #( func get-func-name ) string-format { origin }
@@ -520,7 +520,7 @@ END defaults to end of channel, BEG defaults to 0, SND defaults to the currently
;
0 [if]
"x" 0 lambda: <{ -- val }>
- selection? if
+ undef selection? if
$" selection-eval:" <'> eval-over-selection #f #f prompt-in-minibuffer
else
$" no selection" #f #f report-in-minibuffer
@@ -575,7 +575,7 @@ lambda: <{ snd -- val }> #f ; value no-cb
#t
snd channels 0 ?do
snd i edits 0 array-ref 0> if
- $" %s[%d] has unsaved edits. Close (y/n)? " _ #( snd short-file-name i ) string-format
+ $" %s[%d] has unsaved edits. Close (y/n)? " #( snd short-file-name i ) string-format
exiting yes-cb no-cb snd yes-or-no?
not
then
@@ -728,10 +728,10 @@ hide
else
remember-sound-filename io-open-write to io
io $" \\ -*- snd-forth -*-\n" io-write
- io $" \\ from remember-sound-state in %s\n" _ #( *filename* ) io-write-format
- io $" \\ written: %s\n\n" _ #( date ) io-write-format
+ io $" \\ from remember-sound-state in %s\n" #( *filename* ) io-write-format
+ io $" \\ written: %s\n\n" #( date ) io-write-format
io $" %S to -saved-remember-sound-states-\n\n" #( remember-states ) io-write-format
- io $" \\ %s ends here\n" _ #( remember-sound-filename #f file-basename ) io-write-format
+ io $" \\ %s ends here\n" #( remember-sound-filename #f file-basename ) io-write-format
io io-close
then
#f
@@ -1341,7 +1341,7 @@ previous
\ --- reopen menu ---
hide
-"empty" _ value reopen-empty
+"empty" value reopen-empty
#() value reopen-names
#f value reopen-menu
16 value reopen-max-length
@@ -1390,7 +1390,7 @@ set-current
: with-reopen-menu ( -- )
including-reopen-menu unless
#() to reopen-names
- reopen-menu false? if "Reopen" _ extensions-noop add-to-main-menu to reopen-menu then
+ reopen-menu false? if "Reopen" extensions-noop add-to-main-menu to reopen-menu then
reopen-menu reopen-empty extensions-noop 0 add-to-menu drop
reopen-names reopen-empty array-push to reopen-names
#t to including-reopen-menu
@@ -1403,7 +1403,7 @@ previous
\ --- buffers menu ---
hide
-"empty" _ value buffer-empty
+"empty" value buffer-empty
#() value buffer-names
#f value buffer-menu
@@ -1438,7 +1438,7 @@ set-current
: with-buffers-menu ( -- )
including-buffers-menu unless
#() to buffer-names
- buffer-menu false? if "Buffers" _ extensions-noop add-to-main-menu to buffer-menu then
+ buffer-menu false? if "Buffers" extensions-noop add-to-main-menu to buffer-menu then
buffer-menu buffer-empty extensions-noop 0 add-to-menu drop
buffer-names buffer-empty array-push to buffer-names
#t to including-buffers-menu
@@ -1477,7 +1477,7 @@ previous
\ ;;; -------- show-selection
: show-selection <{ -- }>
- selection? if
+ undef selection? if
#f #f { beg end }
sounds each { snd }
snd channels 0 ?do
diff --git a/extensions.rb b/extensions.rb
index f0c3075..eb219ff 100644
--- a/extensions.rb
+++ b/extensions.rb
@@ -2,7 +2,7 @@
# Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Sat Jan 03 17:30:23 CET 2004
-# Changed: Thu Oct 15 00:27:20 CEST 2009
+# Changed: Thu Nov 26 18:14:32 CET 2009
# Commentary:
#
@@ -1228,7 +1228,7 @@ applies body to each sound file in dir")
end
alias for_each_sound_file each_sound_file
alias map_sound_files each_sound_file
- # each_sound_file(".", "/usr/gnu/sound/SFiles") do |f| play_and_wait(f) end
+ # each_sound_file(".", "/usr/gnu/sound/SFiles") do |f| play(f, :wait, true) end
add_help(:match_sound_files,
"match_sound_files(*dir_args) do |file| ... end \
diff --git a/extensions.scm b/extensions.scm
index 7ada0ae..f827e11 100644
--- a/extensions.scm
+++ b/extensions.scm
@@ -2,7 +2,7 @@
;;; channel-property, sound-property, edit-property
;;; delete selected portion and smooth the splice
-;;; mix with result at original peak amp
+;;; mix then scale result to original peak amp
;;; mix with envelope
;;; map-sound-files, for-each-sound-file, match-sound-files, directory->list
;;; check-for-unsaved-edits
@@ -21,7 +21,7 @@
(provide 'snd-extensions.scm)
-(define (remove-if pred l) ; from common-list.scm
+(define (remove-if pred l) ; from Guile's common-list.scm == comlist.scm from slib
"(remove-if func lst) removes any element from 'lst' that 'func' likes"
(let loop ((l l) (result '()))
(cond ((null? l) (reverse! result))
@@ -1134,4 +1134,3 @@ connects them with 'func', and applies the result as an amplitude envelope to th
((= i call))
(let ((c (vector-ref sorted-calls i)))
(format #t "~A:~40T~A~%" (car c) (cadr c))))))))))
-
diff --git a/extsnd.html b/extsnd.html
index 871e1e5..984a6fd 100644
--- a/extsnd.html
+++ b/extsnd.html
@@ -21,13 +21,6 @@
</style>
</head>
-<!-- other possible tooltips: file-exists? delete-file procedure-with-setter define* list-set! load-from-path
- delete-file system remove-hook! throw copy-file
- ruby examples?
- sndscm.html: normalize-partials
- add-main-pane
--->
-
<body bgcolor=white>
<script language=JavaScript type="text/javascript" src="wz_tooltip.js"></script>
@@ -59,9 +52,9 @@
</center>
-<table border=0 cellpadding=5 vspace=10 hspace=20>
+<table border=0 cellpadding=10 vspace=10 hspace=20>
<tr><th>this file:</th><th>grfsnd.html:</th></tr>
-<tr><td width="40%">
+<tr><td>
<ul>
<li><a href="#lisplistener">Introduction</a>
<li><a href="#etc">Snd Programming</a>
@@ -100,13 +93,13 @@
</ul>
</ul>
</ul>
-</td><td width="40%">
+</td><td>
<ul>
<li><a href="grfsnd.html#startup">Snd Startup</a>
<ul>
<li><a href="grfsnd.html#sndswitches" onmouseout="UnTip()" onmouseover="Tip('startup switches such as -l and -p')">Snd invocation flags</a>
- <li><a href="grfsnd.html#sndinitfile" onmouseout="UnTip()" onmouseover="Tip('~/.snd, ~/.snd_guile, ~/.snd_prefs_guile, etc')">The initialization file</a>
+ <li><a href="grfsnd.html#sndinitfile" onmouseout="UnTip()" onmouseover="Tip('~/.snd, ~/.snd_s7, ~/.snd_prefs_s7, etc')">The initialization file</a>
<li><a href="grfsnd.html#sndresources" onmouseout="UnTip()" onmouseover="Tip('X resources: Xdefaults, gtkrc')">Snd resources</a>
<li><a href="grfsnd.html#sndconfigurationswitches" onmouseout="UnTip()" onmouseover="Tip('this refers to the configure script that prepares a makefile to build Snd from its sources')">Configuration choices</a>
<li><a href="grfsnd.html#sndenvvars" onmouseout="UnTip()" onmouseover="Tip('mostly related to audio hardware choices')">Environment variables</a>
@@ -122,7 +115,7 @@
<li><a href="grfsnd.html#sndwithpd" onmouseout="UnTip()" onmouseover="Tip('PD is Miller Puckette\'s synthesis and composition program')">Snd and Pd</a>
<li><a href="grfsnd.html#sndwithmotif" onmouseout="UnTip()" onmouseover="Tip('Motif extensions from xm.c')">Snd and Motif</a>
<li><a href="grfsnd.html#sndwithgtk" onmouseout="UnTip()" onmouseover="Tip('Gtk extensions from xg.c')">Snd and Gtk</a>
- <li><a href="grfsnd.html#sndwithnogui">Snd with no GUI and as script engine</a>
+ <li><a href="grfsnd.html#sndwithnogui">Snd with no GUI</a>
<li><a href="grfsnd.html#sndandruby" onmouseout="UnTip()" onmouseover="Tip('Ruby is a scripting/extension language somewhat like Python')">Snd with Ruby</a>
<li><a href="grfsnd.html#sndandforth" onmouseout="UnTip()" onmouseover="Tip('Forth is a postfix extension language')">Snd with Forth</a>
<li><a href="grfsnd.html#sndands7" onmouseout="UnTip()" onmouseover="Tip('s7 is yet-another Scheme extension language')">Snd with s7</a>
@@ -133,10 +126,12 @@
<li><a href="grfsnd.html#sndandx" onmouseout="UnTip()" onmouseover="Tip('other programs can control Snd through window properties')">Driving Snd remotely</a>
<li><a href="grfsnd.html#sndandgl" onmouseout="UnTip()" onmouseover="Tip('OpenGL (Mesa) extensions via gl.c')">Snd and OpenGL</a>
<li><a href="grfsnd.html#sndandgsl" onmouseout="UnTip()" onmouseover="Tip('include some special functions from GSL')">Snd and GSL</a>
- <li><a href="grfsnd.html#sndandgmp" onmouseout="UnTip()" onmouseover="Tip('build s7 with gmp, mpfr, mpc')">Snd and multiprecision arithmetic</a>
+ <li><a href="grfsnd.html#sndandgmp" onmouseout="UnTip()" onmouseover="Tip('build s7 with gmp, mpfr, mpc')">multiprecision arithmetic</a>
</ul>
<li><a href="index.html">Index</a>
</ul>
+
+</td><td><img src="pix/rr2.png" alt="setting switches">
</td></tr></table>
<br><br>
@@ -1007,8 +1002,7 @@ open-file-dialog-directory is the name of the initial open file dialog directory
<td bgcolor="#f2f4ff"><code>6</code></td></tr><tr><td></td><td colspan=2>
optimization affects optimization levels in Scheme.
If non-zero, it causes Snd to try to optimize simple lambda forms passed to the searches and so forth.
-This depends partly on the optargs module, and
-applies only to s7 and Guile.
+This applies only to s7.
The actual values of the optimization switch are:
<pre>
0: no optimization (use the standard Scheme parser/evaluator)
@@ -1223,7 +1217,8 @@ See also <a href="snd.html#zoomoption">Zoom options</a>.
<p>Several functions in Snd are "generic" in the sense that they can handle a wide
variety of objects. The length function, for example, applies to strings and vectors,
-as well as lists.
+as well as lists. Objects specific to Snd include sounds, the selection, mixes, marks,
+samplers, regions, and players, all of which should be compared with equal?, not eq?.
</p>
<table border=0 cellspacing=4 cellpadding=6 hspace=10>
@@ -1234,7 +1229,9 @@ as well as lists.
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def>channels</a> (:optional obj)</code>
</td></tr><tr><td></td><td>
-<A NAME="genericchannels">channels</A> handles strings (<a href="#mussoundchans">mus-sound-chans</a>), <a href="#regionchans">region-chans</a>,
+<A NAME="genericchannels">channels</A> handles strings (<a href="#mussoundchans">mus-sound-chans</a>),
+<a href="#regionchans">region-chans</a>,
+the current selection (<a href="#selectionchans">selection-chans</a>),
<a href="#sounddatachans">sound-data-chans</a>, <a href="sndclm.html#genericfunctions">mus-channels</a>,
<a href="#sndmixes">mixes</a>, <a href="#Vcts">vcts</a>, and vectors (always 1 channel), and
<a href="#sndsounds">sounds</a> (as objects or as integers).
@@ -1246,7 +1243,9 @@ as well as lists.
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def>copy</a> (obj)</code>
</td></tr><tr><td></td><td>
-<A NAME="genericcopy">copy</A> returns a copy of its argument (s7 only, and not fully implemented yet).
+<A NAME="genericcopy">copy</A> returns a copy of its argument.
+It works with strings, lists, vectors, hash tables, vcts, sound-data objects, frames, mixers, sounds, the current selection, mixes, marks,
+bignums, and the non-gmp random state objects.
</td></tr><tr><td colspan=2 height=18></td></tr>
@@ -1266,7 +1265,9 @@ as well as handling mixes, regions, samplers, and the regular sound-oriented <a
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def>fill!</a> (obj val)</code>
</td></tr><tr><td></td><td>
-<A NAME="genericfill">fill!</A> fills obj with val (s7 only, and not fully implemented yet).
+<A NAME="genericfill">fill!</A> fills obj with val (s7 only).
+fill! works with strings, vectors, hash-tables, vcts, lists, sounds, the selection, sound-data objects,
+frames, and mixers.
</td></tr><tr><td colspan=2 height=18></td></tr>
@@ -1280,7 +1281,8 @@ the number of samples per channel. The frames function overlaps
the <a href="#genericlength">length</a> function, but length of a string is string-length, whereas frames of a string
treats the string as a sound file name and returns <a href="#mussoundframes">mus-sound-frames</a>. frames can replace
<a href="#mussoundframes">mus-sound-frames</a>, <a href="sndclm.html#genericfunctions">mus-length</a>,
-<a href="#mixlength">mix-length</a>, <a href="#regionframes">region-frames</a>,
+<a href="#mixlength">mix-length</a>,
+<a href="#regionframes">region-frames</a>, <a href="#selectionframes">selection-frames</a>,
<a href="#vctlength">vct-length</a>, <a href="#sounddatalength">sound-data-length</a>,
and the regular <a href="#frames">frames</a> function that handles sound objects and integers as sound indices.
</td></tr><tr><td colspan=2 height=18></td></tr>
@@ -1292,16 +1294,18 @@ and the regular <a href="#frames">frames</a> function that handles sound objects
<code><a class=def>length</a> (obj)</code>
</td></tr><tr><td></td><td>
<A NAME="genericlength">length</A> handles list length, string-length, vector-length, <a href="s7.html#s7doc">hash-table-size</a>,
-<a href="#vctlength">vct-length</a>, <a href="#frames">frames</a> (sound length),
+<a href="#vctlength">vct-length</a>, <a href="#frames">frames</a> (sound length), <a href="#colormapsize">colormap-size</a>,
<a href="sndclm.html#genericfunctions">mus-length</a> (generators), <a href="#sounddatalength">sound-data-length</a>,
-<a href="#mixlength">mix-length</a>, and <a href="#regionframes">region-frames</a>.
+<a href="#mixlength">mix-length</a>, <a href="#transformsize">transform-size</a>,
+<a href="#selectionframes">selection-frames</a>,
+and <a href="#regionframes">region-frames</a>.
</td></tr><tr><td colspan=2 height=18></td></tr>
<!-- maxamp -->
<!-- INDEX genericmaxamp:maxamp (generic) -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def>maxamp</a> (obj)</code>
+<code><a class=def>maxamp</a> (obj :optional chn)</code>
</td></tr><tr><td></td><td>
<A NAME="genericmaxamp">maxamp</A> can handle a sound (via the regular <a href="#maxamp">maxamp</a> function),
string (treated as a sound file name, <a href="#mussoundmaxamp">mus-sound-maxamp</a>),
@@ -1309,17 +1313,30 @@ generator (maxamp of the mus-data vct, if any),
sound-data (<a href="#sounddatamaxamp">sound-data-maxamp</a>),
vct (<a href="#vctpeak">vct-peak</a>),
region (<a href="#regionmaxamp">region-maxamp</a>),
+the current selection (<a href="#selectionmaxamp">selection-maxamp</a>),
vector, list, or mix object.
</td></tr><tr><td colspan=2 height=18></td></tr>
+<!-- INDEX genericplay:play (generic) -->
+<tr><td colspan=2 bgcolor="#f2f4ff">
+<code><a class=def>play</a> (object <a class=quiet href="sndclm.html#optional-key" onmouseout="UnTip()" onmouseover="Tip(sndclm_optional_key_tip)">&amp;optional-key</a> :start :end :channel :edit-position :out-channel :with-sync :wait :stop :srate :channels)</code>
+</td></tr><tr><td></td><td>
+<A NAME="genericplay">play</A> plays an object.
+The object can be a string (sound filename), a sound object or index, a mix, a region, the selection object, #f, a procedure, or a player.
+Not all the keyword arguments apply in all cases, though I hope to fill in the table of possibilities eventually.
+The full documentation is currently under <a href="#play">play</a>.
+</td></tr><tr><td colspan=2 height=18></td></tr>
+
+
<!-- srate -->
<!-- INDEX genericsrate:srate (generic) -->
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def>srate</a> (:optional obj)</code>
</td></tr><tr><td></td><td>
<A NAME="genericsrate">srate</A> handles strings (treated as file names: <a href="#mussoundsrate">mus-sound-srate</a>),
-regions (<a href="#regionsrate">region-srate</a>), and <a href="#sndsounds">sounds</a> (as objects or as integers).
+regions (<a href="#regionsrate">region-srate</a>), the selection (<a href="#selectionsrate">selection-srate</a>),
+and <a href="#sndsounds">sounds</a> (as objects or as integers).
</td></tr><tr><td colspan=2 height=18></td></tr>
@@ -2112,8 +2129,9 @@ and if the <a href="#marksync">mark-sync</a> is not 0, the hook is called on eac
<tr><td colspan=3 bgcolor="#f2f4ff">
<code><a class=def name="mixclickhook">mix-click-hook</a> (mix)</code> [<b>progn</b>]
</td></tr><tr><td></td><td colspan=2>
-This hook is called when a mix tag is clicked; return #t to omit the default action which is to print the mix id in
-the minibuffer. A more informative version is <a href="sndscm.html#mixclickinfo">mix-click-info</a> in mix.scm.
+This hook is called when a mix tag is clicked; return #t to omit the default action which is to start the Mix dialog
+with the clicked mix.
+One example is <a href="sndscm.html#mixclickinfo">mix-click-info</a> in mix.scm.
Here's an example that sets a mix's amps to 0 if you click it (see <a href="sndscm.html#mixclicksetsamp">mix-click-sets-amp</a>
in mix.scm for a fancier version):
@@ -2137,7 +2155,7 @@ This hook is called when a mix is dragged.
(<a class=quiet href="#reportinminibuffer" onmouseout="UnTip()" onmouseover="Tip(extsnd_reportinminibuffer_tip)">report-in-minibuffer</a>
(<a class=quiet onmouseout="UnTip()" onmouseover="Tip(scheme_format_tip)">format</a> #f "mix ~A at ~D: ~,3F"
n (<a class=quiet href="#mixposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_mixposition_tip)">mix-position</a> n)
- (exact->inexact (/ (<a class=quiet href="#mixposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_mixposition_tip)">mix-position</a> n) (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>)))))))
+ (exact-&gt;inexact (/ (<a class=quiet href="#mixposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_mixposition_tip)">mix-position</a> n) (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>)))))))
</pre></td></tr></table>
A neat example is to set up an empty sound with a 1.0 in sample 0, mix in a vct containing one element of 0.5, then set
@@ -2457,7 +2475,7 @@ This hook is called each time the optimizer hits something it can't handle; 'mes
(<a class=quiet onmouseout="UnTip()" onmouseover="Tip(scheme_add_hook_tip)">add-hook!</a> <em class=red>optimization-hook</em> (lambda (n) (display (<a class=quiet onmouseout="UnTip()" onmouseover="Tip(scheme_format_tip)">format</a> #f "~A~%" n))))
</pre>
Normally, if the optimizer fails for some reason, it falls back silently on the Scheme evaluator, so
-the code simply runs slower. This hook gives you a way to find out why the optimizer gave up.
+the code runs slower. This hook gives you a way to find out why the optimizer gave up.
</td></tr><tr><td colspan=3 height=16></td></tr>
@@ -2673,7 +2691,7 @@ selection is active:
(if (and (<a class=quiet href="#selectionok" onmouseout="UnTip()" onmouseover="Tip(extsnd_selectionok_tip)">selection?</a>)
(<a class=quiet href="#selectionmember" onmouseout="UnTip()" onmouseover="Tip(extsnd_selectionmember_tip)">selection-member?</a> snd))
(begin
- (<a class=quiet href="#playselection" onmouseout="UnTip()" onmouseover="Tip(extsnd_playselection_tip)">play-selection</a>)
+ (play (selection))
#t) ; there's a selection so don't play the entire sound
#f))) ; no selection, so go ahead and play it all
</pre></td></tr></table>
@@ -4155,7 +4173,7 @@ mus-header-type-name converts 'type', an integer, to a string, e.g. "AIFF". Som
mus-next mus-aifc mus-riff mus-rf64 mus-nist mus-raw mus-ircam mus-aiff mus-caff
mus-bicsf mus-soundfont mus-voc mus-svx mus-unsupported
</pre>
-This function doesn't set the header choices for output of recording; it simply decodes a sndlib header type identifier.
+This function doesn't set the header choices for output of recording; it just decodes a sndlib header type identifier.
<pre>
:<em class=typing>(mus-header-type-name (mus-sound-header-type "oboe.snd"))</em>
<em class=listener>"Sun/Next"</em>
@@ -4598,7 +4616,7 @@ old code to the current style.
<!-- mark->integer -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="marktointeger">mark->integer</a> (mark)</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="marktointeger">mark-&gt;integer</a> (mark)</code>
</td></tr><tr><td></td><td>
This is the counterpart to <a href="#integertomark">integer-&gt;mark</a>.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -4884,7 +4902,7 @@ old code to the current style.
<!-- mix->integer -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="mixtointeger">mix->integer</a> (mix)</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="mixtointeger">mix-&gt;integer</a> (mix)</code>
</td></tr><tr><td></td><td>
This is the counterpart to <a href="#integertomix">integer-&gt;mix</a>.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -4899,7 +4917,7 @@ starting at 'samp' in the output channel, and returns a list with the mix.
If 'in-chan' is #t, all input channels are mixed into successive output channels, and
mix returns a list of the mixes.
</p>
-<p>If 'with-mix-tags' is #f (the default is #t), the data is simply
+<p>If 'with-mix-tags' is #f (the default is #t), the data is
mixed without creating any mix objects.
</p>
@@ -5190,7 +5208,7 @@ mix-speed is the speed (resampling ratio) of 'mix'; 1.0 (the default) means no r
<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="mixsync">mix-sync</a> (mix)</code>
</td></tr><tr><td></td><td>
mix-sync is an integer, like <a href="#sync">sync</a> that you can use to group mixes. See <a href="sndscm.html#mixdoc">mix.scm</a>
-for many examples.
+for many examples. Mix objects that share a non-zero sync value drag together, and are edited together in the mix dialog.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -5225,6 +5243,7 @@ example, if you know the frequency of the mix sound, you can reflect that in the
(set! (mix-tag-y mix-id)
(inexact-&gt;exact (round (* 100 (- 1.0 (/ (log (/ freq 40.0)) (* (log 2.0) 7)))))))
</pre>
+See, for example, check-mix-tags in sndscm.html.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -5233,7 +5252,7 @@ example, if you know the frequency of the mix sound, you can reflect that in the
</td></tr><tr><td></td><td>
mix-vct is one of the basic mixing functions. It
mixes the contents of 'vct' into the given channel starting at sample 'beg'.
-If 'with-mix-tags' is #f (the default is #t), the data is simply
+If 'with-mix-tags' is #f (the default is #t), the data is
mixed without creating any mix tags.
mix-vct returns the id of the new mix, or -1 (a simple mix, no tag).
<pre>
@@ -5268,11 +5287,21 @@ mix? returns #t if 'obj' is a mix object and it is accessible in a channel's edi
<!-- play-mix -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="playmix">play-mix</a> (mix :optional beg)</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def>play-mix</a> (mix :optional beg)</code>
+</td></tr><tr><td></td><td>
+<p>play-mix plays the mix 'mix'. 'beg' is where to start playing within the mix.
+</p>
+<p>play-mix is obsolete and will be removed soon (use play).
+</p>
+
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
+<!-- save-mix -->
+<tr><td colspan=2 bgcolor="#f2f4ff">
+<code><a class=def name="savemix">save-mix</a> (mix filename)</code>
</td></tr><tr><td></td><td>
-play-mix plays the mix 'mix'. 'beg' is where to start playing within the mix.
-This function does not return until the play is complete or is interrupted (it is similar to <a href="#playandwait">play-and-wait</a>,
-rather than <a href="#play">play</a>).
+save-mix saves a given mix's data in the file 'filename'.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -5300,7 +5329,7 @@ enveloped mix: see <a href="sndscm.html#envelopedmix">enveloped-mix</a> in exten
read mix samples: <a href="#makemixsampler">make-mix-sampler</a><br>
mix data maxamp: <a href="sndscm.html#mixmaxamp">mix-maxamp</a><br>
mix data to vct: <a href="sndscm.html#mixtovct">mix-&gt;vct</a><br>
-save mix data in file: <a href="sndscm.html#savemix">save-mix</a><br>
+save mix data in file: <a href="#savemix">save-mix</a><br>
mix property list: <a href="sndscm.html#mixproperty">mix-property</a> in mix.scm<br>
pan mono sound into stereo: see <a href="sndscm.html#placesound">place-sound</a> in examp.scm<br>
move a mixed sound via dlocsig: <a href="#mixmovesound">mix-move-sound</a><br>
@@ -5401,13 +5430,15 @@ It returns a list of mixes, one for each channel mixed.
<!-- play-region -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="playregion">play-region</a> reg :optional wait stop-func</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def>play-region</a> reg :optional wait stop-func</code>
</td></tr><tr><td></td><td>
+<p>
play-region plays region 'reg'; if wait is #t, it plays to the end before returning. The 'stop-func'
can be a function which is called when the play process stops. Its one argument is
the reason the play is stopping; it will be 0 if the play completed normally.
To see all possible reasons, see <a href="#stopplayreasons">play</a>.
Here is a brief example (taken from play.scm) that plays a region over and over until someone types C-g:
+</p>
<pre>
(<em class=red>play-region</em> reg #f
(letrec ((stop-func (lambda (reason)
@@ -5416,6 +5447,10 @@ Here is a brief example (taken from play.scm) that plays a region over and over
(<em class=red>play-region</em> reg #f stop-func)))))
stop-func))
</pre>
+
+<p>play-region is obsolete and will be removed soon (use play).
+</p>
+
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -5460,7 +5495,7 @@ data, and its length in frames.
<!-- region->integer -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="regiontointeger">region->integer</a> (region)</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="regiontointeger">region-&gt;integer</a> (region)</code>
</td></tr><tr><td></td><td>
This is the counterpart to <a href="#integertoregion">integer-&gt;region</a>.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -5649,14 +5684,17 @@ The Edit:Mix selection menu choice is <code>(mix-selection (cursor))</code>.
<!-- play-selection -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="playselection">play-selection</a> (:optional wait edpos stop-func)</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def>play-selection</a> (:optional wait edpos stop-func)</code>
</td></tr><tr><td></td><td>
-play-selection plays the selection. 'edpos' is the edit position which default to the current edit.
+<p>play-selection plays the selection. 'edpos' is the edit position which default to the current edit.
If 'wait' is #t, play-selection does not return until the play has completed.
If 'stop-func' is a procedure of one argument, it is called when the play process stops.
The argument provides the reason the play is stopping; it will be 0 if the play completed normally.
-See <a href="#playregion">play-region</a> for an example, and <a href="#stopplayreasons">play</a>
-for a complete list of these reasons.
+See <a href="#stopplayreasons">play</a> for a complete list of these reasons.
+</p>
+<p>play-selection is obsolete and will be removed soon (use play).
+</p>
+
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -5733,6 +5771,26 @@ If a region is created, it returns the new region.
</td></tr><tr><td colspan=2 height=16></td></tr>
+<!-- selection -->
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="selection">selection</a> ()</code>
+</td></tr><tr><td></td><td>
+<p>selection returns an object representing the current selection, or #f if there is no active selection.
+The object can be passed to the <a href="#sndgenericfuncs">generic functions</a> to refer to the
+current selection:
+</p>
+<pre>
+ :<em class=typing>(define selobj (selection))</em>
+ <em class=listener>selobj</em>
+ :<em class=typing>selobj</em>
+ <em class=listener>#&lt;selection 1&gt;</em>
+ :<em class=typing>(selection-chans)</em>
+ <em class=listener>1</em>
+ :<em class=typing>(channels selobj)</em>
+ <em class=listener>1</em>
+</pre>
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
<!-- selection-chans -->
<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="selectionchans">selection-chans</a> ()</code>
</td></tr><tr><td></td><td>
@@ -5765,6 +5823,7 @@ See also <a href="sndscm.html#makeselection">make-selection</a>.
<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="selectionmaxamp">selection-maxamp</a> (:optional snd chn)</code>
</td></tr><tr><td></td><td>
selection-maxamp returns the peak amplitude of the selection in the given channel.
+If no arguments are passed, selection-maxamp returns the overall selection maxamp.
I use this to provide a view of the selection amplitude envelope in the envelope editor. If you select
'selection' and 'wave' in that dialog, it displays a copy of whatever is in the main channel graph,
so to get a display that makes it easy to "connect the dots", I use C-x m:
@@ -5805,6 +5864,14 @@ ie equivalent to unselect-all.
</td></tr><tr><td colspan=2 height=16></td></tr>
+<!-- selection->mix -->
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="selectiontomix">selection-&gt;mix</a> ()</code>
+</td></tr><tr><td></td><td>
+selection-&gt;mix turns the current selection into a mix, or into several sync'd mixes if the selection
+has more than one channel.
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
<!-- selection-position -->
<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="selectionposition">selection-position</a> (:optional snd chn)</code>
</td></tr><tr><td></td><td>
@@ -5824,9 +5891,10 @@ This function returns the selection srate. There's some arbitrariness in this i
<!-- selection? -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="selectionok">selection?</a> ()</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="selectionok">selection?</a> (:optional obj)</code>
</td></tr><tr><td></td><td>
selection? returns #t if there is a selection.
+If some 'obj' is passed, selection? returns #t is obj is a selection object, and there is a selection.
<pre>
:<em class=typing>(select-all)</em>
<em class=listener>#&lt;region 2&gt;</em>
@@ -5884,6 +5952,7 @@ write selection to a file: <a href="sndscm.html#menusdoc">selection-&gt;new</a><
notch filter selection: <a href="sndscm.html#notchselection">notch-selection</a><br>
undo select-all.: <a href="sndscm.html#menusdoc">deselect-all</a><br>
filter the selection: <a href="#filterselection">filter-selection</a>, <a href="sndscm.html#filterselectionandsmooth">filter-selection-and-smooth</a><br>
+turn the selection into a mix: <a href="#selectiontomix">selection-&gt;mix</a><br>
<br>
</blockquote></small>
</td></tr></TABLE>
@@ -5957,7 +6026,6 @@ The following substitutions can be made:
<a href="#insertsilence">insert-silence</a> beg dur s c <a href="#padchannel">pad-channel</a> beg dur s c e
<a href="#insertsound">insert-sound</a> file beg filechn s c e <a href="sndscm.html#insertchannel">insert-channel</a> filedat beg dur s c e
<a href="#mix">mix</a> file beg filechn s c with-tags <a href="sndscm.html#mixchannel">mix-channel</a> filedat beg dur s c e
-<a href="#play">play</a> beg s c sync end e <a href="#playchannel">play-channel</a> beg dur s c e
<a href="#redo">redo</a> edits s c <a href="#redochannel">redo-channel</a> edits s c
<a href="#reversesound">reverse-sound</a> s c e <a href="#reversechannel">reverse-channel</a> beg dur s c e
<A href="#scaleby">scale-by</a> scls s c <a href="#scalechannel">scale-channel</a> scl beg dur s c e
@@ -7463,7 +7531,8 @@ the preceding edit in the list will be the <code>(set! (<a class=quiet href="#sa
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def name="maxamp">maxamp</a> (:optional <em class=narg>snd chn</em> edpos)</code>
</td></tr><tr><td></td><td>
-This returns the max amp of the given channel. Used with set!, it is equivalent to <a class=quiet href="#scaleto" onmouseout="UnTip()" onmouseover="Tip(extsnd_scaleto_tip)">scale-to</a>.
+This returns the max amp of the given channel, or the overall maxamp of snd if no channel argument is given.
+Used with set!, it is equivalent to <a class=quiet href="#scaleto" onmouseout="UnTip()" onmouseover="Tip(extsnd_scaleto_tip)">scale-to</a>.
<table border=0 cellpadding=5 vspace=10><tr><td><pre>
(define (maxamp-all)
@@ -7560,6 +7629,15 @@ The multichannel version is <a href="sndscm.html#normalizesound">normalize-sound
</td></tr><tr><td colspan=2 height=18></td></tr>
+<!-- old-play -->
+<tr><td colspan=2 bgcolor="#f2f4ff">
+<code><a class=def>old-play</a> (:optional samp snd chn sync end edpos stop-proc out-chan)</code>
+</td></tr><tr><td></td><td>
+<p>old-play is the old form of "play". It is obsolete; use <a href="#play">play</a> instead.
+</p>
+</td></tr><tr><td colspan=2 height=18></td></tr>
+
+
<!-- open-raw-sound -->
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def name="openrawsound">open-raw-sound</a> (<a class=quiet href="sndclm.html#optional-key" onmouseout="UnTip()" onmouseover="Tip(sndclm_optional_key_tip)">&amp;optional-key</a> :file :channels :srate :data-format)</code>
@@ -7684,56 +7762,60 @@ by <a href="#maxfftpeaks">max-transform-peaks</a>.
<!-- play -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="play">play</a> (:optional samp snd chn sync end edpos stop-proc out-chan)</code>
+<code><a class=def name="play">play</a> (object <a class=quiet href="sndclm.html#optional-key" onmouseout="UnTip()" onmouseover="Tip(sndclm_optional_key_tip)">&amp;optional-key</a> :start :end :channel :edit-position :out-channel :with-sync :wait :stop :srate :channels)</code>
</td></tr><tr><td></td><td>
-This function plays the given channel starting from sample 'samp'.
-If 'sync' is #t, it plays all sounds sync'd to 'snd'. If 'end' is not given or is #f,
-it plays until the end of the sound. If 'end' is given (as a sample number), the
-actual end point may be off by a few samples; Snd only checks on
-dac-buffer boundaries (normally around 256 samples).
-<pre>
- (play) ; play current sound, all chans from start to end
- (play (<a class=quiet href="#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>)) ; play starting from the cursor
- (play (round (* 3.0 (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>))) 1 3) ; play snd 1, chan 3 (4th chan), start at 3.0 secs
- (play 0 #f #f #t) ; play sync'd sounds
- (play 0 #f #f #f (round (* 3.0 (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>)))) ; play from start for 3.0 secs
- (play 0 #f #f #f #f 2) ; play the version at edit history position 2
- (play 0 0 2 #f #f #f #f 0) ; play chan 2, but send it to DAC chan 0
- (play (<a class=quiet href="#marksample" onmouseout="UnTip()" onmouseover="Tip(extsnd_marksample_tip)">mark-sample</a> 0) #f #f #f (<a class=quiet href="#marksample" onmouseout="UnTip()" onmouseover="Tip(extsnd_marksample_tip)">mark-sample</a> 1)); play between marks 0 and 1
- (play (<a class=quiet href="#selectionposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_selectionposition_tip)">selection-position</a>) #f #f (+ (<a class=quiet href="#selectionposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_selectionposition_tip)">selection-position</a>) (<a class=quiet href="#selectionframes" onmouseout="UnTip()" onmouseover="Tip(extsnd_selectionframes_tip)">selection-frames</a>))) ; play selection
-</pre>
-'samp' can
-also be a filename (a string). In this case, 'snd' can be the start
-sample (default 0), and 'chn' can be the end sample (default end-of-file).
+<p>
+play plays 'object'. If no arguments are passed, it plays the currently selected sound.
+'object' can be a string (sound filename), a sound object or index, a mix, a region, the selection object, #f, a procedure, or a player.
+Not all the keyword arguments apply in all cases, though I hope to fill in the table of possibilities eventually.
+'start' is where to start playing (a sample number, defaults to 0).
+'end' is where to stop playing.
+'channel' is which channel to play (the default is to play all channels).
+'edit-position' is which edit history list entry to play, where that is relevant. The default is the current entry.
+'out-channel' is which DAC channel to send the samples to.
+'with-sync' sets whether to include all objects sync'd to the current one (default is no, #f).
+'wait' sets whether the function call should wait until the play is complete before returning (default is no, #f).
+'stop' is a procedure called when the play completes.
+'srate' and 'channels' are for one special case, described below.
+</p>
<pre>
- (play "1a.snd") ; play 1a.snd
- (play "1a.snd" 1000 4000) ; play 1a.snd from sample 1000 to 4000
+ (play) ; play current sound, all chans from start to end
+ (play ((selected-sound) <a class=quiet href="#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>)) ; play starting from the cursor
+ (play (integer-&gt;sound 1) (round (* 3.0 (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>))) :channel 3) ; play snd 1, chan 3 (4th chan), start at 3.0 secs
+ (play (selected-sound) 0 :with-sync #t) ; play sync'd sounds
+ (play (selected-sound) 0 :end (round (* 3.0 (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>)))) ; play from start for 3.0 secs
+ (play (selected-sound) 0 :edit-position 2) ; play the version at edit history position 2
+ (play (integer-&gt;sound 0) 0 :channel 2 :out-channel 0) ; play chan 2, but send it to DAC chan 0
+ (play (selected-sound) (<a class=quiet href="#marksample" onmouseout="UnTip()" onmouseover="Tip(extsnd_marksample_tip)">mark-sample</a> (integer-&gt;mark 0)) :end (<a class=quiet href="#marksample" onmouseout="UnTip()" onmouseover="Tip(extsnd_marksample_tip)">mark-sample</a> (integer-&gt;mark 1))); play between marks 0 and 1
+ (play (selection)) ; play the selection
+ (play #f :srate 44100 :channels 2) ; open DAC and run, stop with stop-playing
+ (play "1a.snd") ; play 1a.snd
+ (play "1a.snd" 1000 4000) ; play 1a.snd from sample 1000 to 4000
</pre>
-
-If 'chn' is not given, or is a boolean, play plays all channels together.
-If 'pos' is given, it plays at that edit position.
-If 'stop-proc' is a procedure of one argument, it is called when the play process stops.
-The argument passed to 'stop-proc' provides the reason the play is stopping; it will be 0 if the play completed normally.
-'stop-proc' is intended mainly for looping plays, as in <a href="sndscm.html#playoften">play-often</a>.
+<p>
+If 'stop' is a procedure of one argument, it is called when the play process stops.
+The argument passed to the stop procedure provides the reason the play is stopping; it will be 0 if the play completed normally.
+This is intended mainly for looping plays, as in <a href="sndscm.html#playoften">play-often</a>.
+</p>
<pre>
- (play 0 #f #f #f #f #f
- (lambda (reason) ; if interrupted, say so in the listener
- (if (not (= reason 0))
- (<a class=quiet href="#sndprint" onmouseout="UnTip()" onmouseover="Tip(extsnd_sndprint_tip)">snd-print</a> ";play interrupted"))))
+ (play (selected-sound) 0 :stop (lambda (reason) ; if interrupted, say so in the listener
+ (if (not (= reason 0))
+ (<a class=quiet href="#sndprint" onmouseout="UnTip()" onmouseover="Tip(extsnd_sndprint_tip)">snd-print</a> ";play interrupted"))))
</pre>
-
-The 'pos' argument makes it easier to try "A:B" comparisons; this plays the version before the latest edit:
+<p>
+The 'edit-position' argument makes it easier to try "A:B" comparisons; this plays the version before the latest edit:
+</p>
<pre>
- (play 0 #f #f #f #f (- (<a class=quiet href="#editposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_editposition_tip)">edit-position</a>) 1))
+ (play (selected-sound) :edit-position (- (<a class=quiet href="#editposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_editposition_tip)">edit-position</a>) 1))
</pre>
-
+<p>
The following code binds the "p" key to play all channels of the current sound from the cursor, and
the "P" key to play the previous version of the current sound:
-
-<table border=0 cellpadding=5 vspace=10><tr><td><pre>
+</p>
+<table border=0 cellpadding=5><tr><td><pre>
(define (play-from-cursor current)
- (<em class=red>play</em> (<a class=quiet href="#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>) #f #f #f #f (if current #f (- (<a class=quiet href="#editposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_editposition_tip)">edit-position</a>) 1))))
+ (<em class=red>play</em> (selected-sound) (<a class=quiet href="#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>) :edit-position (if current #f (- (<a class=quiet href="#editposition" onmouseout="UnTip()" onmouseover="Tip(extsnd_editposition_tip)">edit-position</a>) 1))))
(<a class=quiet href="#bindkey" onmouseout="UnTip()" onmouseover="Tip(extsnd_bindkey_tip)">bind-key</a> (char-&gt;integer #\p) 0
(lambda () "play from cursor" (play-from-cursor #t) <a class=quiet onmouseout="UnTip()" onmouseover="Tip(extsnd_keyboard_no_action_tip)">keyboard-no-action</a>))
@@ -7741,24 +7823,48 @@ the "P" key to play the previous version of the current sound:
(<a class=quiet href="#bindkey" onmouseout="UnTip()" onmouseover="Tip(extsnd_bindkey_tip)">bind-key</a> (char-&gt;integer #\P) 0
(lambda () "play previous version from cursor" (play-from-cursor #f) <a class=quiet onmouseout="UnTip()" onmouseover="Tip(extsnd_keyboard_no_action_tip)">keyboard-no-action</a>))
</pre></td></tr></table>
-
+<p>
And here we play from the cursor with a moving ("tracking") cursor:
-
-<table border=0 cellpadding=5 vspace=10><tr><td><pre>
+</p>
+<table border=0 cellpadding=5><tr><td><pre>
(define (<A NAME="pfc">pfc</a>)
(let ((old-tracking (<a class=quiet href="#withtrackingcursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_withtrackingcursor_tip)">with-tracking-cursor</a>)))
(set! (<a class=quiet href="#withtrackingcursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_withtrackingcursor_tip)">with-tracking-cursor</a>) #t)
(<a class=quiet onmouseout="UnTip()" onmouseover="Tip(scheme_add_hook_tip)">add-hook!</a> <a class=quiet href="#stopplayinghook" onmouseout="UnTip()" onmouseover="Tip(extsnd_stopplayinghook_tip)">stop-playing-hook</a>
(lambda (snd)
(set! (<a class=quiet href="#withtrackingcursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_withtrackingcursor_tip)">with-tracking-cursor</a>) old-tracking)))
- (<em class=red>play</em> (<a class=quiet href="#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>))))
+ (<em class=red>play</em> (selected-sound) (<a class=quiet href="#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>))))
</pre></td></tr></table>
+<p>
+If 'object' is #f, the :srate and :channels arguments set up the DAC.
+The DAC then stays open until you call <a href="#stopplaying">stop-playing</a>. This is useful
+when you're using bind-key and play to trigger sounds, but want the output to have more channels
+than the various inputs.
+</p>
+<table border=0 cellpadding=5><tr><td><pre>
+(bind-key #\o 0
+ (lambda () ; send oboe.snd to chan 0
+ (play "oboe.snd" :out-channel 0)))
-Finally, if 'samp' is a function, it is called on every sample; if it returns a number, that number is
-sent to the DAC; if it returns #f, it stops. <a href="sndscm.html#playmixes">play-mixes</a> uses this
-function option to time the playing each mix in a sequence of mixes. Another example is <a href="sndscm.html#playsine">play-sine</a>:
+(bind-key #\p 0
+ (lambda () ; send pistol.snd to chan 1
+ (play "pistol.snd" :out-channel 1)))
-<table border=0 cellpadding=5 vspace=10><tr><td><pre>
+;;; Now open a sound (so you have a non-listener pane to type to)
+
+(play #f :srate 22050 :channels 2) ; srate 22050, 2 output chans
+
+;;; this holds the DAC open indefinitely
+;;; Now type o and p in the sound pane until you want to quit, then
+
+(stop-playing)
+</pre></td></tr></table>
+<p>
+Finally, if 'object' is a function, it is called on every sample; if it returns a number, that number is
+sent to the DAC; if it returns #f, it stops. <a href="sndscm.html#playmixes">play-mixes</a> uses this
+function option to time the playing of each mix in a sequence of mixes. Another example is <a href="sndscm.html#playsine">play-sine</a>:
+</p>
+<table border=0 cellpadding=5><tr><td><pre>
(define (play-sine freq amp)
"(play-sine freq amp) plays a 1 second sinewave at freq and amp"
(let* ((len 22050)
@@ -7775,12 +7881,12 @@ function option to time the playing each mix in a sequence of mixes. Another ex
<TABLE border=3 bordercolor="tan" hspace=20 vspace=10><tr><td>
<small><blockquote>
-play one channel: <a href="#playchannel">play-channel</a>, play button in control panel or files dialog<br>
+play one channel: (play sound-object :channel n), play button in control panel or files dialog<br>
play from cursor: C-q and example above<br>
play from cursor with tracking cursor: <a href="#pfc">pfc</a> above<br>
-play the selection: <a href="#playselection">play-selection</a>, <a href="snd.html#cxp">C-x p</a><br>
-play a region: <a href="#playregion">play-region</a>, <a href="snd.html#cxp">C-x p</a>, play button in Region dialog<br>
-play a mix: <a href="#playmix">play-mix</a>, play button in Mix dialog<br>
+play the selection: (play (selection)), <a href="snd.html#cxp">C-x p</a><br>
+play a region: (play region-object), <a href="snd.html#cxp">C-x p</a>, play button in Region dialog<br>
+play a mix: (play mix-object), play button in Mix dialog<br>
play a sequence of mixes: <a href="sndscm.html#playmixes">play-mixes</a><br>
play from mark: click or drag triangle (control-click for all chans)<br>
play continuously between two marks: <a href="sndscm.html#loopbetweenmarks">loop-it</a><br>
@@ -7802,9 +7908,11 @@ play an external file: (play "file")<br>
</td></tr></TABLE>
<A NAME="stopplayreasons"></a>
-<pre>
-The "reasons" that might be passed to the stop-procedure are:
+<p>
+The "reasons" that might be passed to the stop-procedure are:
+</p>
+<pre>
0 play completed normally
1 file is being closed
2 play button unset
@@ -7816,8 +7924,9 @@ The "reasons" that might be passed to the stop-procedure are:
8 file edited
9 C-t
</pre>
-
+<p>
The hooks called during a play operation are:
+</p>
<pre>
when a play request occurs: <a class=quiet href="#startplayinghook" onmouseout="UnTip()" onmouseover="Tip(extsnd_startplayinghook_tip)">start-playing-hook</a> &mdash; can cancel the request,
also <a class=quiet href="#startplayingselectionhook" onmouseout="UnTip()" onmouseover="Tip(extsnd_startplayingselectionhook_tip)">start-playing-selection-hook</a>
@@ -7831,21 +7940,29 @@ The hooks called during a play operation are:
<!-- play-and-wait -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="playandwait">play-and-wait</a> (:optional samp snd chn sync end edpos stop-proc out-chan)</code>
+<code><a class=def>play-and-wait</a> (:optional samp snd chn sync end edpos stop-proc out-chan)</code>
</td></tr><tr><td></td><td>
+<p>
This plays the given channel starting from sample 'samp' and waits
for it to finish. <a href="#play">play</a> on the other hand returns immediately so subsequent calls on play
mix multiple sample streams together, rather than playing them one after the other.
If 'pos' is given, play-and-wait plays at that edit position.
'stop-proc' is explained under 'play' above; it's not really needed here, but "consistency is a virtue", I guess.
+</p>
+<p>play-and-wait is obsolete and will be removed soon (use play).
+</p>
</td></tr><tr><td colspan=2 height=18></td></tr>
<!-- play-channel -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="playchannel">play-channel</a> (:optional beg dur snd chn edpos stop-proc out-chan)</code>
+<code><a class=def>play-channel</a> (:optional beg dur snd chn edpos stop-proc out-chan)</code>
</td></tr><tr><td></td><td>
+<p>
play-channel is the <a class=quiet href="#regularizedargs" onmouseout="UnTip()" onmouseover="Tip(extsnd_regularizedargs_tip)">regularized</a> version of <a href="#play">play</a>.
+</p>
+<p>play-channel is obsolete and will be removed soon (use play).
+</p>
</td></tr><tr><td colspan=2 height=18></td></tr>
@@ -8078,7 +8195,7 @@ Here is an example that mixes a sine wave into the current channel:
</pre></td></tr></table>
In the normal case,
-this function simply mixes in a sine wave: <code>(+ y (* (<a class=quiet href="#vctref" onmouseout="UnTip()" onmouseover="Tip(extsnd_vctref_tip)">vct-ref</a> data 2) (sin angle)))</code>
+this function just mixes in a sine wave: <code>(+ y (* (<a class=quiet href="#vctref" onmouseout="UnTip()" onmouseover="Tip(extsnd_vctref_tip)">vct-ref</a> data 2) (sin angle)))</code>
where the amplitude scaler is stored in <code>(<a class=quiet href="#vctref" onmouseout="UnTip()" onmouseover="Tip(extsnd_vctref_tip)">vct-ref</a> data 2)</code>. In subsequent
reads, the init-func sets up a vct with the current phase (dependent on the frequency
and the fragment begin sample), the phase increment (dependent on the frequency), and
@@ -8170,7 +8287,7 @@ currently doesn't know how to save the enclosing environment along with the init
</pre></td></tr></table>
will not save the "outer" declaration in the saved state file.
-This is a general problem with save-state; there's no obvious way in Guile to
+This is a general problem with save-state; there's no obvious way in Scheme to
save the current closure as text.
You can fix the saved state file by hand (it is just Scheme, Ruby, or Forth code, of course),
but that's not a very elegant solution.
@@ -8566,7 +8683,7 @@ check first for unsaved edits: <a href="sndscm.html#checkforunsavededits">check-
save Snd's complete state (unsaved edits and all): <a href="#savestate">save-state</a>, <a href="#savedir">save-dir</a>, <a href="#savestatehook">save-state-hook</a>, <a href="#savestatefile">save-state-file</a><br>
save the selection: <a href="#saveselection">save-selection</a><br>
save a region: <a href="#saveregion">save-region</a><br>
-save a mix: <a href="sndscm.html#savemix">save-mix</a><br>
+save a mix: <a href="#savemix">save-mix</a><br>
save the control panel state: <a href="#savecontrols">save-controls</a><br>
save currently defined envelopes (envelope editor): <a href="#saveenvelopes">save-envelopes</a><br>
start the file save dialog: <a href="#savesounddialog">save-sound-dialog</a><br>
@@ -9095,7 +9212,7 @@ See also explode-sf2 in examp.scm.
<!-- sound->integer -->
-<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="soundtointeger">sound->integer</a> (sound)</code>
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="soundtointeger">sound-&gt;integer</a> (sound)</code>
</td></tr><tr><td></td><td>
This is the counterpart to <a href="#integertosound">integer-&gt;sound</a>.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -9260,7 +9377,7 @@ states aren't of great interest, you can save time by turning off redisplays.
<code><a class=def name="srate">srate</a> (:optional <em class=narg>snd</em>)</code>
</td></tr><tr><td></td><td>
This is the sound's sampling rate. If you set this to a new value, update-sound is called to
-reflect the new srate, but any current edits are simply flushed. This is consistent
+reflect the new srate, but any current edits are flushed. This is consistent
with the other header fields (data-format, etc), but it can be annoying.
<br><br>
There are several srates floating around in Snd.
@@ -9636,7 +9753,7 @@ sonogram or spectrogram) 'slice' in the given channel.
This is the fft size (the default size is 512). It should be a power of 2.
If your version of Snd was built with FFTW, and you set transform-size
too large (on my machine, with 2 GBytes of memory,
-<code>(expt 2 26)</code> is apparently too large), FFTW simply exits Snd! There is currently
+<code>(expt 2 26)</code> is apparently too large), FFTW exits Snd! There is currently
no way to trap the error. Also, FFTW assumes the fft size is a (signed) int &mdash; 2^30 is probably
the transform-size limit.
</td></tr><tr><td colspan=2 height=18></td></tr>
@@ -9882,11 +9999,11 @@ is distinguished from the beat by having a longer tick mark.
<!-- x-bounds -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="xbounds">x-bounds</a> (:optional snd chn)</code>
+<code><a class=def name="xbounds">x-bounds</a> (:optional snd chn axis)</code>
</td></tr><tr><td></td><td>
-This returns <code>(list x0 x1)</code>, the current x axis time domain bounds in seconds. To display the entire sound:
+This returns <code>(list x0 x1)</code>, the current x axis bounds in seconds. To display the entire sound:
<pre>
- (set! (x-bounds) (list 0.0 (/ (<a class=quiet href="#frames" onmouseout="UnTip()" onmouseover="Tip(extsnd_frames_tip)">frames</a>) (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>))))
+ (set! (x-bounds) (/ (<a class=quiet href="#frames" onmouseout="UnTip()" onmouseover="Tip(extsnd_frames_tip)">frames</a>) (<a class=quiet href="#srate" onmouseout="UnTip()" onmouseover="Tip(extsnd_srate_tip)">srate</a>)))
</pre>
</td></tr><tr><td colspan=2 height=18></td></tr>
@@ -9941,7 +10058,7 @@ This is the current y axis label. 'context' is one of <code>time-graph</code> (t
<!-- y-bounds -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="ybounds">y-bounds</a> (:optional snd chn)</code>
+<code><a class=def name="ybounds">y-bounds</a> (:optional snd chn axis)</code>
</td></tr><tr><td></td><td>
This returns <code>(list y0 y1)</code>, the current y axis bounds.
To set the bounds to reflect the channel's maxamp, use <code>(set! (y-bounds) '())</code>.
@@ -10465,7 +10582,7 @@ entire panel.
describes the edit history of a channel. When, for example, you type C-d, nothing actually
happens to any data, despite the fact that the graph no longer shows that sample, it's omitted when you play the
channel, and so on. Instead, a descriptor is appended to the edit history of that
-channel saying "sample n was deleted". Undo and redo move around in this list (they simply move the
+channel saying "sample n was deleted". Undo and redo move around in this list (they just move the
pointer to the current edit history position); all the positions are accessible just like the current
one, and are exposed in many functions described above via the 'pos' or 'edpos' arguments.
The edit list functions are:
@@ -10757,7 +10874,7 @@ into an independent Snd process:
<p>It is sometimes more convenient to edit the edit history lists
directly, than to run Snd and invoke the <a href="snd.html#savedstate">"Save session"</a> menu option.
-These lists are simply Scheme, Ruby, or Forth programs, just like anything else
+These lists are Scheme, Ruby, or Forth programs, just like anything else
discussed in this document. You could even write them from
scratch. Say we want to make a stereo file that consists
of four mono files mixed at various points; we know where they
@@ -10807,14 +10924,14 @@ other such text.
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def name="addtransform">add-transform</a> (name xlabel lo hi transform)</code>
</td></tr><tr><td width=30></td><td>
-add-transform adds a transform to the transform choices (alongside Fourier, Wavelet, etc). 'name' is the name
+add-transform adds a transform to the transform choices (alongside fourier-transform, etc). 'name' is the name
to use in the transform dialog. 'xlabel' is the x axis label
of the resultant graph. 'lo' and 'hi' set which portion of the returned data
to graph (normally 0.0 to 1.0). 'proc' is a function of two
arguments, the length of the desired transform, and a sampler that
can be used to get the current data. Do not free the sampler!
The function should return a vct containing the transform data.
-add-transform returns the new transform's transform-type.
+add-transform returns the new transform's transform-type (an object).
Here's an example that displays a histogram of the current values in 16 bins:
<table border=0 cellpadding=5 vspace=10><tr><td><pre>
@@ -10865,8 +10982,7 @@ If GSL is included in Snd, the following code ties in the (slow) Hankel transfor
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def name="deletetransform">delete-transform</a> (type)</code>
</td></tr><tr><td></td><td>
-This removes a transform that was added via <a class=quiet href="#addtransform" onmouseout="UnTip()" onmouseover="Tip(extsnd_addtransform_tip)">add-transform</a>. The deleted transform-type may be re-used by
-a subsequent add-transform.
+This removes a transform that was added via <a class=quiet href="#addtransform" onmouseout="UnTip()" onmouseover="Tip(extsnd_addtransform_tip)">add-transform</a>.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -10901,6 +11017,13 @@ and initial-phase:
</td></tr><tr><td colspan=2 height=16></td></tr>
+<!-- integer->transform -->
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="integertotransform">integer-&gt;transform</a> (i)</code>
+</td></tr><tr><td></td><td>
+This function returns the transform (type object) corresponding to a given integer.
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
<!-- snd-spectrum -->
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def name="sndspectrum">snd-spectrum</a> (data window length :optional (linear #t) (beta 0.0) in-place (normalized #t))</code>
@@ -10918,11 +11041,18 @@ If 'in-place' is #t, the spectrum is in 'data', otherwise snd-spectrum returns a
</td></tr><tr><td colspan=2 height=16></td></tr>
+<!-- transform->integer -->
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="transformtointeger">transform-&gt;integer</a> (transform-object)</code>
+</td></tr><tr><td></td><td>
+This function returns the integer corresponding to a given transform type object (e.g. fourier-transform).
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
<!-- transform? -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="transformp">transform?</a> (type)</code>
+<code><a class=def name="transformp">transform?</a> (object)</code>
</td></tr><tr><td></td><td>
-This returns #t if 'type' refers to an active transform type.
+This returns #t if 'object' is a transform object.
</td></tr><tr><td colspan=2 height=16></td></tr>
</table>
@@ -12812,7 +12942,7 @@ to put the date and time in the Snd title bar.
time-graph transform-graph lisp-graph
</pre>
-<p><b>Colormap</b> choice (<a href="#colormap">colormap</a>, defined in rgb.scm):</p>
+<p><b>Colormap</b> choice (<a href="#colormap">colormap</a>):</p>
<pre>
black-and-white-colormap gray-colormap hot-colormap cool-colormap
bone-colormap copper-colormap pink-colormap jet-colormap
@@ -13195,7 +13325,7 @@ If the requested font can't be loaded, the set! statement returns the old (uncha
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def name="addcolormap">add-colormap</a> (name func)</code>
</td></tr><tr><td></td><td>
-add-colormap adds a new colormap to the colormap table, returning its index (for
+add-colormap adds a new colormap to the colormap table, returning the colormap object (for
use with <a href="#colormap">colormap</a> or <a href="#colormapref">colormap-ref</a>).
'name' is the name displayed in the Color/Orientation Dialog's list of colormaps.
'func' is a function of one argument, the desired colormap size; it will be
@@ -13332,10 +13462,10 @@ and color-scale to drive colormap choices:
</td></tr><tr><td></td><td>
This is the colormap choice for various displays, most prominently the transform sonogram and spectrogram,
and the wavogram.
-The built-in maps (from 0 to 15) are:
-black-and-white, gray, hot, cool, bone, copper, pink, jet, prism, autumn, winter,
-spring, summer, rainbow, flag, and phases.
-These names are defined (with '-colormap' appended) in rgb.scm and rgb.rb.
+The built-in maps are:
+black-and-white-colormap, gray-colormap, hot-colormap, cool-colormap, bone-colormap,
+copper-colormap, pink-colormap, jet-colormap, prism-colormap, autumn-colormap, winter-colormap,
+spring-colormap, summer-colormap, rainbow-colormap, flag-colormap, and phases-colormap.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -13348,7 +13478,6 @@ colormap-name returns the specified colormap's name.
<em class=listener>:</em><em class=typing>(colormap-name (colormap))</em>
<em class=listener>"hot"</em>
</pre>
-rgb.scm defines the built-in colormap names.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -13372,11 +13501,18 @@ The default is 512.
</td></tr><tr><td colspan=2 height=16></td></tr>
+<!-- colormap->integer -->
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="colormaptointeger">colormap-&gt;integer</a> (colormap-object)</code>
+</td></tr><tr><td></td><td>
+This function returns the integer corresponding to a given colormap.
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
<!-- colormap? -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="colormapp">colormap?</a> (index)</code>
+<code><a class=def name="colormapp">colormap?</a> (object)</code>
</td></tr><tr><td></td><td>
-colormap? returns #t if 'index' represents a usable colormap.
+colormap? returns #t if 'object' is a usable colormap.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -13412,9 +13548,9 @@ See <a href="#xcursor">x-cursor</a> or
<!-- delete-colormap -->
<tr><td colspan=2 bgcolor="#f2f4ff">
-<code><a class=def name="deletecolormap">delete-colormap</a> (index)</code>
+<code><a class=def name="deletecolormap">delete-colormap</a> (object)</code>
</td></tr><tr><td></td><td>
-delete-colormap deletes the colormap represented by 'index'.
+delete-colormap deletes the memory associated with the given colormap.
</td></tr><tr><td colspan=2 height=16></td></tr>
@@ -13627,6 +13763,13 @@ sound over another at an arbitrary point, and so on (see draw.scm):
</td></tr><tr><td colspan=2 height=32></td></tr>
+<!-- integer->colormap -->
+<tr><td colspan=2 bgcolor="#f2f4ff"><code><a class=def name="integertocolormap">integer-&gt;colormap</a> (i)</code>
+</td></tr><tr><td></td><td>
+This function returns the colormap corresponding to a given integer.
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
<!-- make-color -->
<tr><td colspan=2 bgcolor="#f2f4ff">
<code><a class=def name="makecolor">make-color</a> (red green blue)</code>
@@ -13801,130 +13944,6 @@ You can find out at run-time whether GL is loaded via <code>(provided? 'gl)</cod
</table>
- <!-- I(open file):L(open-sound)(opensound) -->
- <!-- I(close file):L(close-sound)(closesound) -->
- <!-- I(save file):L(save-sound)(savesound) -->
- <!-- I(save file as):L(save-sound-as)(savesoundas) -->
- <!-- I(change format):L(save-sound-as)(savesoundas) -->
- <!-- I(revert file):L(revert-sound)(revertsound) -->
- <!-- I(open file read-only):L(view-sound)(viewsound) -->
- <!-- I(create new file):L(new-sound)(newsound) -->
- <!-- I(print file):L(graph-&gt;ps)(graphtops) -->
- <!-- I(exit Snd):L(exit)(exit) -->
- <!-- I(undo edit):L(undo)(undo) -->
- <!-- I(redo edit):L(redo)(redo) -->
- <!-- I(cut selection):L(delete-selection)(deleteselection) -->
- <!-- I(insert selection):O(insert-region)(insertregion) -->
- <!-- I(insert selection):L(insert-selection)(insertselection) -->
- <!-- I(play file):L(play, stop)(play) -->
- <!-- I(show marks):L(show-marks)(showmarks) --><!-- I(show marks):A(showmarks) -->
- <!-- I(y=0 line):L(show-y-zero)(showyzero) -->
- <!-- I(dots or lines):L(graph-style)(graphstyle) -->
- <!-- I(combine channels):L(channel-style)(channelstyle) -->
- <!-- I(control panel):L(show-controls)(showcontrols) -->
- <!-- I(fft peaks):L(show-transform-peaks)(showtransformpeaks) -->
- <!-- I(fft peaks):O(peaks)(peaks) -->
- <!-- I(fft/sono/spectrogram):L(transform-graph-type)(transformgraphtype) -->
- <!-- I(zoom focus):L(zoom-focus-style)(zoomfocusstyle) -->
- <!-- I(fft in dB):L(fft-log-magnitude)(fftlogmagnitude) -->
- <!-- I(fft log freq):L(fft-log-frequency)(fftlogfrequency) -->
- <!-- I(select sound):L(selected-sound)(selectedsound) -->
- <!-- I(multichannel ops):L(sync)(sync) -->
- <!-- I(save control panel):L(save-controls)(savecontrols) -->
- <!-- I(amp env):L(env-sound)(envsound) -->
- <!-- I(filter):L(filter-control-envelope)(filtercontrolenvelope) -->
- <!-- I(filter):M(Edit: Edit Env)(editenvelope) -->
- <!-- I(axis bounds):L([xy]-bounds)(xbounds) -->
- <!-- I(max amp):L(maxamp)(maxamp) -->
- <!-- I(max amp):A(maxamp) -->
- <!-- I(define mark):L(add-mark)(addmark) -->
- <!-- I(color):L(color-orientation-dialog)(colororientationdialog) -->
- <!-- I(color):O(color-scale,color-cutoff)(colorscale) -->
- <!-- I(orientation):O(spectro-x-angle etc)(spectroxangle) -->
- <!-- I(file lists):L(view-files-dialog)(viewfilesdialog) -->
- <!-- I(define selection):L(make-region)(makeregion) -->
- <!-- I(delete samples):L(delete-samples)(deletesamples) -->
- <!-- I(temp directory):L(temp-dir)(tempdir) -->
- <!-- I(continue session):L(load) -->
- <!-- I(fft window):L(fft-window)(fftwindow) -->
- <!-- I(fft size):L(transform-size)(transformsize) -->
- <!-- I(fft window parameter):L(fft-window-beta)(fftbeta) -->
- <!-- I(move cursor ahead):L(set cursor)(cursor) -->
- <!-- I(move cursor back):L(set cursor)(cursor) -->
- <!-- I(insert zeros):L(insert-silence)(insertsilence) -->
- <!-- I(insert zeros):O(pad-channel)(padchannel) -->
- <!-- I(change samples):L(set-samples)(setsamples) -->
- <!-- I(srate conversion):L(src-sound)(srcsound) --><!-- I(srate conversion):M(Edit: Edit Env)(editenvelope) -->
- <!-- I(srate conversion):O(src-selection)(srcsoundselection) --><!-- I(srate conversion):A(srcsound) -->
- <!-- I(resample):L(src-sound)(srcsound) --><!-- I(resample):M(Edit: Edit Env)(editenvelope) --><!-- I(resample):A(srcsound) -->
- <!-- I(resample):O(src-selection)(srcsoundselection) --><!-- I(reverse samples):A(reversesound) -->
- <!-- I(reverse samples):L(reverse-sound)(reversesound) --><!-- I(reverse samples):O(reverse-selection)(reverseselection) -->
- <!-- I(filter samples):L(filter-sound)(filtersound) --><!-- I(filter samples):M(Edit: Edit Env)(editenvelope) -->
- <!-- I(filter samples):O(filter-selection)(filterselection) --><!-- I(filter samples):A(filtersound) -->
- <!-- I(save marks):L(save-marks)(savemarks) -->
- <!-- I(show freq domain):L(transform-graph?)(transformgraphp) -->
- <!-- I(show time domain):L(time-graph?)(timegraphp) -->
- <!-- I(keyboard macros):L(key)(key) -->
- <!-- I(delete mark):L(delete-mark)(deletemark) --> <!-- I(delete mark):O(delete-marks)(deletemarks) -->
- <!-- I(sonogram):L(transform-graph-type)(transformgraphtype) -->
- <!-- I(spectrogram):L(transform-graph-type)(transformgraphtype) -->
- <!-- I(X axis units):L(x-axis-style)(xaxisstyle) -->
- <!-- I(speed units):L(speed-control-style)(speedstyle) -->
- <!-- I(speed units):O(speed-control-tones)(speedtones) -->
- <!-- I(change srate):L(src-sound)(srcsound) -->
- <!-- I(edit env):L(enved-dialog)(enveddialog) -->
- <!-- I(edit header):L(edit-header-dialog)(editheaderdialog) -->
- <!-- I(insert file):L(insert-sound)(insertsound) -->
- <!-- I(mix file):L(mix)(mix) -->
- <!-- I(move mixed file):L(mix-position)(mixposition) -->
- <!-- I(play selection):L(play-selection)(playselection) -->
- <!-- I(play selection):O(play-region)(playregion) -->
- <!-- I(update file):L(update)(updatesound) -->
- <!-- I(view envs):L(enved-dialog)(enveddialog) -->
- <!-- I(play channel):L(play-channel)(playchannel) -->
- <!-- I(play channel):O(play)(play) -->
- <!-- I(mix selection):O(mix-region)(mixregion) -->
- <!-- I(mix selection):L(mix-selection)(mixselection) -->
- <!-- I(interrupt Snd):L(stop-playing)(stopplaying) -->
- <!-- I(interrupt Snd):O(c-g!)(cgx) -->
- <!-- I(move window back):L(left-sample)(leftsample) -->
- <!-- I(move window ahead):L(right-sample)(rightsample) -->
- <!-- I(change tempo):L(expand)(expandcontrol) -->
- <!-- I(wavelets):L(wavelet-type)(wavelettype) -->
- <!-- I(save macros):L(save-macros)(savemacros) -->
- <!-- I(save selection):L(save-region)(saveregion) --><!-- I(save selection):O(save-selection)(saveselection) -->
- <!-- I(examine regions):L(view-regions-dialog)(viewregionsdialog) -->
- <!-- I(zoom window):L(x-bounds)(xbounds) -->
- <!-- I(describe audio):A(musaudiodescribe) --><!-- I(describe audio):L(mus-audio-describe)(musaudiodescribe) -->
- <!-- I(abort command):L(c-g?)(cgp) -->
- <!-- I(count matches):L(count-matches)(countmatches) --><!-- I(count matches):A(countmatches) -->
- <!-- I(convolution):L(convolution)(convolve) --><!-- I(convolution):A(convolve) --><!-- I(convolution):O(convolve-with)(convolvewith) -->
- <!-- I(auto save):O(autosave.scm) -->
- <!-- I(reverberate file):L(convolve-with)(convolvewith) -->
- <!-- I(record sound):L(recorder-dialog)(recorderdialog) -->
- <!-- I(describe file):L(info)(sndinfo) -->
- <!-- I(change pitch):L(src-sound)(srcsound) -->
- <!-- I(change colors):L(make-color)(aboutcolors) --><!-- I(change colors):A(aboutcolors) --><!-- I(change colors):O(resources)(sndresources) -->
- <!-- I(create new file):O(default-output-srate)(defaultoutputsrate) -->
- <!-- I(autocorrelation):L(autocorrelate)(autocorrelate) -->
- <!-- I(axis bounds):O(axis-info)(axisinfo) -->
- <!-- I(horizontal panes):L(graphs-horizontal)(graphshorizontal) -->
- <!-- I(extract channel):L(save-sound-as)(savesoundas) -->
- <!-- I(save channel):L(save-sound-as)(savesoundas) -->
- <!-- I(swap channels):L(swap-channels)(swapchannels) -->
- <!-- I(overlay sounds):L(graph-data)(graphdata) -->
- <!-- I(overlay sounds):A(graphdata) -->
- <!-- I(edit env):O(enved-hook)(envedhook) -->
- <!-- I(close file):O(close-hook)(closehook) -->
- <!-- I(change samples):O(edit-hook)(edithook) -->
- <!-- I(file lists):O(mouse-enter-label-hook)(mouseenterlabelhook) -->
- <!-- I(swap channels):A(swapchannels) -->
- <!-- I(extend file):L(pad-channel)(padchannel) -->
- <!-- I(extract channel):O(channel-&gt;vct)(channeltovct) -->
- <!-- I(fft normalization):L(transform-normalization)(normalizefft) -->
- <!-- I(fft normalization):A(normalizefft) -->
- <!-- I(file formats):L(data-format)(dataformat) -->
-
<br><br>
<center>
diff --git a/fm.html b/fm.html
index 9d4e7a6..b8b5991 100644
--- a/fm.html
+++ b/fm.html
@@ -649,7 +649,7 @@ and call the "e^(ix)" terms "t",
then cos(sin) involves terms like <img src="pix/fmeq17.png" alt="cos(sin) in e" align=absmiddle>,
which is one (convoluted) way to define Bessel functions.
Or perhaps most forthright, start with the formula for Jn(B) given above (the integral), and say "we want cos(sin) expanded as a sum of cosines, and we
-simply define Jn to be the nth coefficient in that sum".
+define Jn to be the nth coefficient in that sum".
This was the approach of Bessel and other 19th century mathematicians, but it is not very satisfying for some reason. Perhaps history can help?
These functions were
studied by Daniel Bernoulli (the vibrations of a heavy chain, 1738),
diff --git a/freeverb-readme.txt b/freeverb-readme.txt
deleted file mode 100644
index 36361f4..0000000
--- a/freeverb-readme.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-Freeverb - Free, studio-quality reverb SOURCE CODE in the public domain
------------------------------------------------------------------------
-
-Written by Jezar at Dreampoint - http://www.dreampoint.co.uk
-
-
-Introduction
-------------
-
-Hello.
-
-I'll try to keep this "readme" reasonably small. There are few things in the world that I hate more than long "readme" files. Except "coding conventions" - but more on that later...
-
-In this zip file you will find two folders of C++ source code:
-
-"Components" - Contains files that should clean-compile ON ANY TYPE OF COMPUTER OR SYSTEM WHATSOEVER. It should not be necessary to make ANY changes to these files to get them to compile, except to make up for inadequacies of certain compilers. These files create three classes - a comb filter, an allpass filter, and a reverb model made up of a number of instances of the filters, with some features to control the filters at a macro level. You will need to link these classes into another program that interfaces with them. The files in the components drawer are completely independant, and can be built without dependancies on anything else. Because of the simple interface, it should be possible to interface these files to any system - VST, DirectX, anything - without changing them AT ALL.
-
-"FreeverbVST" - Contains a Steinberg VST implementation of this version of Freeverb, using the components in (surprise) the components folder. It was built on a PC but may compile properly for the Macintosh with no problems. I don't know - I don't have a Macintosh. If you've figured out how to compile the examples in the Steinberg VST Development Kit, then you should easilly figure out how to bring the files into a project and get it working in a few minutes. It should be very simple.
-
-Note that this version of Freeverb doesn't contain predelay, or any EQ. I thought that might make it difficult to understand the "reverb" part of the code. Once you figure out how Freeverb works, you should find it trivial to add such features with little CPU overhead.
-
-Also, the code in this version of Freeverb has been optimised. This has changed the sound *slightly*, but not significantly compared to how much processing power it saves.
-
-Finally, note that there is also a built copy of this version of Freeverb called "Freeverb3.dll" - this is a VST plugin for the PC. If you want a version for the Mac or anything else, then you'll need to build it yourself from the code.
-
-
-Technical Explanation
----------------------
-
-Freeverb is a simple implementation of the standard Schroeder/Moorer reverb model. I guess the only reason why it sounds better than other reverbs, is simply because I spent a long while doing listening tests in order to create the values found in "tuning.h". It uses 8 comb filters on both the left and right channels), and you might possibly be able to get away with less if CPU power is a serious constraint for you. It then feeds the result of the reverb through 4 allpass filters on both the left and right channels. These "smooth" the sound. Adding more than four allpasses doesn't seem to add anything significant to the sound, and if you use less, the sound gets a bit "grainy". The filters on the right channel are slightly detuned compared to the left channel in order to create a stereo effect.
-
-Hopefully, you should find the code in the components drawer a model of brevity and clarity. Notice that I don't use any "coding conventions". Personally, I think that coding conventions suck. They are meant to make the code "clearer", but they inevitably do the complete opposite, making the code completely unfathomable. Anyone whose done Windows programming with its - frankly stupid - "Hungarian notation" will know exactly what I mean. Coding conventions typically promote issues that are irrelevant up to the status of appearing supremely important. It may have helped back people in the days when compilers where somewhat feeble in their type-safety, but not in the new millenium with advanced C++ compilers.
-
-Imagine if we rewrote the English language to conform to coding conventions. After all, The arguments should be just as valid for the English language as they are for a computer language. For example, we could put a lower-case "n" in front of every noun, a lower-case "p" in front of a persons name, a lower-case "v" in front of every verb, and a lower-case "a" in front of every adjective. Can you imagine what the English language would look like? All in the name of "clarity". It's just as stupid to do this for computer code as it would be to do it for the English language. I hope that the code for Freeverb in the components drawer demonstrates this, and helps start a movement back towards sanity in coding practices.
-
-
-Background
-----------
-
-Why is the Freeverb code now public domain? Simple. I only intended to create Freeverb to provide me and my friends with studio-quality reverb for free. I never intended to make any money out of it. However, I simply do not have the time to develop it any further. I'm working on a "concept album" at the moment, and I'll never finish it if I spend any more time programming.
-
-In any case, I make more far money as a contract programmer - making Mobile Internet products - than I ever could writing plugins, so it simply doesn't make financial sense for me to spend any more time on it.
-
-Rather than give Freeverb to any particular individual or organisation to profit from it, I've decided to give it away to the internet community at large, so that quality, FREE (or at the very least, low-cost) reverbs can be developed for all platforms.
-
-Feel free to use the source code for Freeverb in any of your own products, whether they are also available for free, or even if they are commercial - I really don't mind. You may do with the code whatever you wish. If you use it in a product (whether commercial or not), it would be very nice of you, if you were to send me a copy of your product - although I appreciate that this isn't always possible in all circumstances.
-
-HOWEVER, please don't bug me with questions about how to use this code. I gave away Freeverb because I don't have time to maintain it. That means I *certainly* don't have time to answer questions about the source code, so please don't email questions to me. I *will* ignore them. If you can't figure the code for Freeverb out - then find somebody who can. I hope that either way, you enjoy experimenting with it.
-
-
-Disclaimer
-----------
-
-This software and source code is given away for free, without any warranties of any kind. It has been given away to the internet community as a free gift, so please treat it in the same spirit.
-
-
-I hope this code is useful and interesting to you all!
-I hope you have lots of fun experimenting with it and make good products!
-
-Very best regards,
-Jezar.
-Technology Consultant
-Dreampoint Design and Engineering
-http://www.dreampoint.co.uk
-
-
-//ends
diff --git a/freeverb.html b/freeverb.html
deleted file mode 100644
index 595afd2..0000000
--- a/freeverb.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>freeverb for clm-2</title>
- </head>
-
- <body bgcolor="#ffffff">
-
- <p><table width=100% bgcolor="#e0e0e0"><tr><td>
- <h1><a href="freeverb.ins">freeverb</a>: a multichannel reverb instrument</h1></table></p>
-
-
-<p><font size="-1">translated to clm-2 by <a href="http://www-ccrma.stanford.edu/~nando/">Fernando Lopez-Lezcano</a>, <a href="mailto:nando@ccrma.stanford.edu">nando@ccrma.stanford.edu</a></font>
-
-<p>Freeverb, a free studio-quality reverb, was created by <strong>Jezar Wakefield</strong> at <a href="http://www.dreampoint.co.uk/">Dreampoint Design and Engineering</a>. Here's the <a href="readme.txt">readme.txt</a> that is part of the <a href="http://home.onet.co.uk/~jzracc/source_code.htm">C++ source package</a> I downloaded. This clm-2 instrument uses the same reverberation model and tuning for the filters as the original freeverb source code. </p>
-
-<p>Here's a list of some differences with respect to the original freeverb code:</p>
-
-<ul>
-<li>freeverb.ins can process either mono or multichannel input soundfiles, in the latter case the input and output number of channels must match. This has been tailored to function with <a href="http://www-ccrma.stanford.edu/~nando/clm/dlocsig/">dlocsig</a>, a multichannel spatialization unit generator for clm. The latest version of dlocsig can output to multichannel reverberation streams and can thus generate local and global reverberation.
-<li>there no <em>wet</em> parameter to freeverb.ins as it would not apply to the way clm generates and processes reverberation.
-<li>the name of the <em>width</em> parameter has been changed to <em>global</em>, which better reflects the effect in a multichanenl environment
-<li>it has predelays
-<li>it is possible to control damping individually in each channel
-</ul>
-
-<table>
-
-<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
-<p><font size="+1">Parameters</font></p>
-</td>
-
-<tr><td bgcolor="#e0e0e0" width="10%"></td>
-<td><p>All parameters have similarly named global bindings that you can use in a <em>let</em> statement to change the behavior of the reverberator (instead of passing parameters to the reverb instrument through <em>:reverb-data</em> in a <em>with-sound</em>). Prepend <em>freeverb-</em> to the parameter name to get the global binding name. </p>
-
-<p><table>
-
-<tr valign=top><td><a name="start-time"><font color="b01010">start-time</font></a><br>[num]</td>
-<td>Start time of the instrument in the output stream (this is normally supplied automatically by <em>with-sound</em>). <p></td>
-
-<tr valign=top><td><a name="duration"><font color="b01010">duration</font></a><br>[num]</td>
-<td><p>Duration of the reverberation (this is normally supplied automatically by <em>with-sound</em>, use the <em>:decay-time</em> parameter to allow the reverb to ring for more time). </p></td>
-
-<tr valign=top><td><a name="room-decay"><font color="b01010">room-decay</font></a><br>[num]</td>
-<td><p>Determines the decay time of the reverberation. </p></td>
-
-<tr valign=top><td><a name="damping"><font color="b01010">damping</font></a>
-<br>[num|array|list]</td>
-
-<td><p>High frequency damping. This parameter can be a number, or an array or list (with same number of elements as output channels). It is possible to control the damping for each output channel. </p></td>
-
-<tr valign=top><td><a name="global"><font color="b01010">global</font></a>
-<br>[num|matrix]</td>
-<td><p>Controls how the outputs of all reverbs (one per channel) is mixed into the output stream. Specifying "0" will connect each reverberator directly to each output channel, "1" will mix all reverberated channels equally into all output channels. Intermediate values will allow for an arbitrary balance between local and global reverberation. The overall gain of the mixing matrix is kept constant. See <font color="b01010">output-mixer</font> for a complete override to this parameter. </p></td>
-
-<tr valign=top><td><a name="predelay"><font color="b01010">predelay</font></a>
-<br>[num|array|list]</td>
-<td><p>Determines the predelay that is applied to the input streams. An array or list lets you specify the individual predelays for all chanenels. </p></td>
-
-<tr valign=top><td><a name="output-gain"><font color="b01010">output-gain</font></a>
-<br>[num]<br>1.0</td>
-<td><p>Overall gain multiplier for the output streams. </p></td>
-
-<tr valign=top><td><a name="output-mixer"><font color="b01010">output-mixer</font></a>
-<br>[mixer|matrix]<br>nil</td>
-<td><p>Overrides <font color="b01010">global</font> and sets the output mixing matrix directly (for example, you might want to change the contribution to global reverb of a particular channel so that it is proportional to the distance between speakers). </p></td>
-
-</table>
-</table>
-
-<hr>
-
-<table><tr><td><!--- <img src="/CCRMA/Images/Logo:Small.gif" alt=""> -->
- <td><p><font size="2">&copy; 2001 Fernando Lopez-Lezcano. All Rights Reserved.<br>
- Created and mantained by Fernando Lopez-Lezcano,
- <a href="mailto:nando@ccrma.stanford.edu">nando@ccrma.stanford.edu</a></font></p>
-<font size="2">
-<!-- Created: Wed Jan 24 20:05:29 PST 2001 -->
-<!-- hhmts start -->
-Last modified: Wed Jan 24 21:32:00 PST 2001
-<!-- hhmts end -->
-</font>
-</table>
- </body>
-</html>
diff --git a/gl.c b/gl.c
index 6b0434a..7ab2de2 100644
--- a/gl.c
+++ b/gl.c
@@ -5937,7 +5937,7 @@ void Init_libgl(void)
define_integers();
define_functions();
XEN_YES_WE_HAVE("gl");
- XEN_DEFINE("gl-version", C_TO_XEN_STRING("04-Oct-09"));
+ XEN_DEFINE("gl-version", C_TO_XEN_STRING("06-Nov-09"));
gl_already_inited = true;
}
}
diff --git a/grfsnd.html b/grfsnd.html
index 77d1c89..f2c772e 100644
--- a/grfsnd.html
+++ b/grfsnd.html
@@ -276,13 +276,10 @@ then .snd. If you're always using just one version of Snd, it's simplest to sti
</pre>
<p>
-Here's a more elaborate initialization file (~/.snd_guile):
+Here's a more elaborate initialization file (~/.snd_s7):
</p>
<table border=0 cellpadding=5 hspace=20><tr><td><pre>
-(use-modules (ice-9 debug) (ice-9 format) (ice-9 optargs))
-(debug-set! stack 0) ;turn off Guile's stack-size check
-
(set! (<a class=quiet href="extsnd.html#windowwidth" onmouseout="UnTip()" onmouseover="Tip(extsnd_windowwidth_tip)">window-width</a>) 800) ;these set the initial window size
(set! (<a class=quiet href="extsnd.html#windowheight" onmouseout="UnTip()" onmouseover="Tip(extsnd_windowheight_tip)">window-height</a>) 500)
@@ -298,7 +295,6 @@ Here's a more elaborate initialization file (~/.snd_guile):
(set! (<a class=quiet href="extsnd.html#listenerprompt" onmouseout="UnTip()" onmouseover="Tip(extsnd_listenerprompt_tip)">listener-prompt</a>) ":") ;change listener prompt from the default "&gt;" to ":"
(set! (<a class=quiet href="extsnd.html#showlistener" onmouseout="UnTip()" onmouseover="Tip(extsnd_showlistener_tip)">show-listener</a>) #t) ;include the listener window initially
-(set! (<a class=quiet href="extsnd.html#showindices" onmouseout="UnTip()" onmouseover="Tip(extsnd_showindices_tip)">show-indices</a>) #t) ;include sound index values with the sound name
(define beige (<a class=quiet href="extsnd.html#makecolor" onmouseout="UnTip()" onmouseover="Tip(extsnd_makecolor_tip)">make-color</a> 0.96 0.96 0.86))
(define blue (<a class=quiet href="extsnd.html#makecolor" onmouseout="UnTip()" onmouseover="Tip(extsnd_makecolor_tip)">make-color</a> 0 0 1))
@@ -329,7 +325,6 @@ Here's a more elaborate initialization file (~/.snd_guile):
(if (&gt; (<a class=quiet href="extsnd.html#chans" onmouseout="UnTip()" onmouseover="Tip(extsnd_chans_tip)">channels</a> snd) 4)
(set! (<a class=quiet href="extsnd.html#channelstyle" onmouseout="UnTip()" onmouseover="Tip(extsnd_channelstyle_tip)">channel-style</a> snd) <a class=quiet href="extsnd.html#channelstyle" onmouseout="UnTip()" onmouseover="Tip(extsnd_channelstyle_tip)">channels-combined</a>))))
-(set! (<a class=quiet href="extsnd.html#optimization" onmouseout="UnTip()" onmouseover="Tip(extsnd_optimization_tip)">optimization</a>) 6) ;turn on full optimization (live dangerously...)
(set! (<a class=quiet href="extsnd.html#selectioncreatesregion" onmouseout="UnTip()" onmouseover="Tip(extsnd_selectioncreatesregion_tip)">selection-creates-region</a>) #f) ;turn off automatic region creation
</pre></td></tr></table>
@@ -505,7 +500,7 @@ $" snd&gt; " set-listener-prompt drop
speed-control-as-ratio set-speed-control-style drop
'snd-nogui provided? [unless]
- 13 set-colormap drop
+ rainbow-colormap set-colormap drop
#f set-show-listener drop
#f set-show-controls drop
#f set-just-sounds drop
@@ -804,9 +799,9 @@ latter are (configure --help):
<tr><td></td><td>--with-no-gui</td><td></td><td>make Snd without any graphics support</td></tr>
<tr><td></td><td>--with-static-xm</td><td></td><td>include the xm module at build time; this is easier than trying to dynamically load xm.so</td></tr>
<tr><td></td><td>--with-static-xg</td><td></td><td>include the xg module at build time; this is easier than trying to dynamically load xg.so</td></tr>
-<tr><td></td><td>--with-gl</td><td></td><td>include OpenGL support (spectrogram, etc)</td></tr>
-<tr><td></td><td>--with-just-gl</td><td></td><td>include OpenGL support, but omit the GL/s7/Guile/Ruby/Forth bindings</td></tr>
-<tr><td></td><td>--with-gl2ps</td><td></td><td>include gl2ps (GL to Postscript code)</td></tr>
+<tr><td></td><td>--with-gl</td><td></td><td>include OpenGL support (spectrogram, etc, Motif only)</td></tr>
+<tr><td></td><td>--with-just-gl</td><td></td><td>include OpenGL support, but omit the GL/s7/Guile/Ruby/Forth bindings (Motif only)</td></tr>
+<tr><td></td><td>--with-gl2ps</td><td></td><td>include gl2ps (GL to Postscript code, Motif only)</td></tr>
<tr><td></td><td>--with-editres</td><td></td><td>include editres in xm (default: no)</td></tr>
<tr><td></td><td>--with-xpm</td><td></td><td>use xpm, default: yes</td></tr>
<tr><td></td><td>--with-xp</td><td></td><td>use xp, default: no; this is the Xprint library which is not tied into Snd at all</td></tr>
@@ -839,7 +834,7 @@ latter are (configure --help):
<tr><td></td><td>--with-midi</td><td></td><td>include sndlib midi module (default: no)</td></tr>
<tr><td></td><td>--with-shared-sndlib</td><td></td><td>try to load libsndlib.so, rather than building it into Snd (default: no)</td></tr>
<tr><td></td><td>--with-modules</td><td></td><td>use this switch with --with-shared-sndlib if sndlib.so uses modules (Guile only)</td></tr>
-<tr><td></td><td>--disable-deprecated</td><td></td><td>do not include any deprecated stuff from gtk, guile, sndlib, xen, clm, etc</td></tr>
+<tr><td></td><td>--disable-deprecated</td><td></td><td>do not include any deprecated stuff from gtk, s7, sndlib, xen, clm, etc</td></tr>
<tr><td></td><td>--enable-threads</td><td></td><td>include pthreads to take advantage of multiprocessor machines</td></tr>
<tr><td></td><td>--with-threads</td><td></td><td>include pthreads, same as --enable-threads</td></tr>
<tr><td colspan=2></td><td></td><td></td></tr>
@@ -1766,8 +1761,7 @@ if you have an executable file with:
:(<a class=quiet href="extsnd.html#exit" onmouseout="UnTip()" onmouseover="Tip(extsnd_exit_tip)">exit</a>)
/home/bil/test/snd-11/
</pre>
-<p>The difference between this use of Snd, and using guile itself
-for scripts is that Snd uses the -l switch where guile would use -s.
+<p>
As noted above, you can use the -e switch to use Snd as a pure
command-line program, and, of course, (<a class=quiet href="extsnd.html#exit" onmouseout="UnTip()" onmouseover="Tip(extsnd_exit_tip)">exit</a>) to drop back to the shell.
Here's a script that doubles every sample in "oboe.snd" and
@@ -1896,7 +1890,7 @@ than 40 seconds in duration, and truncates them to 40 seconds:
<table border=0 cellpadding=5 hspace=20><tr><td><pre>
#!snd -b
!#
-(<a class=quiet href="extsnd.html#playandwait" onmouseout="UnTip()" onmouseover="Tip(extsnd_playandwait_tip)">play-and-wait</a> (list-ref (<a class=quiet href="extsnd.html#scriptargs" onmouseout="UnTip()" onmouseover="Tip(extsnd_scriptargs_tip)">script-args</a>) (+ (<a class=quiet href="extsnd.html#scriptarg" onmouseout="UnTip()" onmouseover="Tip(extsnd_scriptarg_tip)">script-arg</a>) 1)))
+(play (list-ref (<a class=quiet href="extsnd.html#scriptargs" onmouseout="UnTip()" onmouseover="Tip(extsnd_scriptargs_tip)">script-args</a>) (+ (<a class=quiet href="extsnd.html#scriptarg" onmouseout="UnTip()" onmouseover="Tip(extsnd_scriptarg_tip)">script-arg</a>) 1)) :wait #t)
(<a class=quiet href="extsnd.html#exit" onmouseout="UnTip()" onmouseover="Tip(extsnd_exit_tip)">exit</a>)
</pre></td></tr></table>
@@ -2102,10 +2096,10 @@ The s7 initialization file is ~/.snd_s7.
<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="sndandguile">Snd with Guile</a></h3></td></tr></table>
<p>
-Guile was Snd's original extension language. Like s7, it implements Scheme. It has trouble, however,
-with threads. Over the years, I became increasingly unhappy with it, and finally decided in 2008 to move to s7.
-The Guile support still works (for versions before 1.9.0), but I'm not really paying any attention to it. For a couple
-years, Snd also supported Gauche (another Scheme), but that fell apart in 2008.
+Guile was Snd's original extension language. Like s7, it implements Scheme.
+Over the years, I became increasingly unhappy with it, and finally decided in 2008 to move to s7.
+You can still use Guile in Snd, but the two projects are steadily diverging. At this point, if you
+want anything to work, stick to guile versions before 1.9.0. Eventually I will remove the guile support.
</p>
<p>
@@ -2437,7 +2431,7 @@ sets SND_COMMAND to 'str', which Snd subsequently notices.
<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="sndandgl">Snd and OpenGL</a></h3></td></tr></table>
-<p>Snd can be used in conjunction with OpenGL. If it is configured
+<p>Snd with Motif can be used in conjunction with OpenGL. If it is configured
with the switch --with-gl or --with-just-gl, the top level Snd shell
is setup to handle OpenGL graphics. These are used automatically by
the spectrogram display; the colormap and viewing angle are set by either the View:Color/Orientation
@@ -2448,7 +2442,7 @@ variables.
<img src="pix/nowgl.png" alt="gl" hspace=20>
<p>
The GL-to-Scheme bindings are in gl.c, and follow the same name and type
-conventions of the Gtk/Motif bindings in xm.c or xg.c.
+conventions of the Motif bindings in xm.c.
Any of the Snd drawing area widgets (or your own) can receive GL graphics
commands. Here is a translation of the SGI/xjournal glxmotif
program:
diff --git a/gtk-effects.scm b/gtk-effects.scm
index e547b97..d7e1272 100644
--- a/gtk-effects.scm
+++ b/gtk-effects.scm
@@ -1700,7 +1700,7 @@ Values greater than 1.0 speed up file play, negative values reverse it."))
(format #f "effects-am ~A ~A" am-effect-amount
(let* ((need-env (not (equal? (xe-envelope am-effect-envelope) (list 0.0 1.0 1.0 1.0))))
(e (and need-env (xe-envelope am-effect-envelope))))
- (if e (format "'~A" e)
+ (if e (format #f "'~A" e)
#f))))
#f))
@@ -1787,7 +1787,7 @@ Values greater than 1.0 speed up file play, negative values reverse it."))
(format #f "effects-rm ~A ~A" rm-frequency
(let* ((need-env (not (equal? (xe-envelope rm-envelope) (list 0.0 1.0 1.0 1.0))))
(e (and need-env (xe-envelope rm-envelope))))
- (if e (format "'~A" e)
+ (if e (format #f "'~A" e)
#f))))
#f))
diff --git a/gtk-popup.scm b/gtk-popup.scm
index eddd91e..ee9dc49 100644
--- a/gtk-popup.scm
+++ b/gtk-popup.scm
@@ -169,6 +169,7 @@
(sounds))
sndlist))))
(list "Save as" every-menu (lambda (w data) (save-selection-dialog)))
+ (list "Selection->Mix" every-menu (lambda (w data) (selection->mix)))
(list "Copy->New" every-menu
(lambda (w data)
(let ((new-file-name (snd-tempnam)))
@@ -193,8 +194,9 @@
(list "Reset controls" every-menu (lambda (w data) (reset-controls)))
(list "Unselect" every-menu (lambda (w data) (set! (selection-member? #t) #f)))
(list "Reverse" every-menu (lambda (w data) (reverse-selection)))
- (list "Mix" every-menu (lambda (w data) (mix-selection (cursor))))
- (list "Invert" every-menu (lambda (w data) (scale-selection-by -1)))))))
+ (list "Mix (at cursor)" every-menu (lambda (w data) (mix-selection (cursor))))
+; (list "Invert" every-menu (lambda (w data) (scale-selection-by -1)))
+ ))))
;; -------- time domain popup
@@ -244,7 +246,7 @@
(begin
(change-label w "Stop")
(set! stopping #t)
- (play 0 graph-popup-snd))))
+ (play graph-popup-snd :start 0))))
(lambda (wid)
(set! stop-widget wid)))
(list "Play channel"
@@ -252,25 +254,25 @@
(lambda (w data)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play 0 graph-popup-snd graph-popup-chn)))
+ (play graph-popup-snd :start 0 :channel graph-popup-chn)))
(list "Play from cursor"
(lambda (w) (set! play-cursor-popup-menu w))
(lambda (w data)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play (cursor graph-popup-snd graph-popup-chn) graph-popup-snd)))
+ (play graph-popup-snd :start (cursor graph-popup-snd graph-popup-chn))))
(list "Play previous"
(lambda (w) (set! play-previous-popup-menu w))
(lambda (w data)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play 0 graph-popup-snd graph-popup-chn #f #f (- (edit-position) 1)))) ; play version before most-recent edit
+ (play graph-popup-snd :start 0 :channel graph-popup-chn :edit-position (- (edit-position) 1)))) ; play version before most-recent edit
(list "Play original"
(lambda (w) (set! play-original-popup-menu w))
(lambda (w data)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play 0 graph-popup-snd graph-popup-chn #f #f 0))) ; play unedited version
+ (play graph-popup-snd :start 0 :channel graph-popup-chn :edit-position 0))) ; play unedited version
(list "Undo"
(lambda (w) (set! undo-popup-menu w))
(lambda (w data)
@@ -591,7 +593,7 @@
(gtk_widget_set_sensitive child (not (= (fft-window graph-popup-snd graph-popup-chn) window))))
fft-windows windows)
(for-each (lambda (child type)
- (gtk_widget_set_sensitive child (not (= (transform-type graph-popup-snd graph-popup-chn) type))))
+ (gtk_widget_set_sensitive child (not (equal? (transform-type graph-popup-snd graph-popup-chn) type))))
fft-types types)
(let ((ctr 0))
(for-each (lambda (child)
diff --git a/headers.c b/headers.c
index 9c60f39..21c7766 100644
--- a/headers.c
+++ b/headers.c
@@ -32,9 +32,6 @@
* Sound Designer: "Developer Documentation" from Digidesign
*
* test cases (sample files): ccrma-ftp.stanford.edu:/pub/Lisp/sf.tar.gz
- *
- * If anyone has information on any other header or data formats, I would be most interested in it,
- * but only if it can be included in this file.
*/
#include <mus-config.h>
@@ -230,26 +227,26 @@ static bool little_endian = false;
mus_long_t mus_header_samples(void) {return(data_size);}
mus_long_t mus_header_data_location(void) {return(data_location);}
-int mus_header_chans(void) {return(chans);}
-int mus_header_srate(void) {return(srate);}
-int mus_header_type(void) {return(header_type);}
-int mus_header_format(void) {return(data_format);}
+int mus_header_chans(void) {return(chans);}
+int mus_header_srate(void) {return(srate);}
+int mus_header_type(void) {return(header_type);}
+int mus_header_format(void) {return(data_format);}
mus_long_t mus_header_comment_start(void) {return(comment_start);}
mus_long_t mus_header_comment_end(void) {return(comment_end);}
mus_long_t mus_header_aux_comment_start(int n) {if (aux_comment_start) return(aux_comment_start[n]); else return(-1);}
mus_long_t mus_header_aux_comment_end(int n) {if (aux_comment_end) return(aux_comment_end[n]); else return(-1);}
-int mus_header_type_specifier(void) {return(type_specifier);}
-int mus_header_bits_per_sample(void) {return(bits_per_sample);}
-int mus_header_fact_samples(void) {return(fact_samples);}
-int mus_header_block_align(void) {return(block_align);}
+int mus_header_type_specifier(void) {return(type_specifier);}
+int mus_header_bits_per_sample(void) {return(bits_per_sample);}
+int mus_header_fact_samples(void) {return(fact_samples);}
+int mus_header_block_align(void) {return(block_align);}
mus_long_t mus_header_true_length(void) {return(true_file_length);}
-int mus_header_original_format(void) {return(original_data_format);}
-int mus_header_loop_mode(int which) {if (loop_modes) return(loop_modes[which]); else return(-1);}
-int mus_header_loop_start(int which) {if (loop_starts) return(loop_starts[which]); else return(-1);}
-int mus_header_loop_end(int which) {if (loop_ends) return(loop_ends[which]); else return(-1);}
-int mus_header_mark_position(int id) {int i; for (i = 0; i < markers; i++) {if (marker_ids[i] == id) return(marker_positions[i]);} return(-1);}
-int mus_header_base_detune(void) {return(base_detune);}
-int mus_header_base_note(void) {return(base_note);}
+int mus_header_original_format(void) {return(original_data_format);}
+int mus_header_loop_mode(int which) {if (loop_modes) return(loop_modes[which]); else return(-1);}
+int mus_header_loop_start(int which) {if (loop_starts) return(loop_starts[which]); else return(-1);}
+int mus_header_loop_end(int which) {if (loop_ends) return(loop_ends[which]); else return(-1);}
+int mus_header_mark_position(int id) {int i; for (i = 0; i < markers; i++) {if (marker_ids[i] == id) return(marker_positions[i]);} return(-1);}
+int mus_header_base_detune(void) {return(base_detune);}
+int mus_header_base_note(void) {return(base_note);}
int mus_header_mark_info(int **m_ids, int **m_positions)
{
diff --git a/heart.scm b/heart.scm
deleted file mode 100644
index d6385ba..0000000
--- a/heart.scm
+++ /dev/null
@@ -1,64 +0,0 @@
-;(use-modules (ice-9 format))
-;(if (not (defined? 'read-line)) (use-modules (ice-9 rdelim)))
-
-;;; use with-sound to write the data to a sound file
-(if (not (provided? 'snd-ws.scm)) (load "ws.scm"))
-
-;;; turn off clipping (the numbers will be between 70 and 150)
-(set! (mus-clipping) #f)
-(set! *clm-clipped* #f)
-
-;;; these hooks may be drawing the graph in the upper right corner, which we don't want for now
-(reset-hook! after-graph-hook)
-(reset-hook! mouse-click-hook)
-(reset-hook! update-hook)
-
-;;; tell Snd not to try to load the data file
-(set! (script-arg) (+ 1 (script-arg)))
-
-;;; search for "...[<number>am|pm <number>/<number>...", put the two readings in a stereo file
-(let* ((hpsum 0) ; for average readings
- (lpsum 0)
- (average (make-moving-average 14)) ; 2-week average
- (average1 (make-moving-average 90)) ; 3-month average
- (ind (find-sound
- (with-sound (:channels 6 :data-format mus-lfloat) ; float output to be sure it can handle the full range
- (let ((samp 0))
- (call-with-input-file
- (list-ref (script-args) 1) ; invocation arg = text file of data ("snd heart.scm data.txt")
- (lambda (file)
- (let loop ((line (read-line file 'concat)))
- (or (eof-object? line)
- (let ((len (string-length line)))
- (do ((i 0 (+ 1 i)))
- ((>= i (- len 14)))
- (if (and (char=? (string-ref line i) #\[)
- (char=? (string-ref line (+ i 3)) #\m)
- (or (char=? (string-ref line (+ i 2)) #\a)
- (char=? (string-ref line (+ i 2)) #\p)))
- (let ((hp (string->number (substring line (+ i 5) (+ i 5 3))))
- (lp (string->number (substring line (+ i 5 4) (+ i 5 6)))))
- (set! hpsum (+ hpsum hp))
- (set! lpsum (+ lpsum lp))
- (out-any samp hp 0) ; output the readings
- (out-any samp lp 1)
- (out-any samp 120 2)
- (out-any samp 80 3)
- (out-any samp (max 90 (moving-average average (* 0.5 (+ lp hp)))) 4)
- (out-any samp (max 90 (moving-average average1 (* 0.5 (+ lp hp)))) 5)
- (set! samp (+ 1 samp)))))
- (loop (read-line file 'concat))))))))))))
-
- ;; now display the data with y-axis bounds between 50 and 150, both traces in the same graph, x-axis in "samples" (readings)
- (set! (channel-style ind) channels-superimposed)
- (do ((chan 0 (+ 1 chan)))
- ((= chan 6))
- (set! (x-axis-style ind chan) x-axis-in-samples)
- (set! (x-axis-label ind chan) "days")
- (set! (y-bounds ind chan) (list 50 150)))
-
- ;; print the average readings over the full sequence
- (snd-print (format #f ";average: ~A/~A~%"
- (round (/ hpsum (frames)))
- (round (/ lpsum (frames))))))
-
diff --git a/index.html b/index.html
index 2106e7d..b0e0467 100644
--- a/index.html
+++ b/index.html
@@ -25,288 +25,291 @@
</td></tr></table>
<br>
-<!-- created 14-Oct-09 -->
+<!-- created 21-Nov-09 -->
<table cellspacing=0 cellpadding=1>
- <tr><td><em class=tab><a href="extsnd.html#abort">abort</a></em></td><td width=20></td><td><em class=tab><a href="extsnd.html#epsfile">eps-file</a></em></td><td width=20></td><td><em class=tab><a href="sndclm.html#make-nrxycos">make-nrxycos</a></em></td><td width=20></td><td><em class=tab><a href="sndscm.html#normalizeenvelope">normalize-envelope</a></em></td><td width=20></td><td><em class=tab><a href="extsnd.html#showtransformpeaks">show-transform-peaks</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#addampcontrols">add-amp-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epsleftmargin">eps-left-margin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrxysin">make-nrxysin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#normalizepartials">normalize-partials</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showwidget">show-widget</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addcolormap">add-colormap</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epssize">eps-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nsin">make-nsin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizesound">normalize-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showyzero">show-y-zero</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addcomment">add-comment</a></em></td><td></td><td><em class=tab><a href="sndscm.html#evalbetweenmarks">eval-between-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-pole">make-one-pole</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizedmix">normalized-mix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silenceallmixes">silence-all-mixes</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#adddirectorytoviewfileslist">add-directory-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="sndscm.html#evaloverselection">eval-over-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-zero">make-one-zero</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch">notch</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silencemixes">silence-mixes</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addfilefilter">add-file-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#everysample">every-sample?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-oscil">make-oscil</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchchannel">notch-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sinc-train">sinc-train</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addfilesorter">add-file-sorter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exit">exit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-phase-vocoder">make-phase-vocoder</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchoutrumbleandhiss">notch-out-rumble-and-hiss</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sincwidth">sinc-width</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addfiletoviewfileslist">add-file-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exithook">exit-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makepixmap">make-pixmap</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchselection">notch-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineenvchannel">sine-env-channel</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addmark">add-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrol">expand-control</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeplayer">make-player</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchsound">notch-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineramp">sine-ramp</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#addmarkpane">add-mark-pane</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolbounds">expand-control-bounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyoid">make-polyoid</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch?">notch?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">singer</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addplayer">add-player</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolhop">expand-control-hop</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyshape">make-polyshape</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nrev">nrev</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothchannel">smooth-channel</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addsoundfileextension">add-sound-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontroljitter">expand-control-jitter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polywave">make-polywave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos">nrxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothselection">smooth-selection</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addsourcefileextension">add-source-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrollength">expand-control-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pulse-train">make-pulse-train</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos?">nrxycos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothsound">smooth-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addtomainmenu">add-to-main-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolramp">expand-control-ramp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand">make-rand</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin">nrxysin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothexamples"><b>Smoothing</b></a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addtomenu">add-to-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolp">expand-control?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand-interp">make-rand-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin?">nrxysin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pins">SMS synthesis</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#addtooltip">add-tooltip</a></em></td><td></td><td><em class=tab><a href="sndscm.html#explodesf2">explode-sf2</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-readin">make-readin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin">nsin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#snapmarktobeat">snap-mark-to-beat</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addtransform">add-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#exponentially-weighted-moving-average">exponentially-weighted-moving-average</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregion">make-region</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin?">nsin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#snapmixtobeat">snap-mix-to-beat</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#addwatcher">add-watcher</a></em></td><td></td><td><em class=tab><a href="extsnd.html#extractchannel">extract-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeregionframereader">make-region-frame-reader</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetchannel">offset-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosample">snd-&gt;sample</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#spectra">additive synthesis</a></em></td><td></td><td><em class=tab><a href="extsnd.html#extractchannels">extract-channels</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregionsampler">make-region-sampler</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetsound">offset-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosamplep">snd-&gt;sample?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#afterapplycontrolshook">after-apply-controls-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cellon">feedback fm</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sampletofile">make-sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole">one-pole</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndcolor">snd-color</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#afteredithook">after-edit-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fft">fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesampler">make-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole?">one-pole?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderror">snd-error</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#aftergraphhook">after-graph-hook</a></em></td><td></td><td><em class=tab><a href="snd.html#fftsize">fft sizes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sawtooth-wave">make-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero">one-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderrorhook">snd-error-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#afterlispgraphhook">after-lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftedit">fft-edit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-scalar-mixer">make-scalar-mixer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero?">one-zero?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndfont">snd-font</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#afteropenhook">after-open-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogfrequency">fft-log-frequency</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeselection">make-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialog">open-file-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndgcs">snd-gcs</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#aftersaveashook">after-save-as-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogmagnitude">fft-log-magnitude</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeselectionframereader">make-selection-frame-reader</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialogdirectory">open-file-dialog-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhelp">snd-help</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#aftersavestatehook">after-save-state-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsmoother">fft-smoother</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesndtosample">make-snd-&gt;sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openhook">open-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndscmhooks">snd-hooks</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#aftertransformhook">after-transform-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsquelch">fft-squelch</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makesoundbox">make-sound-box</a></em></td><td></td><td><em class=tab><a href="sndscm.html#opennextfileindirectory">open-next-file-in-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndopenedsound">*snd-opened-sound*</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#all-pass">all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwindow">fft-window</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesounddata">make-sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsound">open-raw-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndprint">snd-print</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#all-pass?">all-pass?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftalpha">fft-window-alpha</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-square-wave">make-square-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsoundhook">open-raw-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndspectrum">snd-spectrum</a></em></td></tr>
- <tr><td><em class=tab><a href="grfsnd.html#sndandalsa"><b>Alsa</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftbeta">fft-window-beta</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-src">make-src</a></em></td><td></td><td><em class=tab><a href="extsnd.html#opensound">open-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtempnam">snd-tempnam</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#ampcontrol">amp-control</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwithphases">fft-with-phases</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ssb-am">make-ssb-am</a></em></td><td></td><td><em class=tab><a href="extsnd.html#optimization">optimization</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurl">snd-url</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#ampcontrolbounds">amp-control-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftexamples"><b>FFTs</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#makesyncframereader">make-sync-frame-reader</a></em></td><td></td><td><em class=tab><a href="extsnd.html#optimizationhook">optimization-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurls">snd-urls</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#amplitude-modulate">amplitude-modulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nbdoc">file database</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-table-lookup">make-table-lookup</a></em></td><td></td><td><em class=tab><a href="extsnd.html#orientationhook">orientation-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndversion">snd-version</a></em></td></tr>
- <tr><td><em class=tab><a href="grfsnd.html#analyseladspa">analyse-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoarray">file-&gt;array</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-triangle-wave">make-triangle-wave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil">oscil</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarning">snd-warning</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#anyenvchannel">any-env-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframe">file-&gt;frame</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-pole">make-two-pole</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil?">oscil?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarninghook">snd-warning-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#appendsound">append-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframe?">file-&gt;frame?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-zero">make-two-zero</a></em></td><td></td><td><em class=tab><a href="sndscm.html#oscopedoc">oscilloscope dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndwarp">sndwarp</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#applycontrols">apply-controls</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample">file-&gt;sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makevariabledisplay">make-variable-display</a></em></td><td></td><td><em class=tab><a href="sndclm.html#out-any">out-any</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig"><b>Sound placement</b></a></em></td></tr>
- <tr><td><em class=tab><a href="grfsnd.html#applyladspa">apply-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample?">file-&gt;sample?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makevariablegraph">make-variable-graph</a></em></td><td></td><td><em class=tab><a href="sndclm.html#outa">outa</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtoamp_env">sound-&gt;amp-env</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#arraytofile">array-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filetosounddata">file-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makevct">make-vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*output*">*output*</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtoframe">sound-&gt;frame</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#array-interp">array-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filetovct">file-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-wave-train">make-wave-train</a></em></td><td></td><td><em class=tab><a href="extsnd.html#outputcommenthook">output-comment-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtosounddata">sound-&gt;sound-data</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#asoneedit">as-one-edit</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filename">file-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mapchannel">map-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#outputnamehook">output-name-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundtointeger">sound->integer</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#askbeforeoverwrite">ask-before-overwrite</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfilename"><b>file-name (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#mapsound">map-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#overlayrmsenv">overlay-rms-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndsounddata"><b>sound-data</b></a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm">asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfill"><b>fill! (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#mapsoundfiles">map-sound-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#padchannel">pad-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddata*">sound-data*</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm?">asymmetric-fm?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillpolygon">fill-polygon</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maracadoc">maracas</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padmarks">pad-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddata+">sound-data+</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#audioinputdevice">audio-input-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillrectangle">fill-rectangle</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktointeger">mark->integer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padsound">pad-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sounddatatofile">sound-data-&gt;file</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#audiooutputdevice">audio-output-device</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter">filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markclickhook">mark-click-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmix">pan-mix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sounddatatoframe">sound-data-&gt;frame</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#autoresize">auto-resize</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterchannel">filter-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markcolor">mark-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmixvct">pan-mix-vct</A></em></td><td></td><td><em class=tab><a href="sndscm.html#sounddatatosound">sound-data-&gt;sound</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#autosavedoc">auto-save</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolcoeffs">filter-control-coeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markdraghook">mark-drag-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstopolynomial">partials-&gt;polynomial</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatatosounddata">sound-data-&gt;sound-data</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#autoupdate">auto-update</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolenvelope">filter-control-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markdragtrianglehook">mark-drag-triangle-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstowave">partials-&gt;wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatatovct">sound-data-&gt;vct</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#autoupdateinterval">auto-update-interval</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolindB">filter-control-in-dB</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markexplode">mark-explode</a></em></td><td></td><td><em class=tab><a href="extsnd.html#pausing">pausing</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataadd">sound-data-add!</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#autocorrelate">autocorrelate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolinhz">filter-control-in-hz</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhome">mark-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peakenvhook">peak-env-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatachans">sound-data-chans</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#axiscolor">axis-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolorder">filter-control-order</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhook">mark-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peakenvinfo">peak-env-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatacopy">sound-data-copy</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#axisinfo">axis-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterwaveformcolor">filter-control-waveform-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markloops">mark-loops</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaks">peaks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatafill">sound-data-fill!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#axislabelfont">axis-label-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolp">filter-control?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markname">mark-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaksfont">peaks-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatalength">sound-data-length</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#axisnumbersfont">axis-numbers-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterselection">filter-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#marknametoid">mark-name-&gt;id</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-partialstowave">phase-partials-&gt;wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatamaxamp">sound-data-maxamp</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#backgroundgradient">background-gradient</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filterselectionandsmooth">filter-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markproperties">mark-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder">phase-vocoder</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatamultiply">sound-data-multiply!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#badheaderhook">bad-header-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersound">filter-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markproperties">mark-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder?">phase-vocoder?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataoffset">sound-data-offset!</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#bagpipe">bagpipe</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter?">filter?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markproperty">mark-property</a></em></td><td></td><td><em class=tab><a href="sndscm.html#prc95doc"><b>Physical Models</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatapeak">sound-data-peak</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#basiccolor">basic-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb">filtered-comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksample">mark-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pianodoc">piano model</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataref">sound-data-ref</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#beatspermeasure">beats-per-measure</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb?">filtered-comb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksync">mark-sync</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pink-noise">pink-noise</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatareverse">sound-data-reverse!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#beatsperminute">beats-per-minute</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersinsnd"><b>Filters</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksyncmax">mark-sync-max</a></em></td><td></td><td><em class=tab><a href="sndscm.html#placesound">place-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatascale">sound-data-scale!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#beforeclosehook">before-close-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#findchannel">find-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagheight">mark-tag-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#play">play</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataset">sound-data-set!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#beforeexithook">before-exit-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#finddialog">find-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagwidth">mark-tag-width</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playandwait">play-and-wait</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddata?">sound-data?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#beforesaveashook">before-save-as-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#findmark">find-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markp">mark?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playbetweenmarks">play-between-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfileextensions">sound-file-extensions</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#beforesavestatehook">before-save-state-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#findmix">find-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markstuff"><b>Marking</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#playchannel">play-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilep">sound-file?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#beforetransformhook">before-transform-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#findsound">find-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#emarks">marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playhook">play-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilesindirectory">sound-files-in-directory</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">bessel filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#finishprogressreport">finish-progress-report</a></em></td><td></td><td><em class=tab><a href="sndscm.html#matchsoundfiles">match-sound-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playmix">play-mix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundinterp">sound-interp</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#bigbird">bigbird</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter">fir-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixerdoc"><b>Matrices</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#playmixes">play-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sound-let">sound-let</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#bindkey">bind-key</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter?">fir-filter?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maxenvelope">max-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playregion">play-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundloopinfo">sound-loop-info</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#bird">bird</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant">firmant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxregions">max-regions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playselection">play-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundproperties">sound-properties</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#boldpeaksfont">bold-peaks-font</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant?">firmant?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxfftpeaks">max-transform-peaks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsines">play-sines</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundproperty">sound-property</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#bomb">bomb</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereoflute">flute model</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxvirtualptrees">max-virtual-ptrees</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsyncdmarks">play-syncd-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundwidgets">sound-widgets</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#break">break</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmbell">fm-bell</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxamp">maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerhome">player-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundp">sound?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#brown-noise">brown-noise</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmdrum">fm-drum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericmaxamp"><b>maxamp (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerQ">player?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfontinfo">soundfont-info</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">butterworth filters</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmnoise">fm-noise</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxampposition">maxamp-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#players">players</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounds">sounds</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cgx">c-g!</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvox">fm-talker</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxampexamples"><b>Maxamps</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#playexamples"><b>Playing</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#twotab">spectral interpolation</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cgp">c-g?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmtrumpet">fm-trumpet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#menuwidgets">menu-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playing">playing</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectralpolynomial">spectral-polynomial</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#callin">call_in</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vdoc">fm-violin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#menusdoc">menus, optional</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pluck">pluck</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrohop">spectro-hop</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#cascadetocanonical">cascade-&gt;canonical</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reson">fm-voice</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mindb">min-dB</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandladspa"><b>Plugins</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxangle">spectro-x-angle</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#chaindsps">chain-dsps</a></em></td><td></td><td><em class=tab><a href="sndscm.html#focusfollowsmouse">focus-follows-mouse</a></em></td><td></td><td><em class=tab><a href="extsnd.html#minibufferhistorylength">minibuffer-history-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polartorectangular">polar-&gt;rectangular</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxscale">spectro-x-scale</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channeltovct">channel-&gt;vct</a></em></td><td></td><td><em class=tab><a href="extsnd.html#focuswidget">focus-widget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mix">mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polynomial">polynomial</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyangle">spectro-y-angle</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channelampenvs">channel-amp-envs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fofins">FOF synthesis</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixtovct">mix-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndscm.html#polydoc">polynomial operations</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyscale">spectro-y-scale</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channeldata">channel-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachchild">for-each-child</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtointeger">mix->integer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid">polyoid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozangle">spectro-z-angle</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#channelenvelope">channel-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachsoundfile">for-each-sound-file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixamp">mix-amp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoidenv">polyoid-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozscale">spectro-z-scale</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#channelpolynomial">channel-polynomial</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fp">Forbidden Planet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixampenv">mix-amp-env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid?">polyoid?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#spectrum">spectrum</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channelproperties">channel-properties</a></em></td><td></td><td><em class=tab><a href="extsnd.html#foregroundcolor">foreground-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixchannel">mix-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape">polyshape</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectrumtocoeffs">spectrum-&gt;coeffs</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#channelproperty">channel-property</a></em></td><td></td><td><em class=tab><a href="extsnd.html#forgetregion">forget-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixclickhook">mix-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape?">polyshape?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumend">spectrum-end</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#channelrms">channel-rms</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant">formant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixcolor">mix-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave">polywave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumstart">spectrum-start</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channelstyle">channel-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant?">formant?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdialogmix">mix-dialog-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave?">polywave?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrol">speed-control</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#channelsync">channel-sync</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandforth"><b>Forth</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdraghook">mix-drag-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontox">position-&gt;x</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrolbounds">speed-control-bounds</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channelwidgets">channel-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fouriertransform">fourier-transform</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixfiledialog">mix-file-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontoy">position-&gt;y</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedstyle">speed-control-style</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channels">channels</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fractionalfouriertransform">fractional-fourier-transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixframe">mix-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positioncolor">position-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedtones">speed-control-tones</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#genericchannels"><b>channels (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame1">frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixhome">mix-home</a></em></td><td></td><td><em class=tab><a href="sndscm.html#powerenv">power-env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave">square-wave</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#channelsequal">channels-equal?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame*">frame*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixlength">mix-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#preferencesdialog">preferences-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave?">square-wave?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#channelstyleconstants">channels-separate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame+">frame+</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixmaxamp">mix-maxamp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#previousframe">previous-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#squelchupdate">squelch-update</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#channels=">channels=?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametofile">frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixmovesound">mix-move-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#previoussample">previous-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#squelchvowels">squelch-vowels</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#chans">chans</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametofile?">frame-&gt;file?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixname">mix-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printdialog">print-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srate">srate</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">chebyshev filters</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametoframe">frame-&gt;frame</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixnametoid">mix-name-&gt;id</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printhook">print-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsrate"><b>srate (generic)</b></a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#checkforunsavededits">check-for-unsaved-edits</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametolist">frame-&gt;list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixposition">mix-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printlength">print-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#src">src</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#cleanchannel">clean-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametosample">frame-&gt;sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixproperties">mix-properties</a></em></td><td></td><td><em class=tab><a href="sndscm.html#profile">profile</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcchannel">src-channel</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#cleansound">clean-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#frametosound">frame-&gt;sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixproperty">mix-property</a></em></td><td></td><td><em class=tab><a href="extsnd.html#progressreport">progress-report</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcduration">src-duration</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#clear-array">clear-array</a></em></td><td></td><td><em class=tab><a href="sndscm.html#frametosounddata">frame-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixregion">mix-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#promptinminibuffer">prompt-in-minibuffer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcmixes">src-mixes</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#clearlistener">clear-listener</a></em></td><td></td><td><em class=tab><a href="sndscm.html#frametovct">frame-&gt;vct</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixreleasehook">mix-release-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ptreechannel">ptree-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsoundselection">src-selection</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#clearminibuffer">clear-minibuffer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framecopy">frame-copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsamplerQ">mix-sampler?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train">pulse-train</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsound">src-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#clearselection">clear-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderatendQ">frame-reader-at-end?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixselection">mix-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train?">pulse-train?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#src?">src?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cliphook">clip-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderchans">frame-reader-chans</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixsound">mix-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#pushedbuttoncolor">pushed-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am">ssb-am</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#clipping">clipping</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderhome">frame-reader-home</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixsounddata">mix-sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#quitbuttoncolor">quit-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am?">ssb-am?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#clmchannel">clm-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderposition">frame-reader-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixspeed">mix-speed</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstodegrees">radians-&gt;degrees</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbank">ssb-bank</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#clmload">clm-load</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderQ">frame-reader?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsync">mix-sync</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstohz">radians-&gt;hz</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbankenv">ssb-bank-env</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#clonesoundas">clone-sound-as</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame-ref">frame-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsyncmax">mix-sync-max</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rampchannel">ramp-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbfm">ssb-fm</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#closehook">close-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereverse">frame-reverse!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagheight">mix-tag-height</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand">rand</a></em></td><td></td><td><em class=tab><a href="extsnd.html#starthook">start-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#closesound">close-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame-set!">frame-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagwidth">mix-tag-width</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp">rand-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplaying">start-playing</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colortolist">color-&gt;list</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame?">frame?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagy">mix-tag-y</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp?">rand-interp?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayinghook">start-playing-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colorcutoff">color-cutoff</a></em></td><td></td><td><em class=tab><a href="sndclm.html#framedoc"><b>frames</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixvct">mix-vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand?">rand?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayingselectionhook">start-playing-selection-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colorhook">color-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#frames">frames</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixwaveformheight">mix-waveform-height</a></em></td><td></td><td><em class=tab><a href="sndscm.html#allrandomnumbers"><b>Random Numbers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#startprogressreport">start-progress-report</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colorinverted">color-inverted</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericframes"><b>frames (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixp">mix?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#readframe">read-frame</a></em></td><td></td><td><em class=tab><a href="sndscm.html#startwaterfall">start-waterfall</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#colormixes">color-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#freeframereader">free-frame-reader</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer1">mixer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readhook">read-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereotomono">stereo-&gt;mono</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colororientationdialog">color-orientation-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freeplayer">free-player</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixermultiply">mixer*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readmixsample">read-mix-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopdachook">stop-dac-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colorscale">color-scale</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freesampler">free-sampler</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixerdoc">mixer as matrix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readonly">read-only</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayer">stop-player</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colorp">color?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#freeverb">freeverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixeradd">mixer+</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readpeakenvinfofile">read-peak-env-info-file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplaying">stop-playing</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colormap">colormap</a></em></td><td></td><td><em class=tab><a href="fm.html#fmintro"><b>Frequency Modulation</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixercopy">mixer-copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readregionsample">read-region-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayinghook">stop-playing-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colormapname">colormap-name</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fullmix">fullmix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-determinant">mixer-determinant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readsample">read-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayingselectionhook">stop-playing-selection-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colormapref">colormap-ref</a></em></td><td></td><td><em class=tab><a href="sndscm.html#gaussiandistribution">gaussian-distribution</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-inverse">mixer-inverse</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin">readin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stretchenvelope">stretch-envelope</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colormapsize">colormap-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcoff">gc-off</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-poly">mixer-poly</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin?">readin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#superimposeffts">superimpose-ffts</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colormapp">colormap?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcon">gc-on</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer-ref">mixer-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#recorderdialog">recorder-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#swapchannels">swap-channels</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#colors"><b>Colors</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#generators"><b>Generators</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer-set!">mixer-set!</a></em></td><td></td><td><em class=tab><a href="snd.html#recordfile"><b>Recording</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#swapselectionchannels">swap-selection-channels</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#comb">comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glgraphtops">gl-graph-&gt;ps</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-solve">mixer-solve</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartomagnitudes">rectangular-&gt;magnitudes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sync">sync</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#comb?">comb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glspectrogram">glSpectrogram</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-transpose">mixer-transpose</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartopolar">rectangular-&gt;polar</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsync"><b>sync (generic)</b></a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#comment">comment</a></em></td><td></td><td><em class=tab><a href="sndscm.html#goertzel">goertzel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer?">mixer?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#redo">redo</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sync-all">sync-all</a></em></td></tr>
- <tr><td><em class=tab><a href="grfsnd.html#sndwithcm"><b>Common Music</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#gotolistenerend">goto-listener-end</a></em></td><td></td><td><em class=tab><a href="sndclm.html#framedoc"><b>mixers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#redochannel">redo-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncmax">sync-max</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#compandchannel">compand-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#grani">grani</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixes">mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#redoedit">redo-edit</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncdmarks">syncd-marks</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#compandsound">compand-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#grains"><b>Granular synthesis</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndmixes"><b>Mixing</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#regiontoframe">region-&gt;frame</a></em></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup">table-lookup</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#concatenateenvelopes">concatenate-envelopes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate">granulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#monotostereo">mono-&gt;stereo</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regiontosounddata">region-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup?">table-lookup?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#continue-frametofile">continue-frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate?">granulate?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#moogfilter">moog-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontovct">region-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#tap">tap</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#continue-sampletofile">continue-sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndscm.html#granulatedsoundinterp">granulated-sound-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseclickhook">mouse-click-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontointeger">region->integer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#telephone">telephone</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#contrastchannel">contrast-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graph">graph</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousedraghook">mouse-drag-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionchans">region-chans</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tempdir">temp-dir</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#contrastcontrol">contrast-control</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphtops">graph-&gt;ps</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentergraphhook">mouse-enter-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionframes">region-frames</a></em></td><td></td><td><em class=tab><a href="extsnd.html#textfocuscolor">text-focus-color</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#contrastcontrolamp">contrast-control-amp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcolor">graph-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlabelhook">mouse-enter-label-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiongraphstyle">region-graph-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphhook">time-graph-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#contrastcontrolbounds">contrast-control-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcursor">graph-cursor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlistenerhook">mouse-enter-listener-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionhome">region-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphstyle">time-graph-style</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#contrastcontrolp">contrast-control?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphdata">graph-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentertexthook">mouse-enter-text-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxamp">region-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphtype">time-graph-type</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#contrast-enhancement">contrast-enhancement</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphhook">graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavegraphhook">mouse-leave-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxampposition">region-maxamp-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphp">time-graph?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#contrastsound">contrast-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphlines">graph-lines</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavelabelhook">mouse-leave-label-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regionplaylist">region-play-list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tinyfont">tiny-font</a></em></td></tr>
- <tr><td><em class=tab><a href="snd.html#controls"><b>Control Panel</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphstyle">graph-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavelistenerhook">mouse-leave-listener-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionposition">region-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursors"><b>Tracking cursors</b></a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#controlstochannel">controls-&gt;channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#grapheq">graphic equalizer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavetexthook">mouse-leave-text-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsample">region-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursorstyle">tracking-cursor-style</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#convolution">convolution</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphshorizontal">graphs-horizontal</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousepresshook">mouse-press-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsamplerQ">region-sampler?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtovct">transform-&gt;vct</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolution reverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise">green-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-locsig">move-locsig</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsrate">region-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformdialog">transform-dialog</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#convolve">convolve</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise-interp">green-noise-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#movemixes">move-mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionok">region?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformframes">transform-frames</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#convolvefiles">convolve-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#griddensity">grid-density</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound">move-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionstuff"><b>Regions</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphstyle">transform-graph-style</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#convolveselectionwith">convolve-selection-with</a></em></td><td></td><td><em class=tab><a href="sndscm.html#harmonicizer">harmonicizer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound?">move-sound?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#eregions">regions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphtype">transform-graph-type</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolve-with</a></em></td><td></td><td><em class=tab><a href="sndscm.html#dht">Hartley transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation">moving-autocorrelation</A></em></td><td></td><td><em class=tab><a href="sndscm.html#remembersoundstate">remember-sound-state</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphp">transform-graph?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#convolve?">convolve?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#headertype">header-type</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation?">moving-autocorrelation?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#removefrommenu">remove-from-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#normalizefft">transform-normalization</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#genericcopy"><b>copy (generic)</b></a></em></td><td></td><td><em class=tab><a href="snd.html#formats"><b>Headers and Data formats</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average">moving-average</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reportinminibuffer">report-in-minibuffer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsample">transform-sample</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#copyframereader">copy-frame-reader</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hellodentist">hello-dentist</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average?">moving-average?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resampleexamples"><b>Resampling</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsize">transform-size</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#copysampler">copy-sampler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helpbuttoncolor">help-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft">moving-fft</A></em></td><td></td><td><em class=tab><a href="sndscm.html#resetallhooks">reset-all-hooks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtype">transform-type</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#copying"><b>Copying</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#helpdialog">help-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft?">moving-fft?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#resetbuttoncolor">reset-button-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformp">transform?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#correlate">correlate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helphook">help-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-length">moving-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetcontrols">reset-controls</a></em></td><td></td><td><em class=tab><a href="sndscm.html#transposemixes">transpose-mixes</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#countmatches">count-matches</a></em></td><td></td><td><em class=tab><a href="extsnd.html#hidewidget">hide-widget</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-max">moving-max</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetlistenercursor">reset-listener-cursor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trapsegfault">trap-segfault</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#createssbdialog">create-ssb-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#highlightcolor">highlight-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch">moving-pitch</A></em></td><td></td><td><em class=tab><a href="extsnd.html#restorecontrols">restore-controls</a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave">triangle-wave</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#mixdoc">cross-fade (amplitude)</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hilberttransform">hilbert-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch?">moving-pitch?</A></em></td><td></td><td><em class=tab><a href="sndscm.html#reverbexamples"><b>Reverb</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave?">triangle-wave?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#fadedoc">cross-fade (frequency domain)</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hookmember">hook-member</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-rms">moving-rms</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*reverb*">*reverb*</a></em></td><td></td><td><em class=tab><a href="sndscm.html#tubebell">tubular bell</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#crosssynthesis">cross-synthesis</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhooks"><b>Hooks</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid">moving-scentroid</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbdecay">reverb-control-decay</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole">two-pole</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#currenteditposition">current-edit-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmldir">html-dir</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid?">moving-scentroid?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolfeedback">reverb-control-feedback</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole?">two-pole?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#currentfont">current-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmlprogram">html-program</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum">moving-spectrum</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollength">reverb-control-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero">two-zero</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursor">cursor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#hztoradians">hz-&gt;radians</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum?">moving-spectrum?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollengthbounds">reverb-control-length-bounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero?">two-zero?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorcolor">cursor-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter">iir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-sum">moving-sum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollowpass">reverb-control-lowpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#unbindkey">unbind-key</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorfollowsplay">cursor-follows-play</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter?">iir-filter?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mpg">mpg</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscale">reverb-control-scale</a></em></td><td></td><td><em class=tab><a href="sndscm.html#unclipchannel">unclip-channel</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorchoices">cursor-in-view</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gin">in</a></em></td><td></td><td><em class=tab><a href="sndclm.html#multiply-arrays">multiply-arrays</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscalebounds">reverb-control-scale-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undo">undo</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorlocationoffset">cursor-location-offset</a></em></td><td></td><td><em class=tab><a href="sndclm.html#in-any">in-any</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffersize">mus-alsa-buffer-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolp">reverb-control?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undoexamples"><b>Undo and Redo</b></a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorposition">cursor-position</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ina">ina</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffers">mus-alsa-buffers</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversechannel">reverse-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undochannel">undo-channel</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorsize">cursor-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#inb">inb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsacapturedevice">mus-alsa-capture-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversechannels">reverse-channels</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undoedit">undo-edit</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorstyle">cursor-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#infodialog">info-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsadevice">mus-alsa-device</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reverseenvelope">reverse-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undohook">undo-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorupdateinterval">cursor-update-interval</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#initladspa">init-ladspa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsaplaybackdevice">mus-alsa-playback-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseselection">reverse-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#updategraphs">update-graphs</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cursorexamples"><b>Cursors</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#initialgraphhook">initial-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsasquelchwarning">mus-alsa-squelch-warning</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversesound">reverse-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatehook">update-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#dacfolding">dac-combines-channels</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndinitfile"><b>Initialization file</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#musarrayprintlength">mus-array-print-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseexamples"><b>Reversing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatelispgraph">update-lisp-graph</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#dachook">dac-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertchannel">insert-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioclose">mus-audio-close</a></em></td><td></td><td><em class=tab><a href="extsnd.html#revertsound">revert-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatesound">update-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#dacsize">dac-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertfiledialog">insert-file-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiodescribe">mus-audio-describe</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rightsample">right-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetimegraph">update-time-graph</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#datacolor">data-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertframe">insert-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiomixerread">mus-audio-mixer-read</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ring-modulate">ring-modulate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetransformgraph">update-transform-graph</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#dataformat">data-format</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertregion">insert-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiomixerwrite">mus-audio-mixer-write</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndmotifdoc">user interface extensions</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#datalocation">data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsample">insert-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioopeninput">mus-audio-open-input</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms, gain, balance gens</a></em></td><td></td><td><em class=tab><a href="sndscm.html#variabledisplay">variable-display</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#datasize">data-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsamples">insert-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioopenoutput">mus-audio-open-output</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsenvelope">rms-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#variablegraphp">variable-graph?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#dbtolinear">db-&gt;linear</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertselection">insert-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioread">mus-audio-read</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rotatechannel">rotate-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vct">vct</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#cdebugging"><b>Debugging (C)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsilence">insert-silence</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioreport">mus-audio-report</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rubbersound">rubber-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttimes">vct*</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#variabledisplay"><b>Debugging (instruments)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsound">insert-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiowrite">mus-audio-write</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandruby"><b>Ruby</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctplus">vct+</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#snderrors"><b>Debugging (Scheme)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertsounddata">insert-sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musbytespersample">mus-bytes-per-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#run">run</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttochannel">vct-&gt;channel</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#def-clm-struct">def-clm-struct</a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertvct">insert-vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-channel">mus-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#run">run</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vcttofile">vct-&gt;file</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#defaultoutputchans">default-output-chans</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertionexamples"><b>Insertions</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-channels">mus-channels</a></em></td><td></td><td><em class=tab><a href="s7.html#s7doc"><b>s7 scheme</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#vcttoframe">vct-&gt;frame</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#defaultoutputdataformat">default-output-data-format</a></em></td><td></td><td><em class=tab><a href="sndclm.html#instruments"><b>Instruments</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-chebyshev-tu-sum">mus-chebyshev-tu-sum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sample">sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttolist">vct-&gt;list</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#defaultoutputheadertype">default-output-header-type</a></em></td><td></td><td><em class=tab><a href="sndclm.html#instruments">instruments</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musclipping">mus-clipping</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile">sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttosounddata">vct-&gt;sound-data</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#defaultoutputsrate">default-output-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomark">integer-&gt;mark</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-close">mus-close</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile?">sample-&gt;file?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttostring">vct-&gt;string</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#defgenerator">defgenerator</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomix">integer-&gt;mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-data">mus-data</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletoframe">sample-&gt;frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttovector">vct-&gt;vector</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#defineenvelope">define-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertoregion">integer-&gt;region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musdataformattostring">mus-data-format-&gt;string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sampleratendQ">sampler-at-end?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctadd">vct-add!</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#defineselectionviamarks">define-selection-via-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertosound">integer-&gt;sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musdataformatname">mus-data-format-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerhome">sampler-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctcopy">vct-copy</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#definstrument">definstrument</a></em></td><td></td><td><em class=tab><a href="sndscm.html#integrateenvelope">integrate-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-describe">mus-describe</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerposition">sampler-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctfill">vct-fill!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#defvar">defvar</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndswitches"><b>Invocation flags</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrorhook">mus-error-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerQ">sampler?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctlength">vct-length</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#degreestoradians">degrees-&gt;radians</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandjack"><b>Jack</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrortypetostring">mus-error-type-&gt;string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplers"><b>samplers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctmap">vct-map!</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#delay">delay</a></em></td><td></td><td><em class=tab><a href="sndscm.html#jcreverb">jc-reverb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musexpandfilename">mus-expand-filename</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samples">samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctmove">vct-move!</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#delaychannelmixes">delay-channel-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#jcrevdoc">jc-reverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedback">mus-feedback</a></em></td><td></td><td><em class=tab><a href="sndclm.html#samplestoseconds">samples-&gt;seconds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctmultiply">vct-multiply!</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#delaytick">delay-tick</a></em></td><td></td><td><em class=tab><a href="extsnd.html#justsounds">just-sounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedforward">mus-feedforward</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sashcolor">sash-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctoffset">vct-offset!</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#delay?">delay?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#kalmanfilterchannel">kalman-filter-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfft">mus-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savecontrols">save-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctpeak">vct-peak</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletecolormap">delete-colormap</a></em></td><td></td><td><em class=tab><a href="extsnd.html#key">key</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musfilebuffersize">mus-file-buffer-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savedir">save-dir</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vctpolynomial">vct-polynomial</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletefilefilter">delete-file-filter</a></em></td><td></td><td><em class=tab><a href="snd.html#builtinkeys"><b>Key bindings</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfileclipping">mus-file-clipping</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveedithistory">save-edit-history</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctref">vct-ref</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletefilesorter">delete-file-sorter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keybinding">key-binding</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-file-name">mus-file-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveenvelopes">save-envelopes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctreverse">vct-reverse!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletemark">delete-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keypresshook">key-press-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfileprescaler">mus-file-prescaler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savehook">save-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctscale">vct-scale!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletemarks">delete-marks</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#ladspadescriptor">ladspa-descriptor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musfloatequalfudgefactor">mus-float-equal-fudge-factor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savelistener">save-listener</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctset">vct-set!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletesample">delete-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ladspadir">ladspa-dir</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-frequency">mus-frequency</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemacros">save-macros</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctsubseq">vct-subseq</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletesamples">delete-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#leftsample">left-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musgeneratorp">mus-generator?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#savemarkproperties">save-mark-properties</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctsubtract">vct-subtract!</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deleteselection">delete-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericlength"><b>length (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheaderrawdefaults">mus-header-raw-defaults</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemarks">save-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctp">vct?</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#deleteselectionandsmooth">delete-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makelevelmeter">level meters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypetostring">mus-header-type-&gt;string</a></em></td><td></td><td><em class=tab><a href="sndscm.html#savemix">save-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#Vcts"><b>Vcts</b></a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletetransform">delete-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#lineartodb">linear-&gt;db</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypename">mus-header-type-name</a></em></td><td></td><td><em class=tab><a href="sndscm.html#savemixes">save-mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vectortovct">vector-&gt;vct</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletewatcher">delete-watcher</a></em></td><td></td><td><em class=tab><a href="sndscm.html#linearsrcchannel">linear-src-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-hop">mus-hop</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregion">save-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#verbosecursor">verbose-cursor</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#deletionexamples"><b>Deletions</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphhook">lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-increment">mus-increment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregiondialog">save-region-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesamp">view-files-amp</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#describehook">describe-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphstyle">lisp-graph-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-input?">mus-input?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselection">save-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesampenv">view-files-amp-env</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#describemark">describe-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphp">lisp-graph?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interp-type">mus-interp-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselectiondialog">save-selection-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesdialog">view-files-dialog</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#dialogwidgets">dialog-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listtovct">list-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interpolate">mus-interpolate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesound">save-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesfiles">view-files-files</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#disablecontrolpanel">disable-control-panel</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#listladspa">list-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-length">mus-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesoundas">save-sound-as</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselecthook">view-files-select-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#displaybarkfft">display-bark-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerclickhook">listener-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-location">mus-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesounddialog">save-sound-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselectedfiles">view-files-selected-files</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#displaydb">display-db</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenercolor">listener-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxmalloc">mus-max-malloc</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestate">save-state</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilessort">view-files-sort</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#displayedits">display-edits</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerfont">listener-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxtablesize">mus-max-table-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatefile">save-state-file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeed">view-files-speed</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#displayscannedsynthesis">display-scanned-synthesis</A></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerprompt">listener-prompt</a></em></td><td></td><td><em class=tab><a href="sndscm.html#musmix">mus-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatehook">save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeedstyle">view-files-speed-style</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#dissolvefade">dissolve-fade</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerselection">listener-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-name">mus-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveexamples"><b>Saving</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewmixesdialog">view-mixes-dialog</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#ditherchannel">dither-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenertextcolor">listener-text-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musnetbsdsetoutputs">mus-netbsd-set-outputs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sgfilter">savitzky-golay-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewregionsdialog">view-regions-dialog</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#dithersound">dither-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#littleendianp">little-endian?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-offset">mus-offset</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave">sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewsound">view-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#dlocsig">dlocsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig">locsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-order">mus-order</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave?">sawtooth-wave?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ptreechannel"><b>Virtual Edits</b></a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#dop">do?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-ref">locsig-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musosssetbuffers">mus-oss-set-buffers</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleby">scale-by</a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">voice physical model</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#doitagainbuttoncolor">doit-again-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-ref">locsig-reverb-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musoutformat">mus-out-format</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scalechannel">scale-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#voicedtounvoiced">voiced-&gt;unvoiced</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#doitbuttoncolor">doit-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-set!">locsig-reverb-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-output?">mus-output?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaleenvelope">scale-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#volterrafilter">volterra-filter</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#dot-product">dot-product</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-set!">locsig-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-phase">mus-phase</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalemixes">scale-mixes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train">wave-train</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#dotsize">dot-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-type">locsig-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musprescaler">mus-prescaler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionby">scale-selection-by</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train?">wave-train?</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawaxes">draw-axes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig?">locsig?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ramp">mus-ramp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionto">scale-selection-to</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavelettype">wavelet-type</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawdot">draw-dot</a></em></td><td></td><td><em class=tab><a href="extsnd.html#logfreqstart">log-freq-start</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-random">mus-random</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalesound">scale-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqwvox">waveshaping voice</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawdots">draw-dots</a></em></td><td></td><td><em class=tab><a href="sndscm.html#loopbetweenmarks">loop-between-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-reset">mus-reset</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaletempo">scale-tempo</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavohop">wavo-hop</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawline">draw-line</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpccoeffs">lpc-coeffs</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-run">mus-run</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleto">scale-to</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavotrace">wavo-trace</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawlines">draw-lines</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpcpredict">lpc-predict</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-safety">mus-safety</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scanchannel">scan-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#weighted-moving-average">weighted-moving-average</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawmarkhook">draw-mark-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainmenu">main-menu</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-scaler">mus-scaler</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scansound">scan-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetposition">widget-position</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawmixhook">draw-mix-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainwidgets">main-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundchans">mus-sound-chans</a></em></td><td></td><td><em class=tab><a href="sndscm.html#dspdocscanned">scanned synthesis</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetsize">widget-size</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drawstring">draw-string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-all-pass">make-all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcloseinput">mus-sound-close-input</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scentroid">scentroid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgettext">widget-text</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#makedropsite">drop sites</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-asymmetric-fm">make-asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcloseoutput">mus-sound-close-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scriptarg">script-arg</a></em></td><td></td><td><em class=tab><a href="extsnd.html#movingwindows"><b>Window size and position</b></a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#drophook">drop-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandpass">make-bandpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcomment">mus-sound-comment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scriptargs">script-args</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowheight">window-height</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#duringopenhook">during-open-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandstop">make-bandstop</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddataformat">mus-sound-data-format</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndwithnogui"><b>Scripting</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowproperty">window-property</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#editlists"><b>Edit lists</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebiquad">make-biquad</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatalocation">mus-sound-data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchprocedure">search-procedure</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowpropertychangedhook">window-property-changed-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#editfragment">edit-fragment</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebirds">make-birds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatumsize">mus-sound-datum-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchexamples"><b>Searching</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#windowsamples">window-samples</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#editheaderdialog">edit-header-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makecolor">make-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundduration">mus-sound-duration</a></em></td><td></td><td><em class=tab><a href="sndclm.html#secondstosamples">seconds-&gt;samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowwidth">window-width</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#edithook">edit-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-comb">make-comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundforget">mus-sound-forget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectall">select-all</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowx">window-x</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#editlisttofunction">edit-list-&gt;function</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-convolve">make-convolve</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundframes">mus-sound-frames</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannel">select-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowy">window-y</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#editposition">edit-position</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makecurrentwindowdisplay">make-current-window-display</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundheadertype">mus-sound-header-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannelhook">select-channel-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withbackgroundprocesses">with-background-processes</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#editproperties">edit-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-delay">make-delay</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundlength">mus-sound-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsound">select-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withfilemonitor">with-file-monitor</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#editproperty">edit-property</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makedifferentiator">make-differentiator</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundloopinfo">mus-sound-loop-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsoundhook">select-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withgl">with-gl</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#edittree">edit-tree</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-env">make-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmarkinfo">mus-sound-mark-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedchannel">selected-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withlocalhook">with-local-hook</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#edits">edits</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fft-window">make-fft-window</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxamp">mus-sound-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selecteddatacolor">selected-data-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withmarkedsound">with-marked-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#edot-product">edot-product</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetoframe">make-file-&gt;frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxampexists">mus-sound-maxamp-exists?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedgraphcolor">selected-graph-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#with-mix">with-mix</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">elliptic filters</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetosample">make-file-&gt;sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundopeninput">mus-sound-open-input</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedsound">selected-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withmixtags">with-mix-tags</a></em></td></tr>
- <tr><td><em class=tab><a href="grfsnd.html#emacssnd"><b>Emacs and Snd</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filter">make-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundopenoutput">mus-sound-open-output</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectiontosounddata">selection-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withmixedsound">with-mixed-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#emacsstylesaveas">emacs-style-save-as</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filtered-comb">make-filtered-comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundprune">mus-sound-prune</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionchans">selection-chans</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withmixedsoundtonotelist">with-mixed-sound-&gt;notelist</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#env">env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fir-filter">make-fir-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundread">mus-sound-read</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncolor">selection-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withrelativepanes">with-relative-panes</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#env-any">env-any</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-firmant">make-firmant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundreopenoutput">mus-sound-reopen-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncreatesregion">selection-creates-region</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withreopenmenu">with-reopen-menu</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envchannel">env-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-formant">make-formant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundreportcache">mus-sound-report-cache</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionframes">selection-frames</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withsound">with-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envchannelwithbase">env-channel-with-base</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frame">make-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsamples">mus-sound-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxamp">selection-maxamp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withtempsound">with-temp-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#envexptchannel">env-expt-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frame!">make-frame!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundseekframe">mus-sound-seek-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxampposition">selection-maxamp-position</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withtemporaryselection">with-temporary-selection</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#env-interp">env-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frametofile">make-frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsrate">mus-sound-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmember">selection-member?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withthreadedchannels">with-threaded-channels</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#envmixes">env-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeframereader">make-frame-reader</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundtypespecifier">mus-sound-type-specifier</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectionmembers">selection-members</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withthreadedsound">with-threaded-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envselection">env-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-granulate">make-granulate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundwrite">mus-sound-write</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionposition">selection-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withtrackingcursor">with-tracking-cursor</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envsound">env-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makegraphdata">make-graph-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundwritedate">mus-sound-write-date</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionsrate">selection-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withverbosecursor">with-verbose-cursor</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#envsoundinterp">env-sound-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehiddencontrolsdialog">make-hidden-controls-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mussrate">mus-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionok">selection?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#writepeakenvinfofile">write-peak-env-info-file</a></em></td></tr>
- <tr><td><em class=tab><a href="sndclm.html#env?">env?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehighpass">make-highpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussunsetoutputs">mus-sun-set-outputs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionstuff"><b>Selections</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#xtoposition">x-&gt;position</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedbase">enved-base</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehilberttransform">make-hilbert-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-width">mus-width</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sendmozilla">send-mozilla</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxislabel">x-axis-label</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedclipping">enved-clip?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-iir-filter">make-iir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeff">mus-xcoeff</a></em></td><td></td><td><em class=tab><a href="sndscm.html#setglobalsync">set-global-sync</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxisstyle">x-axis-style</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#enveddialog">enved-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig">make-locsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeffs">mus-xcoeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#setsamples">set-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xbounds">x-bounds</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedenvelope">enved-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makelowpass">make-lowpass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeff">mus-ycoeff</a></em></td><td></td><td><em class=tab><a href="sndscm.html#shepardtone">shepard-tone</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xpositionslider">x-position-slider</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#filterenv">enved-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makemixsampler">make-mix-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeffs">mus-ycoeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#shortfilename">short-file-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xzoomslider">x-zoom-slider</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#filterenvorder">enved-filter-order</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-mixer">make-mixer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nameclickhook">name-click-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showaxes">show-axes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xrampchannel">xramp-channel</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedhook">enved-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-mixer!">make-mixer!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos">ncos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showcontrols">show-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ytoposition">y-&gt;position</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedin-dB">enved-in-dB</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-move-sound">make-move-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos?">ncos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#showdiskspace">show-disk-space</A></em></td><td></td><td><em class=tab><a href="extsnd.html#yaxislabel">y-axis-label</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedpower">enved-power</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-autocorrelation">make-moving-autocorrelation</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsound">new-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showgrid">show-grid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ybounds">y-bounds</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedstyle">enved-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-average">make-moving-average</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsounddialog">new-sound-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showindices">show-indices</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ypositionslider">y-position-slider</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedtarget">enved-target</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-fft">make-moving-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsoundhook">new-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showlistener">show-listener</a></em></td><td></td><td><em class=tab><a href="extsnd.html#yzoomslider">y-zoom-slider</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedwaving">enved-wave?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-pitch">make-moving-pitch</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newwidgethook">new-widget-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmarks">show-marks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ztransform">z-transform</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envedwaveformcolor">enved-waveform-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-scentroid">make-moving-scentroid</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nextframe">next-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmixwaveforms">show-mix-waveforms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zeropad">zero-pad</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#envelopeinterp">envelope-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-spectrum">make-moving-spectrum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nextsample">next-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#showselection">show-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipsound">zip-sound</a></em></td></tr>
- <tr><td><em class=tab><a href="sndscm.html#envelopedmix">enveloped-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ncos">make-ncos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noid">noid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showselectiontransform">show-selection-transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipper">zipper</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#envexamples"><b>Envelopes</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noid">make-noid</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cleandoc"><b>Noise Reduction</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#showsmptelabel">show-smpte-label</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomcolor">zoom-color</a></em></td></tr>
- <tr><td><em class=tab><a href="extsnd.html#epsbottommargin">eps-bottom-margin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-notch">make-notch</a></em></td><td></td><td><em class=tab><a href="extsnd.html#normalizechannel">normalize-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showsonogramcursor">show-sonogram-cursor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomfocusstyle">zoom-focus-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#abort">abort</a></em></td><td width=20></td><td><em class=tab><a href="extsnd.html#epsbottommargin">eps-bottom-margin</a></em></td><td width=20></td><td><em class=tab><a href="sndclm.html#make-notch">make-notch</a></em></td><td width=20></td><td><em class=tab><a href="extsnd.html#normalizechannel">normalize-channel</a></em></td><td width=20></td><td><em class=tab><a href="extsnd.html#showwidget">show-widget</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#addampcontrols">add-amp-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epsfile">eps-file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrxycos">make-nrxycos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizeenvelope">normalize-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showyzero">show-y-zero</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addcolormap">add-colormap</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epsleftmargin">eps-left-margin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrxysin">make-nrxysin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#normalizepartials">normalize-partials</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silenceallmixes">silence-all-mixes</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addcomment">add-comment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epssize">eps-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nsin">make-nsin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizesound">normalize-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silencemixes">silence-mixes</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#adddirectorytoviewfileslist">add-directory-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="sndscm.html#evalbetweenmarks">eval-between-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-pole">make-one-pole</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizedmix">normalized-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sinc-train">sinc-train</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addfilefilter">add-file-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#evaloverselection">eval-over-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-zero">make-one-zero</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch">notch</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sincwidth">sinc-width</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addfilesorter">add-file-sorter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#everysample">every-sample?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-oscil">make-oscil</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchchannel">notch-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineenvchannel">sine-env-channel</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addfiletoviewfileslist">add-file-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exit">exit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-phase-vocoder">make-phase-vocoder</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchoutrumbleandhiss">notch-out-rumble-and-hiss</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineramp">sine-ramp</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addmark">add-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exithook">exit-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makepixmap">make-pixmap</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchselection">notch-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">singer</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#addmarkpane">add-mark-pane</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrol">expand-control</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeplayer">make-player</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchsound">notch-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothchannel">smooth-channel</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addplayer">add-player</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolbounds">expand-control-bounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyoid">make-polyoid</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch?">notch?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothselection">smooth-selection</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addsoundfileextension">add-sound-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolhop">expand-control-hop</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyshape">make-polyshape</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nrev">nrev</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothsound">smooth-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addsourcefileextension">add-source-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontroljitter">expand-control-jitter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polywave">make-polywave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos">nrxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothexamples"><b>Smoothing</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addtomainmenu">add-to-main-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrollength">expand-control-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pulse-train">make-pulse-train</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos?">nrxycos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pins">SMS synthesis</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addtomenu">add-to-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolramp">expand-control-ramp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand">make-rand</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin">nrxysin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#snapmarktobeat">snap-mark-to-beat</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#addtooltip">add-tooltip</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolp">expand-control?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand-interp">make-rand-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin?">nrxysin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#snapmixtobeat">snap-mix-to-beat</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addtransform">add-transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#explodesf2">explode-sf2</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-readin">make-readin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin">nsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosample">snd-&gt;sample</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#addwatcher">add-watcher</a></em></td><td></td><td><em class=tab><a href="sndclm.html#exponentially-weighted-moving-average">exponentially-weighted-moving-average</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregion">make-region</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin?">nsin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosamplep">snd-&gt;sample?</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#spectra">additive synthesis</a></em></td><td></td><td><em class=tab><a href="extsnd.html#extractchannel">extract-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeregionframereader">make-region-frame-reader</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetchannel">offset-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndcolor">snd-color</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#afterapplycontrolshook">after-apply-controls-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#extractchannels">extract-channels</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregionsampler">make-region-sampler</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetsound">offset-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderror">snd-error</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#afteredithook">after-edit-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cellon">feedback fm</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sampletofile">make-sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole">one-pole</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderrorhook">snd-error-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#aftergraphhook">after-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fft">fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesampler">make-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole?">one-pole?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndfont">snd-font</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#afterlispgraphhook">after-lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="snd.html#fftsize">fft sizes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sawtooth-wave">make-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero">one-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndgcs">snd-gcs</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#afteropenhook">after-open-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftedit">fft-edit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-scalar-mixer">make-scalar-mixer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero?">one-zero?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhelp">snd-help</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#aftersaveashook">after-save-as-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogfrequency">fft-log-frequency</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeselection">make-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialog">open-file-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndscmhooks">snd-hooks</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#aftersavestatehook">after-save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogmagnitude">fft-log-magnitude</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeselectionframereader">make-selection-frame-reader</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialogdirectory">open-file-dialog-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndopenedsound">*snd-opened-sound*</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#aftertransformhook">after-transform-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsmoother">fft-smoother</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesndtosample">make-snd-&gt;sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openhook">open-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndprint">snd-print</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#all-pass">all-pass</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsquelch">fft-squelch</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makesoundbox">make-sound-box</a></em></td><td></td><td><em class=tab><a href="sndscm.html#opennextfileindirectory">open-next-file-in-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndspectrum">snd-spectrum</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#all-pass?">all-pass?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwindow">fft-window</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesounddata">make-sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsound">open-raw-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtempnam">snd-tempnam</a></em></td></tr>
+ <tr><td><em class=tab><a href="grfsnd.html#sndandalsa"><b>Alsa</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftalpha">fft-window-alpha</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-square-wave">make-square-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsoundhook">open-raw-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurl">snd-url</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#ampcontrol">amp-control</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftbeta">fft-window-beta</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-src">make-src</a></em></td><td></td><td><em class=tab><a href="extsnd.html#opensound">open-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurls">snd-urls</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#ampcontrolbounds">amp-control-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwithphases">fft-with-phases</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ssb-am">make-ssb-am</a></em></td><td></td><td><em class=tab><a href="extsnd.html#optimization">optimization</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndversion">snd-version</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#amplitude-modulate">amplitude-modulate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftexamples"><b>FFTs</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#makesyncframereader">make-sync-frame-reader</a></em></td><td></td><td><em class=tab><a href="extsnd.html#optimizationhook">optimization-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarning">snd-warning</a></em></td></tr>
+ <tr><td><em class=tab><a href="grfsnd.html#analyseladspa">analyse-ladspa</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nbdoc">file database</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-table-lookup">make-table-lookup</a></em></td><td></td><td><em class=tab><a href="extsnd.html#orientationhook">orientation-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarninghook">snd-warning-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#anyenvchannel">any-env-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoarray">file-&gt;array</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-triangle-wave">make-triangle-wave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil">oscil</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndwarp">sndwarp</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#appendsound">append-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframe">file-&gt;frame</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-pole">make-two-pole</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil?">oscil?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig"><b>Sound placement</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#applycontrols">apply-controls</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframe?">file-&gt;frame?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-zero">make-two-zero</a></em></td><td></td><td><em class=tab><a href="sndscm.html#oscopedoc">oscilloscope dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtoamp_env">sound-&gt;amp-env</a></em></td></tr>
+ <tr><td><em class=tab><a href="grfsnd.html#applyladspa">apply-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample">file-&gt;sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makevariabledisplay">make-variable-display</a></em></td><td></td><td><em class=tab><a href="sndclm.html#out-any">out-any</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtoframe">sound-&gt;frame</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#arraytofile">array-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample?">file-&gt;sample?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makevariablegraph">make-variable-graph</a></em></td><td></td><td><em class=tab><a href="sndclm.html#outa">outa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundtointeger">sound-&gt;integer</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#array-interp">array-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filetosounddata">file-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makevct">make-vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*output*">*output*</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtosounddata">sound-&gt;sound-data</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#asoneedit">as-one-edit</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filetovct">file-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-wave-train">make-wave-train</a></em></td><td></td><td><em class=tab><a href="extsnd.html#outputcommenthook">output-comment-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndsounddata"><b>sound-data</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#askbeforeoverwrite">ask-before-overwrite</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filename">file-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mapchannel">map-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#outputnamehook">output-name-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddata*">sound-data*</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm">asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfilename"><b>file-name (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#mapsound">map-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#overlayrmsenv">overlay-rms-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddata+">sound-data+</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm?">asymmetric-fm?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfill"><b>fill! (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#mapsoundfiles">map-sound-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#padchannel">pad-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sounddatatofile">sound-data-&gt;file</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#audioinputdevice">audio-input-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillpolygon">fill-polygon</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maracadoc">maracas</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padmarks">pad-marks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sounddatatoframe">sound-data-&gt;frame</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#audiooutputdevice">audio-output-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillrectangle">fill-rectangle</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktointeger">mark-&gt;integer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padsound">pad-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sounddatatosound">sound-data-&gt;sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#autoresize">auto-resize</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter">filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markclickhook">mark-click-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmix">pan-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatatosounddata">sound-data-&gt;sound-data</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#autosavedoc">auto-save</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterchannel">filter-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markcolor">mark-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmixvct">pan-mix-vct</A></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatatovct">sound-data-&gt;vct</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#autoupdate">auto-update</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolcoeffs">filter-control-coeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markdraghook">mark-drag-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstopolynomial">partials-&gt;polynomial</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataadd">sound-data-add!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#autoupdateinterval">auto-update-interval</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolenvelope">filter-control-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markdragtrianglehook">mark-drag-triangle-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstowave">partials-&gt;wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatachans">sound-data-chans</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#autocorrelate">autocorrelate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolindB">filter-control-in-dB</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markexplode">mark-explode</a></em></td><td></td><td><em class=tab><a href="extsnd.html#pausing">pausing</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatacopy">sound-data-copy</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#axiscolor">axis-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolinhz">filter-control-in-hz</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhome">mark-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peakenvhook">peak-env-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatafill">sound-data-fill!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#axisinfo">axis-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolorder">filter-control-order</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhook">mark-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peakenvinfo">peak-env-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatalength">sound-data-length</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#axislabelfont">axis-label-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterwaveformcolor">filter-control-waveform-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markloops">mark-loops</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaks">peaks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatamaxamp">sound-data-maxamp</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#axisnumbersfont">axis-numbers-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolp">filter-control?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markname">mark-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaksfont">peaks-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatamultiply">sound-data-multiply!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#backgroundgradient">background-gradient</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterselection">filter-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#marknametoid">mark-name-&gt;id</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-partialstowave">phase-partials-&gt;wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataoffset">sound-data-offset!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#badheaderhook">bad-header-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filterselectionandsmooth">filter-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markproperties">mark-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder">phase-vocoder</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatapeak">sound-data-peak</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#bagpipe">bagpipe</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersound">filter-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markproperties">mark-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder?">phase-vocoder?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataref">sound-data-ref</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#basiccolor">basic-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter?">filter?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markproperty">mark-property</a></em></td><td></td><td><em class=tab><a href="sndscm.html#prc95doc"><b>Physical Models</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatareverse">sound-data-reverse!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#beatspermeasure">beats-per-measure</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb">filtered-comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksample">mark-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pianodoc">piano model</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddatascale">sound-data-scale!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#beatsperminute">beats-per-minute</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb?">filtered-comb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksync">mark-sync</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pink-noise">pink-noise</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddataset">sound-data-set!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#beforeclosehook">before-close-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersinsnd"><b>Filters</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksyncmax">mark-sync-max</a></em></td><td></td><td><em class=tab><a href="sndscm.html#placesound">place-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounddata?">sound-data?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#beforeexithook">before-exit-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#findchannel">find-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagheight">mark-tag-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#play">play</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfileextensions">sound-file-extensions</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#beforesaveashook">before-save-as-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#finddialog">find-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagwidth">mark-tag-width</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericplay"><b>play (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilep">sound-file?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#beforesavestatehook">before-save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#findmark">find-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markp">mark?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playbetweenmarks">play-between-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilesindirectory">sound-files-in-directory</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#beforetransformhook">before-transform-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#findmix">find-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markstuff"><b>Marking</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#playhook">play-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundinterp">sound-interp</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">bessel filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#findsound">find-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#emarks">marks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playmixes">play-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sound-let">sound-let</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#bigbird">bigbird</a></em></td><td></td><td><em class=tab><a href="extsnd.html#finishprogressreport">finish-progress-report</a></em></td><td></td><td><em class=tab><a href="sndscm.html#matchsoundfiles">match-sound-files</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsines">play-sines</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundloopinfo">sound-loop-info</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#bindkey">bind-key</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter">fir-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixerdoc"><b>Matrices</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsyncdmarks">play-syncd-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundproperties">sound-properties</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#bird">bird</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter?">fir-filter?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maxenvelope">max-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerhome">player-home</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundproperty">sound-property</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#boldpeaksfont">bold-peaks-font</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant">firmant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxregions">max-regions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerQ">player?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundwidgets">sound-widgets</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#bomb">bomb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant?">firmant?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxfftpeaks">max-transform-peaks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#players">players</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundp">sound?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#break">break</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereoflute">flute model</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxvirtualptrees">max-virtual-ptrees</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playexamples"><b>Playing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfontinfo">soundfont-info</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#brown-noise">brown-noise</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmbell">fm-bell</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxamp">maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playing">playing</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounds">sounds</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">butterworth filters</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmdrum">fm-drum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericmaxamp"><b>maxamp (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#pluck">pluck</a></em></td><td></td><td><em class=tab><a href="sndscm.html#twotab">spectral interpolation</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cgx">c-g!</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmnoise">fm-noise</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxampposition">maxamp-position</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandladspa"><b>Plugins</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectralpolynomial">spectral-polynomial</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cgp">c-g?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvox">fm-talker</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxampexamples"><b>Maxamps</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#polartorectangular">polar-&gt;rectangular</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrohop">spectro-hop</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#callin">call_in</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmtrumpet">fm-trumpet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#menuwidgets">menu-widgets</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polynomial">polynomial</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxangle">spectro-x-angle</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#cascadetocanonical">cascade-&gt;canonical</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vdoc">fm-violin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#menusdoc">menus, optional</a></em></td><td></td><td><em class=tab><a href="sndscm.html#polydoc">polynomial operations</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxscale">spectro-x-scale</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#chaindsps">chain-dsps</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reson">fm-voice</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mindb">min-dB</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid">polyoid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyangle">spectro-y-angle</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channeltovct">channel-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndscm.html#focusfollowsmouse">focus-follows-mouse</a></em></td><td></td><td><em class=tab><a href="extsnd.html#minibufferhistorylength">minibuffer-history-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoidenv">polyoid-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyscale">spectro-y-scale</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channelampenvs">channel-amp-envs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#focuswidget">focus-widget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mix">mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid?">polyoid?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozangle">spectro-z-angle</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channeldata">channel-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fofins">FOF synthesis</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtointeger">mix-&gt;integer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape">polyshape</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozscale">spectro-z-scale</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#channelenvelope">channel-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachchild">for-each-child</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixtovct">mix-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape?">polyshape?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#spectrum">spectrum</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#channelpolynomial">channel-polynomial</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachsoundfile">for-each-sound-file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixamp">mix-amp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave">polywave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectrumtocoeffs">spectrum-&gt;coeffs</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channelproperties">channel-properties</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fp">Forbidden Planet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixampenv">mix-amp-env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave?">polywave?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumend">spectrum-end</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#channelproperty">channel-property</a></em></td><td></td><td><em class=tab><a href="extsnd.html#foregroundcolor">foreground-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixchannel">mix-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontox">position-&gt;x</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumstart">spectrum-start</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#channelrms">channel-rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#forgetregion">forget-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixclickhook">mix-click-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontoy">position-&gt;y</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrol">speed-control</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channelstyle">channel-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant">formant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixcolor">mix-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positioncolor">position-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrolbounds">speed-control-bounds</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#channelsync">channel-sync</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant?">formant?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdialogmix">mix-dialog-mix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#powerenv">power-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedstyle">speed-control-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channelwidgets">channel-widgets</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandforth"><b>Forth</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdraghook">mix-drag-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#preferencesdialog">preferences-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedtones">speed-control-tones</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channels">channels</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fouriertransform">fourier-transform</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixfiledialog">mix-file-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#previousframe">previous-frame</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave">square-wave</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#genericchannels"><b>channels (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#fractionalfouriertransform">fractional-fourier-transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixframe">mix-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#previoussample">previous-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave?">square-wave?</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#channelsequal">channels-equal?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame1">frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixhome">mix-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printdialog">print-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#squelchupdate">squelch-update</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#channelstyleconstants">channels-separate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame*">frame*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixlength">mix-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printhook">print-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#squelchvowels">squelch-vowels</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#channels=">channels=?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame+">frame+</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixmaxamp">mix-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printlength">print-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srate">srate</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#chans">chans</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametofile">frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixmovesound">mix-move-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#profile">profile</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsrate"><b>srate (generic)</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">chebyshev filters</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametofile?">frame-&gt;file?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixname">mix-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#progressreport">progress-report</a></em></td><td></td><td><em class=tab><a href="sndclm.html#src">src</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#checkforunsavededits">check-for-unsaved-edits</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametoframe">frame-&gt;frame</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixnametoid">mix-name-&gt;id</a></em></td><td></td><td><em class=tab><a href="extsnd.html#promptinminibuffer">prompt-in-minibuffer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcchannel">src-channel</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#checkmixtags">check-mix-tags</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametolist">frame-&gt;list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixposition">mix-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ptreechannel">ptree-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcduration">src-duration</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#cleanchannel">clean-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frametosample">frame-&gt;sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixproperties">mix-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train">pulse-train</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcmixes">src-mixes</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#cleansound">clean-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#frametosound">frame-&gt;sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixproperty">mix-property</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train?">pulse-train?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsoundselection">src-selection</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#clear-array">clear-array</a></em></td><td></td><td><em class=tab><a href="sndscm.html#frametosounddata">frame-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixregion">mix-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#pushedbuttoncolor">pushed-button-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsound">src-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#clearlistener">clear-listener</a></em></td><td></td><td><em class=tab><a href="sndscm.html#frametovct">frame-&gt;vct</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixreleasehook">mix-release-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#quitbuttoncolor">quit-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#src?">src?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#clearminibuffer">clear-minibuffer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framecopy">frame-copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsamplerQ">mix-sampler?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstodegrees">radians-&gt;degrees</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am">ssb-am</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#clearselection">clear-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderatendQ">frame-reader-at-end?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixselection">mix-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstohz">radians-&gt;hz</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am?">ssb-am?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cliphook">clip-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderchans">frame-reader-chans</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixsound">mix-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rampchannel">ramp-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbank">ssb-bank</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#clipping">clipping</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderhome">frame-reader-home</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixsounddata">mix-sound-data</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand">rand</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbankenv">ssb-bank-env</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#clmchannel">clm-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderposition">frame-reader-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixspeed">mix-speed</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp">rand-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbfm">ssb-fm</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#clmload">clm-load</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereaderQ">frame-reader?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsync">mix-sync</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp?">rand-interp?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#starthook">start-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#clonesoundas">clone-sound-as</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame-ref">frame-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsyncmax">mix-sync-max</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand?">rand?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplaying">start-playing</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#closehook">close-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#framereverse">frame-reverse!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagheight">mix-tag-height</a></em></td><td></td><td><em class=tab><a href="sndscm.html#allrandomnumbers"><b>Random Numbers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayinghook">start-playing-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#closesound">close-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame-set!">frame-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagwidth">mix-tag-width</a></em></td><td></td><td><em class=tab><a href="sndscm.html#readframe">read-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayingselectionhook">start-playing-selection-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colortolist">color-&gt;list</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frame?">frame?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagy">mix-tag-y</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readhook">read-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startprogressreport">start-progress-report</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colorcutoff">color-cutoff</a></em></td><td></td><td><em class=tab><a href="sndclm.html#framedoc"><b>frames</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixvct">mix-vct</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readmixsample">read-mix-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#startwaterfall">start-waterfall</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colorhook">color-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#frames">frames</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixwaveformheight">mix-waveform-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readonly">read-only</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereotomono">stereo-&gt;mono</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colorinverted">color-inverted</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericframes"><b>frames (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixp">mix?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readpeakenvinfofile">read-peak-env-info-file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopdachook">stop-dac-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#colormixes">color-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#freeframereader">free-frame-reader</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer1">mixer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readregionsample">read-region-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayer">stop-player</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colororientationdialog">color-orientation-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freeplayer">free-player</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixermultiply">mixer*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readsample">read-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplaying">stop-playing</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colorscale">color-scale</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freesampler">free-sampler</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixerdoc">mixer as matrix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin">readin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayinghook">stop-playing-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colorp">color?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#freeverb">freeverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixeradd">mixer+</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin?">readin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayingselectionhook">stop-playing-selection-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colormap">colormap</a></em></td><td></td><td><em class=tab><a href="fm.html#fmintro"><b>Frequency Modulation</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixercopy">mixer-copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#recorderdialog">recorder-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stretchenvelope">stretch-envelope</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colormapname">colormap-name</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fullmix">fullmix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-determinant">mixer-determinant</a></em></td><td></td><td><em class=tab><a href="snd.html#recordfile"><b>Recording</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#superimposeffts">superimpose-ffts</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colormapref">colormap-ref</a></em></td><td></td><td><em class=tab><a href="sndscm.html#gaussiandistribution">gaussian-distribution</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-inverse">mixer-inverse</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartomagnitudes">rectangular-&gt;magnitudes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#swapchannels">swap-channels</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colormapsize">colormap-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcoff">gc-off</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-poly">mixer-poly</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartopolar">rectangular-&gt;polar</a></em></td><td></td><td><em class=tab><a href="sndscm.html#swapselectionchannels">swap-selection-channels</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colormapp">colormap?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcon">gc-on</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer-ref">mixer-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#redo">redo</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sync">sync</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#colors"><b>Colors</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#generators"><b>Generators</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer-set!">mixer-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#redochannel">redo-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsync"><b>sync (generic)</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#comb">comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glgraphtops">gl-graph-&gt;ps</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-solve">mixer-solve</a></em></td><td></td><td><em class=tab><a href="extsnd.html#redoedit">redo-edit</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sync-all">sync-all</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#comb?">comb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glspectrogram">glSpectrogram</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixer-transpose">mixer-transpose</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regiontoframe">region-&gt;frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncmax">sync-max</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#comment">comment</a></em></td><td></td><td><em class=tab><a href="sndscm.html#goertzel">goertzel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mixer?">mixer?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontointeger">region-&gt;integer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncdmarks">syncd-marks</a></em></td></tr>
+ <tr><td><em class=tab><a href="grfsnd.html#sndwithcm"><b>Common Music</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#gotolistenerend">goto-listener-end</a></em></td><td></td><td><em class=tab><a href="sndclm.html#framedoc"><b>mixers</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#regiontosounddata">region-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup">table-lookup</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#compandchannel">compand-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#grani">grani</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixes">mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontovct">region-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup?">table-lookup?</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#compandsound">compand-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#grains"><b>Granular synthesis</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndmixes"><b>Mixing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionchans">region-chans</a></em></td><td></td><td><em class=tab><a href="sndclm.html#tap">tap</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#concatenateenvelopes">concatenate-envelopes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate">granulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#monotostereo">mono-&gt;stereo</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionframes">region-frames</a></em></td><td></td><td><em class=tab><a href="sndscm.html#telephone">telephone</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#continue-frametofile">continue-frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate?">granulate?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#moogfilter">moog-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiongraphstyle">region-graph-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tempdir">temp-dir</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#continue-sampletofile">continue-sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndscm.html#granulatedsoundinterp">granulated-sound-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseclickhook">mouse-click-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionhome">region-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#textfocuscolor">text-focus-color</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#contrastchannel">contrast-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graph">graph</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousedraghook">mouse-drag-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxamp">region-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphhook">time-graph-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#contrastcontrol">contrast-control</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphtops">graph-&gt;ps</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentergraphhook">mouse-enter-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxampposition">region-maxamp-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphstyle">time-graph-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#contrastcontrolamp">contrast-control-amp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcolor">graph-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlabelhook">mouse-enter-label-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regionplaylist">region-play-list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphtype">time-graph-type</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#contrastcontrolbounds">contrast-control-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcursor">graph-cursor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlistenerhook">mouse-enter-listener-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionposition">region-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphp">time-graph?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#contrastcontrolp">contrast-control?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphdata">graph-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentertexthook">mouse-enter-text-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsample">region-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tinyfont">tiny-font</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#contrast-enhancement">contrast-enhancement</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphhook">graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavegraphhook">mouse-leave-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsamplerQ">region-sampler?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursors"><b>Tracking cursors</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#contrastsound">contrast-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphlines">graph-lines</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavelabelhook">mouse-leave-label-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsrate">region-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursorstyle">tracking-cursor-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="snd.html#controls"><b>Control Panel</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphstyle">graph-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavelistenerhook">mouse-leave-listener-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionok">region?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtovct">transform-&gt;vct</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#controlstochannel">controls-&gt;channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#grapheq">graphic equalizer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavetexthook">mouse-leave-text-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionstuff"><b>Regions</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformdialog">transform-dialog</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#convolution">convolution</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphshorizontal">graphs-horizontal</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousepresshook">mouse-press-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#eregions">regions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformframes">transform-frames</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolution reverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise">green-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-locsig">move-locsig</a></em></td><td></td><td><em class=tab><a href="sndscm.html#remembersoundstate">remember-sound-state</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphstyle">transform-graph-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#convolve">convolve</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise-interp">green-noise-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#movemixes">move-mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#removefrommenu">remove-from-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphtype">transform-graph-type</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#convolvefiles">convolve-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#griddensity">grid-density</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound">move-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reportinminibuffer">report-in-minibuffer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphp">transform-graph?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#convolveselectionwith">convolve-selection-with</a></em></td><td></td><td><em class=tab><a href="sndscm.html#harmonicizer">harmonicizer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound?">move-sound?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resampleexamples"><b>Resampling</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#normalizefft">transform-normalization</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolve-with</a></em></td><td></td><td><em class=tab><a href="sndscm.html#dht">Hartley transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation">moving-autocorrelation</A></em></td><td></td><td><em class=tab><a href="sndscm.html#resetallhooks">reset-all-hooks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsample">transform-sample</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#convolve?">convolve?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#headertype">header-type</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation?">moving-autocorrelation?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#resetbuttoncolor">reset-button-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsize">transform-size</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#genericcopy"><b>copy (generic)</b></a></em></td><td></td><td><em class=tab><a href="snd.html#formats"><b>Headers and Data formats</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average">moving-average</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetcontrols">reset-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtype">transform-type</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#copyframereader">copy-frame-reader</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hellodentist">hello-dentist</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average?">moving-average?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetlistenercursor">reset-listener-cursor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformp">transform?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#copysampler">copy-sampler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helpbuttoncolor">help-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft">moving-fft</A></em></td><td></td><td><em class=tab><a href="extsnd.html#restorecontrols">restore-controls</a></em></td><td></td><td><em class=tab><a href="sndscm.html#transposemixes">transpose-mixes</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#copying"><b>Copying</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#helpdialog">help-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft?">moving-fft?</A></em></td><td></td><td><em class=tab><a href="sndscm.html#reverbexamples"><b>Reverb</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#trapsegfault">trap-segfault</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#correlate">correlate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helphook">help-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-length">moving-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*reverb*">*reverb*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave">triangle-wave</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#countmatches">count-matches</a></em></td><td></td><td><em class=tab><a href="extsnd.html#hidewidget">hide-widget</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-max">moving-max</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbdecay">reverb-control-decay</a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave?">triangle-wave?</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#createssbdialog">create-ssb-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#highlightcolor">highlight-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch">moving-pitch</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolfeedback">reverb-control-feedback</a></em></td><td></td><td><em class=tab><a href="sndscm.html#tubebell">tubular bell</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#mixdoc">cross-fade (amplitude)</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hilberttransform">hilbert-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch?">moving-pitch?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollength">reverb-control-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole">two-pole</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#fadedoc">cross-fade (frequency domain)</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hookmember">hook-member</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-rms">moving-rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollengthbounds">reverb-control-length-bounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole?">two-pole?</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#crosssynthesis">cross-synthesis</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhooks"><b>Hooks</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid">moving-scentroid</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollowpass">reverb-control-lowpass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero">two-zero</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#currenteditposition">current-edit-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmldir">html-dir</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid?">moving-scentroid?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscale">reverb-control-scale</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero?">two-zero?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#currentfont">current-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmlprogram">html-program</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum">moving-spectrum</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscalebounds">reverb-control-scale-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#unbindkey">unbind-key</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursor">cursor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#hztoradians">hz-&gt;radians</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum?">moving-spectrum?</A></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolp">reverb-control?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#unclipchannel">unclip-channel</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorcolor">cursor-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter">iir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-sum">moving-sum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversechannel">reverse-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undo">undo</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorfollowsplay">cursor-follows-play</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter?">iir-filter?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mpg">mpg</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversechannels">reverse-channels</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undoexamples"><b>Undo and Redo</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorchoices">cursor-in-view</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gin">in</a></em></td><td></td><td><em class=tab><a href="sndclm.html#multiply-arrays">multiply-arrays</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reverseenvelope">reverse-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undochannel">undo-channel</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorlocationoffset">cursor-location-offset</a></em></td><td></td><td><em class=tab><a href="sndclm.html#in-any">in-any</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffersize">mus-alsa-buffer-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseselection">reverse-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undoedit">undo-edit</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorposition">cursor-position</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ina">ina</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffers">mus-alsa-buffers</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversesound">reverse-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undohook">undo-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorsize">cursor-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#inb">inb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsacapturedevice">mus-alsa-capture-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseexamples"><b>Reversing</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#updategraphs">update-graphs</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorstyle">cursor-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#infodialog">info-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsadevice">mus-alsa-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#revertsound">revert-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatehook">update-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorupdateinterval">cursor-update-interval</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#initladspa">init-ladspa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsaplaybackdevice">mus-alsa-playback-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rightsample">right-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatelispgraph">update-lisp-graph</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cursorexamples"><b>Cursors</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#initialgraphhook">initial-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsasquelchwarning">mus-alsa-squelch-warning</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ring-modulate">ring-modulate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatesound">update-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#dacfolding">dac-combines-channels</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndinitfile"><b>Initialization file</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#musarrayprintlength">mus-array-print-length</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetimegraph">update-time-graph</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#dachook">dac-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertchannel">insert-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioclose">mus-audio-close</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms, gain, balance gens</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetransformgraph">update-transform-graph</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#dacsize">dac-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertfiledialog">insert-file-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiodescribe">mus-audio-describe</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsenvelope">rms-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndmotifdoc">user interface extensions</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#datacolor">data-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertframe">insert-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiomixerread">mus-audio-mixer-read</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rotatechannel">rotate-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#variabledisplay">variable-display</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#dataformat">data-format</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertregion">insert-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiomixerwrite">mus-audio-mixer-write</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rubbersound">rubber-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#variablegraphp">variable-graph?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#datalocation">data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsample">insert-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioopeninput">mus-audio-open-input</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandruby"><b>Ruby</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#vct">vct</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#datasize">data-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsamples">insert-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioopenoutput">mus-audio-open-output</a></em></td><td></td><td><em class=tab><a href="sndscm.html#run">run</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttimes">vct*</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#dbtolinear">db-&gt;linear</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertselection">insert-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioread">mus-audio-read</a></em></td><td></td><td><em class=tab><a href="extsnd.html#run">run</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctplus">vct+</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#cdebugging"><b>Debugging (C)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsilence">insert-silence</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudioreport">mus-audio-report</a></em></td><td></td><td><em class=tab><a href="s7.html#s7doc"><b>s7 scheme</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttochannel">vct-&gt;channel</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#variabledisplay"><b>Debugging (instruments)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsound">insert-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musaudiowrite">mus-audio-write</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sample">sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vcttofile">vct-&gt;file</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#snderrors"><b>Debugging (Scheme)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertsounddata">insert-sound-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musbytespersample">mus-bytes-per-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile">sample-&gt;file</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vcttoframe">vct-&gt;frame</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#def-clm-struct">def-clm-struct</a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertvct">insert-vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-channel">mus-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile?">sample-&gt;file?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttolist">vct-&gt;list</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#defaultoutputchans">default-output-chans</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertionexamples"><b>Insertions</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-channels">mus-channels</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletoframe">sample-&gt;frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttosounddata">vct-&gt;sound-data</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#defaultoutputdataformat">default-output-data-format</a></em></td><td></td><td><em class=tab><a href="sndclm.html#instruments"><b>Instruments</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-chebyshev-tu-sum">mus-chebyshev-tu-sum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sampleratendQ">sampler-at-end?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttostring">vct-&gt;string</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#defaultoutputheadertype">default-output-header-type</a></em></td><td></td><td><em class=tab><a href="sndclm.html#instruments">instruments</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musclipping">mus-clipping</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerhome">sampler-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vcttovector">vct-&gt;vector</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#defaultoutputsrate">default-output-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomark">integer-&gt;mark</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-close">mus-close</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerposition">sampler-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctadd">vct-add!</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#defgenerator">defgenerator</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomix">integer-&gt;mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-data">mus-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerQ">sampler?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctcopy">vct-copy</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#defineenvelope">define-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertoregion">integer-&gt;region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musdataformattostring">mus-data-format-&gt;string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplers"><b>samplers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctfill">vct-fill!</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#defineselectionviamarks">define-selection-via-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertosound">integer-&gt;sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musdataformatname">mus-data-format-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samples">samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctlength">vct-length</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#definstrument">definstrument</a></em></td><td></td><td><em class=tab><a href="sndscm.html#integrateenvelope">integrate-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-describe">mus-describe</a></em></td><td></td><td><em class=tab><a href="sndclm.html#samplestoseconds">samples-&gt;seconds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctmap">vct-map!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#defvar">defvar</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndswitches"><b>Invocation flags</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrorhook">mus-error-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sashcolor">sash-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctmove">vct-move!</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#degreestoradians">degrees-&gt;radians</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandjack"><b>Jack</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrortypetostring">mus-error-type-&gt;string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savecontrols">save-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctmultiply">vct-multiply!</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#delay">delay</a></em></td><td></td><td><em class=tab><a href="sndscm.html#jcreverb">jc-reverb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musexpandfilename">mus-expand-filename</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savedir">save-dir</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctoffset">vct-offset!</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#delaychannelmixes">delay-channel-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#jcrevdoc">jc-reverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedback">mus-feedback</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveedithistory">save-edit-history</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctpeak">vct-peak</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#delaytick">delay-tick</a></em></td><td></td><td><em class=tab><a href="extsnd.html#justsounds">just-sounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedforward">mus-feedforward</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveenvelopes">save-envelopes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vctpolynomial">vct-polynomial</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#delay?">delay?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#kalmanfilterchannel">kalman-filter-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfft">mus-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savehook">save-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctref">vct-ref</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletecolormap">delete-colormap</a></em></td><td></td><td><em class=tab><a href="extsnd.html#key">key</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musfilebuffersize">mus-file-buffer-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savelistener">save-listener</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctreverse">vct-reverse!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletefilefilter">delete-file-filter</a></em></td><td></td><td><em class=tab><a href="snd.html#builtinkeys"><b>Key bindings</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfileclipping">mus-file-clipping</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemacros">save-macros</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctscale">vct-scale!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletefilesorter">delete-file-sorter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keybinding">key-binding</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-file-name">mus-file-name</a></em></td><td></td><td><em class=tab><a href="sndscm.html#savemarkproperties">save-mark-properties</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctset">vct-set!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletemark">delete-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keypresshook">key-press-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfileprescaler">mus-file-prescaler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemarks">save-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctsubseq">vct-subseq</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletemarks">delete-marks</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#ladspadescriptor">ladspa-descriptor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musfloatequalfudgefactor">mus-float-equal-fudge-factor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemix">save-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctsubtract">vct-subtract!</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletesample">delete-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ladspadir">ladspa-dir</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-frequency">mus-frequency</a></em></td><td></td><td><em class=tab><a href="sndscm.html#savemixes">save-mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vctp">vct?</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletesamples">delete-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#leftsample">left-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musgeneratorp">mus-generator?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregion">save-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#Vcts"><b>Vcts</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deleteselection">delete-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericlength"><b>length (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheaderrawdefaults">mus-header-raw-defaults</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregiondialog">save-region-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#vectortovct">vector-&gt;vct</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#deleteselectionandsmooth">delete-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makelevelmeter">level meters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypetostring">mus-header-type-&gt;string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselection">save-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#verbosecursor">verbose-cursor</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletetransform">delete-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#lineartodb">linear-&gt;db</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypename">mus-header-type-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselectiondialog">save-selection-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesamp">view-files-amp</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletewatcher">delete-watcher</a></em></td><td></td><td><em class=tab><a href="sndscm.html#linearsrcchannel">linear-src-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-hop">mus-hop</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesound">save-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesampenv">view-files-amp-env</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#deletionexamples"><b>Deletions</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphhook">lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-increment">mus-increment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesoundas">save-sound-as</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesdialog">view-files-dialog</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#describehook">describe-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphstyle">lisp-graph-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-input?">mus-input?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesounddialog">save-sound-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesfiles">view-files-files</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#describemark">describe-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphp">lisp-graph?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interp-type">mus-interp-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestate">save-state</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselecthook">view-files-select-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#dialogwidgets">dialog-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listtovct">list-&gt;vct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interpolate">mus-interpolate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatefile">save-state-file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselectedfiles">view-files-selected-files</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#disablecontrolpanel">disable-control-panel</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#listladspa">list-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-length">mus-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatehook">save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilessort">view-files-sort</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#displaybarkfft">display-bark-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerclickhook">listener-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-location">mus-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveexamples"><b>Saving</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeed">view-files-speed</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#displaydb">display-db</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenercolor">listener-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxmalloc">mus-max-malloc</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sgfilter">savitzky-golay-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeedstyle">view-files-speed-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#displayedits">display-edits</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerfont">listener-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxtablesize">mus-max-table-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave">sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewmixesdialog">view-mixes-dialog</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#displayscannedsynthesis">display-scanned-synthesis</A></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerprompt">listener-prompt</a></em></td><td></td><td><em class=tab><a href="sndscm.html#musmix">mus-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave?">sawtooth-wave?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewregionsdialog">view-regions-dialog</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#dissolvefade">dissolve-fade</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerselection">listener-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-name">mus-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleby">scale-by</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewsound">view-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#ditherchannel">dither-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenertextcolor">listener-text-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musnetbsdsetoutputs">mus-netbsd-set-outputs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scalechannel">scale-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ptreechannel"><b>Virtual Edits</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#dithersound">dither-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#littleendianp">little-endian?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-offset">mus-offset</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaleenvelope">scale-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">voice physical model</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#dlocsig">dlocsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig">locsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-order">mus-order</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalemixes">scale-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#voicedtounvoiced">voiced-&gt;unvoiced</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#dop">do?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-ref">locsig-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musosssetbuffers">mus-oss-set-buffers</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionby">scale-selection-by</a></em></td><td></td><td><em class=tab><a href="sndscm.html#volterrafilter">volterra-filter</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#doitagainbuttoncolor">doit-again-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-ref">locsig-reverb-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musoutformat">mus-out-format</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionto">scale-selection-to</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train">wave-train</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#doitbuttoncolor">doit-button-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-set!">locsig-reverb-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-output?">mus-output?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalesound">scale-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train?">wave-train?</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#dot-product">dot-product</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-set!">locsig-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-phase">mus-phase</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaletempo">scale-tempo</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavelettype">wavelet-type</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#dotsize">dot-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-type">locsig-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musprescaler">mus-prescaler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleto">scale-to</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqwvox">waveshaping voice</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawaxes">draw-axes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig?">locsig?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ramp">mus-ramp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scanchannel">scan-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavohop">wavo-hop</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawdot">draw-dot</a></em></td><td></td><td><em class=tab><a href="extsnd.html#logfreqstart">log-freq-start</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-random">mus-random</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scansound">scan-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavotrace">wavo-trace</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawdots">draw-dots</a></em></td><td></td><td><em class=tab><a href="sndscm.html#loopbetweenmarks">loop-between-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-reset">mus-reset</a></em></td><td></td><td><em class=tab><a href="sndscm.html#dspdocscanned">scanned synthesis</a></em></td><td></td><td><em class=tab><a href="sndclm.html#weighted-moving-average">weighted-moving-average</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawline">draw-line</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpccoeffs">lpc-coeffs</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-run">mus-run</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scentroid">scentroid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetposition">widget-position</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawlines">draw-lines</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpcpredict">lpc-predict</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-safety">mus-safety</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scriptarg">script-arg</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetsize">widget-size</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawmarkhook">draw-mark-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainmenu">main-menu</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-scaler">mus-scaler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scriptargs">script-args</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgettext">widget-text</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawmixhook">draw-mix-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainwidgets">main-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundchans">mus-sound-chans</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndwithnogui"><b>Scripting</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#movingwindows"><b>Window size and position</b></a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drawstring">draw-string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-all-pass">make-all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcloseinput">mus-sound-close-input</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchprocedure">search-procedure</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowheight">window-height</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#makedropsite">drop sites</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-asymmetric-fm">make-asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcloseoutput">mus-sound-close-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchexamples"><b>Searching</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowproperty">window-property</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#drophook">drop-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandpass">make-bandpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcomment">mus-sound-comment</a></em></td><td></td><td><em class=tab><a href="sndclm.html#secondstosamples">seconds-&gt;samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowpropertychangedhook">window-property-changed-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#duringopenhook">during-open-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandstop">make-bandstop</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddataformat">mus-sound-data-format</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectall">select-all</a></em></td><td></td><td><em class=tab><a href="sndscm.html#windowsamples">window-samples</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#editlists"><b>Edit lists</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebiquad">make-biquad</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatalocation">mus-sound-data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannel">select-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowwidth">window-width</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#editfragment">edit-fragment</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebirds">make-birds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatumsize">mus-sound-datum-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannelhook">select-channel-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowx">window-x</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#editheaderdialog">edit-header-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makecolor">make-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundduration">mus-sound-duration</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsound">select-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowy">window-y</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#edithook">edit-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-comb">make-comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundforget">mus-sound-forget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsoundhook">select-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withbackgroundprocesses">with-background-processes</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#editlisttofunction">edit-list-&gt;function</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-convolve">make-convolve</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundframes">mus-sound-frames</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedchannel">selected-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withfilemonitor">with-file-monitor</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#editposition">edit-position</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makecurrentwindowdisplay">make-current-window-display</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundheadertype">mus-sound-header-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selecteddatacolor">selected-data-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withgl">with-gl</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#editproperties">edit-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-delay">make-delay</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundlength">mus-sound-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedgraphcolor">selected-graph-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withlocalhook">with-local-hook</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#editproperty">edit-property</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makedifferentiator">make-differentiator</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundloopinfo">mus-sound-loop-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedsound">selected-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withmarkedsound">with-marked-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#edittree">edit-tree</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-env">make-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmarkinfo">mus-sound-mark-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selection">selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withmixtags">with-mix-tags</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#edits">edits</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fft-window">make-fft-window</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxamp">mus-sound-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectiontomix">selection-&gt;mix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withmixedsound">with-mixed-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#edot-product">edot-product</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetoframe">make-file-&gt;frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxampexists">mus-sound-maxamp-exists?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectiontosounddata">selection-&gt;sound-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withmixedsoundtonotelist">with-mixed-sound-&gt;notelist</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">elliptic filters</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetosample">make-file-&gt;sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundopeninput">mus-sound-open-input</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionchans">selection-chans</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withrelativepanes">with-relative-panes</a></em></td></tr>
+ <tr><td><em class=tab><a href="grfsnd.html#emacssnd"><b>Emacs and Snd</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filter">make-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundopenoutput">mus-sound-open-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncolor">selection-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withreopenmenu">with-reopen-menu</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#emacsstylesaveas">emacs-style-save-as</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filtered-comb">make-filtered-comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundprune">mus-sound-prune</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncreatesregion">selection-creates-region</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withsound">with-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#env">env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fir-filter">make-fir-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundread">mus-sound-read</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionframes">selection-frames</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withtempsound">with-temp-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#env-any">env-any</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-firmant">make-firmant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundreopenoutput">mus-sound-reopen-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxamp">selection-maxamp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withtemporaryselection">with-temporary-selection</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envchannel">env-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-formant">make-formant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundreportcache">mus-sound-report-cache</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxampposition">selection-maxamp-position</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withthreadedchannels">with-threaded-channels</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envchannelwithbase">env-channel-with-base</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frame">make-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsamples">mus-sound-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmember">selection-member?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withthreadedsound">with-threaded-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#envexptchannel">env-expt-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frame!">make-frame!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundseekframe">mus-sound-seek-frame</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectionmembers">selection-members</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withtrackingcursor">with-tracking-cursor</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#env-interp">env-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frametofile">make-frame-&gt;file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsrate">mus-sound-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionposition">selection-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withverbosecursor">with-verbose-cursor</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#envmixes">env-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeframereader">make-frame-reader</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundtypespecifier">mus-sound-type-specifier</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionsrate">selection-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#writepeakenvinfofile">write-peak-env-info-file</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envselection">env-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-granulate">make-granulate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundwrite">mus-sound-write</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionok">selection?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xtoposition">x-&gt;position</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envsound">env-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makegraphdata">make-graph-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundwritedate">mus-sound-write-date</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionstuff"><b>Selections</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxislabel">x-axis-label</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#envsoundinterp">env-sound-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehiddencontrolsdialog">make-hidden-controls-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mussrate">mus-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sendmozilla">send-mozilla</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxisstyle">x-axis-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndclm.html#env?">env?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehighpass">make-highpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussunsetoutputs">mus-sun-set-outputs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#setglobalsync">set-global-sync</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xbounds">x-bounds</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedbase">enved-base</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehilberttransform">make-hilbert-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-width">mus-width</a></em></td><td></td><td><em class=tab><a href="extsnd.html#setsamples">set-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xpositionslider">x-position-slider</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedclipping">enved-clip?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-iir-filter">make-iir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeff">mus-xcoeff</a></em></td><td></td><td><em class=tab><a href="sndscm.html#shepardtone">shepard-tone</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xzoomslider">x-zoom-slider</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#enveddialog">enved-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig">make-locsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeffs">mus-xcoeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#shortfilename">short-file-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xrampchannel">xramp-channel</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedenvelope">enved-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makelowpass">make-lowpass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeff">mus-ycoeff</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showaxes">show-axes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ytoposition">y-&gt;position</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#filterenv">enved-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makemixsampler">make-mix-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeffs">mus-ycoeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showcontrols">show-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#yaxislabel">y-axis-label</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#filterenvorder">enved-filter-order</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-mixer">make-mixer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nameclickhook">name-click-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#showdiskspace">show-disk-space</A></em></td><td></td><td><em class=tab><a href="extsnd.html#ybounds">y-bounds</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedhook">enved-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-mixer!">make-mixer!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos">ncos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showgrid">show-grid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ypositionslider">y-position-slider</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedin-dB">enved-in-dB</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-move-sound">make-move-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos?">ncos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showindices">show-indices</a></em></td><td></td><td><em class=tab><a href="extsnd.html#yzoomslider">y-zoom-slider</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedpower">enved-power</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-autocorrelation">make-moving-autocorrelation</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsound">new-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showlistener">show-listener</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ztransform">z-transform</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedstyle">enved-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-average">make-moving-average</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsounddialog">new-sound-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmarks">show-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zeropad">zero-pad</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedtarget">enved-target</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-fft">make-moving-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsoundhook">new-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmixwaveforms">show-mix-waveforms</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipsound">zip-sound</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedwaving">enved-wave?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-pitch">make-moving-pitch</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newwidgethook">new-widget-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#showselection">show-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipper">zipper</a></em></td></tr>
+ <tr><td><em class=tab><a href="extsnd.html#envedwaveformcolor">enved-waveform-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-scentroid">make-moving-scentroid</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nextframe">next-frame</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showselectiontransform">show-selection-transform</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomcolor">zoom-color</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#envelopeinterp">envelope-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-spectrum">make-moving-spectrum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nextsample">next-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#showsmptelabel">show-smpte-label</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomfocusstyle">zoom-focus-style</a></em></td></tr>
+ <tr><td><em class=tab><a href="sndscm.html#envelopedmix">enveloped-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ncos">make-ncos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noid">noid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showsonogramcursor">show-sonogram-cursor</a></em></td><td></td>
+</tr>
+ <tr><td><em class=tab><a href="extsnd.html#envexamples"><b>Envelopes</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noid">make-noid</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cleandoc"><b>Noise Reduction</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#showtransformpeaks">show-transform-peaks</a></em></td><td></td>
+</tr>
+
</table>
</body></html>
diff --git a/io.c b/io.c
index 6627bb3..bff8a7a 100644
--- a/io.c
+++ b/io.c
@@ -701,6 +701,7 @@ int mus_file_open_read(const char *arg)
bool mus_file_probe(const char *arg)
{
+ if (!arg) return(false);
#if HAVE_ACCESS
return(access(arg, F_OK) == 0);
#else
diff --git a/marks.fs b/marks.fs
index df123fc..14b74b5 100644
--- a/marks.fs
+++ b/marks.fs
@@ -3,7 +3,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Tue Dec 27 19:22:06 CET 2005
-\ Changed: Wed Sep 30 18:08:27 CEST 2009
+\ Changed: Fri Nov 06 00:29:50 CET 2009
\ Commentary:
\
@@ -118,7 +118,7 @@ hide
: save-mark-properties-cb <{ filename -- }>
undef undef undef marks 0 array-ref 0 array-ref array? if
filename :fam a/o io-open { io }
- io $" \n\\ from save-mark-properties in %s\n" _ #( *filename* ) io-write-format
+ io $" \n\\ from save-mark-properties in %s\n" #( *filename* ) io-write-format
io $" require marks\n\n" io-write
io $" let:\n" io-write
io $" nil nil { snd mk }\n" io-write
diff --git a/marks.rb b/marks.rb
index 1e446ca..1fd0404 100644
--- a/marks.rb
+++ b/marks.rb
@@ -2,7 +2,7 @@
# Translator: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Wed Mar 23 02:08:47 CET 2005
-# Changed: Thu Oct 15 00:27:02 CEST 2009
+# Changed: Thu Nov 26 18:17:55 CET 2009
# Commentary:
#
@@ -275,7 +275,7 @@ plays the portion between the marks (searching for plausible default marks)")
pos2 = mark_sample(m2)
beg = [pos1, pos2].min
len = [pos1, pos2].max
- play(beg, mark_home(m1).car, mark_home(m1).cadr, false, len)
+ play(mark_home(m1).car, :channel, mark_home(m1).cadr, :start, beg, :end, len)
end
end
diff --git a/marks.scm b/marks.scm
index 5b611de..ec06a92 100644
--- a/marks.scm
+++ b/marks.scm
@@ -219,11 +219,10 @@
(pos2 (mark-sample m2))
(beg (min pos1 pos2))
(end (max pos1 pos2)))
- (play beg
- (car (mark-home m1))
- (cadr (mark-home m1))
- #f
- end))))))
+ (play (car (mark-home m1))
+ :channel (cadr (mark-home m1))
+ :start beg
+ :end end))))))
;;; -------- report-mark-names causes mark names to be posted in the minibuffer as a sound is played
diff --git a/mix.fs b/mix.fs
index ea37922..3a308cc 100644
--- a/mix.fs
+++ b/mix.fs
@@ -3,7 +3,7 @@
\ Translator: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Tue Oct 11 18:23:12 CEST 2005
-\ Changed: Wed Sep 30 18:11:11 CEST 2009
+\ Changed: Sat Oct 31 00:04:31 CET 2009
\ Commentary:
\
@@ -165,7 +165,7 @@ previous
: mix-click-info <{ id -- #t }>
doc" A mix-click-hook function that describes a mix and its properties.\n\
-mix-click-hook ' mix-click-info add-hook!"
+mix-click-hook <'> mix-click-info add-hook!"
id mix-home 0 array-ref { mid }
id mix-name empty? if "" else $" (%S)" #( id mix-name ) string-format then { mname }
$" mix id: %s%s\n" #( id mname ) string-format make-string-output-port { prt }
@@ -180,7 +180,7 @@ mix-click-hook ' mix-click-info add-hook!"
$" Mix info" prt port->string info-dialog drop
#t
;
-\ mix-click-hook ' mix-click-info add-hook!
+\ mix-click-hook <'> mix-click-info add-hook!
\ ;;; -------- mix-name->id
diff --git a/mix.scm b/mix.scm
index cca82f2..890559d 100644
--- a/mix.scm
+++ b/mix.scm
@@ -4,11 +4,12 @@
;;; (snap-mix-to-beat) forces dragged mix to end up on a beat
;;; (silence-all-mixes) sets all mix amps to 0.0
;;; (find-mix sample snd chn) returns the mix at the given sample, or #f
-;;; (save-mix mix filename) saves mix data in file filename
;;; (mix-maxamp mix) maxamp of mix
;;;
;;; mix-property associates a property list with a mix
;;; mix-click-sets-amp sets up hook functions so that mix click zeros amps, then subsequent click resets to the before-zero value
+;;; check-mix-tags tries to move mix tags around to avoid collisions
+
(use-modules (ice-9 common-list))
(provide 'snd-mix.scm)
@@ -79,27 +80,7 @@
(throw 'no-such-mix (list "mix->vct" id))))
-(define (save-mix id filename)
- "(save-mix mix filename) saves mix data (as floats) in file filename"
- (if (mix? id)
- (if (< (frames id) 1000000)
- (let ((v (mix->vct id))
- (fd (mus-sound-open-output filename (srate) 1 #f #f "")))
- (mus-sound-write fd 0 (- (length v) 1) 1 (vct->sound-data v))
- (mus-sound-close-output fd (* (mus-bytes-per-sample mus-out-format) (length v))))
- (let* ((buflen 10000)
- (sd (make-sound-data 1 buflen))
- (len (frames id))
- (reader (make-mix-sampler id)))
- (do ((buf 0 (+ buf buflen)))
- ((>= buf len))
- (do ((i 0 (+ 1 i)))
- ((= i buflen))
- (sound-data-set! sd 0 i (read-mix-sample reader)))
- (mus-sound-write fd 0 (- buflen 1) 1 sd))
- (free-sampler reader)
- (mus-sound-close-output fd (* (mus-bytes-per-sample mus-out-format) len))))
- (throw 'no-such-mix (list "save-mix" id))))
+;;; 12-Nov-09: moved save-mix to C (snd-mix.c)
(define (mix-maxamp id)
@@ -213,10 +194,11 @@ All mixes sync'd to it are also moved the same number of samples. (remove-hook!
(define (mix-click-info n)
"(mix-click-info n) is a mix-click-hook function that describes a mix and its properties"
(help-dialog "Mix Help"
- (format #f "Mix ~A:~% position: ~D = ~,3F secs~% length: ~D (~,3F secs)~% in: ~A[~D]~% scaler: ~A~% speed: ~A~% env: ~A~A"
+ (format #f "Mix ~A (sync: ~A):~% position: ~D = ~,3F secs~% length: ~D (~,3F secs)~% in: ~A[~D]~% scaler: ~A~% speed: ~A~% env: ~A~A"
(if (mix-name n)
(format #f "~S (~A)" (mix-name n) n)
(format #f "~A" n))
+ (mix-sync n)
(mix-position n)
(exact->inexact (/ (mix-position n) (srate (car (mix-home n)))))
(frames n)
@@ -606,4 +588,40 @@ begin time of each mix that starts after beg in the given channel"
(car (sounds)))
(or chn 0))))
-
+;;; -------- check-mix-tags
+
+(define* (check-mix-tags snd chn)
+ "(check-mix-tags :optional snd chn) tries to move mix tags around to avoid collisions"
+ (if (not snd)
+ (for-each check-mix-tags (sounds))
+ (if (not chn)
+ (let ((chns (channels snd)))
+ (do ((i 0 (+ i 1)))
+ ((= i chns))
+ (check-mix-tags snd i)))
+ (let ((mxs (mixes snd chn))
+ (changed #f))
+ (define (check-mix mx trailing-mixes)
+ (if (not (null? trailing-mixes))
+ (let ((pos (mix-position mx))
+ (ls (left-sample snd chn))
+ (rs (right-sample snd chn)))
+ (if (<= ls pos rs)
+ (let ((x (x->position (/ pos (srate snd))))
+ (y (mix-tag-y mx)))
+ (for-each
+ (lambda (other-mix)
+ (let ((other-pos (mix-position other-mix)))
+ (if (<= ls other-pos rs)
+ (let ((other-x (x->position (/ other-pos (srate snd))))
+ (other-y (mix-tag-y other-mix)))
+ (if (and (< (abs (- x other-x)) 6)
+ (< (abs (- y other-y)) 10))
+ (begin
+ (set! (mix-tag-y other-mix) (+ (mix-tag-y other-mix) 20))
+ (set! changed #t)))))))
+ trailing-mixes)))
+ (check-mix (car trailing-mixes) (cdr trailing-mixes)))))
+ (check-mix (car mxs) (cdr mxs))
+ (if changed
+ (update-time-graph snd chn))))))
diff --git a/mkinstalldirs b/mkinstalldirs
index 4f58503..6fbe5e1 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -1,40 +1,150 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
+scriptversion=2004-02-15.20
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage"
+ exit 0
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --version)
+ echo "$0 $scriptversion"
+ exit 0
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
for file
do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error. This is a problem when calling mkinstalldirs
+# from a parallel make. We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+ '')
+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ test -d ./-p && rmdir ./-p
+ test -d ./--version && rmdir ./--version
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+ test ! -d ./--version; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ else
+ # Clean up after NextStep and OpenStep mkdir.
+ for d in ./-m ./-p ./--version "./$dirmode";
+ do
+ test -d $d && rmdir $d
+ done
+ fi
+ ;;
+esac
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
+ mkdir "$pathcomp" || lasterr=$?
- mkdir "$pathcomp" || lasterr=$?
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=""
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- fi
- fi
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
- pathcomp="$pathcomp/"
- done
+ pathcomp="$pathcomp/"
+ done
done
exit $errstatus
-# mkinstalldirs ends here
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/mus-config.h.in b/mus-config.h.in
index 6eaa925..252e5b5 100644
--- a/mus-config.h.in
+++ b/mus-config.h.in
@@ -116,7 +116,6 @@
#undef MUS_JACK_VERSION
#undef MUS_PULSEAUDIO
-#undef HAVE_FFTW
#undef HAVE_FFTW3
#undef WITH_GMP
@@ -256,6 +255,7 @@
#undef HAVE_GTK_INFO_BAR_NEW
#undef HAVE_GTK_STATUS_ICON_GET_TITLE
#undef HAVE_GTK_WIDGET_GET_VISIBLE
+#undef HAVE_GTK_SPINNER_NEW
#undef HAVE_PANGO_MATRIX_ROTATE
#undef MUS_PANGO_VERSION
@@ -270,6 +270,9 @@
#undef CLM_DISABLE_DEPRECATED
#undef SNDLIB_DISABLE_DEPRECATED
#undef XEN_DISABLE_DEPRECATED
+#undef S7_DISABLE_DEPRECATED
+#undef SND_DISABLE_DEPRECATED
+
#undef WITH_PROFILING
#undef HAVE_OGG
diff --git a/new-effects.scm b/new-effects.scm
index 337cce4..15b5abf 100644
--- a/new-effects.scm
+++ b/new-effects.scm
@@ -1799,7 +1799,7 @@ Values greater than 1.0 speed up file play, negative values reverse it."))
(format #f "effects-am ~A ~A" am-effect-amount
(let* ((need-env (not (equal? (xe-envelope am-effect-envelope) (list 0.0 1.0 1.0 1.0))))
(e (and need-env (xe-envelope am-effect-envelope))))
- (if e (format "'~A" e)
+ (if e (format #f "'~A" e)
#f))))
#f))
@@ -1899,7 +1899,7 @@ Values greater than 1.0 speed up file play, negative values reverse it."))
(format #f "effects-rm ~A ~A" rm-frequency
(let* ((need-env (not (equal? (xe-envelope rm-envelope) (list 0.0 1.0 1.0 1.0))))
(e (and need-env (xe-envelope rm-envelope))))
- (if e (format "'~A" e)
+ (if e (format #f "'~A" e)
#f))))
#f))
diff --git a/noise.scm b/noise.scm
index 2db79eb..7bd8efb 100644
--- a/noise.scm
+++ b/noise.scm
@@ -187,6 +187,6 @@
;; (do ((i 0 (+ 1 i)))
;; ((= i chns))
;; (mix-vct (vct-scale! (vct-copy data) (locsig-ref loc i)) beg snd i #f))
-;; (play 0 snd)))
+;; (play snd 0)))
;; noise.scm ends here
diff --git a/old-mac-audio.c b/old-mac-audio.c
deleted file mode 100644
index a035fea..0000000
--- a/old-mac-audio.c
+++ /dev/null
@@ -1,938 +0,0 @@
-/* ------------------------------- MACOS ----------------------------------------- */
-
-#ifdef MACOS
-#define AUDIO_OK
-
-#include <Resources.h>
-#include <Sound.h>
-#include <SoundInput.h>
-
-
-/* realloc replacement, thanks to Michael Klingbeil */
-Ptr NewPtr_realloc(Ptr p, Size newSize)
-{
- Size oldSize;
- Ptr newP;
- /* zero size means free */
- if (newSize == 0)
- {
- DisposePtr(p);
- return 0;
- }
- if (p)
- {
- /* first try to reallocate in place */
- SetPtrSize(p, newSize);
- if (MemError() == 0)
- return p;
- }
- /* if that fails then try to reallocate */
- newP = NewPtr(newSize);
- /* failure */
- if (newP == 0)
- {
- /* do we do DisposePtr(p) ? */
- return 0;
- }
- /* copy old pointer data */
- if (p)
- {
- oldSize = GetPtrSize(p);
- BlockMoveData(p, newP, oldSize);
- DisposePtr(p);
- }
- return newP;
-}
-
-
-
-int mus_audio_systems(void) {return(1);} /* if Audiomedia, multiple? */
-char *mus_audio_system_name(int system) {return("Mac");}
-
-static int available_input_devices(void)
-{
- unsigned char *devname;
- OSErr err;
- int i;
- Handle h;
- devname = (unsigned char *)CALLOC(PRINT_BUFFER_SIZE, sizeof(char));
- for (i = 1; i < 16; i++)
- {
- err = SPBGetIndexedDevice(i, devname, &h);
- if (err != noErr) break;
- }
- FREE(devname);
- return(i - 1);
-}
-
-static int input_device_is_connected(long refnum)
-{
- OSErr err;
- short connected;
- err = SPBGetDeviceInfo(refnum, siDeviceConnected, &connected);
- return(connected);
-}
-
-static int input_device_get_source(long refnum)
-{
- OSErr err;
- short source;
- err = SPBGetDeviceInfo(refnum, siInputSource, &source);
- return(source);
-}
-
-static int input_device_set_source(long refnum, short source)
-{
- OSErr err;
- err = SPBSetDeviceInfo(refnum, siInputSource, &source);
- return((err == noErr) ? 0 : -1);
-}
-
-static int input_device_get_sources(long refnum, char **names)
-{
- OSErr err;
- short sources;
- Handle h;
- err = SPBSetDeviceInfo(refnum, siInputSourceNames, &h);
- if (err == siUnknownInfoType) return(0);
- sources = (short)(*h);
- /* printf("%d sources: %s ", sources, strdup(p2cstr((unsigned char *)(*(h + 2))))); */
- /* need an example to test this silly thing */
- return((err == noErr) ? sources : -1);
-}
-
-static int input_device_channels (long refnum)
-{
- OSErr err;
- short chans;
- err = SPBGetDeviceInfo(refnum, siChannelAvailable, &chans);
- if (err == noErr) return(chans);
- return(-1);
-}
-
-static int input_device_get_async(long refnum)
-{
- OSErr err;
- short async;
- err = SPBGetDeviceInfo(refnum, siAsync, &async);
- if (err == noErr) return(async);
- return(-1);
-}
-
-static char *input_device_name(long refnum)
-{
- char *name;
- OSErr err;
- name = (char *)CALLOC(PRINT_BUFFER_SIZE, sizeof(char));
- err = SPBGetDeviceInfo(refnum, siDeviceName, name);
- if (err == noErr) return(name);
- FREE(name);
- return(NULL);
-}
-
-static float input_device_get_gain(long refnum)
-{
- OSErr err;
- unsigned long val;
- err = SPBGetDeviceInfo(refnum, siInputGain, &val);
- /* val is a "4 byte fixed value between .5 and 1.5"!! */
- if (err == noErr)
- return((float)val / 65536.0);
- return(-1);
-}
-
-static int input_device_set_gain(long refnum, float gain)
-{
- OSErr err;
- int val;
- val = ((int)(gain * 65536));
- err = SPBSetDeviceInfo(refnum, siInputGain, &val);
- return((err == noErr) ? 0 : -1);
-}
-
-static int input_device_get_channels(long refnum)
-{
- OSErr err;
- short chans;
- err = SPBGetDeviceInfo(refnum, siNumberChannels, &chans);
- return((err == noErr) ? chans : -1);
-}
-
-static int input_device_set_channels(long refnum, short chans)
-{
- OSErr err;
- err = SPBSetDeviceInfo(refnum, siNumberChannels, &chans);
- return((err == noErr) ? 0 : -1);
-}
-
-static int input_device_get_quality(long refnum)
-{
- OSErr err;
- OSType val;
- err = SPBGetDeviceInfo(refnum, siRecordingQuality, &val);
- if (err == noErr)
- {
- if (val == siCDQuality) return(3);
- if (val == siBestQuality) return(2);
- if (val == siBetterQuality) return(1);
- if (val == siGoodQuality) return(0);
- }
- return(-1);
-}
-
-static int input_device_set_quality(long refnum, int quality)
-{
- OSErr err;
- OSType val;
- if (quality == 3) val = siCDQuality;
- else if (quality == 2) val = siBestQuality;
- else if (quality == 1) val = siBetterQuality;
- else val = siGoodQuality;
- err = SPBSetDeviceInfo(refnum, siRecordingQuality, &val);
- return((err == noErr) ? 0 : -1);
-}
-
-static int input_device_get_srate(long refnum)
-{
- OSErr err;
- unsigned long fixed_srate;
- err = SPBGetDeviceInfo(refnum, siSampleRate, &fixed_srate);
- if (err == noErr) return(fixed_srate >> 16);
- return(-1);
-}
-
-static int input_device_set_srate(long refnum, int srate)
-{
- OSErr err;
- unsigned long fixed_srate;
- fixed_srate = (unsigned long)(srate * 65536);
- err = SPBSetDeviceInfo(refnum, siSampleRate, &fixed_srate);
- return((err == noErr) ? 0 : -1);
-}
-
-static int input_device_get_sample_size(long refnum)
-{
- OSErr err;
- short size;
- err = SPBGetDeviceInfo(refnum, siSampleSize, &size);
- if (err == noErr) return(size);
- return(-1);
-}
-
-static int input_device_set_sample_size(long refnum, short size)
-{
- OSErr err;
- err = SPBSetDeviceInfo(refnum, siSampleSize, &size);
- return((err == noErr) ? 0 : -1);
-}
-
-static int input_device_get_signed(long refnum)
-{ /* 0 = unsigned */
- OSErr err;
- short sign;
- err = SPBGetDeviceInfo(refnum, siSampleRate, &sign);
- if (err == noErr) return(sign);
- return(-1);
-}
-
-static int input_device_set_signed(long refnum, short sign)
-{
- OSErr err;
- err = SPBSetDeviceInfo(refnum, siSampleRate, &sign);
- return((err == noErr) ? 0 : -1);
-}
-
-static int input_device_sample_rates(long refnum, int *range, int *rates)
-{
- unsigned short num;
- int i, j;
- unsigned long ptr;
- OSErr err;
- unsigned char pp[6]; /* can't depend on C compiler to pack a struct correctly here */
- num = 0;
- err = SPBGetDeviceInfo(refnum, siSampleRateAvailable, pp);
- if (err == noErr)
- {
- num = pp[1] + (pp[0] << 8); /* unsigned short is first element */
- if (num == 0) {(*range) = 1; num = 2;} else (*range) = 0;
- ptr = pp[5] + (pp[4] << 8) + (pp[3] << 16) + (pp[2] << 24); /* pointer to "fixed" table is second element */
- for (i = 0, j = 0; i < num; i++, j += 4)
- rates[i] = (*(unsigned short *)(j + (*(int *)ptr))); /* ignore fraction -- this is dubious code */
- }
- return(num);
-}
-
-static int input_device_sample_sizes(long refnum, int *sizes)
-{
- unsigned short num;
- int i, j;
- unsigned long ptr;
- OSErr err;
- unsigned char pp[6];
- num = 0;
- err = SPBGetDeviceInfo(refnum, siSampleSizeAvailable, pp);
- if (err == noErr)
- {
- num = pp[1] + (pp[0] << 8);
- ptr = pp[5] + (pp[4] << 8) + (pp[3] << 16) + (pp[2] << 24);
- for (i = 0, j = 0; i < num; i++, j += 2)
- sizes[i] = (*(unsigned short *)(j + (*(int *)ptr)));
- }
- return(num);
-}
-
-static int input_device_get_gains(long refnum, float *gains)
-{
- OSErr err;
- long ptr[2];
- err = SPBGetDeviceInfo(refnum, siStereoInputGain, ptr);
- if (err == noErr)
- {
- gains[0] = (float)ptr[0] / 65536.0;
- gains[1] = (float)ptr[1] / 65536.0;
- }
- else return(-1);
- return(0);
-}
-
-static int input_device_set_gains(long refnum, float *gains)
-{
- OSErr err;
- long val[2];
- val[0] = gains[0] * 65536;
- val[1] = gains[1] * 65536;
- err = SPBSetDeviceInfo(refnum, siStereoInputGain, val);
- return((err == noErr) ? 0 : -1);
-}
-
-char *mus_audio_moniker(void)
-{
- NumVersion nv;
- if (version_name == NULL) version_name = (char *)CALLOC(LABEL_BUFFER_SIZE, sizeof(char));
- nv = SndSoundManagerVersion();
- mus_snprintf(version_name, LABEL_BUFFER_SIZE, "Mac audio: %d.%d.%d.%d\n", nv.majorRev, nv.minorAndBugRev, nv.stage, nv.nonRelRev);
- return(version_name);
-}
-
-static char *quality_names[5] = {"indescribable", "bad", "not bad", "ok", "good"};
-
-static void describe_audio_state_1(void)
-{
- long response;
- NumVersion nv;
- OSErr err;
- int vals[64];
- float gains[2];
- int have_IO_mgr = 0, have_input_device = 0;
- unsigned char *devname = NULL;
- int i, j, devs, rates, range, sizes, connected;
- long refnum;
- Handle h;
- nv = SndSoundManagerVersion();
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, "Sound Manager: %d.%d.%d.%d\n",
- nv.majorRev, nv.minorAndBugRev, nv.stage, nv.nonRelRev);
- pprint(audio_strbuf);
- err = Gestalt(gestaltSoundAttr, &response);
- have_IO_mgr = (response & gestaltSoundIOMgrPresent);
- have_input_device = (response & gestaltHasSoundInputDevice);
- if (have_IO_mgr)
- {
- nv = SPBVersion();
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, "Sound Input Manager: %d.%d.%d.%d\n",
- nv.majorRev, nv.minorAndBugRev, nv.stage, nv.nonRelRev);
- pprint(audio_strbuf);
- }
- if (!have_IO_mgr) pprint("Sound IO Manager absent!\n");
- if (!(response & gestaltBuiltInSoundInput)) pprint("no built-in input device!\n");
- if (!have_input_device) pprint("no input devices available!\n");
- if (!(response & gestaltSndPlayDoubleBuffer)) pprint("double buffering not supported!\n");
- if (response & gestalt16BitAudioSupport) pprint("has 16-bit audio ");
- if (response & gestalt16BitSoundIO) pprint("has 16-bit sound ");
- if (response & gestaltStereoInput) pprint("has stereo input\n");
- if (response & gestaltPlayAndRecord) pprint("can play and record simultaneously\n");
- if (response & gestaltMultiChannels) pprint("has multichannel support\n");
- GetSysBeepVolume(&response);
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, "beep vol: %.3f %.3f\n",
- ((float)(response >> 16)) / 255.0,
- ((float)(response & 0xffff)) / 255.0);
- pprint(audio_strbuf);
- GetDefaultOutputVolume(&response);
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, "output vol: %.3f %.3f\n",
- ((float)(response >> 16)) / 255.0,
- ((float)(response & 0xffff)) / 255.0);
- pprint(audio_strbuf);
- if ((have_IO_mgr) &&
- (have_input_device))
- {
- devs = available_input_devices();
- if (devs > 0)
- {
- devname = (unsigned char *)CALLOC(PRINT_BUFFER_SIZE, sizeof(char));
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, "input device%s:\n", (devs > 1) ? "s" : "");
- pprint(audio_strbuf);
- for (i = 1; i <= devs; i++)
- {
- for (i = 1; i <= devs; i++)
- {
- err = SPBGetIndexedDevice(i, devname, &h);
- if (err == noErr)
- {
- err = SPBOpenDevice(devname, siWritePermission, &refnum);
- if (err == noErr)
- {
- range = input_device_get_source(refnum);
- connected = input_device_is_connected(refnum);
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " %s: %s%s",
- (*devname) ? devname : (unsigned char *)"un-named",
- ((input_device_get_async(refnum) == 1) ? "(async) " : ""),
- ((connected == siDeviceIsConnected) ? "" :
- ((connected == siDeviceNotConnected) ?
- "(not connected )" : "(might not be connected)")));
- pprint(audio_strbuf);
- if (range == 0) pprint("\n");
- else
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " (source: %d)\n", range);
- pprint(audio_strbuf);
- }
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " %d chans available, %d active\n",
- input_device_channels(refnum),
- input_device_get_channels(refnum));
- pprint(audio_strbuf);
-
- /* input_device_get_sources(refnum, NULL); */
-
- range = 0;
- rates = input_device_sample_rates(refnum, &range, vals);
- if (rates > 1)
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " srates available:");
- pprint(audio_strbuf);
- if (range)
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, "%d to %d", vals[0], vals[1]);
- pprint(audio_strbuf);
- }
- else
- for (j = 0; j < rates; j++)
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " %d", vals[j]);
- pprint(audio_strbuf);
- }
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, ", current srate: %d\n",
- input_device_get_srate(refnum));
- pprint(audio_strbuf);
- }
- else
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " srate: %d\n", input_device_get_srate(refnum));
- pprint(audio_strbuf);
- }
- err = input_device_get_quality(refnum);
- if (err != -1)
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " quality: %s\n",
- quality_names[1 + input_device_get_quality(refnum)]);
- pprint(audio_strbuf);
- }
- input_device_get_gains(refnum, gains);
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " gain: %.3f (%.3f %.3f)\n sample: %s %d bits",
- input_device_get_gain(refnum),
- gains[0], gains[1],
- ((input_device_get_signed(refnum)) ? "signed" : "unsigned"),
- input_device_get_sample_size(refnum));
- pprint(audio_strbuf);
- sizes = input_device_sample_sizes(refnum, vals);
- if (sizes > 0)
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, " (%d", vals[0]);
- pprint(audio_strbuf);
- for (j = 1; j < sizes; j++)
- {
- mus_snprintf(audio_strbuf, PRINT_BUFFER_SIZE, ", %d", vals[j]);
- pprint(audio_strbuf);
- }
- pprint(" bit samples available)");
- }
- pprint("\n");
- SPBCloseDevice(refnum);
- }
- }
- }
- }
- FREE(devname);
- }
- }
-}
-
-#define BUFFER_FILLED 1
-#define BUFFER_EMPTY 2
-
-#define SOUND_UNREADY 0
-#define SOUND_INITIALIZED 1
-#define SOUND_RUNNING 2
-
-#define INPUT_LINE 1
-#define OUTPUT_LINE 2
-
-static int buffer_size = 1024;
-static SndDoubleBufferPtr *db = NULL;
-static SndDoubleBufferHeader dh;
-static SndChannelPtr chan;
-static int *db_state = NULL;
-static int sound_state = 0;
-static int current_chans = 1;
-static int current_datum_size = 2;
-static int current_srate = 22050;
-static int current_buf = 0;
-static long in_ref = -1;
-static SPB spb;
-
-#define DATA_EMPTY 0
-#define DATA_READY 1
-#define DATA_WRITTEN 2
-static int data_status = DATA_EMPTY;
-static int data_bytes = 0;
-static char *data = NULL;
-
-static pascal void nextbuffer(SndChannelPtr cp, SndDoubleBufferPtr db)
-{
- db_state[current_buf] = BUFFER_EMPTY;
-}
-
-#define RETURN_ERROR_EXIT(Error_Type, Ur_Error_Message) \
- do { char *Error_Message; Error_Message = Ur_Error_Message; \
- if (Error_Message) \
- {MUS_STANDARD_ERROR(Error_Type, Error_Message); FREE(Error_Message);} \
- else MUS_STANDARD_ERROR(Error_Type, mus_error_type_to_string(Error_Type)); \
- return(MUS_ERROR); \
- } while (false)
-
-int mus_audio_open_output(int ur_dev, int srate, int chans, int format, int size)
-{
- OSErr err;
- int dev;
- dev = MUS_AUDIO_DEVICE(ur_dev);
- if (!db) db = (SndDoubleBufferPtr *)CALLOC(2, sizeof(SndDoubleBufferPtr));
- if (!db_state) db_state = (int *)CALLOC(2, sizeof(int));
- chan = nil;
- err = SndNewChannel(&chan, sampledSynth, 0, nil);
- if (err != noErr)
- RETURN_ERROR_EXIT(MUS_AUDIO_DEVICE_NOT_AVAILABLE,
- mus_format("can't get new output channel for %d (%s): error %d", /* geez-louise!! Is anything dumber than a goddamn Mac? */
- dev,
- mus_audio_device_name(dev), err));
- dh.dbhNumChannels = chans;
- current_chans = chans;
- if (format == MUS_UBYTE)
- {
- dh.dbhSampleSize = 8;
- current_datum_size = 1;
- }
- else
- {
- dh.dbhSampleSize = 16;
- current_datum_size = 2;
- }
- dh.dbhCompressionID = 0;
- dh.dbhPacketSize = 0;
- dh.dbhSampleRate = (srate << 16);
- dh.dbhDoubleBack = NewSndDoubleBackProc(nextbuffer);
- if (size <= 0) buffer_size = 1024; else buffer_size = size;
- db[0] = (SndDoubleBufferPtr)CALLOC(sizeof(SndDoubleBuffer) + buffer_size, sizeof(char));
- if ((db[0] == nil) || (MemError() != 0))
- {
- SndDisposeChannel(chan, 0);
- RETURN_ERROR_EXIT(MUS_AUDIO_SIZE_NOT_AVAILABLE,
- mus_format("can't allocate output buffer, size %d, for %d (%s)",
- buffer_size, dev,
- mus_audio_device_name(dev)));
- }
- dh.dbhBufferPtr[0] = db[0];
- db[0]->dbNumFrames = 0;
- db[0]->dbFlags = 0;
- db_state[0] = BUFFER_EMPTY;
- db[1] = (SndDoubleBufferPtr)CALLOC(sizeof(SndDoubleBuffer) + buffer_size, sizeof(char));
- if ((db[1] == nil) || (MemError() != 0))
- {
- FREE(db[0]);
- SndDisposeChannel(chan, 0);
- RETURN_ERROR_EXIT(MUS_AUDIO_SIZE_NOT_AVAILABLE,
- mus_format("can't allocate output buffer, size %d, for %d (%s)",
- buffer_size, dev,
- mus_audio_device_name(dev)));
- }
- dh.dbhBufferPtr[1] = db[1];
- db[1]->dbNumFrames = 0;
- db[1]->dbFlags = 0;
- db_state[1] = BUFFER_EMPTY;
- sound_state = SOUND_INITIALIZED;
- current_buf = 0;
- return(OUTPUT_LINE);
-}
-
-static OSErr fill_buffer(int dbi, char *inbuf, int instart, int bytes)
-{
- int i, j;
- OSErr err;
- err = noErr;
- for (i = instart, j = 0; j < bytes; j++, i++)
- db[dbi]->dbSoundData[j] = inbuf[i];
- db_state[dbi] = BUFFER_FILLED;
- db[dbi]->dbFlags = (db[dbi]->dbFlags | dbBufferReady);
- db[dbi]->dbNumFrames = (bytes / (current_chans * current_datum_size));
- if ((sound_state == SOUND_INITIALIZED) && (dbi == 1))
- {
- sound_state = SOUND_RUNNING;
- err = SndPlayDoubleBuffer(chan, &dh);
- }
- return(err);
-}
-
-static OSErr wait_for_empty_buffer(int buf)
-{
- SCStatus Stats;
- OSErr err;
- err = noErr;
- while (db_state[buf] != BUFFER_EMPTY)
- {
- err = SndChannelStatus(chan, sizeof(Stats), &Stats);
- if ((err != noErr) ||
- (!(Stats.scChannelBusy)))
- break;
- }
- return(err);
-}
-
-int mus_audio_write(int line, char *buf, int bytes)
-{
- OSErr err;
- int lim, leftover, start;
- if (line != OUTPUT_LINE)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_WRITE,
- mus_format("write error: line %d != %d",
- line, OUTPUT_LINE));
- leftover = bytes;
- start = 0;
- while (leftover > 0)
- {
- lim = leftover;
- if (lim > buffer_size) lim = buffer_size;
- leftover -= lim;
- err = wait_for_empty_buffer(current_buf);
- if (err != noErr)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_WRITE,
- mus_format("write error during wait on line %d: error %d",
- line, err));
- err = fill_buffer(current_buf, buf, start, lim);
- if (err != noErr)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_WRITE,
- mus_format("write error during fill on line %d: error %d",
- line, err));
- start += lim;
- current_buf++;
- if (current_buf > 1) current_buf = 0;
- }
- return(MUS_NO_ERROR);
-}
-
-int mus_audio_close(int line)
-{
- OSErr err;
- int i;
- if (line == OUTPUT_LINE)
- {
- /* fill with a few zeros, wait for empty flag */
- if (sound_state != SOUND_UNREADY)
- {
- wait_for_empty_buffer(current_buf);
- for (i = 0; i < 128; i++)
- db[current_buf]->dbSoundData[i] = 0;
- db[current_buf]->dbFlags = (db[current_buf]->dbFlags | dbBufferReady | dbLastBuffer);
- db[current_buf]->dbNumFrames = (128 / (current_chans * current_datum_size));
- wait_for_empty_buffer(current_buf);
- FREE(db[0]);
- db[0] = NULL;
- FREE(db[1]);
- db[1] = NULL;
- db_state[0] = BUFFER_EMPTY;
- db_state[1] = BUFFER_EMPTY;
- sound_state = SOUND_UNREADY;
- err = SndDisposeChannel(chan, 0);
- /* this is the line that forced me to use FREE/CALLOC throughout! */
- if (err != noErr)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_CLOSE,
- mus_format("can't close output: error %d",
- err));
- }
- }
- else
- {
- if (line == INPUT_LINE)
- {
- if (in_ref != -1)
- {
- data_status = DATA_EMPTY;
- SPBStopRecording(in_ref);
- if (spb.bufferPtr) FREE(spb.bufferPtr);
- SPBCloseDevice(in_ref);
- in_ref = -1;
- }
- }
- else
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_CLOSE,
- mus_format("can't close unrecognized line: %d",
- line));
- }
- return(MUS_NO_ERROR);
-}
-
-static void read_callback(SPB *spb)
-{
- int i, lim;
- if (data_status != DATA_EMPTY)
- {
- if (data_bytes > spb->bufferLength)
- lim = spb->bufferLength;
- else lim = data_bytes;
- for (i = 0; i < lim; i++)
- data[i] = spb->bufferPtr[i];
- spb->bufferLength = data_bytes;
- SPBRecord(spb, true);
- data_status = DATA_WRITTEN;
- }
-}
-
-int mus_audio_open_input(int ur_dev, int srate, int chans, int format, int size)
-{
- OSErr err;
- short source;
- int dev;
- dev = MUS_AUDIO_DEVICE(ur_dev);
- data_status = DATA_EMPTY;
- if (size <= 0) size = 1024;
- if (in_ref != -1)
- RETURN_ERROR_EXIT(MUS_AUDIO_DEVICE_NOT_AVAILABLE,
- mus_format("previous input not closed? line: %d",
- in_ref));
- err = SPBOpenDevice((unsigned char *)"", siWritePermission, &in_ref);
- if (err != noErr)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_OPEN,
- mus_format("can't open input %d (%s): error %d",
- dev, mus_audio_device_name(dev), err));
- spb.inRefNum = in_ref;
- spb.count = size;
- source = 3; /* the microphone ?? (2: CD, 4: modem, 0: none) -- nowhere is this documented! */
- input_device_set_source(in_ref, source);
- input_device_set_srate(in_ref, srate);
- input_device_set_channels(in_ref, (short)chans);
- input_device_set_sample_size(in_ref, (format == MUS_BSHORT) ? 2 : 1);
- input_device_set_signed(in_ref, (format == MUS_BSHORT) ? 1 : 0);
- spb.milliseconds = (int)((float)(size * 1000) / (float)(((format == MUS_BSHORT) ? 2 : 1) * srate));
- spb.bufferLength = size;
- spb.bufferPtr = (char *)CALLOC(size, sizeof(char));
- spb.completionRoutine = NewSICompletionProc(read_callback);
- err = SPBRecord(&spb, true);
- return(INPUT_LINE);
-}
-
-int mus_audio_read(int line, char *buf, int bytes)
-{
- OSErr err;
- unsigned long total_samps, num_samps, total_msecs, num_msecs;
- short level, status;
- if (line != INPUT_LINE)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_READ,
- mus_format("can't read from unrecognized line: %d",
- line));
- data_status = DATA_READY;
- data_bytes = bytes;
- data = buf;
- while (data_status == DATA_READY)
- {
- err = SPBGetRecordingStatus(in_ref, &status, &level, &total_samps, &num_samps, &total_msecs, &num_msecs);
- if ((err != noErr) || (status <= 0)) break; /* not necessarily an error */
- }
- return(0);
-}
-
-int mus_audio_mixer_read(int ur_dev, int field, int chan, float *val)
-{
- OSErr err;
- long response;
- int dev, our_err = MUS_NO_ERROR;
- float in_val[2];
- int our_open = 0;
- dev = MUS_AUDIO_DEVICE(ur_dev);
- switch (field)
- {
- case MUS_AUDIO_CHANNEL:
- val[0] = 2;
- break;
- case MUS_AUDIO_PORT:
- val[0] = 2;
- if (chan > 1) val[1] = MUS_AUDIO_MICROPHONE;
- if (chan > 2) val[2] = MUS_AUDIO_DAC_OUT;
- break;
- case MUS_AUDIO_FORMAT:
- val[0] = 2;
- if (chan > 1) val[1] = MUS_BSHORT;
- if (chan > 2) val[2] = MUS_UBYTE;
- break;
- default:
- switch (dev)
- {
- case MUS_AUDIO_DEFAULT:
- case MUS_AUDIO_DAC_OUT:
- case MUS_AUDIO_SPEAKERS:
- case MUS_AUDIO_LINE_OUT:
- switch (field)
- {
- case MUS_AUDIO_AMP:
- GetDefaultOutputVolume(&response);
- if (chan == 0)
- val[0] = ((float)(response >> 16)) / 255.0;
- else val[0] = ((float)(response & 0xffff)) / 255.0;
- break;
- case MUS_AUDIO_CHANNEL:
- val[0] = 2;
- break;
- case MUS_AUDIO_SRATE:
- val[0] = current_srate;
- break;
- }
- break;
- case MUS_AUDIO_MICROPHONE:
- case MUS_AUDIO_LINE_IN:
- if (in_ref == -1)
- {
- err = SPBOpenDevice((const unsigned char *)"", siWritePermission, &in_ref);
- if (err != noErr)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_OPEN,
- mus_format("can't open %d (%s): error %d",
- dev,
- mus_audio_device_name(dev), err));
- our_open = 1;
- }
- switch (field)
- {
- case MUS_AUDIO_AMP:
- err = input_device_get_gains(in_ref, in_val);
- if (chan == 0) val[0] = in_val[0]; else val[0] = in_val[1];
- break;
- case MUS_AUDIO_CHANNEL:
- val[0] = input_device_get_channels(in_ref);
- break;
- case MUS_AUDIO_SRATE:
- val[0] = input_device_get_srate(in_ref);
- break;
- default:
- our_err = MUS_ERROR;
- break;
- }
- if (our_open)
- {
- SPBCloseDevice(in_ref);
- in_ref = -1;
- }
- break;
- default:
- our_err = MUS_ERROR;
- break;
- }
- }
- if (our_err == MUS_ERROR)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_READ,
- mus_format("can't read %s field of device %d (%s)",
- mus_audio_device_name(field),
- dev,
- mus_audio_device_name(dev)));
- return(MUS_NO_ERROR);
-}
-
-int mus_audio_mixer_write(int ur_dev, int field, int chan, float *val)
-{
- OSErr err;
- float out_val[2];
- long curval, newval;
- int amp, our_open, dev, our_err = MUS_NO_ERROR;
- dev = MUS_AUDIO_DEVICE(ur_dev);
- switch (dev)
- {
- case MUS_AUDIO_DEFAULT:
- case MUS_AUDIO_DAC_OUT:
- case MUS_AUDIO_SPEAKERS:
- case MUS_AUDIO_LINE_OUT:
- switch (field)
- {
- case MUS_AUDIO_AMP:
- amp = (int)(255 * val[0]);
- GetDefaultOutputVolume(&curval);
- if (chan == 0)
- newval = ((curval & 0xffff0000) | (amp & 0xffff));
- else newval = (((amp << 16) & 0xffff0000) | (curval & 0xffff));
- SetDefaultOutputVolume(newval);
- break;
- case MUS_AUDIO_CHANNEL:
- case MUS_AUDIO_SRATE: break;
- default:
- our_err = MUS_ERROR;
- break;
- }
- break;
- case MUS_AUDIO_MICROPHONE:
- case MUS_AUDIO_LINE_IN:
- if (in_ref == -1)
- {
- err = SPBOpenDevice((const unsigned char *)"", siWritePermission, &in_ref);
- if (err != noErr)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_OPEN,
- mus_format("can't open %d (%s): error %d",
- dev,
- mus_audio_device_name(dev), err));
- our_open = 1;
- }
- switch (field)
- {
- case MUS_AUDIO_AMP:
- input_device_get_gains(in_ref, out_val);
- if (chan == 0) out_val[0] = val[0]; else out_val[1] = val[0];
- err = input_device_set_gains(in_ref, out_val);
- break;
- case MUS_AUDIO_CHANNEL:
- err = input_device_set_channels(in_ref, (int)val[0]);
- break;
- case MUS_AUDIO_SRATE:
- err = input_device_set_srate(in_ref, (int)val[0]);
- break;
- default:
- our_err = MUS_ERROR;
- break;
- }
- if (our_open)
- {
- SPBCloseDevice(in_ref);
- in_ref = -1;
- }
- break;
- default:
- our_err = MUS_ERROR;
- break;
- }
- if (our_err == MUS_ERROR)
- RETURN_ERROR_EXIT(MUS_AUDIO_CANT_WRITE,
- mus_format("can't set %s field of device %d (%s)",
- mus_audio_device_name(field),
- dev,
- mus_audio_device_name(dev)));
- return(MUS_NO_ERROR);
-}
-
-int mus_audio_initialize(void)
-{
- return(MUS_NO_ERROR);
-}
-
-#endif
-
-
diff --git a/peak-env.fs b/peak-env.fs
index 9a49435..bb42cba 100644
--- a/peak-env.fs
+++ b/peak-env.fs
@@ -3,7 +3,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Wed Dec 21 17:37:13 CET 2005
-\ Changed: Sun Jun 14 18:16:22 CEST 2009
+\ Changed: Fri Nov 06 00:30:07 CET 2009
\ Commentary:
\
@@ -16,7 +16,7 @@
require clm
#t value save-peak-env-info?
-$" ~/peaks" value save-peak-env-info-directory
+"~/peaks" value save-peak-env-info-directory
\ defined in src/ficl/softcore/softcore.fr
\
@@ -49,7 +49,7 @@ hide
snd chn peak-env-info-file-name mus-expand-filename { peak-file }
peak-file file-exists?
peak-file file-write-date
- snd file-name file-write-date b> && if
+ snd file-name file-write-date d> && if
#() { vals }
vals 'data-format snd data-format array-assoc-set!
( vals ) 'channels snd channels array-assoc-set! to vals
@@ -70,6 +70,9 @@ hide
: save-peak-env-info <{ snd -- }>
initial-graph-hook <'> restore-peak-env-info-upon-open add-hook!
update-hook <'> peak-env-info-update-cb add-hook!
+ save-peak-env-info-directory file-directory? unless
+ save-peak-env-info-directory 0o755 file-mkdir
+ then
save-peak-env-info?
snd 0 0 peak-env-info length 0> && if
#f { saved }
@@ -77,7 +80,7 @@ hide
snd i peak-env-info-file-name mus-expand-filename { peak-file }
peak-file file-exists? not
peak-file file-write-date
- snd file-name file-write-date b< || if
+ snd file-name file-write-date d< || if
saved unless
#() { vals }
vals 'data-format snd data-format array-assoc-set!
@@ -93,7 +96,7 @@ hide
set-current
-close-hook ' save-peak-env-info add-hook!
+close-hook <'> save-peak-env-info add-hook!
exit-hook lambda: <{ -- }> sounds each save-peak-env-info end-each ; add-hook!
previous
diff --git a/peak-phases.scm b/peak-phases.scm
index 016348f..5d9df64 100644
--- a/peak-phases.scm
+++ b/peak-phases.scm
@@ -41,11 +41,15 @@
;; so it's messier.
+;; there's always an equivalent point made by flipping the even harmonics, and another pair at 2-val (symmetry around 0)
+;; so there are always 4 equivalent points. A function that returns the other 3 given 1 is at the end of this file.
+
+
;;; 3 all --------------------------------------------------------------------------------
#(3 2.1949383250709 #(0 0 1)
1.980 #(0 23/39 6/19) #(0 16/39 32/19) #(0 62/39 6/19) #(0 55/39 32/19) #(0 31/22 37/22) #(0 62/39 13/41)
; 1.9813625706774 #(0 13 7) / 22 and #(0 35 7) / 22
-
+
1.9802151918411 #(0.000 0.410 1.684)
1.9802151918411 #(0.000 1.410 1.684)
@@ -78,6 +82,7 @@
;; so our fft is at its accuracy limit
)
+
;;; 4 all --------------------------------------------------------------------------------
#(4 2.2962718935302 #(0 1 1 1)
@@ -93,8 +98,6 @@
2.038954 #(0.000000 1.055406 0.658486 0.884929)
2.038954 #(0.000000 0.055405 0.658485 1.884926)
2.038954 #(0.000000 1.944593 1.341515 0.115071)
- ;; 2 and 4 can be flipped since they are symmetric with the fundamental?
- ;; at the same time, exchange the odds with 2-odd (see below)
)
;;; 5 all -------------------------------------------------------------------------------- ; sqrt 2.23
@@ -109,6 +112,9 @@
2.343549 #(0.000000 1.845237 1.664402 0.420189 1.593154)
2.343533 #(0.000000 1.154716 0.335535 0.579695 0.406714)
2.343497 #(0.000000 0.845320 1.664496 1.420334 1.593308)
+
+ 2.343527 #(0.000000 0.154667 0.335503 1.579672 0.406698)
+ 2.343513 #(0.000000 0.154687 0.335490 1.579647 0.406677)
)
;;; 6 all -------------------------------------------------------------------------------- ; sqrt 2.4494
@@ -160,6 +166,8 @@
2.962065 #(0.000000 -0.127444 1.501316 1.464492 -0.056263 0.063823 1.252240 0.437075 1.255320)
2.961916 #(0.000000 0.127632 0.498978 0.536080 0.057253 -0.062716 0.748729 1.564172 0.746161)
2.961829 #(0.000000 1.872309 1.500693 1.463585 1.942384 0.062267 1.250564 0.435026 1.252813)
+
+ ;; path: 3.0087241829757 #(0.0 0.77295770138686 1.1137612131151 0.0092274358540839 1.4396553239915 0.47716799765798 0.36807992765151 0.44487578109891 0.066114145077038)
)
;;; 10 all -------------------------------------------------------------------------------- ; sqrt is 3.162
@@ -189,6 +197,9 @@
3.218779 #(0.000000 1.481192 0.090871 1.382649 0.458289 0.338680 0.056042 0.328676 0.834049 1.786486 1.800056)
3.218587 #(0.000000 0.518100 1.908924 0.617043 1.540909 1.660141 -0.056826 1.670660 1.165195 0.212229 0.198401)
3.218514 #(0.000000 0.481786 0.091759 0.383540 0.459429 1.340439 0.058075 1.330988 0.836240 0.789345 -0.196819)
+
+ ;; tstall:
+ 3.218745 #(0.000000 1.518100 1.908924 1.617043 1.540909 0.660141 -0.056826 0.670660 1.165195 1.212229 0.198401)
)
;;; 12 all -------------------------------------------------------------------------------- ; sqrt 3.464
@@ -215,6 +226,10 @@
3.5426704 #(0.000000 1.884492 1.746295 1.269047 1.431366 1.353118 -0.047229 1.765818 0.773088 0.649022 1.690846 0.531435 1.066736)
3.525309 #(0.000000 1.051846 0.170520 1.635159 0.455907 1.511384 -0.147127 1.055447 1.000548 0.097871 0.005880 0.160672 0.616896)
3.525164 #(0.000000 0.947554 1.827637 0.362791 1.540717 0.485315 0.143016 0.940517 0.994364 1.896615 -0.012058 1.833412 1.375539)
+ 3.525069 #(0.000000 0.947187 1.827546 0.362752 1.541123 0.485247 0.142279 0.941021 0.994821 1.896143 -0.012766 1.832600 1.375866)
+
+ ;; tstall (flip odds):
+ 3.5254909 #(0.000000 0.051846 0.170520 0.635159 0.455907 0.511384 -0.147127 0.055447 1.000548 1.097871 0.005880 1.160672 0.616896)
)
;;; 14 all -------------------------------------------------------------------------------- ; sqrt 3.7416
@@ -226,6 +241,7 @@
3.615056 #(0.000000 -0.014234 1.497005 1.525139 0.510798 0.632906 1.943720 0.571193 0.639383 0.229407 1.337049 0.146893 1.848962 0.407090)
3.614834 #(0.000000 1.020766 1.572890 0.581134 0.603538 1.774599 0.065414 1.723556 0.833691 1.415522 1.539294 1.378756 0.117184 1.703181)
+ 3.614395 #(0.000000 1.020574 1.571934 0.581086 0.602938 1.774086 0.065638 1.724213 0.833365 1.415404 1.539595 1.379505 0.117705 1.702518)
)
;;; 15 all -------------------------------------------------------------------------------- ; sqrt 3.8729
@@ -241,6 +257,7 @@
3.880044 #(0.000000 1.305525 1.470275 0.177035 0.840097 1.175803 -0.045240 1.607574 1.078362 0.676837 1.296177 0.358482 1.543390 0.161953 0.029701 -1.946850)
3.876898 #(0.000000 0.734988 0.689889 1.209151 1.647343 1.292049 0.008798 1.495359 0.553434 0.233079 -0.130165 -0.076890 1.356540 1.664124 0.292572 1.458028)
+ 3.876341 #(0.000000 0.735074 0.689531 1.208604 1.647605 1.292213 0.008225 1.494898 0.553708 0.233224 -0.129832 -0.076586 1.356224 1.663920 0.291742 1.458176)
)
;;; 17 all -------------------------------------------------------------------------------- ; sqrt 4.1231
@@ -252,6 +269,7 @@
4.042218 #(0.000000 1.195245 1.847767 0.807893 1.771163 0.686263 0.384018 0.222746 0.065845 0.751171 0.175055 0.107773 0.968939 1.308336 1.526357 0.336423 0.094154)
4.029589 #(0.000000 1.390548 0.919347 1.765666 1.162578 0.778237 1.059194 0.502728 0.167163 0.780385 1.497520 0.340206 0.770821 0.381212 0.966250 1.199209 1.322634)
4.017899 #(0.000000 1.479970 1.057622 -0.085800 1.384872 1.017795 1.307011 0.757174 0.439788 1.138570 1.890560 0.727755 1.257431 0.860567 1.517231 -0.248976 -0.059672)
+ 4.017711 #(0.000000 1.479345 1.057587 -0.086152 1.384196 1.018294 1.306858 0.756770 0.439258 1.138409 1.890306 0.728188 1.256651 0.860567 1.517128 -0.249565 -0.060066)
)
;;; 18 all -------------------------------------------------------------------------------- ; sqrt 4.24264
@@ -262,6 +280,7 @@
4.181072 #(0.000000 0.733865 1.755150 -0.039048 1.400407 1.137000 -0.062504 1.403348 1.122213 0.924200 1.871024 0.635965 1.614137 1.365947 1.630714 0.017679 0.536900 0.251135)
4.160068 #(0.000000 1.247966 0.634845 0.085105 1.281747 1.591288 0.560708 1.554818 0.532041 1.253325 0.973787 0.305025 0.369962 0.426191 -0.060193 0.478556 0.689072 1.025864)
4.159534 #(0.000000 0.770318 1.379876 -0.058303 0.759899 0.446188 1.503325 0.518439 1.548719 0.824444 1.108988 1.787903 1.708197 1.681675 0.181913 1.635102 1.446906 1.120460)
+ 4.158657 #(0.000000 0.770550 1.380268 -0.059022 0.759528 0.445699 1.502507 0.518175 1.547659 0.823381 1.109484 1.787736 1.708000 1.680837 0.182214 1.634604 1.446996 1.120287)
)
;;; 19 all -------------------------------------------------------------------------------- ; sqrt 4.35889
@@ -272,6 +291,7 @@
4.272792 #(0.000000 0.528850 1.104907 0.786742 1.698800 1.643330 0.403916 0.572722 1.831151 0.901802 0.711706 1.370304 0.255803 1.697269 1.579317 1.383837 1.486610 0.855160 1.543014)
4.271408 #(0.000000 0.980833 1.119247 1.843928 0.333756 0.545165 1.491444 1.292732 0.996055 0.300697 0.430517 0.997795 0.740513 0.655436 1.157955 0.447167 1.357422 0.125011 1.657077)
+ 4.270700 #(0.000000 0.980515 1.118986 1.844045 0.333641 0.545802 1.491563 1.292475 0.996666 0.301136 0.431052 0.997512 0.740017 0.656039 1.158018 0.447519 1.356537 0.125806 1.656450)
)
;;; 20 all -------------------------------------------------------------------------------- ; sqrt 4.4721
@@ -284,6 +304,8 @@
4.9199514389038 #(0 1/16 5/16 1/16 9/8 1 3/16 13/16 0 0 1 0 1 15/16 17/16 1/8 17/16 1 17/16 0)
4.297247 #(0.000000 1.260509 1.478091 -0.190590 1.858221 0.288517 0.174235 -0.025277 0.859625 1.179709 0.011397 0.366301 1.688940 1.449201 1.217601 -0.054086 1.150844 0.602775 1.168795 0.359804)
+ 4.294128 #(0.000000 1.259973 1.472393 -0.196164 1.849135 0.277908 0.175747 -0.038528 0.857321 1.180070 0.008736 0.358344 1.681666 1.447220 1.224459 -0.058329 1.158421 0.599628 1.170245 0.349978)
+ 4.292383 #(0.000000 1.279021 1.463542 -0.184603 1.844129 0.259705 0.193110 -0.049933 0.853883 1.192503 -0.000582 0.351845 1.699723 1.469815 1.245719 -0.040796 1.182535 0.595179 1.185477 0.362308)
)
;;; 21 all -------------------------------------------------------------------------------- ; sqrt 4.5825
@@ -295,6 +317,7 @@
5.3164971341632 #(0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 0)
4.502463 #(0.000000 1.403052 1.255480 1.307876 -0.000285 1.470554 -0.213424 1.608180 0.222059 1.114300 0.369365 1.844087 1.125963 1.022420 1.573231 0.604368 0.683620 0.387557 0.810080 1.652087 0.004804)
+ 4.491591 #(0.000000 1.403287 1.257329 1.319102 0.002521 1.468531 -0.205450 1.588790 0.209415 1.101797 0.368252 1.838138 1.108179 1.040778 1.583528 0.603918 0.687287 0.380505 0.816420 1.657265 0.005570)
)
;;; 22 all -------------------------------------------------------------------------------- ; sqrt 4.6904
@@ -304,7 +327,8 @@
5.292244006282 #(0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0)
4.622803 #(0.000000 1.340373 0.970954 1.002159 0.880275 1.416080 1.819200 1.007752 0.255081 0.347189 0.600359 0.574629 0.015990 0.999438 1.635477 0.619917 0.631959 1.121023 0.599154 1.883352 0.740818 1.129065)
- 4.596535 #(0.000000 -0.077576 1.091211 0.605873 -0.217530 1.050742 0.750644 1.957547 0.022500 0.328711 1.216662 1.064952 1.133937 1.133282 1.517189 0.988017 0.974977 1.531988 0.464384 1.655078 0.464996 1.172889)
+ 4.595560 #(0.000000 -0.078095 1.091185 0.606152 -0.217468 1.052185 0.751097 1.956091 0.022781 0.329329 1.216040 1.065645 1.133116 1.132504 1.517540 0.989263 0.974365 1.531213 0.464543 1.655862 0.463640 1.174495)
+ 4.591982 #(0.000000 -0.086851 1.094579 0.612847 -0.225564 1.052241 0.748697 1.954229 0.023159 0.332205 1.213921 1.064392 1.125288 1.130676 1.516743 0.987296 0.975094 1.525802 0.462206 1.659880 0.468915 1.177291)
)
;;; 23 all -------------------------------------------------------------------------------- ; sqrt 4.7958
@@ -312,7 +336,8 @@
5.35928895203514 #(0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1)
5.3592889520338 #(0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1)
- 4.626935 #(0.000000 0.672304 -0.214779 0.257763 1.214429 0.901455 0.161476 1.484239 1.380540 0.829706 0.350202 0.610702 0.579423 -0.010263 1.030945 1.663136 1.545217 0.031804 0.258858 1.309974 0.036374 -0.113878 0.109784)
+ 4.625696 #(0.000000 0.671135 -0.214297 0.258444 1.216101 0.901738 0.160505 1.484022 1.379069 0.829978 0.350531 0.609142 0.578677 -0.009954 1.031616 1.661844 1.545884 0.031485 0.259930 1.310637 0.037362 -0.114212 0.110243)
+ 4.613277 #(0.000000 0.668983 -0.208470 0.254349 1.217866 0.914011 0.163047 1.477792 1.369464 0.833712 0.351294 0.598607 0.574330 -0.009251 1.047992 1.662129 1.550991 0.040281 0.262513 1.321685 0.044892 -0.113023 0.128555)
)
;;; 24 all -------------------------------------------------------------------------------- ; sqrt 4.89897
@@ -323,7 +348,8 @@
5.6358969066981 #(0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0)
4.898310 #(0.000000 0.289908 1.243053 1.316260 0.981048 -0.015828 0.087983 -0.141851 0.850507 1.125166 0.207133 1.191771 1.184999 -0.031777 0.021164 1.511848 0.441664 1.474001 0.734003 0.462184 0.869525 0.377835 0.501468 0.555313)
- 4.828408 #(0.000000 1.827701 1.307427 1.185983 0.230988 0.361625 -0.000806 0.183136 1.152148 1.708274 0.293212 1.014532 0.920868 0.698063 0.177716 0.792646 0.801088 0.338735 1.438964 0.537003 1.757334 0.380152 0.151343 0.739976)
+ 4.801023 #(0.000000 1.831695 1.320777 1.197748 0.233237 0.367738 -0.002029 0.193745 1.146112 1.719131 0.299954 1.023025 0.925835 0.702485 0.169264 0.790783 0.786532 0.343760 1.444803 0.532865 1.747331 0.369772 0.150730 0.745265)
+ 4.753639 #(0.000000 1.843887 1.339328 1.246130 0.253074 0.373645 -0.000750 0.230110 1.128370 1.734640 0.309459 1.044439 0.960759 0.694789 0.162108 0.791878 0.758111 0.357004 1.451796 0.511430 1.736859 0.362143 0.148207 0.764704)
)
;;; 25 all -------------------------------------------------------------------------------- ; sqrt 5
@@ -335,7 +361,8 @@
4.948398 #(0.000000 1.686765 1.762710 1.532195 0.085851 0.266079 1.489375 0.115086 0.757502 0.552909 0.292603 1.861685 0.311415 1.400027 1.667706 1.732975 1.674925 0.489022 0.298773 1.259968 1.553419 0.784088 1.716599 1.134221 0.281750)
4.948133 #(0.000000 1.017449 0.206814 1.069041 1.478866 -0.395547 1.342461 -0.005382 1.343012 1.463276 1.395370 1.627041 1.911452 0.743332 0.784726 1.590023 0.492977 1.010516 1.941282 1.678821 0.191562 1.647820 0.872032 0.853004 0.403096)
4.926905 #(0.000000 0.355954 1.212496 1.402938 1.466374 1.630894 0.210471 1.061533 1.091242 1.129379 0.833926 0.982335 1.701199 0.187178 1.388909 1.608424 1.095499 0.130794 0.020607 1.528740 0.434794 0.092721 1.110061 -0.157890 1.038455)
- 4.911147 #(0.000000 0.187362 1.768119 0.502472 0.008644 0.038366 0.364208 0.869075 0.590857 0.728319 0.060420 0.804338 0.551966 -0.077543 -0.057586 1.656376 0.518357 0.858779 1.392058 0.648767 1.848425 1.308531 1.744627 0.564119 0.991642)
+ 4.909833 #(0.000000 0.187589 1.768578 0.501542 0.009167 0.037917 0.364211 0.868264 0.590722 0.727787 0.060334 0.804275 0.551751 -0.078031 -0.058109 1.656481 0.518721 0.858245 1.392346 0.648581 1.847905 1.307763 1.744318 0.564847 0.992149)
+ 4.884758 #(0.000000 0.200204 1.764079 0.493998 0.017747 0.017726 0.387590 0.857472 0.587655 0.710100 0.049044 0.813205 0.543754 -0.082659 -0.071049 1.663133 0.533326 0.861598 1.394024 0.647222 1.829506 1.311469 1.747264 0.585833 0.979137)
)
;;; 26 all -------------------------------------------------------------------------------- ; sqrt 5.0990
@@ -345,7 +372,7 @@
5.7865648269653 #(0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0)
5.110649 #(0.000000 0.774777 0.723600 0.351434 0.506245 1.753401 -0.041710 0.654578 0.924416 0.592060 0.124977 1.725460 0.568638 0.292303 -0.029411 0.650921 1.229026 1.335950 1.218484 1.435408 0.895624 1.655178 0.450508 1.542149 0.782878 -0.005138)
- 5.027303 #(0.000000 0.474278 0.419201 0.856035 1.362635 -0.141803 1.639071 0.163247 1.829855 0.591028 1.695598 0.410000 1.100155 1.469430 1.238975 1.168876 0.829115 0.935553 0.140227 -0.245164 1.260519 1.063747 -0.149539 1.648499 0.949022 1.703127)
+ 5.026535 #(0.000000 0.473345 0.419439 0.856181 1.363957 -0.141403 1.638549 0.164154 1.829869 0.591599 1.694690 0.411050 1.100290 1.468792 1.239268 1.168617 0.829414 0.936272 0.139582 -0.244904 1.260854 1.063564 -0.149522 1.648159 0.947857 1.702598)
)
;;; 27 all -------------------------------------------------------------------------------- ; sqrt 5.1961
@@ -355,7 +382,8 @@
5.198693 #(0.000000 1.168670 0.246753 0.527351 1.555827 0.930074 0.702478 1.853770 0.731175 -0.145926 0.842011 0.634271 1.628409 1.399866 1.392022 1.357129 0.254987 0.567359 0.102270 0.542512 1.655944 1.537226 -0.001419 0.809036 1.555787 1.627118 1.879787)
5.110510 #(0.000000 1.291889 0.644395 1.565548 0.436498 1.638155 1.141915 1.621861 1.159339 1.037283 1.551398 1.339013 0.604588 0.645654 1.822460 0.785756 0.610847 1.087568 1.524494 1.923690 1.578188 -0.032880 0.902907 1.386491 0.188433 0.154041 1.758936)
- 5.083648 #(0.000000 1.191041 1.024725 -0.048634 0.941788 0.744328 0.037822 1.958488 1.581365 1.826383 1.924026 0.835072 0.486190 0.839682 0.546112 1.297986 0.792573 0.194579 0.414053 0.870742 1.151832 0.321644 0.467515 -0.083109 0.821222 1.640372 0.390483)
+ 5.082429 #(0.000000 1.190278 1.025779 -0.047540 0.942516 0.744088 0.037094 1.957935 1.582013 1.825836 1.922424 0.836322 0.487507 0.838188 0.545549 1.298803 0.793631 0.194333 0.413652 0.869353 1.151257 0.322086 0.467254 -0.082977 0.822061 1.639198 0.391390)
+ 5.071183 #(0.000000 1.189500 1.026464 -0.036198 0.943928 0.732298 0.040792 1.974405 1.572553 1.827324 1.918915 0.832445 0.488648 0.823731 0.558370 1.295814 0.803616 0.194478 0.410693 0.860464 1.150784 0.318382 0.472876 -0.084968 0.821892 1.640779 0.398969)
)
;;; 28 all -------------------------------------------------------------------------------- ; sqrt 5.2915
@@ -365,7 +393,8 @@
6.0962085723877 #(0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1)
5.272050 #(0.000000 0.837544 1.410175 1.495461 1.388617 0.228694 1.626211 0.304595 1.137637 1.604062 0.850263 0.891215 1.332759 1.857470 1.787330 1.710329 1.167422 1.316390 1.695411 0.680144 -0.154530 0.670048 0.528432 0.665364 0.034760 1.556133 0.659738 0.408156)
- 5.267856 #(0.000000 0.834483 1.412926 1.498183 1.384286 0.226512 1.629757 0.300412 1.140922 1.606235 0.853656 0.893886 1.328449 1.858338 1.790983 1.716119 1.170470 1.314172 1.697252 0.677637 -0.158755 0.669950 0.531935 0.664555 0.039819 1.554624 0.657764 0.410427)
+ 5.264384 #(0.000000 0.833836 1.413443 1.497697 1.382920 0.225655 1.629056 0.300515 1.138867 1.604066 0.853911 0.894916 1.327645 1.859762 1.792286 1.715812 1.172040 1.312170 1.698662 0.675047 -0.159026 0.668427 0.532512 0.665631 0.039066 1.554813 0.657182 0.409686)
+ 5.247652 #(0.000000 0.825294 1.424476 1.495266 1.382409 0.227970 1.638970 0.289347 1.143773 1.605666 0.850500 0.896473 1.317689 1.872245 1.803082 1.720053 1.176409 1.298159 1.705092 0.662817 -0.150583 0.669357 0.538089 0.667879 0.052674 1.549436 0.656014 0.402852)
)
;;; 29 all -------------------------------------------------------------------------------- ; sqrt 5.38516
@@ -377,7 +406,8 @@
5.409604 #(0.000000 1.767809 1.217983 0.979089 0.430325 0.036278 0.441581 1.665511 1.189460 -0.128887 1.502875 0.745628 1.601608 0.517181 0.036357 0.457912 1.349424 -0.001642 1.719071 1.724643 0.429053 0.537167 1.475607 0.844455 1.078000 1.577367 0.986387 0.817760 1.202290)
5.335399 #(0.000000 1.166831 1.326181 0.919326 0.904875 0.391920 0.155640 -0.046408 1.779143 0.349492 0.995949 1.657018 0.720402 1.387534 1.260805 0.099824 1.772823 0.827227 1.512989 0.623469 0.428224 0.975285 0.951945 0.774234 -0.049109 0.844150 0.853893 0.775309 1.317984)
- 5.332551 #(0.000000 1.447150 1.406773 0.964127 0.901632 1.774228 1.591117 0.871090 0.940943 1.363325 0.726251 0.411558 0.361805 0.929408 1.625883 0.167192 1.018256 1.305645 0.925336 1.403379 1.462562 1.615571 1.819315 0.790502 1.983549 1.031736 0.292182 1.300870 1.912134)
+ 5.331571 #(0.000000 1.447372 1.406300 0.964471 0.900657 1.774270 1.591565 0.871902 0.941047 1.363367 0.726694 0.412992 0.362570 0.927822 1.624265 0.167869 1.017481 1.306903 0.925643 1.403341 1.461822 1.615657 1.819289 0.791180 1.985077 1.031310 0.291987 1.299500 1.910864)
+ 5.305711 #(0.000000 1.457379 1.415809 0.960561 0.897253 1.785682 1.590778 0.887299 0.945975 1.354389 0.729204 0.427280 0.355836 0.914251 1.606150 0.176166 1.008381 1.318323 0.932158 1.405390 1.458184 1.629865 1.829883 0.789230 1.989464 1.044442 0.298988 1.273409 1.904716)
)
;;; 30 all -------------------------------------------------------------------------------- ; sqrt 5.4772
@@ -386,10 +416,8 @@
6.2868418693542 #(0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1)
6.257221698761 #(0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1)
- 5.496996 #(0.000000 1.539782 1.025752 0.043523 0.310331 1.290220 1.356201 0.328163 0.926943 -0.315096 1.835110 0.049442 0.250436 0.632371 1.424132 -0.104917 1.507612 1.480557 1.800558 1.477678 1.704110 0.912463 0.112110 0.817933 0.205993 0.048667 1.304814 0.415265 1.107950 0.776949)
- 5.452349 #(0.000000 1.475061 0.323688 0.378393 1.337974 1.602769 0.409569 1.763631 0.603692 0.986750 -0.065462 -0.077289 0.273872 1.955077 0.172754 0.067024 0.603187 1.053627 0.754372 1.544305 0.838086 0.523986 1.814204 0.507736 1.513164 0.917453 0.323100 0.346918 1.704447 -0.097715)
-
- 5.4512361468062 #(0.0 1.4734700775982 0.32030915616145 0.37552053878874 1.3366559291527 1.6004304359562 0.40851037744942 1.761427931651 0.60068263661531 0.98326443092898 -0.068931173536512 -0.080561443583182 0.27149787175009 1.9522451608974 0.16849372022481 0.063931728182014 0.60003949806844 1.0500089650949 0.74926281304483 1.5398376632495 0.8350955944776 0.51974278420352 1.8108769706141 0.5017753465123 1.5071068506765 0.91261159532022 0.31748336091835 0.34151103108267 1.6994992571065 -0.10224584940173)
+ 5.450819 #(0.000000 1.473053 0.322102 0.375752 1.336894 1.601170 0.409485 1.762080 0.600632 0.983962 -0.069966 -0.081038 0.273027 1.952099 0.168083 0.063430 0.600709 1.049974 0.748398 1.540249 0.834526 0.520591 1.809641 0.501165 1.506313 0.911989 0.317614 0.342477 1.700348 -0.102570)
+ 5.439028 #(0.000000 1.485251 0.312498 0.363253 1.339602 1.605442 0.408204 1.767719 0.594781 0.993646 -0.070384 -0.087463 0.258952 1.950022 0.170275 0.052950 0.604164 1.052906 0.741938 1.539997 0.825678 0.524404 1.800947 0.492785 1.505616 0.922883 0.319115 0.332449 1.714353 -0.104091)
)
;;; 31 all -------------------------------------------------------------------------------- ; sqrt 5.56776
@@ -398,10 +426,8 @@
6.3353910446167 #(0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1)
6.3243918418884 #(0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1)
- 5.571884 #(0.000000 1.429819 0.606101 1.596522 1.033076 0.356243 0.312157 1.547187 0.906840 0.115913 1.910543 0.100299 1.238243 0.745166 0.287752 0.904647 0.875398 1.047824 1.046317 -0.114442 0.208606 0.328705 1.523213 0.067710 0.864059 1.726731 0.278343 0.073304 0.342256 1.421629 1.685738)
-
- 5.524170 #(0.000000 1.680665 0.833033 1.228491 0.036054 1.077718 1.648993 0.866359 0.981199 0.319425 -0.057185 1.451296 0.866899 1.107302 1.507338 0.448351 0.458178 0.602927 1.672435 0.982097 -0.005609 1.742290 0.327969 1.591871 0.506807 0.839876 1.104868 1.118482 0.605507 1.064741 1.174097)
- ;tstall: 5.52487421
+ 5.522815 #(0.000000 1.681463 0.832891 1.227707 0.035343 1.078452 1.648114 0.866097 0.981123 0.319148 -0.056896 1.450959 0.865942 1.106440 1.507971 0.449063 0.459103 0.602165 1.673007 0.981207 -0.004757 1.743067 0.328189 1.591804 0.507296 0.839131 1.104214 1.118795 0.606030 1.065738 1.174262)
+ 5.509022 #(0.000000 1.674828 0.832782 1.225411 0.026133 1.080144 1.652457 0.866537 0.980121 0.321568 -0.059307 1.464935 0.875048 1.095178 1.515797 0.453979 0.463252 0.597367 1.676260 0.971442 -0.007961 1.746112 0.329802 1.597855 0.516747 0.823799 1.106743 1.115924 0.605005 1.071565 1.165055)
)
;;; 32 all -------------------------------------------------------------------------------- ; sqrt 5.65685
@@ -411,9 +437,9 @@
6.4519599479542 #(0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1)
6.4451498985291 #(0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0)
- 5.676042 #(0.000000 1.450870 0.628761 0.951151 1.302768 1.303515 0.773003 0.104326 1.342950 -0.081085 1.381877 1.688161 1.415352 0.825871 0.781468 0.869062 1.874393 1.262926 1.306083 0.367002 -0.044090 0.655665 1.481576 1.777938 0.616922 0.057013 -0.259049 0.288205 -0.250894 0.283218 1.096531 1.550278)
5.651906 #(0.000000 1.406861 1.718396 0.095829 0.042486 0.036663 1.624234 1.050334 0.888959 0.603272 0.814136 1.450600 0.995853 1.289701 0.354180 0.750872 0.684781 0.539118 1.333288 0.156949 1.147049 0.722982 1.640783 0.526025 1.015492 0.937127 1.886652 0.044300 0.973937 0.157497 1.368313 1.138888)
- 5.619349 #(0.000000 -0.383762 1.253193 -0.243625 0.444671 0.321252 0.406735 0.164383 0.220671 1.356958 0.232311 0.301241 0.129890 1.290817 1.823699 1.210843 1.740757 1.642418 0.450587 0.603159 0.918425 0.270637 1.815831 1.327178 0.543837 1.397166 1.810958 0.420941 0.686824 0.173846 0.830957 0.003426)
+ 5.618040 #(0.000000 -0.384222 1.253587 -0.243804 0.445281 0.321640 0.406651 0.164636 0.221047 1.357651 0.232713 0.301462 0.129780 1.291567 1.823180 1.211024 1.740305 1.642979 0.450747 0.602190 0.919179 0.270509 1.815195 1.327938 0.543500 1.396755 1.810579 0.421634 0.686753 0.173629 0.830301 0.003461)
+ 5.579104 #(0.000000 -0.375307 1.256176 -0.247945 0.439871 0.333249 0.397334 0.152080 0.223166 1.367236 0.244480 0.303315 0.126466 1.296007 1.798980 1.207093 1.738816 1.673053 0.444943 0.628098 0.939370 0.291315 1.827774 1.352074 0.544598 1.389525 1.813194 0.440022 0.692972 0.153599 0.825050 0.002185)
)
;;; 33 all -------------------------------------------------------------------------------- ; sqrt 5.74456
@@ -422,8 +448,8 @@
6.6147227287292 #(0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0)
6.5579299926758 #(0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0)
- 5.702975 #(0.000000 0.062801 0.459754 0.898240 0.563224 0.769284 1.882697 0.054759 0.092428 0.348877 1.491035 -0.007268 0.900562 1.277930 0.417150 0.673401 -0.016365 1.797616 0.450965 0.261889 0.764049 0.499296 -0.113757 0.833856 0.613801 1.276880 1.625876 1.182550 0.209057 1.319317 1.638324 1.128082 0.550634)
5.696526 #(0.000000 0.064180 0.462965 0.897385 0.563673 0.769660 1.885497 0.054977 0.095165 0.348596 1.490034 -0.009270 0.903689 1.279743 0.419149 0.673563 -0.018088 1.798522 0.448703 0.259713 0.763439 0.499255 -0.115570 0.834915 0.614178 1.278346 1.627105 1.180831 0.212487 1.315591 1.641309 1.130103 0.551918)
+ 5.683085 #(0.000000 0.062927 0.475256 0.896612 0.568851 0.774079 1.896984 0.051557 0.095458 0.351349 1.480240 -0.008232 0.913817 1.279988 0.414060 0.677439 -0.028746 1.805949 0.427064 0.254073 0.768612 0.491917 -0.119814 0.847251 0.614802 1.279408 1.617037 1.170667 0.223012 1.307567 1.651871 1.123439 0.558797)
)
;;; 34 all -------------------------------------------------------------------------------- ; sqrt 5.8309518
@@ -434,11 +460,15 @@
6.6788883209229 #(0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0)
6.6782836914062 #(0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0)
- 5.892939 #(0.000000 1.325177 0.403557 1.366909 0.590571 0.340914 0.655490 0.443495 1.578539 1.438701 1.218935 0.782912 1.370576 0.816367 0.205574 0.001704 0.971008 1.346508 0.363799 1.678798 1.694665 0.945658 1.462747 0.055385 0.398678 1.067493 1.058178 0.898356 0.759952 1.294536 0.325456 0.740126 0.620361 1.145033)
5.887016 #(0.000000 1.785978 1.797747 0.207822 0.006914 0.541728 1.369425 0.218043 1.615429 0.591670 1.535256 1.970861 -0.188437 1.001256 1.023083 0.654598 0.352727 0.680541 0.368665 -0.186542 0.617717 0.127992 1.206315 0.952780 0.108961 1.766747 -0.067624 0.627672 0.810640 0.017241 0.611465 1.694301 0.028689 0.490363)
- 5.821908 #(0.000000 1.547719 0.249894 0.256638 1.031829 0.311670 0.932988 1.530386 1.538528 0.759637 1.676975 0.133548 1.204563 0.242938 1.384193 0.672483 0.779855 1.812472 1.075431 1.324835 1.066431 0.623468 1.716642 1.395437 -0.578660 1.316566 1.473549 1.407858 0.611196 0.627934 0.929469 -0.119771 -0.062952 0.585869)
+ 5.811741 #(0.000000 1.540671 0.245655 0.252498 1.027917 0.304151 0.922762 1.522093 1.526736 0.752216 1.666078 0.121834 1.196597 0.231178 1.370571 0.667531 0.771243 1.805250 1.063659 1.315893 1.055642 0.617009 1.702629 1.387731 -0.593478 1.311751 1.459695 1.394024 0.599388 0.616472 0.914091 -0.135298 -0.077227 0.572280)
+
+ ;; #(0.0 0.459329 1.754345 1.747502 0.972083 1.695849 1.077238 0.477907 0.473264 1.247784 0.333922 1.878166 0.803403 1.768822 0.629429 1.332469 1.228757 0.19475 0.936341 0.684107 0.944358 1.382991 0.297371 0.612269 0.593478 0.688249 0.540305 0.605976 1.400612 1.383528 1.085909 0.135298 0.077227 1.42772)
+ ;; #(0.0 0.540671 0.245655 1.252498 1.027917 1.304151 0.922762 0.522093 1.526736 1.752216 1.666078 1.121834 1.196597 1.231178 1.370571 1.667531 0.771243 0.80525 1.063659 0.315893 1.055642 1.617009 1.702629 0.387731 -0.593478 0.311751 1.459695 0.394024 0.599388 1.616472 0.914091 0.864702 -0.077227 1.57228)
+ ;; #(0.0 1.459329 1.754345 0.747502 0.972083 0.695849 1.077238 1.477907 0.473264 0.247784 0.333922 0.878166 0.803403 0.768822 0.629429 0.332469 1.228757 1.19475 0.936341 1.684107 0.944358 0.382991 0.297371 1.612269 0.593478 1.688249 0.540305 1.605976 1.400612 0.383528 1.085909 1.135298 0.077227 0.42772)
+ ;; #(0.0 1.540671 0.245655 0.252498 1.027917 0.304151 0.922762 1.522093 1.526736 0.752216 1.666078 0.121834 1.196597 0.231178 1.370571 0.667531 0.771243 1.80525 1.063659 1.315893 1.055642 0.617009 1.702629 1.387731 -0.593478 1.311751 1.459695 1.394024 0.599388 0.616472 0.914091 -0.135298 -0.077227 0.57228)
- 5.8159956783734 #(0.0 1.5397016561077 0.2417516116047 0.25182213741449 1.0275271734648 0.30631594891613 0.92370574997381 1.52083974389 1.5265888753692 0.74973221853216 1.6666346438495 0.12191540790328 1.1936100349705 0.22993979038453 1.3714215385305 0.66565037380791 0.77027189497917 1.8064211632728 1.0642944492141 1.3137752592893 1.055467056135 0.61655588270761 1.7040267912773 1.3858889002219 -0.59224288318223 1.309263887895 1.4600910418312 1.3949676057289 0.59894835822838 0.61824764377211 0.9162945459816 -0.1338574827625 -0.076347673520722 0.57327147780432)
+ 5.798297 #(0.000000 1.547139 0.250135 0.253956 1.034887 0.294403 0.921915 1.518234 1.521713 0.753601 1.656725 0.109964 1.203255 0.226115 1.358114 0.677931 0.773654 1.798499 1.067818 1.335045 1.053173 0.621909 1.698092 1.389346 -0.587371 1.326355 1.467536 1.405976 0.597497 0.629594 0.915202 -0.134796 -0.076541 0.571256)
)
;;; 35 all -------------------------------------------------------------------------------- ; sqrt 5.9160
@@ -451,8 +481,15 @@
5.954156 #(0.000000 1.278258 -0.083592 0.214172 1.000642 0.109910 0.696834 0.495585 0.264419 0.507196 0.939075 0.413387 1.318947 0.514672 0.603685 0.569579 1.474509 0.132115 0.142013 1.055283 1.264318 0.374088 0.909465 0.565617 0.520683 1.755363 1.338683 1.724323 0.320433 -0.005536 1.815986 1.018399 1.308282 1.047656 1.838668)
5.950283 #(0.000000 1.456471 1.035866 0.679741 0.310570 0.414222 1.556091 1.541397 0.229424 1.261390 0.918613 0.546988 -0.234730 0.466522 1.572643 1.341942 0.310426 1.380498 0.299012 0.745576 1.139186 1.408960 0.570121 0.469553 1.054355 0.495741 0.689322 0.105212 0.727994 0.486055 0.672274 1.162218 0.793791 1.539967 1.676702)
- 5.947852 #(0.000000 0.494320 1.581569 1.241367 0.205986 0.578930 0.311789 0.849090 1.274959 1.409643 0.356662 1.054448 0.950253 1.763963 1.230138 1.551451 1.608858 0.260789 0.197172 1.195050 0.622311 -0.068968 1.243260 1.364771 0.741439 -0.150662 0.317806 1.506956 -0.054347 1.044500 1.386021 1.412379 1.296754 1.196374 0.781954)
- 5.941174 #(0.000000 -0.020373 1.443929 0.788859 1.367343 0.283613 1.704986 1.643172 1.711380 0.879037 1.376649 1.335430 1.439179 0.075916 1.275897 0.726708 1.325212 1.202508 0.074037 0.522613 1.615523 1.618037 0.655208 1.732824 1.071982 1.264074 0.295674 -0.138185 0.127441 -0.032326 0.407954 0.650071 1.512628 0.719403 0.926229)
+ 5.946662 #(0.000000 0.493254 1.581728 1.241056 0.206479 0.577842 0.313268 0.849444 1.273433 1.408925 0.356668 1.054844 0.950274 1.763185 1.230410 1.551386 1.610206 0.260692 0.196905 1.196274 0.621434 -0.069557 1.243162 1.365265 0.741193 -0.151205 0.317827 1.506730 -0.053577 1.044484 1.384738 1.412282 1.296086 1.194698 0.781853)
+ 5.936113 #(0.000000 -0.020401 1.443101 0.789341 1.367835 0.284974 1.706306 1.642265 1.711494 0.877215 1.377445 1.334806 1.438959 0.075464 1.275771 0.725927 1.325841 1.201466 0.074023 0.523649 1.617774 1.617589 0.654686 1.732159 1.072231 1.262483 0.296332 -0.140533 0.127401 -0.032763 0.406846 0.648656 1.513743 0.716901 0.928728)
+
+ 5.927873 #(0.000000 0.261575 1.751555 1.767887 1.104109 1.879882 1.136177 0.510108 0.499459 1.309979 0.469156 1.926451 1.022490 1.955768 0.747176 1.294262 1.362357 0.316284 1.071265 0.810637 1.030312 1.587720 0.457447 0.734471 0.663757 0.687319 0.657758 0.771113 1.611243 1.418590 1.104966 0.194145 0.285015 1.648807 1.155581)
+ 5.916472 #(0.000000 0.256649 1.744066 1.770409 1.103528 1.879423 1.128555 0.516293 0.495653 1.313889 0.476369 1.926429 1.022025 1.956829 0.741527 1.285585 1.376741 0.313461 1.065811 0.813113 1.031655 1.591106 0.461162 0.729262 0.666075 0.694506 0.660771 0.776693 1.621134 1.427687 1.097577 0.195500 0.284544 1.650043 1.158069)
+
+ 5.880578 #(0.000000 -0.006114 1.417819 0.813084 1.386955 0.277349 1.701059 1.619158 1.719884 0.866888 1.378868 1.334114 1.428313 0.049135 1.247319 0.698046 1.323835 1.166628 0.083368 0.518044 1.643395 1.588698 0.681525 1.740161 1.071876 1.225580 0.269893 -0.172681 0.129412 -0.045918 0.409419 0.635175 1.523496 0.673659 0.920231)
+ 5.879728 #(0.000000 -0.004043 1.417415 0.812890 1.387640 0.277451 1.699713 1.617845 1.720202 0.866999 1.377557 1.335614 1.428714 0.048522 1.248105 0.699654 1.322129 1.166517 0.083425 0.516277 1.643964 1.586757 0.681457 1.740335 1.071039 1.224717 0.269795 -0.172800 0.129311 -0.044894 0.407740 0.635681 1.523709 0.672259 0.920395)
+
)
;;; 36 all -------------------------------------------------------------------------------- ; sqrt 6
@@ -464,7 +501,11 @@
6.8008880615234 #(0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1)
6.079976 #(0.000000 0.485646 1.596985 0.466616 0.896554 0.427555 0.820635 0.284672 0.253614 0.673322 1.121298 0.382951 1.301510 -0.091582 0.212857 1.860640 1.133192 1.529859 1.848028 1.704717 0.074358 0.632735 1.414172 0.573290 0.517663 0.674529 1.705508 1.776694 1.317631 0.677628 0.049721 1.148240 0.581401 0.940173 0.624068 1.824362)
- 6.063579 #(0.000000 1.104139 0.670953 0.148777 0.857257 0.829564 0.160437 1.784347 0.734229 0.323966 0.325553 0.254107 1.461184 -0.026299 0.331242 1.702834 -0.236446 0.560556 1.021892 0.822231 0.027009 0.023121 0.211335 1.436410 1.098040 0.172914 0.640348 0.676298 0.953255 0.817294 1.042187 1.518194 0.660499 1.647984 0.346651 1.486366)
+
+ 6.054052 #(0.000000 1.101064 0.670122 0.152199 0.856557 0.829760 0.161103 1.785709 0.729803 0.323458 0.324991 0.254657 1.460593 -0.023478 0.329200 1.704018 -0.239167 0.558579 1.023686 0.822672 0.025337 0.024907 0.208766 1.438564 1.096352 0.168789 0.640979 0.678914 0.955770 0.815464 1.042470 1.521904 0.664168 1.647293 0.345537 1.488122)
+ 6.013730 #(0.000000 1.085946 0.666669 0.161058 0.863429 0.824750 0.163969 1.792324 0.724151 0.320357 0.309525 0.239578 1.465585 -0.010251 0.312302 1.712646 -0.250300 0.541368 1.016840 0.830558 0.024229 0.022994 0.193662 1.439271 1.083390 0.149339 0.627000 0.682282 0.962326 0.803057 1.048877 1.550863 0.662021 1.643992 0.362212 1.477483)
+
+ 5.983119 #(0.000000 1.071562 0.658442 0.161534 0.867865 0.820449 0.173048 1.816224 0.729285 0.292702 0.318500 0.204340 1.478147 0.000801 0.304883 1.732739 -0.271769 0.524419 1.000525 0.824270 0.024115 0.006467 0.174768 1.416969 1.059259 0.131995 0.628886 0.685413 0.968187 0.785157 1.081847 1.591098 0.675402 1.664356 0.375430 1.455277)
)
;;; 37 all -------------------------------------------------------------------------------- ; sqrt 6.0827
@@ -479,7 +520,7 @@
6.197751 #(0.000000 1.767044 0.368055 1.162794 -0.018784 1.487338 1.864218 1.056062 0.424689 0.750157 0.915212 0.035334 0.265318 1.518376 0.533492 1.043268 0.567126 1.561121 1.474787 1.068744 1.236196 -0.252481 1.172124 1.252810 1.445963 0.953156 1.295904 0.219585 0.181683 0.973492 0.665016 1.635257 1.193879 0.655032 1.171858 1.766653 0.071611)
- 6.066243 #(0.000000 1.450889 1.742267 0.214790 1.761852 1.848897 1.085359 1.430930 0.325144 0.386169 1.714754 1.557733 0.353258 0.475712 -0.051782 0.276902 0.928663 1.651650 1.272344 0.784199 0.373379 1.241367 0.024082 1.842842 0.407879 0.327014 1.554386 0.643735 1.924473 0.306714 1.779341 0.442193 1.737173 1.030117 1.286804 1.361735 1.820972)
+ 6.027017 #(0.000000 1.428023 1.740298 0.219667 1.766847 1.848285 1.078656 1.439834 0.319718 0.414699 1.720969 1.560330 0.370121 0.459710 -0.046110 0.271650 0.920506 1.663175 1.272314 0.767297 0.376424 1.247123 0.034469 1.855806 0.394149 0.304342 1.566236 0.648308 1.925563 0.310525 1.772463 0.421781 1.738491 1.023243 1.295592 1.345534 1.817571)
)
;;; 38 all -------------------------------------------------------------------------------- ; sqrt 6.1644
@@ -494,7 +535,10 @@
6.343461 #(0.000000 0.220518 0.760021 0.840870 0.739726 0.133281 0.928434 0.978120 1.751452 1.407788 0.158470 0.451670 0.617876 1.208062 1.147858 0.631512 1.216709 0.304533 -0.061187 1.254802 1.092157 0.047512 1.795349 1.505216 0.759154 1.328467 0.763049 0.765594 1.006621 0.129836 0.563766 1.734234 0.769099 1.818978 0.782058 0.611599 0.190336 0.219061)
6.304996 #(0.000000 1.589153 1.495770 0.227098 1.756124 1.096343 1.861290 1.409284 0.555741 1.394336 0.007092 1.639803 0.925155 0.172500 1.696025 1.544289 0.175502 0.142950 0.498549 1.331513 1.534539 0.713795 0.696503 1.505086 0.648611 1.625305 1.485719 1.328350 0.731235 0.876742 0.582453 1.162387 -0.114395 0.606706 1.616260 0.092158 0.196919 0.303189)
- 6.291432 #(0.000000 0.450189 1.154425 1.359311 0.641140 0.049842 1.859717 1.337087 0.371124 0.920376 0.725830 1.774123 1.732527 0.792606 1.066323 0.112686 1.350587 0.579388 0.184077 0.811260 1.045713 1.412501 0.315961 1.734742 1.696127 1.678536 -0.424752 1.413889 1.018590 1.450072 0.557924 1.628012 0.465544 0.902556 1.284580 1.358053 1.007993 1.622653)
+ 6.284749 #(0.000000 0.450624 1.155276 1.358713 0.642464 0.051459 1.859201 1.338873 0.371745 0.921181 0.726185 1.774156 1.733998 0.792467 1.063743 0.111659 1.348639 0.577931 0.186033 0.812390 1.046561 1.413312 0.316583 1.734665 1.695787 1.679560 -0.425639 1.414846 1.018162 1.449443 0.557603 1.629242 0.465857 0.902571 1.284970 1.359421 1.007609 1.622996)
+
+ 6.243489 #(0.000000 0.456049 1.170146 1.373541 0.654541 0.054727 1.858658 1.367234 0.382796 0.927771 0.722072 1.768890 1.748475 0.783036 1.070669 0.120712 1.348933 0.560109 0.203404 0.811903 1.057825 1.418462 0.326521 1.709327 1.696963 1.683222 -0.453461 1.407982 1.007057 1.431765 0.553783 1.627705 0.476863 0.900740 1.294375 1.353587 0.994970 1.627554)
+ 6.203617 #(0.000000 0.462224 1.177953 1.396612 0.687532 0.063228 1.881560 1.393463 0.389626 0.945030 0.691511 1.739109 1.770118 0.782361 1.073241 0.141416 1.355568 0.541723 0.224129 0.799326 1.079461 1.411265 0.339997 1.675262 1.730145 1.688212 -0.481286 1.429156 1.018512 1.384520 0.545964 1.634021 0.500648 0.876024 1.340598 1.336686 0.992703 1.628835)
)
;;; 39 all -------------------------------------------------------------------------------- ; sqrt 6.2449
@@ -508,7 +552,8 @@
7.1506487936623 #(0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 1)
6.436461 #(0.000000 1.189440 0.832144 0.107226 1.321837 1.100415 0.377423 1.690022 0.539358 0.726135 0.694422 -0.035141 1.674789 1.729115 0.859268 1.305156 1.697214 0.539826 0.872548 1.654600 0.606121 1.473393 1.096266 0.030642 0.150090 0.343731 -0.021201 1.838966 1.689545 0.098784 0.434451 0.331369 0.219684 1.105323 0.270989 0.900060 -0.087787 1.618387 1.759966)
- 6.429442 #(0.000000 1.818796 1.342198 0.143828 1.025265 0.707863 -0.144499 1.634146 1.159441 0.714258 0.664261 1.510048 1.139662 0.333571 0.520205 0.912071 0.941297 1.760162 0.389940 -0.064259 -0.020026 0.548345 0.301690 1.662832 0.379396 1.473800 1.646355 1.096894 0.074243 0.512492 0.538998 0.128838 0.536757 -0.083084 0.780817 1.608318 0.655590 0.671029 0.980635)
+ 6.426675 #(0.000000 1.818137 1.342569 0.142832 1.026106 0.707254 -0.143789 1.634201 1.159772 0.712817 0.664790 1.509263 1.138778 0.334743 0.519331 0.912494 0.940500 1.759106 0.390588 -0.064689 -0.019349 0.549107 0.302561 1.663475 0.378628 1.471952 1.645422 1.095122 0.073958 0.511787 0.539325 0.127101 0.536831 -0.082605 0.780542 1.607220 0.655670 0.670877 0.980323)
+ 6.320198 #(0.000000 0.115670 0.176075 1.622226 1.248247 0.612553 0.000356 0.508227 0.541306 -0.042309 0.113241 0.180555 0.544847 0.981765 1.777405 1.883745 1.300594 0.096512 1.420066 1.208805 0.847082 1.560534 1.600559 1.576082 0.896267 0.072211 0.603027 1.729988 0.262606 1.385380 0.654788 0.067329 1.180462 1.494547 1.595623 0.463305 1.555632 0.099178 0.339859)
)
;;; 40 all -------------------------------------------------------------------------------- ; sqrt 6.3245
@@ -521,7 +566,7 @@
7.4014959335327 #(0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0)
7.3913831710815 #(0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0)
- 6.487799 #(0.000000 1.650788 1.396095 0.192516 1.135634 1.349394 1.537846 1.584799 0.148827 0.486975 0.432347 1.277284 0.369125 0.098155 -0.108026 1.454187 -0.250061 -0.057090 1.991879 0.340499 1.907724 1.302440 0.667626 0.761014 0.249660 1.450387 0.265002 1.284936 1.461054 1.832963 1.258136 0.702954 1.525770 1.718807 0.715196 -0.269136 1.626959 0.676562 1.260556 0.624534)
+ 6.454572 #(0.000000 1.653194 1.404277 0.186154 1.133719 1.350320 1.556073 1.590992 0.145896 0.490865 0.441020 1.274292 0.367589 0.094832 -0.119062 1.448560 -0.268867 -0.049664 0.008971 0.339226 1.902276 1.292017 0.671617 0.754186 0.245273 1.468064 0.252596 1.283067 1.466947 1.837418 1.253999 0.689949 1.519170 1.709695 0.720407 -0.262621 1.624996 0.677240 1.255812 0.624744)
)
;;; 41 all -------------------------------------------------------------------------------- ; sqrt 6.4031
@@ -534,7 +579,7 @@
7.4493231773376 #(0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0)
7.4106826782227 #(0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1)
- 6.569708 #(0.000000 1.194603 1.593153 -0.297029 1.194399 1.004976 0.494804 0.475958 1.354295 1.917604 0.419987 0.301794 -1.823141 1.779019 1.677314 1.026002 0.461427 1.631281 0.537349 0.459412 1.318692 0.532559 0.055364 0.769685 0.521677 0.500740 0.621042 0.955808 1.114094 -0.145008 0.969054 1.635322 0.651058 0.048058 0.104064 0.282173 0.920662 0.158811 1.352049 0.059402 0.528716)
+ 6.522248 #(0.000000 1.186429 1.604473 -0.290863 1.176132 1.016913 0.481851 0.472793 1.351266 1.908721 0.404526 0.318834 -1.823636 1.787799 1.663391 1.047284 0.464865 1.635079 0.539393 0.473624 1.321041 0.538675 0.054164 0.760540 0.508566 0.495673 0.629577 0.960614 1.127728 -0.142184 0.960460 1.621160 0.630485 0.070424 0.096402 0.264158 0.934196 0.137890 1.350449 0.067243 0.526025)
)
;;; 42 all -------------------------------------------------------------------------------- ; sqrt 6.4807
@@ -546,7 +591,7 @@
7.7545323371887 #(0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1)
7.6252284049988 #(0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0)
- 6.681695 #(0.000000 1.748337 1.551058 1.892094 1.553216 1.531781 0.035311 0.066706 1.507107 0.229093 1.753874 0.982307 0.794455 0.252810 0.636351 1.103162 1.816102 0.015061 1.204507 1.661713 0.360350 1.776727 1.491317 1.258420 0.828894 0.502063 0.943767 1.155516 1.734730 0.695955 1.642477 0.674117 1.664683 0.661931 0.726179 0.820027 1.058666 1.881470 0.111468 0.525422 -0.021604 0.980173)
+ 6.663220 #(0.000000 1.749524 1.543926 1.899112 1.541872 1.545314 0.024746 0.065681 1.499617 0.234020 1.762814 0.988975 0.798828 0.255604 0.629398 1.100034 1.814759 -0.005724 1.192497 1.664257 0.370034 1.791865 1.495721 1.258288 0.821845 0.498691 0.930617 1.169263 1.734433 0.702398 1.635742 0.685494 1.671133 0.654537 0.736990 0.816132 1.061004 1.901586 0.102868 0.518997 -0.029324 0.962370)
)
;;; 43 all -------------------------------------------------------------------------------- ; sqrt 6.5574
@@ -562,7 +607,7 @@
7.6619415283203 #(0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1)
6.793860 #(0.000000 1.792016 1.583872 1.588004 0.915246 0.825218 0.838133 -0.149037 1.385335 -0.198164 1.515036 1.174746 0.151165 1.030301 1.190770 1.061118 0.608692 1.084363 0.587203 1.551244 1.753734 0.324619 0.365220 1.189319 1.515566 1.507524 0.573568 1.154172 0.379865 1.197988 1.264889 1.070415 -0.125194 1.692084 1.278358 0.010536 0.616412 1.936418 1.523538 0.429937 0.082347 1.799134 0.547566)
- 6.731989 #(0.000000 1.206018 1.570759 1.084525 0.789878 0.629472 1.134763 0.595422 0.066659 1.230189 0.827811 0.404014 0.244216 1.885064 0.041821 0.580547 1.662596 1.326499 0.322898 0.125608 0.767908 -0.104199 0.516168 0.324496 0.598998 0.313329 1.102803 0.774620 1.806861 0.261779 1.049275 1.372305 1.170462 0.616080 1.900050 0.242635 0.950335 0.172335 0.738371 1.396794 1.451413 -0.322276 0.618115)
+ 6.700796 #(0.000000 1.187880 1.575586 1.077506 0.777298 0.625537 1.128142 0.593277 0.079003 1.219345 0.826169 0.419160 0.244926 1.890647 0.032386 0.586562 1.675153 1.323604 0.332283 0.130032 0.751664 -0.100330 0.518328 0.307019 0.591954 0.316762 1.090504 0.775000 1.830474 0.260931 1.045201 1.380123 1.181501 0.609513 1.901977 0.248217 0.948281 0.184289 0.742909 1.402500 1.449649 -0.319055 0.640592)
)
;;; 44 all -------------------------------------------------------------------------------- ; sqrt 6.6332
@@ -570,7 +615,7 @@
7.9767818450928 #(0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1)
6.835002 #(0.000000 0.015000 1.247084 1.307018 1.667645 1.811831 0.841525 0.845296 1.539718 -1.787159 -1.968731 1.138482 0.424321 -0.080971 0.006825 1.398089 0.456626 0.537874 0.628768 0.288217 1.644188 0.473676 0.414194 1.024647 0.386560 0.878209 1.946721 1.157046 1.733986 0.801698 1.645672 1.304310 0.758199 0.184675 0.209361 0.473188 0.384697 0.471454 0.796809 1.516060 0.335237 1.825604 1.673828 0.310688)
- 6.790967 #(0.000000 0.448431 0.088455 0.529452 -0.281448 1.783649 0.108256 -0.013263 0.096236 1.660186 1.741303 0.366803 0.290403 0.577890 1.145240 0.173294 -1.793206 0.570755 0.222045 1.179856 1.347855 0.752258 1.668928 1.475571 0.153725 0.474991 0.597499 0.739384 0.023351 1.521820 0.823244 1.219535 0.155871 0.624288 1.582192 0.276954 -0.068847 1.121515 0.939313 0.368775 0.890358 -0.018714 1.235459 0.274023)
+ 6.752138 #(0.000000 0.456510 0.100210 0.535690 -0.280213 1.791938 0.100748 -0.023413 0.099409 1.657576 1.733927 0.378001 0.277958 0.559692 1.165847 0.192926 -1.779998 0.556008 0.215320 1.173535 1.351893 0.740920 1.670449 1.466406 0.149002 0.455764 0.610167 0.744409 0.011380 1.534424 0.830586 1.232521 0.168074 0.611087 1.566995 0.267416 -0.079057 1.132554 0.932665 0.368725 0.895844 -0.014941 1.245476 0.265177)
)
;;; 45 all -------------------------------------------------------------------------------- ; sqrt 6.7082
@@ -579,7 +624,8 @@
7.089405 #(0.000000 0.702395 1.613825 1.357823 0.648228 0.071359 1.034132 0.925605 0.019903 0.785319 0.794290 0.059919 0.667965 1.099745 0.620429 1.045045 0.645268 0.495359 0.943383 0.402505 0.556132 0.243775 0.009110 1.476267 -0.597520 1.081756 1.957202 0.907757 0.101905 0.472870 0.948955 1.016228 1.482660 0.608399 1.352335 0.404535 -0.303022 1.653384 1.835470 0.559062 0.400382 1.565503 1.823442 0.556895 0.193715)
6.996247 #(0.000000 1.460743 0.209887 1.008492 0.782367 0.475740 1.085849 0.220646 0.863722 -0.270402 0.714842 1.508604 0.388633 0.311181 0.588442 0.222393 0.495641 1.437910 0.516774 0.007439 0.091864 1.628016 1.131874 0.118129 1.607205 0.061686 0.246253 0.683564 1.305458 0.916629 0.445436 1.131543 0.379997 0.412455 0.957828 1.261534 -0.107829 1.369108 1.367335 1.345397 1.248574 0.330782 0.381156 1.241772 1.284021)
- 6.965129 #(0.000000 1.090510 -0.081040 -0.298897 1.311182 0.126660 0.658101 1.025729 1.408269 -0.081027 1.244972 1.947425 1.802817 1.009596 1.803843 0.183768 0.497787 0.234942 1.084892 0.655745 1.364294 0.142215 0.041194 0.657424 0.089709 0.068673 0.143863 0.734975 1.587218 0.321834 0.095217 -0.055349 1.048575 1.849585 1.011793 1.257040 1.080503 -0.009012 1.432158 1.033116 0.443034 -0.020258 1.897473 1.583815 1.904867)
+
+ 6.937843 #(0.000000 1.094652 -0.085476 -0.298103 1.313901 0.125050 0.653195 1.020319 1.404453 -0.094950 1.231260 1.949054 1.804828 1.003684 1.804510 0.171243 0.507553 0.241483 1.102939 0.659151 1.345848 0.148662 0.031167 0.650852 0.081986 0.061923 0.145799 0.734313 1.581155 0.335075 0.093273 -0.059624 1.051306 1.844872 1.008792 1.254064 1.081678 -0.017755 1.438619 1.040683 0.447860 -0.025726 1.914681 1.579300 1.904522)
)
;;; 46 all -------------------------------------------------------------------------------- ; sqrt 6.7823
@@ -587,7 +633,8 @@
8.22203540802 #(0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0)
7.068004 #(0.000000 0.406360 1.088021 -0.078049 0.335638 0.031296 1.493806 0.598331 1.714709 0.859865 0.480592 0.241095 0.547695 1.648638 0.212679 1.209408 1.484019 1.704259 1.205614 0.879939 0.138274 1.556016 0.257091 1.546474 1.563114 1.390350 0.046591 0.339339 1.048982 1.088403 1.078631 1.419086 1.412366 0.419734 0.462611 1.570301 -1.962993 1.269135 0.285260 0.714758 1.892846 1.595096 1.692969 1.241304 1.808408 1.724608)
- 6.954660 #(0.000000 1.410228 0.929097 1.769939 0.712858 0.205584 0.007208 0.178028 1.038043 0.821998 -0.014356 1.533538 0.313216 1.113345 0.990276 1.071997 0.479592 1.909049 1.692967 0.023293 0.790509 1.421347 1.346890 0.616597 0.717443 0.126587 0.873263 1.345596 0.840377 1.743490 1.542420 1.208180 1.653605 1.477491 1.923882 0.985567 1.462450 0.922938 1.389942 1.483849 0.919118 1.204589 -0.081079 0.455357 0.257125 0.917674)
+ 6.950253 #(0.000000 1.409215 0.928831 1.770426 0.714012 0.205628 0.006185 0.178005 1.037678 0.821238 -0.014025 1.534284 0.311767 1.113694 0.988720 1.071691 0.480331 1.908778 1.692269 0.023174 0.790394 1.420698 1.345293 0.615694 0.716321 0.125960 0.873662 1.345271 0.839950 1.744649 1.541986 1.207598 1.653924 1.477083 1.924378 0.987088 1.462096 0.922505 1.390299 1.485212 0.919586 1.204135 -0.080942 0.455387 0.256306 0.916708)
+ 6.905954 #(0.000000 1.417612 0.938193 1.758943 0.715374 0.215931 -0.007669 0.199443 1.043120 0.817607 0.004654 1.533896 0.311274 1.106610 0.987087 1.053415 0.477733 1.919421 1.686703 0.034975 0.766640 1.414612 1.344216 0.594791 0.711622 0.124027 0.862708 1.343317 0.843554 1.752895 1.543252 1.208805 1.657868 1.471008 1.943816 0.992937 1.462206 0.930944 1.390260 1.484039 0.913622 1.197983 -0.102898 0.476030 0.262384 0.921218)
)
;;; 47 all -------------------------------------------------------------------------------- ; sqrt 6.8556
@@ -597,7 +644,8 @@
8.3221893310547 #(0 0 1 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0)
7.216830 #(0.000000 1.672112 0.417912 0.850481 -0.047344 0.924892 1.485237 0.412503 1.392861 1.796022 0.400137 0.189962 0.249181 0.530104 1.876632 0.327512 0.420971 0.555449 1.244910 1.237571 1.065906 0.100499 1.355250 0.654823 0.311650 0.646120 1.166139 1.830961 0.922860 0.180606 1.258159 0.898916 1.570356 0.634763 0.578007 0.831309 0.082246 0.565623 0.126431 1.645290 0.363677 0.895286 1.053584 0.366741 0.156906 1.615534 1.444383)
- 7.182210 #(0.000000 1.685838 0.939218 0.175763 0.734382 1.864902 0.180836 -0.064622 0.959907 0.109726 0.226876 0.288171 0.902764 1.431753 0.158948 0.465513 0.876402 1.496502 0.922244 1.324039 0.612407 1.492935 1.805010 -0.162038 1.422095 1.186092 0.760525 1.278606 1.610936 0.369770 0.180357 1.368808 1.016913 0.990939 1.218064 0.180126 1.473984 0.753462 0.011158 1.821737 0.168590 -0.136829 0.383825 1.309202 1.615770 1.223606 1.469034)
+ 7.180804 #(0.000000 1.685749 0.939738 0.175401 0.734915 1.865352 0.181481 -0.064697 0.960644 0.109930 0.227378 0.288721 0.902910 1.431435 0.158090 0.466405 0.875537 1.496993 0.921849 1.324543 0.611733 1.492424 1.804840 -0.161371 1.421817 1.186058 0.760082 1.278410 1.611726 0.369062 0.180248 1.368528 1.017593 0.990403 1.217286 0.180697 1.474753 0.753458 0.011349 1.821265 0.169305 -0.137247 0.383205 1.308256 1.615986 1.223586 1.469462)
+ 7.150732 #(0.000000 1.683383 0.921871 0.149877 0.748333 1.866760 0.175703 -0.075848 0.977608 0.120211 0.211446 0.287852 0.901597 1.445317 0.151992 0.453945 0.874418 1.510782 0.920845 1.332000 0.625896 1.479659 1.807766 -0.164181 1.423580 1.181188 0.753177 1.279087 1.607567 0.367322 0.160418 1.370785 1.011394 0.994985 1.208622 0.169850 1.472843 0.752733 0.021454 1.810845 0.164547 -0.145106 0.380305 1.321061 1.595812 1.217743 1.461575)
)
;;; 48 all -------------------------------------------------------------------------------- ; sqrt 6.9282
@@ -615,7 +663,7 @@
8.7183141708374 #(0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1)
8.5157623291016 #(0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0)
- 7.394273 #(0.000000 1.036641 1.705732 -0.054149 1.131953 0.576289 0.754036 1.707370 0.332177 0.174698 1.503796 1.163839 0.915643 1.524176 -0.075215 0.008294 0.813094 1.355522 1.265927 0.776884 0.465301 1.334904 1.263344 0.698899 0.642460 1.332303 1.741177 -0.429888 1.366649 0.306691 0.196435 0.908387 0.373104 0.792449 0.030251 1.523692 1.837370 1.052212 1.762739 1.540210 0.894742 1.453789 1.005322 -0.122847 1.082988 -0.236907 -0.086130 1.391732 0.104391)
+ 7.381330 #(0.000000 1.430968 1.481533 1.515637 1.248297 1.494786 1.281566 0.521712 0.835547 0.443385 1.213954 0.862204 0.682513 1.492167 0.450678 0.835488 0.567887 0.948391 1.761860 1.557935 1.501270 1.526671 -0.029014 0.686912 1.122036 0.064345 1.468308 1.076314 0.361385 0.358255 0.092010 0.074457 1.035300 -0.000291 1.124183 0.470653 0.487761 1.388712 1.156242 0.071088 0.006174 0.560069 1.126964 0.090915 0.756582 0.206499 1.048765 0.801704 1.395113)
)
;;; 50 all --------------------------------------------------------------------------------
@@ -623,7 +671,7 @@
8.8096923828125 #(0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1)
8.7809114456177 #(0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1)
- 7.514929 #(0.000000 1.514409 0.793768 1.406169 1.786060 1.476933 0.287633 1.717843 1.015882 0.893466 0.984108 1.080671 0.066920 0.892750 0.707293 1.341409 0.217976 -0.176152 0.763466 1.058096 1.397277 0.792888 0.498588 0.249383 0.760325 0.630549 0.659957 0.426622 1.377426 1.447954 0.909531 -0.085998 0.320309 1.291012 -0.264523 1.140989 1.444366 0.430969 1.294694 0.920088 -0.020676 1.178924 1.369197 1.532370 0.439884 0.566193 0.093963 0.231721 0.818831 1.665190)
+ 7.512821 #(0.000000 1.513804 0.793821 1.406754 1.785342 1.477285 0.287986 1.717808 1.016096 0.894434 0.983639 1.080614 0.065942 0.893367 0.706345 1.341870 0.217964 -0.177028 0.762610 1.057772 1.397792 0.792368 0.498364 0.249738 0.761165 0.630764 0.659416 0.426023 1.377071 1.447085 0.909307 -0.086282 0.319313 1.290096 -0.263913 1.141555 1.443484 0.430451 1.294681 0.919736 -0.020424 1.179143 1.368672 1.531415 0.440217 0.565889 0.093051 0.231974 0.818465 1.664840)
)
;;; 51 all --------------------------------------------------------------------------------
@@ -639,14 +687,14 @@
8.9920463562012 #(0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0)
7.674718 #(0.000000 0.781804 1.576119 1.624987 0.186178 1.244207 0.496366 0.436778 1.770704 0.551212 1.742132 0.340742 1.347903 1.105303 1.455106 1.133128 0.866641 1.585660 0.574508 0.225588 0.441172 0.971183 0.054053 0.417234 0.470508 1.203111 1.769270 1.324362 1.786001 -0.174446 0.150541 1.100328 0.380317 1.185133 0.350632 -0.020940 1.215466 1.370612 1.089164 0.730258 0.484203 0.925442 1.356703 1.068437 1.248546 0.337604 1.513577 1.051640 0.558926 1.385251 1.395726 0.897866)
- 7.522579 #(0.000000 0.788678 1.567144 1.598879 0.205045 1.246743 0.481402 0.444469 1.752887 0.533846 1.745772 0.357755 1.364276 1.097822 1.448926 1.160637 0.890338 1.564705 0.585930 0.229352 0.441601 1.014765 0.030936 0.401482 0.471628 1.224764 1.783347 1.341155 1.774945 -0.195745 0.177492 1.103794 0.412613 1.165492 0.354272 -0.048082 1.208313 1.313296 1.077917 0.718894 0.495430 0.968250 1.360212 1.064819 1.268093 0.363019 1.496000 1.019222 0.537834 1.368751 1.379938 0.876624)
+ 7.519717 #(0.000000 0.789558 1.566402 1.598554 0.204648 1.246273 0.482116 0.445282 1.753619 0.533630 1.745499 0.358095 1.364369 1.098291 1.449605 1.160303 0.890118 1.564624 0.585437 0.230225 0.442291 1.015111 0.030209 0.400522 0.471403 1.224808 1.783938 1.341269 1.774437 -0.196146 0.176811 1.103806 0.411969 1.164790 0.355247 -0.048443 1.208879 1.313227 1.078215 0.718402 0.495052 0.968409 1.359616 1.065480 1.267965 0.363669 1.496967 1.018786 0.538772 1.368909 1.379801 0.876299)
)
;;; 53 all --------------------------------------------------------------------------------
#(53 9.171422958374 #(0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0)
9.0914754867554 #(0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0)
- 7.760515 #(0.000000 1.174069 1.822367 0.791784 1.613124 0.645415 1.364477 0.280292 1.607034 1.612255 0.274745 1.805724 -0.024415 0.514825 0.356040 1.127924 0.691908 1.319618 0.117884 1.270358 1.781903 0.160660 0.441897 0.821690 0.418446 0.133109 0.085877 0.976458 0.922294 0.210198 0.815473 1.301561 1.359563 0.649069 1.170773 0.880166 0.185656 1.165024 0.089274 1.390669 1.093265 1.206601 0.241521 0.650911 0.714957 0.665988 0.253861 0.121730 0.265564 0.537983 1.046989 0.619139 -0.032680)
+ 7.659568 #(0.000000 0.590396 0.757813 1.645915 1.223857 1.694559 0.507946 1.856775 0.139932 0.225483 0.984601 1.350956 1.051830 1.748201 1.685580 1.839777 0.857615 -0.097896 0.627816 1.520230 0.779958 0.902813 0.791103 0.334117 0.229821 0.930439 1.862078 1.017949 0.005508 0.142375 0.418304 1.587210 0.199357 1.889479 1.245953 0.965316 0.841073 0.456792 1.379393 1.898260 0.492910 1.504537 1.849536 1.584031 1.705770 0.016850 1.672132 0.965872 1.981458 1.773893 0.410282 0.103114 1.638679)
)
;;; 54 all --------------------------------------------------------------------------------
@@ -654,7 +702,7 @@
9.1825122833252 #(0 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1)
7.812464 #(0.000000 1.437496 0.132365 1.418862 0.176063 1.061499 1.813761 0.370736 0.797744 1.770795 1.810685 0.094919 1.915654 0.783071 0.158404 0.579416 1.410860 0.044891 0.476496 0.717331 1.033383 0.150698 -0.000926 0.406275 0.957541 0.030324 1.623914 1.146961 0.675632 1.339164 1.262446 0.533183 1.489744 0.743890 0.508446 0.605056 0.416152 0.073538 0.891467 -0.019048 0.398198 0.610328 1.046842 0.496849 1.073112 1.670390 1.364851 0.296873 1.921441 0.141204 1.465901 0.991281 0.339565 0.459349)
- 7.802295 #(0.000000 1.436382 0.131359 1.419323 0.176683 1.064447 1.814717 0.367401 0.796488 1.775470 1.812787 0.096066 1.918717 0.783268 0.156555 0.583430 1.412417 0.048081 0.479507 0.710369 1.034738 0.150091 -0.002261 0.412506 0.959043 0.028112 1.620936 1.148716 0.676852 1.341153 1.260486 0.536380 1.488206 0.752316 0.511863 0.610354 0.416738 0.070413 0.893664 -0.012873 0.398148 0.612226 1.048404 0.501965 1.073360 1.673146 1.370010 0.292876 1.923836 0.139560 1.466155 0.992709 0.337345 0.458142)
+ 7.799933 #(0.000000 1.436675 0.131711 1.418640 0.175690 1.063868 1.813731 0.367454 0.797274 1.775187 1.812452 0.095527 1.917572 0.784922 0.155469 0.583163 1.413545 0.048704 0.479618 0.711658 1.035551 0.149895 -0.003766 0.411447 0.957536 0.028200 1.620231 1.147514 0.677958 1.341090 1.260666 0.536172 1.488399 0.752353 0.511273 0.612043 0.416537 0.070058 0.892736 -0.013399 0.396548 0.611702 1.047192 0.501939 1.072576 1.673177 1.369255 0.291478 1.925154 0.139786 1.465102 0.992796 0.337206 0.457337)
)
;;; 55 all --------------------------------------------------------------------------------
@@ -662,7 +710,7 @@
9.0889595835043 #(0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1)
7.984924 #(0.000000 0.614780 -0.228557 0.903292 0.573890 1.941558 1.233621 0.481086 1.271802 0.660609 1.375701 1.698922 1.952884 0.514120 0.395806 0.083681 1.622771 0.230629 0.632433 1.166537 0.881380 0.030806 0.889897 1.096320 0.008002 1.499712 1.627836 1.669304 0.238964 0.318806 1.113627 1.839718 0.846627 1.721351 1.679421 0.511507 0.391991 0.432979 1.847709 0.269509 1.433950 0.730903 0.316354 0.172958 1.841347 0.305292 1.583303 0.001441 0.849453 1.160060 0.851504 1.349197 1.222348 0.784407 0.384950)
- 7.881254 #(0.000000 0.951479 0.315844 1.650945 1.018486 1.230790 -0.244741 1.015129 1.187631 1.681317 0.465084 0.580225 1.473367 1.031867 1.119881 1.141859 1.585416 1.708994 -0.296996 1.381992 1.840832 0.844792 0.610099 1.199917 0.265871 0.474063 1.398440 0.039467 1.208261 -0.115043 1.188581 1.246026 1.352207 0.614820 1.360069 0.576500 1.630284 0.344666 0.243235 0.082800 1.038611 0.416948 0.450316 0.100105 1.719255 0.664981 0.334166 1.278299 1.683729 -0.171651 0.079583 0.923547 1.057853 0.645508 1.716401)
+ 7.877039 #(0.000000 0.951577 0.315848 1.652198 1.018982 1.229357 -0.244672 1.013980 1.187526 1.681563 0.466049 0.580818 1.473556 1.031437 1.119226 1.142080 1.586549 1.709659 -0.297860 1.382620 1.840901 0.844338 0.610699 1.198571 0.264848 0.474547 1.397421 0.038216 1.208317 -0.115610 1.188691 1.245408 1.352408 0.614201 1.360416 0.576557 1.631041 0.345180 0.243474 0.083638 1.037528 0.417002 0.449572 0.098327 1.718398 0.665635 0.333158 1.279568 1.682723 -0.171432 0.079788 0.923390 1.057568 0.645543 1.715461)
)
;;; 56 all --------------------------------------------------------------------------------
@@ -679,6 +727,7 @@
9.370246887207 #(0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0)
8.014130 #(0.000000 0.373290 1.052259 0.975399 1.731831 0.205823 0.540818 0.192853 1.752560 1.271616 0.988481 0.958542 0.289783 0.676291 1.626508 1.279855 1.548323 0.087903 1.512292 1.648776 0.170164 0.182182 0.376071 1.428691 0.381741 0.823249 1.719441 1.171133 1.108411 1.371319 1.658218 0.898780 0.915261 1.183346 0.751818 0.629734 1.649269 0.471078 1.687828 1.705356 1.006321 1.720931 1.606850 0.350931 1.486344 0.508764 1.480375 1.379364 0.115981 1.514663 0.096949 0.964767 0.248743 1.683367 1.125873 1.405759 1.544983)
+ 8.010027 #(0.000000 0.372569 1.051805 0.974807 1.731323 0.205732 0.539738 0.192202 1.751681 1.270744 0.989778 0.958606 0.289372 0.676335 1.625043 1.280804 1.548985 0.088657 1.512660 1.649123 0.170132 0.181910 0.376179 1.428920 0.381081 0.823145 1.719297 1.170672 1.110262 1.372146 1.659283 0.899327 0.915647 1.183714 0.752175 0.628350 1.649929 0.472195 1.688277 1.705086 1.005853 1.720040 1.606926 0.351107 1.485844 0.508848 1.481155 1.380113 0.116232 1.515387 0.095386 0.964622 0.248886 1.683584 1.125284 1.405647 1.545470)
)
;;; 58 all --------------------------------------------------------------------------------
@@ -686,28 +735,28 @@
9.6140956878662 #(0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1)
9.4419231414795 #(0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1)
- 8.062491 #(0.000000 1.099787 1.374572 0.689654 0.508737 0.136382 0.148826 0.155530 1.219050 1.325980 0.260009 1.202239 1.694264 -0.127744 0.933797 1.740514 0.878126 1.756549 1.469152 0.953305 1.288713 0.486513 1.124039 0.508075 0.250090 0.918061 1.131524 -0.211049 0.081651 0.048903 0.182931 0.006912 1.774237 0.818796 1.148578 -0.022938 1.875545 0.149601 0.171316 1.585086 0.184704 0.480936 0.107426 0.782814 0.253846 0.317178 1.532115 0.776614 1.341692 0.713040 -0.024537 1.812442 1.021040 0.327877 1.475745 1.519992 1.735231 0.388946)
+ 8.061125 #(0.000000 1.100108 1.373910 0.690236 0.507479 0.136457 0.148963 0.155132 1.218509 1.326649 0.259100 1.202636 1.693429 -0.126564 0.934132 1.739678 0.878446 1.757180 1.470320 0.953120 1.288641 0.486329 1.124727 0.508902 0.249403 0.917256 1.131629 -0.211587 0.080267 0.048889 0.182267 0.006420 1.773883 0.818370 1.149092 -0.022294 1.876251 0.149968 0.170351 1.584649 0.185725 0.480157 0.108204 0.783801 0.254238 0.317742 1.532217 0.775290 1.341397 0.713380 -0.025274 1.813022 1.020952 0.327764 1.475619 1.520240 1.736346 0.389853)
)
;;; 59 all --------------------------------------------------------------------------------
#(59 9.9013983722749 #(0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1)
9.4819116592407 #(0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0)
- 8.273461 #(0.000000 1.845350 0.346014 1.427338 1.347346 0.137392 1.053310 0.660495 1.511222 0.396900 1.302140 -0.023980 -0.243443 1.556472 0.319467 1.187732 0.131002 0.556486 0.191758 0.353133 0.149380 0.738055 1.028810 1.100188 0.604719 0.811814 1.007819 0.242787 1.245910 1.062936 0.507306 0.293729 0.513815 1.448531 0.660128 1.378302 0.858590 0.197724 0.652380 0.655024 -1.663229 1.616284 0.134573 0.557373 0.258574 1.701940 1.317482 1.248731 0.295336 1.520326 1.632360 0.367247 0.790678 0.551341 0.544579 1.008496 1.706645 1.433021 0.390883)
+ 8.269716 #(0.000000 1.844744 0.346396 1.428284 1.347226 0.137238 1.053601 0.661035 1.511786 0.396734 1.302532 -0.024782 -0.243351 1.557044 0.319227 1.188287 0.130541 0.556163 0.192594 0.353530 0.148629 0.738495 1.028169 1.099923 0.604140 0.812189 1.007651 0.243146 1.244965 1.063139 0.507254 0.293287 0.514036 1.448007 0.660549 1.378000 0.858151 0.197757 0.652032 0.654364 -1.663244 1.615740 0.134255 0.556967 0.259052 1.701674 1.318331 1.249115 0.296311 1.519634 1.631965 0.367570 0.790903 0.551038 0.545497 1.009375 1.706240 1.433899 0.390587)
)
;;; 60 all --------------------------------------------------------------------------------
#(60 9.783 #(0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1)
9.575254043103 #(0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1)
- 8.421372 #(0.000000 1.646187 1.256983 1.463912 0.654751 1.483136 1.404395 1.489638 0.747666 1.214239 0.383933 1.209360 -0.133646 1.076934 1.219551 0.089402 0.910918 -0.127455 1.621304 1.800164 1.022992 1.341511 0.802977 1.028674 1.664649 1.899126 0.756340 0.928293 0.678800 1.200347 0.016453 -0.055668 -1.846815 1.836501 0.045734 0.835817 0.874824 0.850707 1.810655 1.125158 1.446138 1.849757 -0.089337 1.335820 1.380224 1.797070 0.117114 0.941572 0.547476 -1.906764 1.511437 0.354269 0.308176 1.437551 0.603674 0.134529 0.896597 0.450886 1.239699 0.487330)
+ 8.343616 #(0.000000 0.395614 0.281839 0.909322 0.555847 -0.037949 0.234808 1.723388 1.076971 0.678913 0.880705 1.287576 0.143529 0.033290 1.140378 1.297121 0.771383 0.057450 1.426588 1.814850 1.291643 0.984731 1.357501 0.564756 1.678510 0.891518 0.688232 1.701948 1.687391 0.985338 0.660461 1.096448 -0.020540 0.110195 0.706130 0.197908 0.541092 1.900853 0.130728 0.867714 0.344706 0.847245 0.845789 0.278831 0.853212 1.444279 -0.076482 1.694805 0.410261 -0.135555 0.704410 1.170691 0.072089 1.140486 1.675766 0.520303 0.214357 0.624558 0.153798 0.384604)
)
;;; 61 all --------------------------------------------------------------------------------
#(61 10.138124465942 #(0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 1)
9.9151945114136 #(0 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1)
- 8.447860 #(0.000000 0.259833 1.281182 1.801176 0.532567 1.732939 1.651454 1.183516 -0.198094 0.510688 -0.085158 0.421134 0.728118 -0.000304 0.517876 1.292343 0.684854 0.860830 0.958029 0.280009 0.146838 1.253591 -0.170618 1.088547 0.604165 0.990318 0.846798 0.188255 1.165507 -0.011241 1.442417 -0.061037 1.525216 -0.384534 0.873928 0.041175 1.422747 0.286351 0.535419 1.397493 1.111073 0.627536 -0.067482 1.524336 1.072435 1.530078 0.946938 1.844263 -0.110269 0.247413 0.788527 1.567269 1.438874 -0.090534 -0.078310 0.232809 1.563588 1.159623 0.609091 1.054719 1.259193)
+ 8.445875 #(0.000000 0.260576 1.280384 1.800897 0.533423 1.733606 1.652106 1.182816 -0.199000 0.510739 -0.084800 0.420430 0.728964 -0.000958 0.518540 1.292515 0.685581 0.860950 0.958447 0.280026 0.147795 1.254346 -0.170113 1.089060 0.603646 0.990248 0.845898 0.187788 1.165292 -0.011928 1.441760 -0.061749 1.525814 -0.384632 0.873049 0.041157 1.423421 0.285819 0.535056 1.397381 1.111899 0.627046 -0.067013 1.524138 1.072858 1.529268 0.946724 1.845070 -0.109760 0.248069 0.787955 1.566548 1.439628 -0.091320 -0.078782 0.232886 1.564008 1.160401 0.609445 1.054577 1.259708)
)
;;; 62 all --------------------------------------------------------------------------------
@@ -722,7 +771,7 @@
9.9846226693403 #(0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0)
9.9555234909058 #(0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0)
- 8.496723 #(0.000000 0.089467 -0.031199 0.351244 1.357720 0.192718 -0.038933 1.146629 0.152687 0.174994 1.673098 0.101215 1.857236 0.997777 1.705815 0.295787 1.255426 0.805285 1.484013 1.221014 0.018667 1.715509 1.099874 0.668599 1.244156 0.962029 1.253061 1.217542 0.275162 0.816000 0.059685 1.772085 1.451343 1.352874 1.880236 1.466788 1.701520 1.539089 1.169938 0.492736 0.931962 1.882003 1.244754 0.144032 1.637309 0.174576 0.728935 0.297067 0.223718 1.646864 1.120074 0.999291 0.166391 0.987303 1.429078 -0.073180 0.102252 -0.115979 1.105196 1.633488 0.231485 0.622846 0.399688)
+ 8.492186 #(0.000000 0.090059 -0.031581 0.351709 1.358682 0.193420 -0.038421 1.145573 0.152491 0.175399 1.674301 0.100894 1.856714 0.998993 1.707102 0.295464 1.254491 0.806072 1.482891 1.221821 0.017880 1.715563 1.099007 0.668860 1.245157 0.962769 1.253863 1.217119 0.274429 0.815107 0.058858 1.771169 1.451111 1.352696 1.880030 1.465446 1.701072 1.538902 1.169277 0.492391 0.931882 1.882005 1.244756 0.144928 1.638647 0.175341 0.730722 0.296655 0.223421 1.645888 1.121149 0.999335 0.165688 0.988123 1.428906 -0.074094 0.102104 -0.114716 1.105031 1.634488 0.232538 0.622559 0.400029)
)
;;; 64 all --------------------------------------------------------------------------------
@@ -737,7 +786,7 @@
10.18968963623 #(0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0)
10.157649040222 #(0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0)
- 8.666048 #(0.000000 -0.219667 1.080086 1.224895 1.324935 1.688455 1.630335 -0.122050 1.152089 1.790777 1.070950 1.470950 0.455755 0.912865 1.348284 1.283823 1.697093 0.249015 0.689833 1.892888 0.271782 1.099181 0.932246 1.331934 1.704410 1.079520 1.474799 0.222032 1.000075 0.465905 1.170198 0.373010 1.845568 0.504882 1.166826 0.386645 0.457758 1.316195 1.602036 0.514935 -0.035391 0.450997 0.219971 1.209793 1.706127 0.327956 0.715089 0.173625 1.177550 0.273109 1.338164 1.196944 1.286991 1.324557 1.144688 0.861933 0.787219 -0.061086 -0.042953 1.422016 0.880260 0.003731 1.350221 0.499663 0.003014)
+ 8.664213 #(0.000000 -0.219045 1.080972 1.224430 1.325296 1.687801 1.630697 -0.121485 1.152313 1.790386 1.071279 1.470807 0.456098 0.912368 1.348232 1.283124 1.697875 0.250001 0.689896 1.893157 0.272106 1.098864 0.931644 1.332792 1.704552 1.079383 1.474875 0.221795 1.000960 0.466163 1.170565 0.372989 1.846161 0.504322 1.166466 0.387156 0.457654 1.316611 1.601451 0.514222 -0.035464 0.450149 0.219464 1.209245 1.705511 0.328646 0.714153 0.173870 1.177736 0.272680 1.337930 1.197571 1.287144 1.324785 1.145289 0.862800 0.787371 -0.061033 -0.043287 1.422279 0.880408 0.004548 1.350853 0.499844 0.002604)
)
;;; 66 all --------------------------------------------------------------------------------
@@ -745,7 +794,7 @@
10.26798183746 #(0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1)
10.208241079264 #(0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0)
- 8.804666 #(0.000000 0.914533 1.759634 0.708752 1.526375 1.588941 1.786843 1.040337 0.627700 0.070615 0.501488 0.733410 0.754844 1.369498 0.274175 0.408618 1.459066 0.367383 1.699692 0.313769 1.038718 1.348228 -0.072581 0.645160 0.006100 1.316499 1.576993 0.938933 -0.068759 0.495161 -0.076334 1.427204 0.932972 1.066637 1.004221 0.638464 1.734545 0.053091 0.243267 1.381213 0.232315 1.350453 1.611673 1.628568 0.236604 0.547212 0.944291 0.331222 0.994886 0.600246 1.542469 0.654961 0.512183 1.821402 1.005412 0.413171 0.533086 0.088884 0.659503 0.633005 1.874571 -0.102020 0.666807 0.555773 0.554493 0.776749)
+ 8.802281 #(0.000000 0.913135 1.760561 0.707264 1.527941 1.589601 1.787648 1.041322 0.628377 0.070811 0.501767 0.733521 0.753105 1.369319 0.273891 0.409182 1.458410 0.368030 1.701340 0.312618 1.039367 1.348277 -0.072732 0.644971 0.005401 1.315366 1.577240 0.938177 -0.068469 0.496071 -0.077288 1.427705 0.932068 1.066276 1.003655 0.637440 1.734370 0.053991 0.243521 1.381526 0.231569 1.349052 1.611682 1.628817 0.237748 0.547382 0.943868 0.331162 0.994087 0.600971 1.541482 0.655612 0.511246 1.822169 1.005229 0.412872 0.532770 0.087202 0.659527 0.632515 1.875063 -0.101654 0.666331 0.555422 0.555187 0.775234)
)
;;; 67 all --------------------------------------------------------------------------------
@@ -754,14 +803,14 @@
10.445269388021 #(0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1)
10.422191619873 #(0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1)
- 9.042385 #(0.000000 1.612786 1.558248 1.346449 0.594133 0.159564 0.051993 0.673527 0.476414 0.375066 1.822368 1.631125 1.329155 0.091256 1.022766 1.844571 0.271656 1.176987 1.625637 1.290724 1.617922 0.019656 0.946510 0.858251 0.566420 1.012367 1.064936 1.149838 1.188001 1.901553 0.963273 0.516341 0.901121 1.640742 0.802545 1.004735 0.222571 0.344861 1.150775 1.593430 1.846821 0.448493 1.115762 0.570694 0.542246 1.823950 0.820639 -0.050855 0.907422 0.132910 1.343227 0.212034 1.362060 0.924181 0.795868 0.989805 1.057245 0.235518 0.088112 1.312103 0.682363 1.608791 1.861836 0.672897 0.081487 1.416683 0.049688)
+ 8.832366 #(0.000000 0.818600 1.464386 1.025486 1.883711 0.936109 1.581052 1.076819 0.195738 1.502353 0.203848 -0.044233 1.785842 0.749335 0.645762 0.564000 1.203806 1.000068 1.123867 1.500855 0.856769 1.971580 1.649083 1.604492 -0.211258 1.471939 0.639018 1.406246 1.102216 0.110168 0.520830 -0.061391 0.022321 -0.029692 0.138053 1.010900 0.399834 -0.184515 1.410460 0.146913 1.022270 1.328304 1.364565 1.743283 0.600157 1.097135 0.964586 1.175991 0.025960 1.345082 0.820397 0.399668 0.727920 1.094954 1.402124 0.697796 1.693577 0.121486 0.897129 1.478758 0.441393 1.128518 1.205577 1.105721 0.618460 0.149391 1.770900)
)
;;; 68 all --------------------------------------------------------------------------------
#(68 10.585594177246 #(0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1)
10.460547747753 #(0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1)
- 9.159090 #(0.000000 0.111062 1.286729 0.569229 0.704803 1.539203 1.740186 0.931285 0.739791 0.015673 1.449619 1.302111 0.584842 0.815519 0.633929 0.482985 1.139574 1.658490 0.900040 0.404544 0.148554 0.129642 0.225898 1.713804 1.421591 0.969298 1.312298 1.503987 0.230300 1.345408 0.317036 0.568887 1.507531 1.361537 1.682996 1.804111 1.105983 0.039978 0.567182 1.386028 1.504658 1.763144 0.712956 1.639660 1.239864 1.762505 -0.094050 1.022021 1.500589 0.165879 0.084513 0.591914 0.772527 0.278083 1.203705 0.512253 1.461110 0.935140 1.394603 1.361116 1.770833 0.774830 1.390026 -0.051788 1.097665 0.076989 1.618878 1.422818)
+ 8.952229 #(0.000000 0.347151 1.764545 0.893575 0.746661 0.886917 0.515480 0.704892 0.235280 -0.030137 0.235192 0.042987 1.578288 0.882851 1.021828 1.100842 0.767592 1.258953 1.193753 1.207552 0.810439 1.679584 1.869796 1.850480 1.625413 0.264301 1.916221 1.822544 0.283840 0.571013 1.136425 1.884862 1.652198 1.541933 0.020432 0.118195 1.563792 0.997011 1.261897 1.394719 0.117761 1.159465 0.440790 0.194567 1.353507 1.221561 0.684079 1.383432 0.198129 1.172173 0.438725 1.524336 1.217075 0.279001 0.269682 1.221378 0.035125 1.218209 -0.042830 1.057305 0.140573 0.724143 1.647843 -0.023118 0.494918 0.811812 0.917160 1.831516)
)
;;; 69 all --------------------------------------------------------------------------------
@@ -785,7 +834,7 @@
#(71 10.922951698303 #(0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0)
10.610488331633 #(0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0)
- 9.196745 #(0.000000 1.187146 0.001418 0.657220 1.799327 1.448669 1.524560 1.437724 1.453556 0.597341 1.096893 1.361456 0.925860 1.689659 0.568366 -0.038426 0.845931 0.468862 0.174719 1.037221 1.299496 0.994956 1.827013 0.568166 1.992869 1.778667 0.580687 0.976910 0.827939 0.693755 -0.245356 0.452519 1.678515 0.057535 1.265128 0.776768 0.676207 1.335239 -0.005139 0.272018 1.208546 1.607842 1.094846 -0.136982 1.396028 0.513595 0.837570 0.688829 0.370970 0.095076 1.365159 0.623391 0.769407 0.261174 1.528441 0.914128 0.197555 0.392584 0.746775 0.232670 0.156700 0.709271 1.812773 0.857188 0.904174 1.338982 1.559453 0.845750 0.805172 1.197001 -0.177326)
+ 9.027005 #(0.000000 0.357375 1.985715 1.230413 0.048161 0.063521 1.301836 1.342940 0.191330 1.579818 0.441857 1.000456 -0.159994 0.912745 0.624164 0.883999 0.903686 0.828802 0.840986 0.736395 0.771433 0.308695 0.538880 1.066355 0.228279 1.258439 0.945917 1.010853 1.329487 0.501986 -0.146768 0.579221 0.922087 0.259502 0.024107 1.668743 0.001814 0.789468 0.942044 1.928967 1.221153 0.040736 0.482976 0.318362 1.872844 1.080063 0.784819 1.710127 0.947428 1.104505 1.616541 1.842881 -0.043650 1.052572 0.001931 0.455768 0.872104 0.763179 0.337805 0.182216 1.585747 0.161007 1.031350 1.048077 0.892360 0.027800 1.675459 0.328389 1.515213 0.573597 0.096113)
)
;;; 72 all --------------------------------------------------------------------------------
@@ -793,7 +842,7 @@
10.908146369485 #(0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0)
10.800657366855 #(0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0)
- 9.224162 #(0.000000 1.841517 0.689605 0.639067 1.872942 1.246934 0.079957 0.475270 0.853680 1.281179 1.602426 1.254957 1.044605 0.247076 0.571169 1.521450 0.314379 1.026414 0.417292 1.418725 1.224608 1.300215 0.009774 0.262018 0.066398 0.314977 0.520429 0.911894 0.575776 0.266929 0.155510 0.673755 0.673294 0.759145 0.979277 0.504149 1.864159 1.516626 -0.002096 1.247311 1.187636 1.011878 0.251990 0.546427 -0.000278 0.574344 0.180083 0.811161 1.604091 -0.088399 0.163883 1.390990 1.539530 0.301738 0.409432 1.681078 1.014690 1.817965 0.935774 0.277492 1.567607 1.009329 1.807347 0.271983 0.953845 1.275398 0.541776 1.465562 0.344083 0.888550 0.157991 0.051885)
+ 9.222929 #(0.000000 1.841525 0.690331 0.638384 1.873815 1.247211 0.079642 0.474336 0.852915 1.281051 1.602523 1.254240 1.045075 0.247432 0.570262 1.522048 0.313855 1.027286 0.418154 1.417941 1.225351 1.301020 0.009124 0.262216 0.065510 0.315645 0.520801 0.911198 0.575190 0.266558 0.156337 0.673079 0.673482 0.758282 0.978988 0.503999 1.863812 1.515700 -0.001491 1.247727 1.186778 1.011743 0.252328 0.546375 -0.000119 0.575343 0.179580 0.811618 1.604362 -0.089012 0.163372 1.390908 1.539532 0.301730 0.409256 1.681349 1.014627 1.818148 0.936099 0.276971 1.567811 1.009563 1.807283 0.271563 0.953377 1.274815 0.542605 1.465243 0.344159 0.888671 0.157479 0.051695)
)
;;; 73 all --------------------------------------------------------------------------------
@@ -802,7 +851,7 @@
10.876985549927 #(0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0)
10.773231506348 #(0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1)
- 9.260557 #(0.000000 -1.876124 1.954795 1.310854 0.721984 0.641232 0.657904 0.019223 1.089353 0.086123 1.047602 -0.232568 1.013406 1.050891 1.257750 1.782261 1.305889 -1.874566 0.193160 0.745664 1.826900 1.325543 -0.081331 1.727055 0.225947 1.448391 0.869564 0.981063 1.185680 1.421521 0.219817 0.080295 1.845351 1.521771 0.261514 0.670848 1.661378 1.092806 0.809138 0.804053 1.488686 -0.095728 0.145561 -0.049540 1.707831 0.162554 0.195151 1.504849 0.184478 1.613801 1.805642 1.541145 0.415343 1.328896 1.560622 0.593142 1.257208 0.915820 0.473053 1.620347 1.224381 0.718902 0.459971 1.206999 1.669363 -0.180802 0.923125 0.213043 1.217429 1.626989 0.147702 1.074266 0.499385)
+ 9.256225 #(0.000000 -1.875797 1.954357 1.312027 0.722561 0.642471 0.658371 0.018139 1.089808 0.085730 1.049056 -0.232772 1.014010 1.050906 1.258478 1.782511 1.305057 -1.875444 0.193697 0.746650 1.827197 1.325844 -0.081348 1.726790 0.226101 1.449506 0.870513 0.980854 1.185914 1.420523 0.218845 0.080981 1.844212 1.520313 0.262817 0.670247 1.661110 1.092500 0.810020 0.802511 1.487091 -0.095367 0.145607 -0.050226 1.707408 0.161223 0.195039 1.504219 0.184532 1.614133 1.805964 1.542169 0.415607 1.329377 1.560951 0.592265 1.258420 0.915138 0.473381 1.621523 1.224109 0.717898 0.458503 1.207725 1.668266 -0.181728 0.924300 0.213287 1.218007 1.626925 0.148183 1.074182 0.498143)
)
;;; 74 all --------------------------------------------------------------------------------
@@ -818,7 +867,7 @@
#(75 11.477107048035 #(0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0)
10.935811368418 #(0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1)
- 9.338270 #(0.000000 1.847704 1.390326 1.356681 0.317398 1.147909 1.090991 0.107015 -0.024648 1.265736 1.091323 1.023667 1.763735 0.332647 0.395265 1.763114 1.618573 0.689620 1.844072 1.068753 1.141744 1.283309 1.268240 1.244265 1.388903 1.296936 0.731758 0.757589 0.319137 0.848255 1.286868 0.406508 0.182613 1.132619 1.414829 0.397412 0.832230 1.685355 0.635051 0.339718 0.685706 0.876308 1.297262 0.453131 0.935732 0.102911 1.260462 1.542404 1.703386 1.602467 1.425241 0.115212 1.190466 0.119365 1.119290 0.533445 -0.043343 1.525393 -0.053002 1.227244 0.582969 0.673048 0.764282 1.234082 1.464636 0.154631 0.135883 0.106358 1.656611 0.847714 1.338844 0.096752 0.927352 0.674664 1.533691)
+ 9.335296 #(0.000000 1.847606 1.390562 1.356060 0.317947 1.148240 1.092831 0.106201 -0.024230 1.265427 1.092198 1.023347 1.762076 0.333063 0.395391 1.762733 1.618213 0.689277 1.843560 1.069665 1.142883 1.283916 1.269162 1.245040 1.388868 1.296134 0.730210 0.757023 0.318947 0.848291 1.286406 0.406774 0.182645 1.132075 1.415069 0.398646 0.833196 1.684923 0.635577 0.340232 0.684521 0.875480 1.297355 0.452294 0.935247 0.104322 1.259567 1.542135 1.704304 1.602515 1.425429 0.114879 1.191172 0.119592 1.119372 0.531854 -0.043972 1.525000 -0.053687 1.228272 0.582644 0.672785 0.764555 1.235382 1.464566 0.154180 0.135929 0.105446 1.657107 0.846552 1.339267 0.095652 0.928221 0.674279 1.535099)
)
;;; 76 all --------------------------------------------------------------------------------
@@ -826,14 +875,14 @@
11.208243370056 #(0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0)
10.689208030701 #(0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0)
- 9.532159 #(0.000000 -0.123979 -0.039948 1.524481 1.226497 0.418121 0.814600 1.669075 0.724100 1.409264 1.026457 0.029135 1.303382 1.688882 0.181403 0.267758 1.335856 0.572664 1.069037 0.713650 1.531192 0.150268 1.399302 1.910312 1.389877 0.734927 0.777460 0.961606 0.898957 1.475408 -0.053102 0.593851 1.351631 1.952031 1.029209 0.906295 0.885656 0.105289 0.160155 0.637626 1.026787 0.047798 0.762563 0.120296 0.719603 0.491482 1.281291 1.641355 0.036137 0.082459 1.690950 1.028096 0.045417 1.581746 0.438676 1.778585 0.907206 0.860978 0.965211 1.062268 0.795059 0.830810 0.073011 0.965526 1.113391 0.376000 1.486875 1.062338 1.629838 1.608236 0.936202 0.623989 1.081110 1.681742 1.362370 1.037750)
+ 9.527426 #(0.000000 -0.123416 -0.040364 1.524703 1.227803 0.418728 0.815866 1.668159 0.723494 1.409913 1.027218 0.028445 1.304481 1.689210 0.179915 0.267312 1.336250 0.571667 1.068661 0.714748 1.530394 0.150338 1.399456 1.910688 1.390134 0.736151 0.776903 0.961359 0.899015 1.475198 -0.053993 0.594542 1.353192 1.950285 1.030542 0.907718 0.885866 0.104395 0.161211 0.638882 1.025746 0.045937 0.761275 0.121930 0.719483 0.490791 1.281427 1.641441 0.036148 0.082756 1.691197 1.029273 0.044463 1.581632 0.437834 1.779180 0.907714 0.861264 0.964523 1.062767 0.795078 0.830339 0.071309 0.965764 1.113693 0.375063 1.486815 1.062934 1.630363 1.607890 0.936510 0.623638 1.080745 1.682496 1.361643 1.038150)
)
;;; 77 all --------------------------------------------------------------------------------
#(77 11.25105381012 #(0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0)
11.114716461811 #(0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0)
- 9.690376 #(0.000000 0.620215 1.135911 1.304308 0.796504 1.715273 1.548748 1.218464 1.376946 0.294993 1.822768 -0.054448 0.797689 0.616603 0.126975 1.564725 1.500086 0.274965 1.503526 1.373600 1.466606 1.390007 1.662802 1.608259 0.894293 1.601319 1.581477 0.963492 0.098460 1.403549 0.179390 0.051458 -0.157848 0.528845 0.858705 1.496262 0.280534 1.456719 1.814388 0.081298 0.106362 1.167489 1.340212 1.277615 0.757501 1.367559 0.286739 1.731548 1.780835 1.210802 0.606833 0.777806 0.420633 1.450801 0.188989 0.602380 0.957835 0.315421 1.006479 0.095299 1.412763 0.652581 0.887197 0.942334 0.399347 0.834200 0.196412 1.412646 0.295379 -0.058995 1.422063 1.375448 -0.067646 -0.139556 0.566787 0.824202 1.482216)
+ 9.557742 #(0.000000 0.310118 0.714558 0.386403 1.192654 1.773337 0.239499 0.075337 0.894931 0.623593 0.401623 0.440634 1.039027 0.345574 0.295702 0.483895 1.381674 1.322422 0.610157 1.923628 0.054934 0.343229 0.296187 0.000184 0.535116 0.005807 -0.104894 0.814555 1.182856 1.592163 0.742365 1.268210 -0.177083 1.343740 0.551570 1.685436 0.007094 1.191470 1.016608 0.707707 1.665888 1.137849 0.898092 -0.003091 0.421768 -0.065630 1.710477 0.300653 0.610312 1.118451 0.603209 1.303471 0.822215 1.965058 0.648670 0.505868 0.670960 1.148010 0.305112 0.998070 1.574722 1.449212 1.716689 1.752824 0.809231 1.253214 0.449726 -0.392325 1.675163 1.053607 0.996508 0.329047 0.585205 0.000009 1.525674 0.078474 1.330304)
)
;;; 78 all --------------------------------------------------------------------------------
@@ -841,7 +890,7 @@
11.541502084124 #(0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1)
11.471938943963 #(0 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1)
- 9.644010 #(0.000000 1.020244 1.408111 -0.048159 0.671026 1.627723 0.069908 1.748504 1.078374 -0.228579 1.562236 1.827655 0.912431 0.875737 0.548057 1.318162 0.711270 1.669402 0.525315 0.273079 0.887557 1.382807 0.467766 1.364399 0.884928 0.328511 1.699029 0.390863 1.080332 1.741460 1.192932 1.733243 1.717635 1.196100 1.143483 0.755979 1.266908 1.512817 0.833704 0.483937 0.996779 1.234466 1.807826 0.749285 0.611030 1.239366 1.800524 1.051858 1.146591 0.801519 0.752741 1.436701 1.083496 1.550974 0.779710 0.142080 0.471195 0.047077 1.573035 1.538555 1.739893 1.175889 0.185011 0.029540 0.055716 0.419202 0.247239 1.076997 1.074603 0.663631 1.329779 1.366869 0.358840 0.075554 1.967756 1.538116 1.475525 0.282432)
+ 9.641959 #(0.000000 1.020290 1.408291 -0.048162 0.671620 1.627590 0.071129 1.746906 1.078642 -0.228570 1.562670 1.826550 0.911949 0.876362 0.548776 1.317498 0.712257 1.668407 0.524678 0.273165 0.887358 1.382633 0.467676 1.365760 0.884857 0.329101 1.697658 0.391326 1.080410 1.742570 1.193854 1.733986 1.717120 1.196025 1.144571 0.754170 1.266889 1.513345 0.832489 0.483448 0.997478 1.234727 1.809411 0.748853 0.610847 1.240143 1.799508 1.051929 1.146276 0.802440 0.751994 1.436083 1.083235 1.549903 0.780207 0.143390 0.470747 0.045865 1.572341 1.539329 1.740309 1.175560 0.185362 0.029751 0.055537 0.420487 0.247579 1.077592 1.075809 0.663668 1.329440 1.367827 0.360196 0.074419 1.968884 1.538382 1.475354 0.284074)
)
;;; 79 all --------------------------------------------------------------------------------
@@ -858,7 +907,7 @@
11.438133302082 #(0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0)
11.30185508728 #(0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0)
- 9.764685 #(0.000000 0.850733 0.700284 0.414338 1.170238 1.689633 1.823078 1.900454 1.476466 1.466000 0.804595 0.126972 0.518043 0.520093 0.290060 0.304952 1.243489 0.447910 1.413359 1.219546 1.993258 0.399182 0.561692 1.063424 0.493962 1.394226 1.792113 1.988090 0.510218 0.130855 1.503885 0.193884 1.800758 1.321469 0.825909 -0.109986 0.824756 0.428396 0.481384 0.784983 0.704677 1.576613 0.104876 1.185115 0.108310 0.310854 1.224453 0.138731 0.897268 1.464939 0.781992 0.246381 0.939216 0.992154 1.754634 0.394988 0.787566 1.021214 0.911953 0.678051 0.396562 0.531479 1.582509 1.853826 1.406183 0.805086 0.125245 0.160490 1.388619 1.627165 0.867502 0.204511 1.592905 1.889013 0.531795 1.908762 1.710343 1.856458 0.775459 0.178431)
+ 9.761224 #(0.000000 0.849953 0.700623 0.414164 1.169747 1.689282 1.824071 1.900141 1.477251 1.465562 0.804678 0.127393 0.517419 0.521018 0.290512 0.304586 1.243153 0.448253 1.413541 1.219998 1.994137 0.399306 0.561255 1.062889 0.493345 1.394299 1.792105 1.987805 0.510562 0.131280 1.504350 0.194580 1.800738 1.320851 0.826285 -0.109713 0.825329 0.428056 0.481668 0.785468 0.704096 1.576130 0.104234 1.185258 0.108241 0.311529 1.223618 0.138917 0.897319 1.465521 0.782511 0.247096 0.939400 0.991608 1.753673 0.394639 0.787392 1.020744 0.912098 0.677994 0.395644 0.532459 1.581656 1.853113 1.406436 0.804991 0.124373 0.159754 1.388314 1.628022 0.867818 0.204371 1.592017 1.888348 0.531406 1.909049 1.710844 1.857131 0.775440 0.178483)
)
;;; 81 all --------------------------------------------------------------------------------
@@ -866,14 +915,14 @@
11.501712958685 #(0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0)
11.224431991577 #(0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1)
- 9.894050 #(0.000000 0.906196 0.709349 0.524862 0.563159 1.164431 0.602409 1.666332 1.468536 1.457072 0.541908 -0.097403 0.843553 0.114595 1.161326 1.614042 1.161960 1.235144 0.942396 1.962816 1.659081 0.277332 1.792612 0.151526 0.926251 1.054662 1.294969 1.527168 0.773349 0.328447 1.079669 1.146131 0.661898 1.504436 1.801041 0.960098 1.636779 0.574807 0.624989 1.744743 0.869403 1.581885 1.889705 1.804008 0.773492 1.782142 0.284308 0.227949 0.654461 0.778362 0.057111 0.511526 0.505339 -0.014168 -0.011846 1.034397 -0.115528 1.724198 1.884859 1.311752 1.175065 0.403670 1.718153 0.378224 1.287429 0.945930 0.171157 0.258380 0.481753 0.287171 0.834355 1.636571 1.109241 0.612501 -0.066819 -0.006479 0.298850 1.369818 1.780868 0.111151 0.222630)
+ 9.889576 #(0.000000 0.906401 0.709945 0.525016 0.561753 1.164413 0.602511 1.666068 1.469385 1.455921 0.542166 -0.098258 0.842256 0.114717 1.160749 1.613398 1.162095 1.233921 0.944188 1.963019 1.658251 0.277644 1.792303 0.153246 0.924791 1.053199 1.294175 1.526268 0.773974 0.327623 1.080197 1.145281 0.660939 1.504576 1.799415 0.960210 1.636026 0.576167 0.624871 1.743463 0.869964 1.580933 1.889034 1.804392 0.773427 1.781404 0.283380 0.228309 0.654352 0.778015 0.055175 0.513314 0.504316 -0.013902 -0.012507 1.034868 -0.114413 1.724466 1.884686 1.312031 1.175295 0.403152 1.718040 0.379254 1.287955 0.947535 0.171075 0.259138 0.482536 0.287145 0.835792 1.636773 1.108294 0.613265 -0.066832 -0.007049 0.298984 1.370314 1.780134 0.109597 0.222812)
)
;;; 82 all --------------------------------------------------------------------------------
#(82 11.697486877441 #(0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0)
11.601468306037 #(0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0)
- 10.072728 #(0.000000 0.544218 0.427454 0.833160 1.640699 1.789775 1.061147 0.511705 0.610250 0.510214 0.248656 1.076623 0.783711 0.372593 0.730193 0.597829 1.368818 1.039029 1.160827 1.456369 1.944801 0.521440 0.952659 1.498679 1.412760 0.554110 0.939389 0.619406 0.437300 0.583432 0.991691 0.162395 1.822292 1.005936 -0.165817 1.300456 0.950853 0.307726 1.247214 0.859633 0.517635 1.253419 1.033338 0.910150 1.629428 1.709401 1.372821 0.278863 0.248296 0.208919 0.717291 0.620659 1.129577 0.033669 0.144382 0.258793 0.389011 1.634977 0.094994 0.664470 0.177867 1.642302 1.051428 1.721347 0.567160 0.274778 1.402859 0.058117 1.038583 1.153774 -0.056582 0.919244 0.924340 0.921384 0.229681 -0.448855 -0.136057 1.013412 1.700836 0.896653 1.870019 0.266286)
+ 9.941500 #(0.000000 1.710108 0.015223 0.940796 0.287308 1.637487 0.792121 -0.057650 1.213813 0.448324 0.472167 0.529062 -0.211284 1.755138 0.915526 0.288970 1.169557 -0.064692 1.367660 1.151696 0.535554 1.533013 0.569017 1.753501 0.329299 0.412914 1.006323 1.749602 0.326284 0.281702 0.779654 1.298743 1.924193 0.881947 0.003152 0.151780 0.046001 1.437827 1.250498 0.544797 1.458581 1.565345 1.896542 0.330875 0.169395 1.212970 1.612564 0.483125 1.858039 -0.031546 1.277646 1.393645 1.655736 0.729192 1.681962 -0.046010 0.453247 1.381636 1.703146 1.039152 0.383219 1.012513 0.850010 0.360953 1.731427 0.502588 1.057400 1.517964 0.728327 0.816161 0.098820 -1.844028 0.453610 0.440880 0.631148 1.316615 1.231378 0.995998 1.497170 1.175468 1.485843 0.373721)
)
;;; 83 all --------------------------------------------------------------------------------
@@ -881,7 +930,7 @@
11.868338980165 #(0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0)
11.429935034332 #(0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0)
- 10.033872 #(0.000000 0.634462 0.107751 0.865638 0.227899 1.261081 0.394828 1.310886 1.730528 1.779767 1.524136 1.013466 1.262590 -0.017524 1.340290 0.499346 1.625669 1.669466 1.805783 -0.172148 1.484440 0.473365 1.177782 1.576936 1.864797 -0.242474 1.918918 0.556343 1.014305 0.744180 1.136925 0.800198 0.656906 0.199309 0.328579 0.367343 1.064630 0.039437 0.124358 0.785635 0.604258 1.707852 1.733839 0.646594 0.155547 1.924721 1.400449 0.823088 0.278252 0.634233 0.449887 1.625646 0.704516 0.368581 0.333315 1.185209 1.964042 0.948153 0.389752 1.118013 1.755003 1.567510 1.250681 0.067378 0.391385 0.210587 0.381629 0.027120 0.039795 1.335281 1.013191 0.677612 1.332680 1.853742 0.727912 1.329873 1.376681 0.460921 -1.931755 1.883038 0.085184 1.093837 1.461211)
+ 10.025739 #(0.000000 1.157488 1.225063 1.438714 -0.270810 0.181225 1.665842 1.123376 0.941395 1.731665 -0.209117 0.047899 0.497292 1.230276 0.671948 1.243683 1.553285 0.373764 1.798506 1.515557 0.876497 1.367221 1.284189 0.326216 1.658319 1.399417 0.439282 1.177138 1.495556 1.126354 0.901543 0.458825 -0.309490 -0.186101 -0.081862 -0.145367 0.537585 1.220959 1.571928 0.367684 0.127558 0.025614 0.864465 0.374095 0.473896 0.445742 0.733937 1.519796 0.286262 0.583782 0.595515 0.214430 0.184063 1.670166 1.307690 1.363599 1.038012 0.026539 1.348082 0.172156 0.830310 0.257637 1.107791 -0.045937 1.262256 -0.208948 1.028649 0.997697 -0.000948 0.872851 0.534115 1.008525 0.433624 1.116805 0.810341 1.793505 1.776984 0.452313 1.661565 1.700320 -0.025786 0.726365 0.304708)
)
;;; 84 all --------------------------------------------------------------------------------
@@ -891,7 +940,7 @@
11.81104850769 #(0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1)
11.774056434631 #(0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1)
- 10.056208 #(0.000000 0.087199 0.140095 0.163882 1.343127 0.389745 0.455454 1.439092 1.352450 -0.004133 0.363734 0.432997 1.583559 1.355297 1.581061 0.948908 1.452872 1.090292 0.539192 1.517565 1.947282 0.796286 0.490975 1.940672 0.079347 -0.195502 1.598391 1.739371 1.917621 0.979153 0.847167 1.528424 -0.067950 0.444851 -0.479970 -0.228522 1.334592 1.015357 1.348593 1.462925 1.880592 -0.188525 0.706795 1.794206 1.093419 0.382461 0.066048 0.896007 0.657294 0.754377 0.519290 1.193645 1.262531 0.740409 0.554509 1.330090 0.609436 0.981663 0.717473 1.227044 -0.127764 0.199519 1.556282 0.891415 0.388424 1.333614 1.597701 0.735881 1.089103 1.366254 0.321240 1.715393 0.009011 1.308095 0.198127 1.111752 -0.306484 0.695694 0.585808 1.757433 1.094772 1.078146 1.423610 0.695503)
+ 10.052154 #(0.000000 0.087410 0.139805 0.162699 1.343558 0.389176 0.455143 1.440056 1.352772 -0.003825 0.362731 0.432135 1.583583 1.355606 1.581392 0.948824 1.451740 1.089294 0.539515 1.517438 1.946813 0.796816 0.490626 1.939978 0.078163 -0.196509 1.597176 1.739305 1.917508 0.978528 0.848651 1.528628 -0.068883 0.445481 -0.479790 -0.228701 1.334930 1.014921 1.347962 1.462051 1.881244 -0.188405 0.705931 1.795163 1.092620 0.383174 0.066986 0.896615 0.657039 0.754600 0.521054 1.193159 1.263670 0.739689 0.555321 1.330379 0.608618 0.981124 0.716262 1.227783 -0.126850 0.198545 1.556264 0.889897 0.388899 1.333434 1.596897 0.735665 1.088769 1.366217 0.320950 1.715652 0.009340 1.307047 0.196494 1.112787 -0.306815 0.695501 0.585720 1.757460 1.094425 1.079023 1.424335 0.695440)
)
;;; 85 all --------------------------------------------------------------------------------
@@ -900,7 +949,7 @@
11.951689163871 #(0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1)
11.927130699158 #(0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 1)
- 10.230791 #(0.000000 0.153217 0.226616 1.553425 0.492241 1.109879 0.907732 0.006744 -0.202137 0.626132 1.344653 1.490225 0.508315 1.465234 0.550488 1.762769 1.480862 0.746878 0.889065 0.320706 0.434642 1.050995 1.021568 1.641130 -0.138611 0.625226 0.981216 -0.041089 1.753849 1.846081 1.107875 0.229905 1.719324 0.597158 0.593551 1.038502 0.526230 1.612812 1.479034 0.299657 1.199034 1.402279 1.018265 0.479601 1.252471 0.265422 0.164409 0.411175 1.733072 0.276111 0.660240 1.666152 0.498662 0.880483 0.526601 1.321039 0.843360 1.467601 0.203524 0.882630 0.566439 0.749151 0.904740 1.159604 0.630027 1.544480 1.065019 1.030545 0.330625 1.599982 1.407570 0.726113 1.194672 0.776967 1.076238 0.047855 0.838008 0.446740 0.164587 0.174671 0.007593 1.670737 0.620809 0.794618 0.132423)
+ 10.228645 #(0.000000 0.153108 0.226054 1.553221 0.493164 1.110710 0.908515 0.006895 -0.201807 0.626947 1.343747 1.489944 0.508760 1.464461 0.550831 1.762749 1.480159 0.746360 0.889427 0.320173 0.433936 1.051588 1.021038 1.640520 -0.138022 0.624551 0.980605 -0.041903 1.753064 1.845455 1.108015 0.229840 1.718496 0.596174 0.593161 1.039100 0.526870 1.612467 1.478504 0.300644 1.198562 1.402989 1.018406 0.480029 1.252996 0.264704 0.164897 0.411218 1.733932 0.276146 0.661169 1.665737 0.499599 0.880211 0.526259 1.321818 0.842416 1.467438 0.204174 0.882719 0.566826 0.748859 0.903895 1.160461 0.629426 1.544149 1.064376 1.030299 0.330546 1.600532 1.407456 0.725589 1.194701 0.776005 1.076118 0.048473 0.837958 0.446050 0.163854 0.175350 0.007746 1.671127 0.620783 0.793736 0.132264)
)
;;; 86 all --------------------------------------------------------------------------------
@@ -916,7 +965,7 @@
12.06236076355 #(0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1)
11.759829521179 #(0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1)
- 10.360394 #(0.000000 0.767606 -0.001697 0.432860 -0.234007 0.363425 1.689528 0.028931 0.310537 0.176639 0.778583 1.360308 0.374822 1.154362 0.280107 0.738378 0.085899 0.631323 1.153586 1.561704 0.257718 1.733306 0.848636 0.038089 1.318043 1.145528 1.164824 0.036008 0.969916 -0.028253 0.041924 0.872653 0.019316 0.691115 0.735494 -0.040163 0.717667 1.321427 0.988833 0.873612 0.501912 1.674889 1.219638 1.919725 -0.008517 1.429436 1.396402 1.105987 1.032768 0.286510 0.084912 0.828481 1.015964 0.174220 1.070802 1.450322 1.528112 0.148521 0.444566 -0.109341 1.675995 -0.042362 0.570781 -0.069480 1.132750 0.578216 1.514903 1.272256 0.659004 0.283890 0.824033 1.674050 1.032338 0.270313 0.724187 0.661719 1.030025 1.488697 0.104220 0.978995 0.649930 0.337268 0.236034 0.402238 0.386980 1.171124 1.630486)
+ 10.358711 #(0.000000 0.768161 -0.003076 0.432657 -0.234323 0.363371 1.689514 0.030308 0.311039 0.178210 0.778720 1.359875 0.375640 1.154506 0.280475 0.737858 0.085776 0.632350 1.154015 1.562213 0.257362 1.733152 0.847641 0.038913 1.317961 1.145629 1.164150 0.037070 0.969966 -0.029612 0.042241 0.872711 0.017921 0.689995 0.735127 -0.038644 0.716037 1.321066 0.987810 0.874104 0.501982 1.676353 1.219696 1.920240 -0.008343 1.429768 1.395984 1.106315 1.032918 0.287088 0.086542 0.827486 1.016535 0.175176 1.070624 1.450719 1.527537 0.150201 0.444186 -0.109587 1.675999 -0.042017 0.571938 -0.070084 1.132521 0.578789 1.515869 1.270576 0.658548 0.285186 0.825016 1.674663 1.030745 0.268825 0.723380 0.661256 1.029717 1.488121 0.104529 0.977169 0.649367 0.336081 0.234870 0.403739 0.387650 1.170649 1.631411)
)
;;; 88 all --------------------------------------------------------------------------------
@@ -924,7 +973,7 @@
11.991882324219 #(0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1)
11.638312339783 #(0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1)
- 10.451242 #(0.000000 0.915779 0.653777 1.333450 0.569816 1.693306 0.269524 0.552258 0.524254 1.398934 0.830919 1.609869 1.047844 1.502228 1.836934 1.161454 1.891194 0.602519 0.338392 0.621731 0.313055 1.184421 0.348888 0.293878 0.462635 0.140351 0.498720 1.450385 -0.017891 1.494598 -0.011635 0.483638 1.037302 0.800490 0.613300 0.583708 0.823580 1.379817 0.012656 -0.066455 0.963125 0.681328 0.169273 0.671712 1.546776 0.849542 0.454682 1.558507 1.022635 1.485119 1.059925 0.088640 0.461738 -0.150709 1.231881 -0.170931 0.244046 1.807564 1.346570 1.213246 1.337531 0.117250 0.949302 1.721745 1.639232 1.163673 1.254778 1.233688 1.624556 1.191794 0.053440 0.111398 1.106392 1.056482 -0.003109 0.691226 0.170283 0.378507 1.604606 0.479275 1.331394 1.083759 0.673374 0.319312 1.395133 1.346536 0.689758 1.471287)
+ 10.448739 #(0.000000 0.916685 0.652816 1.334803 0.570236 1.693352 0.269588 0.552033 0.524003 1.399032 0.829796 1.611474 1.049108 1.501404 1.836793 1.161566 1.891156 0.603617 0.338094 0.621754 0.312712 1.185787 0.348757 0.295456 0.463308 0.140534 0.499036 1.450051 -0.018273 1.495733 -0.013044 0.483347 1.037652 0.800652 0.613745 0.583588 0.822842 1.379263 0.012733 -0.067148 0.963134 0.680160 0.169402 0.671589 1.547592 0.848959 0.454257 1.557770 1.022106 1.485048 1.059534 0.089451 0.462878 -0.150192 1.233551 -0.171040 0.244180 1.808147 1.346292 1.213608 1.338268 0.118525 0.948224 1.722497 1.639468 1.164943 1.255568 1.233493 1.623826 1.190270 0.054452 0.112383 1.107013 1.056747 -0.003100 0.690824 0.171862 0.379380 1.604982 0.479407 1.330397 1.084354 0.672716 0.320765 1.395330 1.347919 0.688109 1.472757)
)
;;; 89 all --------------------------------------------------------------------------------
@@ -940,7 +989,7 @@
12.297218118816 #(0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0)
12.059710502625 #(0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0)
- 10.579658 #(0.000000 0.782209 0.793197 0.195011 0.296205 1.485490 0.928347 0.154624 1.242988 -1.936398 0.241283 1.352855 1.768439 1.436658 0.042539 1.770654 1.522668 1.432539 -0.050487 0.896820 0.566731 1.325833 -0.031860 0.255938 0.342862 1.104899 1.717799 0.352099 -0.066714 0.092728 1.512457 0.000941 0.386299 1.172086 0.119775 0.427384 1.158251 0.019676 0.548498 0.112178 0.891267 1.120459 1.326365 0.815598 1.468905 0.934923 1.086510 0.877241 1.219180 0.104688 1.169589 0.230039 1.719012 0.585764 0.524733 1.616060 0.630435 0.619876 1.807942 1.503845 0.139838 0.712882 1.062500 0.576551 1.511297 1.634797 0.568579 0.352858 0.744139 0.988133 0.468379 -0.170812 1.633010 1.781288 1.378607 0.630493 -0.113014 0.703989 0.469599 0.511093 0.222408 1.264830 1.532036 1.163053 0.194511 0.054166 0.633618 0.708326 1.035075 0.443515)
+ 10.577205 #(0.000000 0.781756 0.794029 0.194172 0.294485 1.486413 0.926888 0.155703 1.241899 -1.935567 0.242076 1.352701 1.768446 1.436662 0.043630 1.771233 1.522601 1.431913 -0.049538 0.895786 0.566760 1.325493 -0.030862 0.257438 0.342818 1.104179 1.718788 0.351444 -0.067688 0.094434 1.511802 0.000905 0.385430 1.171477 0.120650 0.428008 1.159145 0.021066 0.547775 0.112096 0.891948 1.120262 1.327416 0.815006 1.468981 0.935083 1.085970 0.876774 1.220654 0.103570 1.168731 0.229941 1.718399 0.584695 0.524762 1.616146 0.631541 0.620658 1.807100 1.502900 0.140181 0.712728 1.063544 0.575908 1.510769 1.636251 0.567777 0.353056 0.744132 0.986679 0.467823 -0.171297 1.631863 1.782458 1.378258 0.629682 -0.114773 0.702925 0.470095 0.510606 0.222893 1.264363 1.531938 1.162099 0.194188 0.054612 0.633371 0.708299 1.034720 0.444507)
)
;;; 91 all --------------------------------------------------------------------------------
@@ -949,28 +998,28 @@
12.335505485535 #(0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0)
12.130150794983 #(0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0)
- 10.744152 #(0.000000 0.363030 1.819726 1.212726 0.855143 1.691897 1.895013 1.058204 0.686419 1.197951 0.575450 1.815706 0.918679 1.496381 0.354060 1.281132 1.096390 0.411431 0.124521 1.685548 1.693635 0.138613 0.296903 1.543285 0.037549 0.719307 0.661928 0.549317 1.508903 0.552008 1.766980 0.088548 1.482321 1.826723 -0.033977 0.088727 1.273247 0.820252 0.475302 -0.048254 0.594504 1.851717 1.603332 0.724114 1.211398 1.760534 0.596646 -0.003767 0.619162 0.594936 1.722739 0.876577 0.881224 1.686027 0.380766 0.387080 0.040660 1.642991 -0.068757 1.073221 1.548238 0.446883 -0.011114 0.057381 0.747350 1.192384 1.349091 1.300786 0.655431 1.353205 1.086752 1.130469 0.863928 0.716189 1.443365 1.089949 1.901118 1.753390 0.111078 1.553858 0.449438 0.014478 1.285737 0.022438 1.374634 1.306818 0.655974 0.346937 1.466039 1.892836 0.534874)
+ 10.739166 #(0.000000 0.362419 1.819267 1.212711 0.856080 1.692009 1.895095 1.059157 0.687298 1.198592 0.574490 1.815789 0.919126 1.496217 0.353070 1.280736 1.096577 0.412150 0.124962 1.686459 1.692912 0.137975 0.296721 1.543716 0.038489 0.719394 0.661397 0.549201 1.508606 0.552920 1.767183 0.088947 1.481531 1.826902 -0.033013 0.089620 1.273503 0.820555 0.475977 -0.048085 0.594249 1.851299 1.603805 0.723288 1.211646 1.760533 0.596168 -0.002933 0.620024 0.594900 1.723321 0.876505 0.880267 1.685946 0.381291 0.387496 0.040765 1.642748 -0.068756 1.073904 1.548321 0.446870 -0.011703 0.057488 0.747982 1.191965 1.348495 1.300203 0.655091 1.353646 1.085821 1.130729 0.864302 0.715618 1.443377 1.090370 1.901558 1.753276 0.110589 1.553991 0.449365 0.014071 1.286666 0.022354 1.374371 1.305915 0.656554 0.346316 1.465240 1.892183 0.534102)
)
;;; 92 all --------------------------------------------------------------------------------
#(92 12.627931418696 #(0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1)
12.009957507951 #(0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1)
- 10.852432 #(0.000000 -0.125097 0.539059 -0.223330 0.062328 0.136773 0.147977 1.532081 1.334023 1.630147 0.843210 0.290796 0.553166 1.007409 0.956768 0.696001 0.959234 0.454144 1.682033 0.613165 0.370269 0.782330 0.955277 0.023496 1.799044 1.570510 -0.005384 0.143188 1.751396 0.982499 0.140733 1.341885 0.811138 1.754068 0.296202 1.744619 -0.045371 0.082089 1.448245 1.222351 0.942935 0.835382 0.428823 0.938165 1.518970 -0.067963 0.658623 1.153196 0.526820 0.565523 0.798922 1.123672 0.876387 1.357665 1.124552 1.037999 1.873349 1.811687 0.988995 1.196263 0.208163 0.222695 0.441770 1.093872 1.046365 -0.089740 1.435692 1.364559 0.769392 0.952731 -0.320846 1.478360 1.479659 0.526397 1.820445 0.491047 1.214865 -0.000809 1.812879 0.319777 1.005286 1.662768 0.951039 1.450638 0.662808 0.035378 0.772492 0.072754 1.741660 0.571597 1.398793 1.943173)
+ 10.851639 #(0.000000 -0.124665 0.540028 -0.223488 0.061621 0.136316 0.147473 1.532116 1.334068 1.630788 0.843900 0.291365 0.552776 1.006430 0.957406 0.696804 0.959222 0.453576 1.681306 0.612316 0.369840 0.781754 0.954883 0.022651 1.798548 1.570198 -0.005545 0.143692 1.750922 0.982556 0.140016 1.341078 0.810838 1.754932 0.296220 1.744618 -0.045877 0.082435 1.447489 1.221832 0.943566 0.835153 0.429072 0.938831 1.518127 -0.066975 0.659557 1.152827 0.525985 0.565610 0.798762 1.122827 0.875988 1.357508 1.125152 1.037635 1.873953 1.812330 0.989765 1.196715 0.208971 0.223283 0.441737 1.093835 1.046411 -0.089302 1.434937 1.363894 0.770289 0.952845 -0.320175 1.478739 1.479164 0.526813 1.819446 0.491633 1.213984 -0.000137 1.813316 0.319324 1.006065 1.662755 0.951400 1.450591 0.663407 0.036155 0.771504 0.072108 1.741727 0.571900 1.397830 1.943036)
)
;;; 93 all --------------------------------------------------------------------------------
#(93 12.624432854783 #(0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1)
12.125471062226 #(0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1)
- 10.970212 #(0.000000 0.535079 0.520838 -0.055999 1.533722 0.691170 1.210146 0.085150 1.431504 0.300649 1.550915 1.721676 0.163846 0.852224 -0.006754 1.800661 1.970756 1.133911 0.335103 1.852585 0.822856 0.197580 0.260953 0.858055 1.471224 0.551072 0.719707 0.715397 0.538650 1.438956 -0.000533 0.623029 0.130807 1.383493 1.020998 0.773038 1.494333 -0.176756 0.103477 1.272953 0.049168 1.328642 0.212177 0.344292 0.361052 0.494121 0.238913 1.156696 1.357364 0.751887 0.295215 0.360653 1.282053 0.934766 1.845975 0.403502 0.226208 0.269673 0.206375 0.538402 0.983372 1.488865 0.493863 1.155709 0.078770 1.222569 0.777887 1.593255 0.598073 0.561208 0.063018 1.410791 -0.023684 0.273395 1.346804 1.474159 1.056242 0.229971 0.081980 0.310126 1.263207 -0.038141 1.891062 1.306974 -0.160605 1.590047 1.376649 0.635903 1.295281 0.578560 -0.029800 1.194962 1.277234)
+ 10.882088 #(0.000000 1.533513 1.760793 1.611317 0.052020 0.311766 0.522578 0.275251 1.710755 1.507081 0.308786 0.688227 1.500372 0.824800 0.786615 1.314073 1.576436 0.941718 1.137382 1.292153 0.382941 0.650187 0.420205 0.533791 0.164908 0.378179 1.206328 0.084520 0.232500 -0.016903 0.148905 1.620743 0.097710 1.342885 0.930415 0.534077 -0.025663 1.798584 1.375180 0.495723 0.641837 0.831443 1.566083 1.927213 1.694046 1.510360 1.851520 1.172547 1.447774 -0.065488 0.731656 0.777035 1.616957 0.207126 1.636083 -0.273595 1.582187 1.464845 0.139141 0.977303 0.253157 0.697859 0.117572 0.050848 1.179099 1.529549 0.330796 1.410067 0.847397 -0.154534 1.801777 0.223870 0.533892 1.322466 0.682903 0.450681 1.464194 1.074925 1.602698 1.283110 0.254173 0.149563 1.060496 1.451484 1.021163 0.298529 1.853157 1.607963 0.734463 1.578050 0.566992 1.609072 0.751059)
)
;;; 94 all --------------------------------------------------------------------------------
#(94 12.840441703796 #(0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0)
12.510846178591 #(0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0)
- 10.814739 #(0.000000 0.205425 1.160443 0.718916 0.054170 0.993662 1.000584 -0.091074 1.038752 1.183528 0.163950 0.487479 0.721069 0.871046 -0.013411 0.144024 1.588110 0.708631 1.062755 0.323363 1.043573 0.430689 0.249283 0.981220 0.814767 0.598528 0.973964 0.255257 1.937980 -0.022716 0.887006 0.354239 1.697762 0.983548 0.020890 1.456603 0.835194 1.884472 0.524343 0.243785 1.689351 1.214788 1.832899 0.896137 1.468165 1.245304 1.179381 0.434986 1.769794 0.943983 1.044842 1.108720 -0.178424 0.151531 1.909107 0.451556 0.140144 1.485142 0.292765 1.092873 1.006354 1.290072 0.313053 1.749805 1.462494 1.923928 0.227155 1.061355 1.491199 0.808833 0.770821 0.727890 1.146203 1.449647 1.142757 0.760572 1.223755 1.752016 1.396641 0.062669 1.219902 0.936140 0.325522 0.663476 1.673928 0.149381 1.604560 -0.053205 0.409082 0.845660 1.065050 1.115798 0.654271 -0.012504)
+ 10.812999 #(0.000000 0.206128 1.159660 0.718743 0.054211 0.994320 1.000582 -0.092064 1.039650 1.184581 0.164013 0.485563 0.719431 0.871801 -0.013160 0.143105 1.588813 0.707480 1.061863 0.322396 1.042973 0.430708 0.249517 0.979501 0.813314 0.597770 0.973811 0.255023 1.938386 -0.022057 0.886932 0.355440 1.697252 0.985046 0.021211 1.456571 0.834736 1.884401 0.523534 0.242431 1.691133 1.214516 1.832061 0.895163 1.468975 1.245912 1.179946 0.435476 1.770325 0.945107 1.043981 1.109360 -0.177952 0.152518 1.908670 0.451591 0.141025 1.484840 0.290972 1.091803 1.007323 1.288424 0.313520 1.749678 1.463173 1.923435 0.227209 1.061404 1.491546 0.808803 0.770451 0.727133 1.146850 1.449044 1.142901 0.759861 1.222930 1.751586 1.396908 0.063561 1.219961 0.937370 0.326792 0.663166 1.672899 0.148714 1.603317 -0.053772 0.408988 0.845283 1.063644 1.115951 0.654390 -0.013132)
)
;;; 95 all --------------------------------------------------------------------------------
@@ -979,7 +1028,7 @@
12.448801040649 #(0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0)
12.431831359863 #(0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1)
- 10.880006 #(0.000000 1.357376 1.072168 1.167946 0.969034 0.542671 0.058375 1.080808 0.582471 0.166861 1.378746 1.881646 0.057513 1.827767 1.066247 1.560298 1.001308 -0.024463 0.722490 1.446234 0.588057 1.714326 0.982613 1.154351 0.421390 1.789078 1.165948 0.801511 1.559942 1.627712 1.357217 1.217486 1.096865 0.576336 1.433672 -0.016336 0.677656 0.822712 1.551900 1.510218 0.263639 0.541259 0.989090 0.621034 0.709098 1.610332 0.087485 0.507346 1.037821 0.068489 0.443321 -0.025364 -0.112863 1.486059 0.842703 1.850299 0.942434 0.211385 1.487583 0.872011 1.595995 1.597664 1.805143 0.969840 1.433263 0.232221 0.383288 1.226441 0.682804 1.444707 0.769094 0.524013 0.863757 0.027429 1.453676 1.629576 1.341681 1.355925 0.073349 0.980269 0.661673 1.134733 1.262243 1.737087 1.276592 1.549009 -0.076825 1.528275 0.103275 1.393168 0.686753 0.822897 -0.022867 0.108607 1.536238)
+ 10.876935 #(0.000000 1.356203 1.072473 1.166461 0.969189 0.542669 0.057633 1.081330 0.583064 0.166899 1.379559 1.881580 0.057047 1.826484 1.064874 1.560332 1.000782 -0.024033 0.723209 1.444982 0.587343 1.713734 0.983475 1.154048 0.421545 1.789030 1.165495 0.802218 1.558711 1.627786 1.356582 1.216647 1.096492 0.575232 1.433372 -0.016780 0.675982 0.822926 1.551497 1.508872 0.263373 0.541831 0.988781 0.622619 0.707988 1.610575 0.087545 0.507636 1.036351 0.067968 0.442204 -0.025688 -0.111763 1.486471 0.841486 1.851155 0.943573 0.210362 1.487301 0.870860 1.595899 1.598896 1.804450 0.969956 1.433376 0.232679 0.382745 1.225749 0.683478 1.444103 0.769263 0.522615 0.863050 0.027448 1.453084 1.630567 1.342493 1.357123 0.073235 0.981186 0.660844 1.135368 1.261909 1.736700 1.275451 1.550467 -0.077388 1.528802 0.103015 1.392994 0.686097 0.823112 -0.023759 0.110550 1.536490)
)
;;; 96 all --------------------------------------------------------------------------------
@@ -988,7 +1037,7 @@
12.682573318481 #(0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1)
12.584561347961 #(0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1)
- 11.066348 #(0.000000 1.698461 0.064266 0.179815 0.136612 1.680708 1.576181 1.311704 1.595026 0.683225 0.635812 1.321025 0.052643 -0.449307 0.008161 -0.001195 -0.213149 0.461052 1.531887 1.524017 1.774722 0.885508 0.957644 0.366229 0.118505 1.519122 -0.214266 0.824577 0.766104 1.098079 0.585920 0.410672 -0.187085 0.852491 1.580253 1.526168 1.154003 0.249101 0.526869 -0.432236 0.837369 0.647650 1.774622 1.579003 0.455922 1.078603 0.955758 1.291592 0.254691 1.560463 1.375336 0.446169 1.305041 -0.251803 1.306048 -0.359152 0.658596 1.717496 1.562131 -0.031047 0.478195 0.948123 0.257899 0.387130 0.761542 1.636007 0.933838 1.092355 0.202698 1.181523 0.123961 1.331822 1.132872 1.077460 1.811821 1.438357 1.049215 1.270958 0.996814 0.012709 0.189168 0.700878 0.724384 1.664812 1.434957 0.276508 1.254253 1.835187 -0.077053 0.090212 0.457851 0.855487 0.007567 1.430935 0.761043 1.520536)
+ 11.065539 #(0.000000 1.697634 0.064880 0.179015 0.136938 1.680912 1.576238 1.311387 1.594050 0.683134 0.636774 1.321591 0.052349 -0.449735 0.008835 -0.002075 -0.212326 0.460952 1.532054 1.523199 1.775447 0.886011 0.957329 0.365374 0.118800 1.519942 -0.213903 0.824693 0.766004 1.098761 0.586163 0.410604 -0.186495 0.852191 1.580385 1.525884 1.154474 0.248763 0.526602 -0.431574 0.837576 0.646786 1.774122 1.578752 0.456502 1.079052 0.956393 1.291636 0.254731 1.560716 1.376016 0.446479 1.304240 -0.251962 1.305187 -0.359561 0.658781 1.717913 1.562691 -0.031583 0.478009 0.947631 0.257417 0.386774 0.762040 1.635698 0.934786 1.091998 0.202548 1.181360 0.124202 1.331965 1.133768 1.077511 1.812388 1.439159 1.049071 1.271465 0.996655 0.012862 0.188581 0.700222 0.725173 1.665121 1.435384 0.276342 1.254784 1.835322 -0.077048 0.090210 0.456987 0.855085 0.008460 1.431789 0.760618 1.521507)
)
;;; 97 all --------------------------------------------------------------------------------
@@ -996,7 +1045,7 @@
12.872588157654 #(0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1)
12.585 #(0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1)
- 11.078050 #(0.000000 1.572374 0.767127 1.739651 1.639346 1.366938 1.783858 0.793083 0.919095 0.997989 0.414714 1.811269 1.282711 0.522783 0.178710 1.446039 1.860048 -0.032924 0.044285 0.134345 0.516206 0.797370 1.750340 0.080926 1.526125 0.833022 1.372718 1.049716 1.494596 0.913233 1.089433 0.111496 1.037069 0.738387 0.543662 1.451924 1.603005 1.791691 1.626064 1.571444 0.571033 1.579787 0.098377 1.491512 1.283868 0.484087 0.041807 1.875772 -0.091908 0.806153 0.193324 -0.271143 0.195107 1.785522 1.207179 1.706400 1.089696 0.478508 -1.879213 1.787416 1.798188 0.024125 1.384355 0.738289 1.551842 1.058823 1.161910 1.900894 1.824313 0.452326 0.943567 0.655723 1.206040 0.509758 1.010808 1.293447 0.303043 1.168960 1.395505 0.456852 0.399607 1.133288 1.458156 0.313149 0.961239 0.321972 0.667391 0.136070 0.612748 0.547753 1.529717 0.972781 1.414339 0.662672 1.680952 0.609677 1.040493)
+ 11.076815 #(0.000000 1.571906 0.766615 1.739047 1.640128 1.368473 1.782854 0.794255 0.918899 0.996909 0.415574 1.812445 1.282632 0.522840 0.178584 1.444752 1.861672 -0.032328 0.044947 0.133555 0.515690 0.796813 1.749662 0.081377 1.526443 0.833498 1.371683 1.049461 1.495291 0.913116 1.088962 0.112394 1.038227 0.739374 0.543904 1.451791 1.601522 1.790137 1.625170 1.571406 0.572653 1.581470 0.098163 1.492998 1.283816 0.483533 0.042069 1.874448 -0.091482 0.805504 0.192961 -0.270323 0.194928 1.785818 1.206648 1.706837 1.089790 0.480128 -1.879217 1.788795 1.798286 0.024995 1.383995 0.738030 1.552823 1.058896 1.162065 1.901346 1.822984 0.452689 0.943367 0.656137 1.206873 0.510615 1.009722 1.294532 0.302696 1.168607 1.395761 0.456200 0.399441 1.132074 1.456659 0.312723 0.960419 0.321106 0.666658 0.135805 0.611892 0.548711 1.529725 0.973224 1.415044 0.662806 1.680175 0.609479 1.039451)
)
;;; 98 all --------------------------------------------------------------------------------
@@ -1011,14 +1060,14 @@
#(99 13.236550650051 #(0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1)
13.002375571256 #(0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0)
- 11.091902 #(0.000000 0.607111 1.059049 0.160611 1.479897 0.214242 0.999931 1.608846 1.732014 1.098407 0.419156 0.680987 -0.183602 0.297451 0.604378 1.272446 -0.024467 0.153067 1.441431 1.718328 1.247136 0.234713 0.508508 1.563481 1.996975 1.497921 -0.186889 1.506686 1.457967 0.851635 1.126831 1.619929 1.286798 0.427659 1.088560 0.343710 0.698108 0.491970 1.485036 0.402279 1.829549 -0.210279 0.602344 0.455427 1.551548 -0.143295 1.819966 1.723884 0.367324 0.583887 0.129963 1.378397 0.695260 1.086391 0.015607 -0.018227 1.912088 1.615319 0.126429 -0.044985 0.222194 0.640823 1.355598 0.793317 1.953912 1.336896 0.074012 0.149913 0.659791 -0.084100 0.711273 0.290624 1.656543 0.805550 1.238853 0.912215 0.994477 1.890447 0.582570 1.060671 1.456916 -0.306004 1.555829 1.007979 0.495499 0.081143 1.506620 1.879201 0.401250 1.827308 0.976483 1.611113 1.076186 0.522214 1.224155 0.782925 0.937953 1.654321 1.112437)
+ 11.087340 #(0.000000 0.608588 1.059326 0.160907 1.478992 0.214043 1.000042 1.610570 1.731365 1.098932 0.417370 0.682120 -0.183612 0.298789 0.604825 1.272207 -0.025117 0.152652 1.442047 1.718295 1.246399 0.235389 0.507520 1.564082 1.997745 1.496701 -0.186130 1.505787 1.457289 0.851794 1.127672 1.619598 1.286147 0.427190 1.089245 0.342621 0.698183 0.491797 1.486205 0.402585 1.829992 -0.210552 0.603285 0.456324 1.550589 -0.143957 1.820878 1.723442 0.368208 0.584288 0.129773 1.378626 0.696214 1.085783 0.015262 -0.016748 1.912427 1.615219 0.126478 -0.045194 0.221073 0.639474 1.355733 0.793240 1.954081 1.336452 0.075133 0.149647 0.660606 -0.083939 0.711498 0.289469 1.658335 0.804410 1.237783 0.912730 0.994286 1.889721 0.582987 1.060766 1.455451 -0.305872 1.556884 1.009429 0.495063 0.080213 1.507431 1.877916 0.402253 1.825999 0.975967 1.609872 1.075734 0.523494 1.223749 0.784664 0.937883 1.654855 1.113287)
)
;;; 100 all --------------------------------------------------------------------------------
#(100 13.230233676417 #(0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0)
12.998435541498 #(0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0)
- 11.260605 #(0.000000 1.863941 0.840805 1.749491 1.355895 1.218124 0.438627 1.388835 0.141469 1.291849 0.143150 0.406920 1.713016 -0.309206 1.111087 0.328867 1.564487 0.292108 0.852390 0.456103 0.729718 0.927952 1.426019 -0.015262 1.537992 -0.165688 1.654249 0.203977 0.450685 -0.139417 1.722745 1.545449 1.786412 0.723931 1.897875 1.226992 0.765633 1.090171 0.399500 1.208187 1.265748 0.894209 1.391858 1.906586 1.933719 1.627515 -0.069404 0.306227 1.270651 0.114139 0.343911 1.634552 1.328417 -0.071202 0.384260 0.918328 1.748151 0.052639 1.980238 1.631890 1.026053 0.667550 0.204248 0.940189 1.137259 0.843093 0.674500 -0.136005 0.213042 -1.937132 1.461646 1.080267 0.191370 1.313590 0.534824 0.937806 1.724006 1.401716 0.262740 0.964406 0.686592 1.346404 0.341383 1.763437 1.398673 1.234408 1.078802 1.292108 1.401740 0.805321 0.033472 0.793299 0.747180 1.462843 1.357132 1.057276 -0.064086 0.864016 0.519915 1.443754)
+ 11.205446 #(0.000000 1.868593 0.851485 1.760446 1.342459 1.221213 0.440680 1.393137 0.135429 1.285244 0.145042 0.393039 1.703732 -0.306320 1.112312 0.315938 1.563077 0.295464 0.838863 0.460188 0.723830 0.914537 1.434923 -0.012086 1.519110 -0.171332 1.648598 0.200539 0.448719 -0.141816 1.722334 1.542375 1.776828 0.745516 1.899770 1.228522 0.767396 1.081819 0.391641 1.209180 1.272183 0.887861 1.400908 1.902692 1.930680 1.631547 -0.072971 0.313741 1.274167 0.121794 0.344816 1.639842 1.335601 -0.069415 0.397939 0.911684 1.757510 0.070806 1.992014 1.637483 1.031473 0.674400 0.218831 0.938513 1.145259 0.830933 0.663624 -0.137555 0.200257 -1.941672 1.461305 1.096221 0.178940 1.322018 0.542151 0.935555 1.718290 1.400544 0.245612 0.960009 0.684863 1.357981 0.338288 1.768923 1.391246 1.233399 1.072238 1.295203 1.402312 0.819804 0.022408 0.781051 0.756893 1.453183 1.355780 1.045567 -0.073902 0.848615 0.523315 1.451244)
)
;;; 101 all --------------------------------------------------------------------------------
@@ -1027,7 +1076,7 @@
13.268 #(0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0)
13.219774246216 #(0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0)
- 11.299696 #(0.000000 1.317343 0.320604 -0.003324 1.806733 1.484274 1.208367 0.366249 0.393591 0.199756 -0.175846 0.630207 1.636774 0.830261 0.795332 0.141056 1.668729 0.048697 1.514198 -0.147215 0.666483 1.691028 0.947182 0.611157 0.111331 1.443629 0.809565 1.505934 0.676743 0.171504 1.018931 1.509683 0.633021 0.998451 1.027219 0.563734 1.695715 0.988976 0.003278 0.064376 -0.019992 1.877937 0.754336 1.872808 1.353341 1.197642 1.666280 0.197282 0.623004 -0.413144 0.604857 0.547733 0.753095 1.723202 1.778155 1.193284 1.118214 0.294039 -0.529726 1.532130 0.986367 0.259729 1.286335 1.747352 0.629776 1.625567 1.242032 0.740987 0.006740 0.898909 1.554183 1.659268 1.671215 1.361304 1.818791 0.999039 1.445894 0.545148 0.782524 1.351255 0.649538 1.146687 1.278325 1.034576 1.493909 0.960633 1.345619 0.998511 1.824613 1.422378 0.113264 0.044560 0.392097 0.957391 1.297981 1.602628 1.779471 0.288760 0.636139 1.789337 -0.205256)
+ 11.226427 #(0.000000 1.338792 0.314879 0.003450 1.814658 1.485117 1.203857 0.371644 0.384755 0.196942 -0.168746 0.628280 1.632154 0.844396 0.794163 0.147969 1.663198 0.060604 1.521172 -0.164019 0.669802 1.697367 0.941281 0.608986 0.103841 1.466676 0.809237 1.503566 0.670664 0.179238 1.017881 1.506260 0.625203 0.975782 1.028890 0.555292 1.699349 0.995758 0.003181 0.049256 -0.016780 1.876129 0.740718 1.881276 1.367875 1.204923 1.674578 0.208786 0.622245 -0.421034 0.588526 0.526205 0.747091 1.715588 1.786029 1.185195 1.125664 0.302729 -0.521214 1.523950 0.995021 0.258025 1.285242 1.755401 0.623287 1.639740 1.253924 0.732653 0.009039 0.901366 1.564386 1.657735 1.659112 1.361065 1.819964 1.005645 1.441926 0.551622 0.786897 1.354051 0.640250 1.145705 1.274098 1.024148 1.495515 0.964221 1.343172 1.016082 1.818737 1.429317 0.120977 0.047801 0.396629 0.957480 1.292235 1.588975 1.766400 0.295645 0.641042 1.781417 -0.197238)
)
;;; 102 all --------------------------------------------------------------------------------
@@ -1036,7 +1085,7 @@
13.300039088203 #(0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0)
13.194128990173 #(0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0)
- 11.498377 #(0.000000 0.015002 0.834949 0.415284 0.729566 0.878223 1.980467 1.972054 0.320406 1.829416 1.475079 1.294052 0.478333 0.445072 0.663091 0.494365 1.677598 0.317763 0.369428 -0.338378 0.438377 1.543336 1.311223 0.621772 1.588497 1.603690 0.761471 0.334519 0.544704 1.763961 1.665910 0.748472 1.350183 1.147328 0.992497 -0.107600 -0.006377 1.845306 0.409307 -0.057545 1.094541 0.537485 0.437736 0.438168 0.359485 0.329907 1.190839 1.746555 0.544755 -0.180615 0.768067 0.118552 1.474114 0.219200 0.627391 1.187681 1.918507 1.783750 1.087660 0.812862 0.789560 0.153196 0.167137 1.461005 0.625984 -0.165237 0.957953 1.750409 0.316202 0.027659 0.501941 0.557448 0.986008 0.159288 0.457213 0.579796 1.539318 0.597973 0.155228 0.961030 1.832929 0.925945 -0.123454 0.880950 1.257924 0.678590 1.381558 1.461240 -0.338698 0.066769 0.893626 -0.134299 0.171166 1.049141 1.292354 1.154070 0.235623 1.259132 1.130388 1.076550 0.821189 1.660374)
+ 11.353440 #(0.000000 0.033506 0.813657 0.426885 0.739145 0.863386 1.991692 1.985685 0.327979 1.834481 1.466581 1.288067 0.471177 0.457400 0.660569 0.498005 1.682761 0.310118 0.381718 -0.344000 0.434556 1.519084 1.335110 0.618088 1.605526 1.619214 0.768566 0.337117 0.538031 1.768289 1.681477 0.741073 1.366096 1.143853 1.004972 -0.099909 0.003445 1.869089 0.423649 -0.039422 1.074468 0.532916 0.432567 0.451045 0.363312 0.324539 1.167081 1.736427 0.542473 -0.195238 0.764847 0.123432 1.495339 0.228971 0.629736 1.184132 1.899303 1.798583 1.072620 0.805499 0.788349 0.172718 0.144097 1.480979 0.627329 -0.160932 0.968110 1.745686 0.318612 0.009760 0.480607 0.538111 0.981784 0.161247 0.455220 0.587784 1.542385 0.603745 0.166545 0.970270 1.829676 0.920592 -0.118136 0.890450 1.274305 0.678939 1.404733 1.463757 -0.333130 0.075449 0.894931 -0.130480 0.179151 1.037620 1.277398 1.156215 0.227128 1.275983 1.123210 1.054072 0.834296 1.653702)
)
;;; 103 all --------------------------------------------------------------------------------
@@ -1044,7 +1093,7 @@
13.67035285163 #(0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1)
13.435972213745 #(0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1)
- 11.603065 #(0.000000 0.640942 0.622426 0.741578 0.031469 0.211649 0.715910 1.660771 0.643639 1.092079 0.380441 0.782215 -0.036833 0.137518 0.265359 1.790298 1.792179 1.095962 1.865995 1.939845 -0.187925 1.744844 0.690917 1.701477 1.314288 -0.096826 0.448977 1.339755 1.380474 1.394013 0.338425 0.786046 1.253346 0.999259 0.595897 0.199916 -0.153222 0.920411 1.149662 1.104889 0.423670 0.045441 0.872434 0.852835 1.568054 0.829726 1.727197 1.218641 1.801254 1.748880 1.354064 1.216736 1.673165 0.888557 0.001492 0.891185 1.302114 0.365601 1.080539 -0.012066 1.627557 0.278712 1.203769 1.521340 1.297474 1.230746 1.810494 0.902474 1.802683 1.426110 0.784355 1.882573 0.129674 1.486202 0.665305 -0.003645 0.163337 0.874843 -0.000893 1.713306 0.687744 -0.129275 1.782405 0.251451 0.874772 0.526617 0.693341 0.726119 1.369721 1.204778 1.436228 1.367282 0.310432 1.785850 1.019398 1.152208 0.090194 0.286536 0.600903 0.299980 0.222670 1.308754 1.380416)
+ 11.503919 #(0.000000 0.642438 0.624481 0.731329 0.037418 0.215821 0.719212 1.666060 0.629840 1.096115 0.383816 0.781814 -0.025059 0.140444 0.252806 1.791023 1.783360 1.108352 1.854126 1.936053 -0.160538 1.731384 0.665929 1.710024 1.309978 -0.108312 0.455098 1.339514 1.370493 1.395558 0.329394 0.785393 1.244549 1.002456 0.600102 0.199540 -0.144180 0.929905 1.138464 1.107803 0.413804 0.034098 0.852181 0.864870 1.561903 0.835432 1.741259 1.220587 1.804669 1.758251 1.345996 1.220725 1.657039 0.902004 0.000401 0.886435 1.315232 0.351465 1.071256 -0.004775 1.622453 0.297264 1.222579 1.531817 1.291788 1.223101 1.819299 0.909248 1.814598 1.420611 0.767842 1.878198 0.135785 1.490476 0.663319 -0.006452 0.172180 0.884840 0.005122 1.692218 0.694947 -0.123575 1.776887 0.244576 0.876581 0.506796 0.704305 0.725657 1.372007 1.220722 1.425514 1.376369 0.300206 1.777638 1.030218 1.161170 0.090849 0.273511 0.601445 0.303634 0.213328 1.294694 1.378693)
)
;;; 104 all --------------------------------------------------------------------------------
@@ -1052,14 +1101,14 @@
13.682311361591 #(0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0)
13.330215043333 #(0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0)
- 11.700010 #(0.000000 1.584990 0.744808 0.074349 0.534522 1.830057 0.299304 0.024343 1.196013 0.996177 0.732907 1.026353 0.077724 1.034049 0.014854 1.002061 0.409047 0.288918 0.644224 1.341278 0.434916 0.765069 -0.073347 0.281827 -0.050120 0.418250 0.313236 1.153995 1.298871 1.787800 0.776938 1.665492 0.576551 0.510970 1.516225 0.543237 1.380016 0.873991 1.179811 1.731251 0.309784 1.843485 -0.176641 1.703775 1.850843 0.340266 -0.126597 1.362711 1.220071 0.502714 1.707459 1.717160 1.112243 0.687640 1.945887 -0.009910 0.179648 1.121524 0.593135 0.951993 0.789677 0.853274 0.146771 1.085947 0.110199 0.993361 1.073189 1.301604 0.648072 0.363877 0.811885 0.307707 0.159037 0.562184 0.632919 1.511433 1.864428 0.341694 1.405624 1.009082 0.792954 1.622907 0.000639 0.711322 0.832078 -0.033318 0.614637 0.113161 0.096582 1.397667 0.481517 1.179821 1.184531 0.677384 0.440833 0.783424 0.575946 1.578357 0.736139 1.368744 1.462558 0.414262 0.072629 1.655595)
+ 11.629931 #(0.000000 1.324434 1.802615 0.914308 1.569483 0.916157 0.525362 1.290282 1.647480 0.746799 1.322097 -0.069326 0.674362 1.212515 1.081106 0.183307 1.019836 0.252486 0.409388 0.819798 1.638687 0.676800 1.476326 0.652611 0.087255 0.472853 1.458381 -0.004669 0.643053 0.207174 0.804671 0.165020 1.670848 0.219159 0.632773 0.322325 1.935931 1.762931 1.603391 0.467545 0.983352 1.820759 0.764305 0.399853 -0.001712 0.741446 0.033460 0.565964 1.642179 -0.098218 1.623251 0.875931 0.518073 1.039761 0.494728 0.264300 0.710620 1.429730 1.732920 1.409778 0.019348 1.108088 0.275017 1.791441 0.483102 0.080286 1.393637 1.273902 0.267424 -0.079934 -0.022137 1.385186 1.230465 0.620352 1.234591 1.219911 0.978614 1.053520 1.679539 1.859175 0.214899 0.542207 0.882286 0.180068 0.205903 1.408136 1.720835 -0.161152 0.210637 1.525363 1.478270 -0.102306 -0.018462 1.843101 0.115511 0.455952 0.753797 0.914717 0.386738 1.193268 0.459976 -0.032498 1.205857 0.836879)
)
;;; 105 all --------------------------------------------------------------------------------
#(105 14.418999645918 #(0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0)
13.595993876506 #(0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0)
- 11.349481 #(0.000000 0.754871 0.376569 1.310091 1.280902 -0.154963 0.384232 0.666804 0.268918 0.750146 -0.334454 -0.060037 1.264598 1.656989 0.936979 1.467226 0.023602 0.865470 0.125555 1.741205 1.372975 0.849259 0.319919 1.428171 -0.057506 -0.126619 0.487382 0.579473 1.295143 1.259227 1.135466 1.111837 1.102142 1.760014 1.285349 1.636946 0.670851 1.416534 1.893033 1.349511 0.291557 1.615642 1.169463 0.909036 0.877715 0.397476 1.205779 0.524455 0.705636 1.535917 0.511537 1.418514 1.305818 0.303089 0.205111 0.796138 0.602369 0.777612 0.747833 0.100252 1.356234 1.345514 0.326526 0.188715 1.488935 1.821598 1.780578 1.465505 0.396585 0.060907 1.321149 1.543629 1.350954 0.836958 1.120987 0.269992 -0.106697 1.898030 0.145654 0.809411 0.033954 0.884204 0.460332 0.086045 1.711158 0.334309 0.018997 0.386584 -0.228960 0.767459 0.178533 0.803220 1.198207 1.905125 0.677335 0.567349 1.048026 -0.077297 0.457973 1.908367 1.570756 0.298259 0.737701 1.712197 1.297552)
+ 11.237963 #(0.000000 0.745554 0.350212 1.315584 1.292101 -0.151270 0.374368 0.672030 0.264031 0.763110 -0.316162 -0.069774 1.248638 1.670850 0.934227 1.460352 0.032024 0.877710 0.121585 1.760599 1.373658 0.849092 0.329102 1.427403 -0.058526 -0.108055 0.457658 0.588804 1.296164 1.243452 1.136114 1.121189 1.091487 1.757186 1.270512 1.636400 0.649233 1.422491 1.901784 1.356085 0.293192 1.606058 1.172021 0.904989 0.874654 0.403954 1.195402 0.528213 0.711280 1.539204 0.521491 1.421442 1.285541 0.310063 0.203823 0.801529 0.598313 0.778814 0.763321 0.092009 1.357195 1.341502 0.328775 0.201725 1.498419 1.826902 1.767186 1.481519 0.401354 0.066075 1.323172 1.537666 1.345473 0.847330 1.122819 0.271825 -0.118512 1.893924 0.154604 0.811826 0.035863 0.876884 0.448125 0.103174 1.709026 0.339461 0.027066 0.390857 -0.242782 0.782991 0.161195 0.829440 1.183344 1.882349 0.660766 0.570526 1.044544 -0.076488 0.450075 1.927583 1.573354 0.296297 0.734191 1.716046 1.291267)
)
;;; 106 all --------------------------------------------------------------------------------
@@ -1068,7 +1117,7 @@
13.421741504769 #(0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0)
13.200031373463 #(0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1)
- 11.705455 #(0.000000 0.152397 0.489942 1.216306 1.015802 0.667163 1.936452 0.683046 0.844620 0.925087 1.460500 1.222706 1.427788 0.107001 0.206558 -0.029838 1.348405 0.712753 0.228943 -0.074687 0.561655 0.567862 1.588220 1.840965 1.012190 0.264611 0.574957 0.320049 1.461724 1.154900 -0.046250 0.162542 1.252802 1.834843 1.157404 0.491924 0.126397 0.906130 -0.096257 0.222351 1.288214 0.704335 1.505987 0.976997 1.264204 0.006583 0.989582 0.340566 1.405596 0.217403 1.574249 0.685342 0.728683 1.009351 0.449424 0.602253 1.235786 1.704026 0.492559 1.373578 0.551223 0.950748 1.293505 1.594402 1.113959 0.086480 1.593450 0.912724 0.374871 0.771260 -0.206589 1.670037 0.108198 -0.197953 0.183983 1.801619 -0.088738 1.184365 0.006075 -0.020262 1.735522 1.509945 0.936635 0.933777 0.903657 -0.126241 0.224168 -0.033812 -0.065037 0.571003 1.804575 0.456654 1.079720 0.337898 1.288334 1.925095 0.354231 0.447302 1.747701 0.063805 0.244879 1.547835 1.640211 1.210739 -0.071051 1.407797)
+ 11.551845 #(0.000000 0.154939 0.494837 1.232988 1.011967 0.667455 1.939025 0.672963 0.830828 0.926002 1.466047 1.218314 1.422563 0.101738 0.223454 -0.045159 1.351828 0.705686 0.254135 -0.063453 0.552405 0.570565 1.572808 1.823808 0.995299 0.279648 0.572441 0.321493 1.451435 1.144853 -0.049794 0.179106 1.251848 1.850906 1.183788 0.475992 0.129237 0.904448 -0.123841 0.213797 1.277603 0.697856 1.511196 0.966165 1.289721 0.023200 0.988667 0.324529 1.406046 0.225529 1.577540 0.675953 0.734479 1.005351 0.474357 0.617242 1.239401 1.699346 0.512615 1.371469 0.550539 0.932951 1.301520 1.619003 1.102642 0.096569 1.584029 0.921243 0.376471 0.781641 -0.206877 1.675369 0.106790 -0.213302 0.203158 1.804057 -0.098797 1.185521 0.018385 -0.011774 1.741316 1.489157 0.925403 0.952262 0.902719 -0.155280 0.221954 -0.031365 -0.075811 0.564677 1.809727 0.454784 1.079270 0.364947 1.281031 1.912901 0.367028 0.433443 1.745669 0.043126 0.265973 1.547786 1.652240 1.213929 -0.074558 1.384415)
)
;;; 107 all --------------------------------------------------------------------------------
@@ -1077,7 +1126,7 @@
13.624429092956 #(0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1)
13.224366750161 #(0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1)
- 11.894124 #(0.000000 1.276566 0.594240 1.508801 1.694132 0.246284 0.281657 0.769546 1.392709 0.634316 0.776375 0.323978 0.707381 1.357942 1.258018 0.590305 1.346198 -0.015020 0.289436 0.948646 0.114012 1.852983 1.191843 0.407867 0.035582 1.445913 1.343915 1.737556 0.426364 1.878485 0.400949 1.777517 1.507522 0.052371 1.428122 0.979879 1.852684 1.079113 0.136593 0.728701 1.308933 0.304020 0.145656 0.103308 1.357874 1.441577 1.637615 0.327242 0.198054 1.024773 0.790459 1.257061 1.457175 1.731911 0.974396 0.678240 0.714715 1.277490 1.141266 1.233964 0.112808 0.956761 1.524484 0.457693 1.903433 1.287211 1.650979 1.156974 1.476552 1.176453 0.417694 1.562755 1.147344 1.460318 0.599432 1.378975 0.176836 0.138214 1.066874 0.769341 0.223083 1.717696 0.427742 1.302048 0.824045 0.748051 0.172625 1.490525 1.633667 1.805916 1.753855 1.705406 1.424702 0.154536 0.331161 1.070943 -0.135048 1.760081 1.540468 1.642243 1.811801 0.767134 0.121150 1.089403 0.231547 0.688240 1.726335)
+ 11.672138 #(0.000000 1.273332 0.605859 1.517230 1.681313 0.261227 0.281791 0.764373 1.400455 0.617004 0.760051 0.299318 0.713055 1.355757 1.267192 0.566218 1.320397 -0.011041 0.269239 0.975480 0.100449 1.842247 1.179836 0.390834 0.064449 1.446034 1.342752 1.756804 0.463167 1.886062 0.407512 1.806029 1.506255 0.056666 1.423248 0.990839 1.849867 1.076471 0.146892 0.723614 1.326621 0.268317 0.149281 0.115087 1.365084 1.485189 1.633582 0.325606 0.182408 1.024421 0.791480 1.246252 1.452683 1.713358 0.964680 0.676814 0.705788 1.293945 1.123113 1.219919 0.101291 0.970832 1.540385 0.437722 1.906593 1.290537 1.663886 1.178447 1.493521 1.198636 0.428726 1.546724 1.149287 1.436803 0.605484 1.381882 0.164141 0.119607 1.045131 0.752297 0.198365 1.747961 0.414002 1.270170 0.848257 0.747684 0.172435 1.498347 1.643628 1.815666 1.763759 1.684907 1.429983 0.159056 0.337212 1.074908 -0.130430 1.766271 1.540301 1.639339 1.789242 0.757550 0.114031 1.116091 0.242801 0.713601 1.708778)
)
;;; 108 all --------------------------------------------------------------------------------
@@ -1086,14 +1135,14 @@
13.694299006963 #(0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1)
13.534 #(0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1)
- 11.892940 #(0.000000 1.205275 0.494587 1.740893 1.345720 1.239603 1.264216 1.426808 0.314412 1.313144 1.033351 0.153415 0.255828 0.056633 0.640035 0.463094 0.955746 0.501323 0.582005 -0.325950 1.369732 1.332481 0.733451 0.120706 0.804295 0.676172 -0.066153 -0.310524 0.801976 0.227774 0.892472 1.383735 0.692377 1.077256 1.739416 0.982744 1.877902 0.115525 0.679838 0.724325 1.051269 1.603465 0.629829 0.779767 1.764010 0.737878 1.545366 0.014546 0.842495 0.240312 0.507675 0.464582 1.354376 1.122393 0.233358 1.601410 0.142126 1.612493 1.064571 1.211434 1.073802 0.614891 0.755675 1.038089 1.277190 0.605186 0.147302 0.660495 0.210647 0.970461 0.254494 1.596548 1.636057 0.255842 -0.045559 0.658083 1.222915 0.340507 0.043619 0.669875 1.217927 1.143993 0.280609 0.607113 1.319168 1.347880 0.584372 1.376129 1.511268 0.860983 0.023426 1.796038 1.509156 1.669560 1.115211 -0.039193 1.528432 -0.111283 1.079105 0.053393 0.492123 0.295442 1.395389 1.444584 1.602990 0.936218 1.485248 0.677823)
+ 11.766817 #(0.000000 1.199355 0.464263 1.735078 1.335044 1.227298 1.276769 1.431161 0.322493 1.323403 1.026299 0.154198 0.249880 0.054026 0.615821 0.464020 0.948814 0.500081 0.588273 -0.323593 1.389523 1.346058 0.713123 0.108051 0.809822 0.677424 -0.069003 -0.304873 0.788605 0.224715 0.905113 1.379121 0.690799 1.084078 1.724654 0.992438 1.867124 0.109860 0.690233 0.719425 1.045101 1.616467 0.625616 0.781868 1.753941 0.758536 1.550663 0.022188 0.832630 0.236765 0.507933 0.469621 1.346460 1.137901 0.249932 1.602189 0.133673 1.624337 1.058547 1.205580 1.075794 0.610036 0.772932 1.048076 1.288097 0.627513 0.144955 0.670662 0.221747 0.961249 0.254335 1.608190 1.628685 0.254751 -0.046907 0.670936 1.216036 0.343172 0.045792 0.654638 1.210942 1.134667 0.266329 0.599235 1.313478 1.342538 0.573063 1.369521 1.527081 0.859405 0.038307 1.776319 1.521895 1.679454 1.106763 -0.045726 1.523197 -0.130397 1.053416 0.050753 0.494348 0.300980 1.384145 1.460064 1.599581 0.931942 1.477854 0.675824)
)
;;; 109 all --------------------------------------------------------------------------------
#(109 13.820175866598 #(0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0)
13.496821304096 #(0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0)
- 12.008358 #(0.000000 0.087773 0.530596 -0.043533 1.190857 0.313026 1.144262 -0.172760 0.030611 1.715615 1.093818 -0.035998 1.461678 1.811457 1.775803 1.553092 -0.182119 0.972352 0.244734 0.411658 1.042467 1.600302 1.243625 1.242793 -0.131209 1.565946 1.580471 0.431036 0.978824 0.706857 1.402988 0.942553 1.745700 -0.136997 1.800739 1.344626 0.785168 0.280959 0.048969 1.620599 1.885540 1.358401 0.329274 1.073429 1.809453 1.423509 1.509679 0.838613 -0.070044 0.815945 0.382538 0.934591 0.108301 1.461988 1.097016 0.966230 0.516181 1.329252 1.700790 0.438723 0.143864 1.751920 1.279801 0.191423 0.467148 0.810053 1.588281 0.085231 1.800207 1.181218 1.208631 0.839776 0.938960 1.073960 0.310329 1.756390 0.142844 0.295518 0.583904 1.297266 0.576690 0.566290 0.929119 0.775738 0.537379 0.856969 0.022031 1.483764 0.508943 0.786278 1.543964 1.924695 0.820953 1.157911 1.398744 0.541705 1.289310 0.384543 0.487114 1.107440 0.101268 1.429524 0.146371 0.043922 1.483395 0.681501 -0.075912 0.177132 1.156512)
+ 11.837220 #(0.000000 0.108677 0.522646 -0.034030 1.185217 0.303335 1.143072 -0.166781 0.029268 1.704710 1.106903 -0.035379 1.458675 1.803844 1.775271 1.553035 -0.175448 0.983651 0.234080 0.414798 1.048620 1.607296 1.249600 1.254342 -0.119842 1.550868 1.582109 0.432851 0.981641 0.707891 1.400726 0.951488 1.739159 -0.128191 1.799484 1.356613 0.801940 0.284379 0.047535 1.633938 1.897509 1.380843 0.340298 1.088085 1.824244 1.427412 1.529281 0.820266 -0.063518 0.808197 0.398917 0.934217 0.102700 1.479345 1.086338 0.963412 0.532074 1.336804 1.713076 0.433535 0.154603 1.737381 1.314728 0.179368 0.443618 0.799491 1.586887 0.087102 1.803519 1.177157 1.205477 0.817652 0.918115 1.072858 0.306310 1.753580 0.152089 0.309190 0.586906 1.271002 0.580909 0.553534 0.902876 0.795989 0.564247 0.863521 0.030376 1.473444 0.527495 0.826118 1.515672 1.911836 0.813147 1.154967 1.378708 0.542514 1.298997 0.367079 0.499190 1.098268 0.087576 1.438361 0.132632 0.056788 1.471277 0.684938 -0.086900 0.175413 1.174559)
)
;;; 110 all --------------------------------------------------------------------------------
@@ -1101,7 +1150,7 @@
13.64278793335 #(0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1)
13.592092514038 #(0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1)
- 12.086740 #(0.000000 1.263119 0.040679 0.704589 1.937162 0.294235 1.255257 1.352737 0.566935 1.275254 0.426481 1.763454 0.037633 1.408757 0.513038 0.825167 1.153260 0.995184 1.141868 0.024078 0.807297 1.119785 0.794596 0.542833 0.457428 1.052770 0.976579 1.254800 1.114330 0.831314 0.335876 0.652822 0.950091 0.300934 1.575997 -0.085161 0.880767 0.228878 0.895492 0.084161 1.728834 0.047995 1.528216 0.494555 0.765289 1.103442 1.531539 0.582308 1.715805 0.505625 0.321976 0.767882 0.166008 -0.099128 0.714862 1.007962 1.374754 1.799351 0.579327 1.261434 0.473569 1.168987 1.303007 0.829452 1.166337 0.938902 1.879593 1.251797 0.330116 0.471675 1.761346 -0.023023 1.821129 1.361397 1.213092 0.769681 1.006456 0.448089 1.332168 0.662646 1.505880 1.351877 1.479371 0.175478 0.424793 1.579121 0.490445 1.145306 0.987455 0.112768 1.357813 1.762575 1.872445 0.585276 -0.064062 1.664542 1.936128 0.202318 1.322343 0.402455 0.677452 0.424734 1.082614 0.572991 1.799068 0.950139 0.731479 1.775107 1.302853 0.260106)
+ 11.909439 #(0.000000 1.268211 0.028058 0.705304 1.938246 0.294521 1.252144 1.358396 0.584424 1.269077 0.442773 1.756351 0.014042 1.415206 0.517132 0.824358 1.182239 0.982304 1.136229 0.004899 0.831559 1.112787 0.798666 0.554750 0.452747 1.037564 0.984801 1.261593 1.101959 0.861396 0.322760 0.625541 0.944567 0.312404 1.604795 -0.067717 0.889878 0.246074 0.891262 0.075451 1.731800 0.037333 1.523683 0.490460 0.782009 1.106095 1.519391 0.582620 1.706990 0.485748 0.321223 0.781802 0.172535 -0.075150 0.729409 0.994662 1.386562 1.806334 0.579669 1.236679 0.506167 1.165890 1.294532 0.841385 1.179729 0.931941 1.872152 1.262849 0.338990 0.478177 1.744884 -0.000313 1.822205 1.359935 1.212150 0.760045 0.987588 0.428973 1.346561 0.658919 1.521563 1.350497 1.491548 0.168429 0.418897 1.581078 0.502297 1.134048 1.001486 0.095834 1.354031 1.769051 1.864888 0.572228 -0.057025 1.653986 1.945685 0.212462 1.293241 0.407531 0.677611 0.412527 1.082960 0.569539 1.785506 0.960651 0.713488 1.769381 1.309850 0.264743)
)
;;; 111 all --------------------------------------------------------------------------------
@@ -1109,7 +1158,7 @@
14.359505653381 #(0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0)
13.80813938144 #(0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1)
- 11.935477 #(0.000000 1.270848 0.927171 0.035177 1.886244 0.016990 1.729691 1.528583 0.342227 1.389090 -0.005693 1.120805 0.208662 1.264616 1.040600 0.185352 1.378021 0.638762 0.557353 1.887769 0.326845 0.587264 1.054489 1.264370 0.224302 0.030357 0.860176 0.339742 0.905737 1.002087 0.093939 0.870373 1.731661 0.666018 1.278270 1.477358 1.410118 0.806719 0.248172 1.236007 -0.057014 0.460335 0.946674 1.321826 1.656496 1.619225 0.345855 0.612722 0.003880 1.245226 1.104225 1.167510 1.168501 1.047488 0.238370 0.468591 1.529019 0.195220 1.571205 0.979518 1.466226 0.944473 0.859929 0.859480 0.398963 0.518607 1.267893 0.946163 0.787388 1.740215 1.329508 -0.025133 0.780492 0.553223 1.592851 0.739162 1.856910 0.156986 -0.120163 0.480995 1.718670 0.108395 0.772312 0.185618 0.225645 1.365091 0.924163 0.851600 1.612415 1.800285 1.830148 1.210797 1.728045 0.633093 0.504885 1.838281 0.378637 1.445162 1.576740 1.009559 0.336981 1.219958 -0.179333 1.627294 0.502110 0.310359 1.722990 0.328690 0.278715 0.652743 0.151050)
+ 11.934187 #(0.000000 1.271720 0.927869 0.036107 1.885902 0.016357 1.728824 1.528828 0.341679 1.388164 -0.005587 1.121558 0.209312 1.265554 1.039733 0.186125 1.378156 0.638636 0.556764 1.887205 0.326411 0.588233 1.053519 1.263717 0.224772 0.030513 0.860727 0.339447 0.906024 1.002152 0.093827 0.870421 1.731491 0.666741 1.278714 1.477189 1.409698 0.806517 0.247599 1.236019 -0.057760 0.460409 0.946961 1.321665 1.656591 1.620073 0.346065 0.611741 0.004191 1.246150 1.104838 1.167979 1.167605 1.047397 0.237937 0.468414 1.528743 0.194701 1.571301 0.980407 1.467221 0.943805 0.859207 0.858724 0.398695 0.518071 1.267996 0.945316 0.786899 1.739741 1.328510 -0.025134 0.780698 0.554107 1.591855 0.738575 1.856656 0.157092 -0.120708 0.480286 1.719192 0.107955 0.772534 0.185501 0.225530 1.364882 0.923505 0.851746 1.611588 1.799682 1.830186 1.210342 1.728743 0.632146 0.504922 1.837774 0.377777 1.444570 1.575887 1.009171 0.337760 1.219472 -0.179325 1.626301 0.501114 0.309848 1.722955 0.328430 0.278255 0.652840 0.150053)
)
;;; 112 all --------------------------------------------------------------------------------
@@ -1118,21 +1167,21 @@
14.059637729172 #(0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1)
13.719 #(0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0)
- 12.109310 #(0.000000 -0.121341 1.195591 0.746060 0.428070 1.235548 1.060654 0.785058 1.073644 0.471563 -0.147947 1.037679 0.233877 1.522897 1.233938 0.626872 1.110415 0.695509 0.380603 1.646082 1.794513 0.306467 0.446152 0.528930 0.725930 0.571294 1.240707 0.702472 0.217830 0.762248 1.766865 1.882155 0.728941 0.421103 0.204117 0.360627 0.744049 0.183506 1.703683 1.578213 1.771446 1.909231 0.496955 1.547422 1.639193 1.767886 0.370158 0.436219 0.342501 0.547984 0.815797 1.805235 0.141557 -0.035974 0.601062 0.827033 1.598250 -0.055543 0.550610 0.878857 0.916339 -0.014766 0.498487 1.167835 0.613621 0.625165 0.753895 0.326236 1.893982 1.653160 1.522856 1.199780 -0.013100 1.879627 0.341924 1.159758 -0.208418 0.503270 1.034563 1.757173 0.613118 1.582193 0.574553 1.403743 1.175791 1.515200 1.289817 0.601067 0.466365 0.114598 1.286441 0.242779 0.527203 1.485112 1.224749 0.298095 0.078908 1.025210 0.586961 0.980877 1.948259 0.804236 -0.043023 0.912503 1.557360 1.384500 1.145765 1.283450 1.320165 0.383130 1.231170 0.433745)
+ 12.100818 #(0.000000 -0.120886 1.196394 0.747422 0.429369 1.235874 1.060811 0.783894 1.073007 0.471712 -0.146924 1.036155 0.235017 1.522789 1.234016 0.625248 1.109723 0.695519 0.380635 1.645883 1.795323 0.307836 0.447065 0.529222 0.726232 0.571096 1.241043 0.703677 0.217969 0.763665 1.767227 1.882979 0.728467 0.421902 0.204712 0.358803 0.743508 0.183715 1.702810 1.578865 1.771524 1.909155 0.495908 1.548011 1.640252 1.767712 0.371657 0.436132 0.342175 0.548371 0.814661 1.805210 0.140691 -0.036828 0.601490 0.826751 1.598103 -0.054712 0.550031 0.878137 0.916583 -0.013532 0.497593 1.168003 0.613303 0.624134 0.754079 0.327371 1.894242 1.654396 1.521902 1.200647 -0.013146 1.879351 0.342434 1.158380 -0.208593 0.504035 1.035217 1.757111 0.613013 1.582067 0.573931 1.402280 1.176092 1.515996 1.290131 0.600610 0.464734 0.113785 1.286160 0.243936 0.527428 1.486164 1.224712 0.297987 0.078482 1.025275 0.586206 0.981384 1.946520 0.804135 -0.043856 0.912266 1.558613 1.384185 1.145540 1.284572 1.318819 0.383864 1.230875 0.433262)
)
;;; 113 all --------------------------------------------------------------------------------
#(113 14.501041453443 #(0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1)
14.027848738379 #(0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1)
- 12.249616 #(0.000000 1.104203 0.972950 0.065646 0.283517 0.786846 1.003971 1.679818 -0.082460 0.342456 1.257336 1.426202 0.007274 0.485281 0.500815 0.118399 1.877874 1.032306 1.719136 1.359485 0.081606 1.834864 0.530093 0.686366 0.157166 -0.412438 0.736410 0.396052 1.491271 0.411263 -0.113932 1.625620 0.433474 1.435086 1.291865 0.538292 0.579937 0.517803 0.486643 1.620676 1.613836 -0.082529 0.965305 0.537682 0.585260 0.748351 0.497310 0.365414 0.945662 1.446065 0.808697 0.117910 -0.135204 0.992238 1.157318 -0.113128 -0.003594 0.013920 1.796555 0.482328 0.605256 0.310219 0.939089 -0.165800 0.746845 1.801014 0.755056 0.325569 0.714659 1.528912 0.882139 1.404581 0.837454 1.269852 0.037764 1.321815 -0.236617 1.781582 0.830616 0.892432 1.447633 0.150821 1.011048 0.270447 0.904302 0.956145 0.428909 -0.216334 1.472334 0.556439 1.496155 0.499023 0.704425 0.657752 0.109955 0.727488 0.525400 0.064269 0.979130 1.230993 0.449998 0.163591 0.042405 1.375847 1.529451 0.995209 1.490877 1.761756 0.853700 1.410377 0.737771 1.164414 0.585191)
+ 12.245106 #(0.000000 1.103939 0.973632 0.065308 0.284961 0.786358 1.003815 1.680688 -0.082137 0.342698 1.258535 1.425826 0.006615 0.484268 0.501303 0.119246 1.876535 1.033031 1.718890 1.359854 0.082390 1.835536 0.528915 0.686012 0.157046 -0.411203 0.735856 0.396615 1.489755 0.411270 -0.112913 1.627314 0.432900 1.436230 1.292568 0.539699 0.578831 0.518331 0.485521 1.619843 1.614311 -0.083460 0.966062 0.538120 0.585329 0.748888 0.496373 0.365949 0.945210 1.446355 0.807332 0.118732 -0.136180 0.991513 1.157152 -0.112518 -0.003976 0.013596 1.796194 0.482479 0.605848 0.310812 0.940372 -0.165711 0.745567 1.801120 0.754389 0.326313 0.714448 1.529039 0.883206 1.403191 0.837520 1.268241 0.038793 1.323254 -0.234951 1.781548 0.830261 0.893719 1.447270 0.149508 1.011813 0.271339 0.902975 0.956970 0.427918 -0.215568 1.471648 0.555875 1.495950 0.499397 0.703943 0.657471 0.110875 0.728256 0.524874 0.064041 0.979702 1.231060 0.449524 0.164723 0.043050 1.376984 1.528553 0.996656 1.491110 1.760620 0.854197 1.410067 0.737956 1.164800 0.586595)
)
;;; 114 all --------------------------------------------------------------------------------
#(114 14.119774267447 #(0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1)
13.847382931726 #(0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1)
- 12.293810 #(0.000000 0.499356 1.019635 0.975677 0.981929 0.208055 1.838280 0.875501 1.681700 1.095777 -0.600766 0.228825 0.140769 1.291213 0.082070 0.650486 1.446157 1.551573 1.437818 -0.643181 0.509636 0.982428 0.674827 0.312489 0.850132 1.404886 0.797971 0.791502 1.488148 1.095184 0.373134 0.916523 0.182795 1.847098 1.883246 -0.082663 0.052953 0.017381 -0.061745 1.400141 0.797712 0.143693 1.117593 1.272064 1.613232 1.716056 0.985511 -0.222833 1.399012 1.349202 1.645602 0.630396 1.019269 0.546152 0.480413 1.302868 1.468164 1.227520 0.172658 1.775648 1.558247 1.541232 0.646804 0.742148 1.096172 0.951213 0.191966 1.125266 1.159278 0.105391 1.150320 0.583685 -0.126580 0.228996 0.794640 1.517384 1.134095 1.246582 0.291911 1.457557 0.780803 1.072323 0.045878 0.457029 0.873273 -0.342346 1.620026 0.870896 1.784647 -0.121405 1.606862 1.159136 -0.290836 1.737222 1.500024 0.611510 0.478075 0.734540 1.602113 0.080973 1.512708 0.045825 1.328842 0.517234 0.034075 0.862262 1.909505 1.445748 0.032239 0.187406 0.990540 0.242786 1.112872 0.035545)
+ 12.288015 #(0.000000 0.500540 1.019924 0.976104 0.981215 0.207763 1.836828 0.876167 1.683051 1.095502 -0.600389 0.228981 0.140533 1.290423 0.082859 0.649201 1.446298 1.551118 1.436129 -0.642346 0.509515 0.981654 0.675710 0.311719 0.850727 1.405493 0.799289 0.791356 1.487966 1.095212 0.374319 0.916271 0.182581 1.846820 1.883249 -0.083563 0.054203 0.017259 -0.061136 1.399032 0.797845 0.144907 1.117177 1.271567 1.612170 1.714513 0.985121 -0.221173 1.399781 1.348299 1.644228 0.629481 1.021117 0.545934 0.481084 1.303104 1.468560 1.226267 0.171933 1.776156 1.558005 1.539863 0.647089 0.742419 1.095817 0.951286 0.192959 1.125382 1.158645 0.103850 1.150763 0.584375 -0.127645 0.229182 0.794434 1.517871 1.133999 1.247411 0.291525 1.456542 0.780637 1.071900 0.046852 0.457507 0.873513 -0.342021 1.619257 0.870908 1.784563 -0.121623 1.608213 1.159906 -0.291342 1.736203 1.499701 0.609802 0.477199 0.733100 1.601106 0.079890 1.511853 0.046022 1.328610 0.517034 0.033699 0.860822 1.909963 1.445642 0.032877 0.187570 0.992277 0.244055 1.114042 0.037041)
)
;;; 115 all --------------------------------------------------------------------------------
@@ -1154,7 +1203,7 @@
14.522986412048 #(0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1)
14.136 #(0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1)
- 12.299848 #(0.000000 1.410417 0.709242 1.609645 0.151205 1.586426 1.510736 -0.436981 0.043605 0.707306 -0.000775 -0.030916 0.113353 1.757394 0.355323 1.318179 1.558402 0.214773 -0.084681 0.819323 0.104144 1.281027 1.011749 1.673408 -0.172194 0.839076 1.737214 1.128245 0.916870 1.491243 -0.268945 0.001153 1.617674 0.989199 -0.039272 1.332406 0.022373 0.621760 0.328356 0.428281 0.133828 0.061620 1.744686 1.618548 1.883897 0.253307 1.338956 0.589095 0.405501 1.741854 1.352766 1.316547 1.590684 0.058453 0.876275 0.642964 0.676414 0.184928 1.610895 0.895463 -0.109725 1.846255 0.169412 1.197318 0.144644 1.117086 0.368735 1.523155 0.856119 1.066175 0.641293 0.737761 1.679674 0.431302 1.563183 1.502282 1.315389 1.476219 1.616378 0.730789 1.529013 1.423863 1.872125 0.835985 0.179854 1.870032 0.360738 1.349628 1.357302 0.715552 0.678372 1.295103 1.353822 1.546676 -0.006573 0.888698 -0.000494 1.785802 0.886726 -0.048331 0.781164 1.110872 0.913731 1.885848 0.712172 1.006702 0.885940 1.783735 0.095015 1.397570 0.537412 0.405146 0.099187 0.780051 1.429280 0.126144 1.364660)
+ 12.294123 #(0.000000 1.411673 0.709266 1.608873 0.151122 1.587702 1.511041 -0.436216 0.043664 0.706536 -0.000592 -0.030192 0.113192 1.758728 0.356164 1.319296 1.559228 0.215455 -0.083207 0.820166 0.103873 1.281647 1.012249 1.673347 -0.171928 0.839173 1.737150 1.127261 0.916494 1.490143 -0.267658 -0.000101 1.616555 0.989814 -0.039935 1.332685 0.023128 0.620975 0.328569 0.427746 0.133907 0.060760 1.744782 1.618305 1.884240 0.254044 1.337915 0.589761 0.407218 1.742806 1.352466 1.317196 1.590578 0.059583 0.877327 0.642263 0.675565 0.184743 1.611529 0.895176 -0.110727 1.846665 0.167949 1.197241 0.144425 1.116672 0.368531 1.523402 0.856745 1.066477 0.641440 0.737210 1.680770 0.432626 1.562605 1.502861 1.315316 1.477321 1.617354 0.730156 1.529241 1.423764 1.873632 0.836031 0.180376 1.870067 0.360390 1.351110 1.358292 0.715661 0.678100 1.295583 1.354127 1.547789 -0.007568 0.889848 -0.000067 1.786073 0.887590 -0.049135 0.779899 1.111370 0.911974 1.885862 0.711038 1.008055 0.885660 1.783206 0.094656 1.396929 0.536035 0.405379 0.100643 0.779618 1.428826 0.126675 1.364167)
)
;;; 118 all --------------------------------------------------------------------------------
@@ -1162,7 +1211,7 @@
14.496 #(0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1)
14.207115029287 #(0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0)
- 12.551668 #(0.000000 -0.089081 -0.024758 0.184629 0.072560 0.688771 0.118897 1.906053 0.448352 1.460283 0.965189 1.923212 0.620843 0.269570 1.183265 1.057641 -0.011335 0.498160 1.416054 -0.355082 1.346586 0.127073 0.768650 0.469058 1.651713 1.862161 1.411568 1.286825 0.483514 1.866191 1.673728 0.017619 0.784622 0.258460 0.242981 0.172338 0.846741 0.326147 0.227107 1.656014 1.346242 1.286672 1.603093 -0.466518 1.028065 0.122100 0.939753 0.590457 1.177669 0.127910 1.458739 1.265081 0.981834 1.132092 1.386871 0.473033 0.866662 1.121233 0.237084 0.953654 0.691513 0.615185 1.004140 0.916276 -0.063372 1.355728 0.893211 0.163516 1.628482 1.086064 1.051652 0.856811 0.139360 0.680676 0.813568 0.736394 -0.349855 0.783045 1.211676 0.142746 0.918180 0.670529 1.611150 1.408210 1.822596 1.188350 1.473746 1.401061 1.027849 1.535269 0.750093 1.653807 0.011835 0.513796 -0.184851 0.318899 1.178078 1.059376 0.925857 0.231447 1.362985 -0.102954 0.418630 -0.237711 0.606053 0.499054 1.121087 -0.212351 1.739209 0.534806 1.004195 0.800169 0.253018 0.768284 1.279963 0.327911 1.192056 1.145748)
+ 12.546590 #(0.000000 -0.091116 -0.024302 0.184686 0.071363 0.689812 0.119097 1.906846 0.449217 1.459426 0.966109 1.922899 0.620095 0.268239 1.183044 1.057063 -0.010028 0.498275 1.415582 -0.355229 1.346084 0.127844 0.769024 0.469918 1.653248 1.863339 1.412298 1.287822 0.482286 1.864868 1.673639 0.019381 0.785074 0.258807 0.243806 0.172621 0.849110 0.326794 0.226846 1.656261 1.345740 1.286758 1.604256 -0.466633 1.029224 0.120318 0.938695 0.589264 1.177953 0.129192 1.460322 1.263609 0.983175 1.133898 1.385786 0.473504 0.867138 1.121704 0.237198 0.955930 0.691964 0.614747 1.004321 0.916498 -0.063450 1.354042 0.894127 0.162087 1.628106 1.087530 1.051115 0.856470 0.140401 0.680003 0.814048 0.735917 -0.347759 0.781731 1.210680 0.141657 0.917633 0.669383 1.611219 1.406657 1.822562 1.188525 1.473883 1.400863 1.028711 1.534565 0.748507 1.653461 0.013037 0.514321 -0.185747 0.319164 1.178268 1.060960 0.926520 0.232936 1.361883 -0.101888 0.417759 -0.237705 0.605009 0.498965 1.120658 -0.211730 1.739993 0.533026 1.004932 0.799585 0.253934 0.767989 1.278913 0.327493 1.191041 1.144850)
)
;;; 119 all --------------------------------------------------------------------------------
@@ -1177,7 +1226,7 @@
#(120 14.761 #(0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1)
14.534638752286 #(0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0)
- 12.593533 #(0.000000 1.645603 1.060832 0.687960 -0.056853 0.724218 1.371679 0.384387 0.400805 1.889662 0.777083 0.358221 1.793130 1.327367 0.298615 0.483169 1.590757 0.079730 0.586371 1.435183 0.120509 0.432018 -0.139959 -0.150221 0.411782 1.399775 0.057480 0.291409 -0.411000 1.795014 0.572067 1.009855 1.549453 1.230839 1.560685 0.498817 1.194437 0.107400 0.606097 0.135103 1.789668 1.260865 0.021656 1.757270 0.477160 -0.152292 1.765225 1.413888 1.295383 0.551165 1.748729 0.107960 1.969833 0.112513 1.564239 0.372980 1.273720 0.876862 1.297371 0.647177 0.192907 0.261048 0.063784 0.983570 0.104814 0.333326 0.892501 0.397137 -0.103354 1.076404 1.091968 1.194755 0.296631 0.979702 1.637956 -0.163982 -0.100992 0.849138 0.001510 1.426954 0.180637 -0.388732 1.442777 1.390289 1.509012 1.439191 -0.009545 0.551982 1.421335 0.543957 1.584446 0.720521 0.702265 1.598763 1.020006 1.282271 1.206353 0.131648 -0.074569 0.150992 1.655676 0.878997 1.784084 1.333475 0.141077 0.619469 0.676139 -0.051802 0.000053 0.173992 0.629524 0.964661 0.855279 -0.083805 1.388521 0.227011 0.167317 1.973265 0.497189 1.774292)
+ 12.588831 #(0.000000 1.644074 1.060692 0.686124 -0.056225 0.725540 1.371624 0.384384 0.400925 1.890016 0.775898 0.358332 1.793280 1.328305 0.299398 0.484030 1.590263 0.079759 0.584829 1.436720 0.120848 0.431922 -0.140308 -0.150413 0.411228 1.400974 0.058285 0.291916 -0.412136 1.794872 0.573114 1.011248 1.550369 1.229455 1.561685 0.500335 1.193261 0.109053 0.606577 0.134923 1.789684 1.261898 0.022856 1.756839 0.476419 -0.152734 1.765831 1.414170 1.294114 0.551826 1.749699 0.108708 1.969999 0.112475 1.564110 0.373758 1.273918 0.877979 1.297544 0.648479 0.192923 0.261624 0.063435 0.984018 0.105288 0.333208 0.892861 0.398357 -0.101587 1.076541 1.091862 1.195156 0.297431 0.978954 1.638614 -0.163671 -0.101608 0.849750 0.000769 1.425993 0.181004 -0.388944 1.442944 1.391068 1.509862 1.439090 -0.009790 0.551871 1.420915 0.544233 1.583291 0.720826 0.701949 1.599795 1.019893 1.282200 1.206180 0.131822 -0.073669 0.152613 1.654633 0.878879 1.784375 1.333891 0.140816 0.618038 0.676821 -0.051210 0.001860 0.173355 0.629401 0.964878 0.855242 -0.084179 1.387594 0.225804 0.167770 1.973399 0.497659 1.773925)
)
;;; 121 all --------------------------------------------------------------------------------
@@ -1211,14 +1260,14 @@
15.141 #(0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1)
14.607 #(0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1)
- 12.973381 #(0.000000 0.119807 1.792538 0.826683 0.978848 0.626684 0.266337 0.224219 1.488181 -0.091864 0.267228 0.478740 -0.151720 1.419265 0.989638 0.376793 0.327772 0.856043 1.495624 0.800493 0.032472 1.366346 0.253187 1.754143 0.830684 0.254988 1.124536 0.913525 1.633401 -0.196350 1.356920 1.010981 0.523311 0.405766 0.210563 1.377681 -0.096106 1.203004 0.832806 1.563859 0.474293 0.698854 0.339370 0.315455 0.908455 0.905314 0.463667 0.611472 1.402280 0.263101 1.434937 1.269558 0.936424 0.049868 0.841397 1.814517 0.207236 0.235161 0.641513 0.498034 1.490975 1.189661 1.911300 1.332544 -0.004714 0.139964 -0.272332 1.405618 -0.158964 1.840264 0.491252 0.988752 1.784195 0.804457 1.122919 0.773835 1.133957 0.594134 0.988084 -0.164772 1.329531 1.653623 1.239419 0.818156 1.445711 1.758084 -0.368441 -0.514274 0.700864 1.404060 1.664056 0.760564 1.119656 1.744483 0.230966 0.106974 1.013849 0.479675 1.242195 1.518891 0.431771 1.050786 0.510907 1.227982 1.877615 0.186531 0.216243 1.552732 0.599552 0.214899 -0.103780 1.020532 0.397365 0.144917 0.982627 1.644917 0.897381 0.578485 1.026219 1.010328 0.703073 0.829153 0.505033 0.665645)
+ 12.965947 #(0.000000 0.120938 1.793207 0.828066 0.980329 0.627232 0.266377 0.224967 1.489277 -0.092090 0.267033 0.477872 -0.152367 1.418739 0.989821 0.377252 0.327891 0.857206 1.494956 0.800019 0.032311 1.365883 0.253681 1.755494 0.830490 0.255852 1.125338 0.913419 1.634565 -0.197778 1.357298 1.011276 0.523567 0.404933 0.210904 1.378425 -0.096159 1.204585 0.833162 1.563959 0.474853 0.697957 0.337720 0.314862 0.908477 0.906314 0.462678 0.610874 1.403157 0.264057 1.434646 1.269731 0.936191 0.051332 0.839843 1.813575 0.206251 0.236440 0.641994 0.496971 1.490911 1.188735 1.911534 1.331577 -0.005211 0.140376 -0.273218 1.405953 -0.158980 1.841427 0.493126 0.988545 1.785374 0.804953 1.123062 0.773221 1.134851 0.592693 0.987823 -0.166575 1.328787 1.653612 1.237815 0.817788 1.446221 1.758438 -0.369905 -0.514390 0.700776 1.402740 1.663752 0.760348 1.119015 1.743647 0.230220 0.107139 1.013208 0.480884 1.242257 1.519743 0.430756 1.051690 0.510527 1.229396 1.877041 0.187609 0.215659 1.552529 0.598323 0.215943 -0.104730 1.019493 0.397001 0.146085 0.982408 1.644580 0.898655 0.577865 1.026322 1.011806 0.702857 0.827909 0.505024 0.665868)
)
;;; 125 all --------------------------------------------------------------------------------
#(125 15.543356407337 #(0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0)
14.985 #(0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0)
- 12.973412 #(0.000000 1.411737 1.482767 1.427089 0.600361 1.946036 0.468319 0.407152 0.823347 0.970104 1.017471 1.843447 1.476568 0.514426 1.582747 0.942192 1.361432 1.713183 1.630462 0.404150 -0.585402 0.875509 -0.202733 0.875628 0.287887 1.753823 0.061135 1.692025 0.077272 0.043798 0.172673 0.239233 0.405133 0.164793 0.068704 1.347132 -0.228110 1.456414 0.902536 1.594116 -0.040416 0.990750 -0.011939 1.611914 1.828346 0.077295 0.445544 1.360804 0.711453 1.313555 1.616593 1.461676 1.687039 0.954792 0.780766 0.765145 -0.002360 0.588655 1.268810 0.653093 -0.114044 0.096462 0.277949 0.227794 1.224331 0.706064 0.775951 0.681978 1.001570 1.208333 1.361327 0.713165 0.345084 1.369508 0.780860 0.264499 1.280728 1.408051 1.468975 0.528244 0.801434 1.066089 0.138331 0.520060 0.076843 1.064061 -0.012983 1.408488 1.896200 1.219244 1.106410 1.699353 0.397751 0.519517 -0.453559 0.559152 0.729512 1.866237 0.205868 1.025263 1.025680 0.984600 0.112813 0.179666 0.457902 1.430002 0.217619 1.382127 1.891041 0.563355 1.663262 0.660790 1.969208 1.428585 1.029756 0.047803 0.504740 1.355965 1.126765 0.767474 1.820990 1.525642 1.077636 0.538109 0.807657)
+ 12.970970 #(0.000000 1.411208 1.481980 1.427698 0.601480 1.946483 0.469516 0.407581 0.822350 0.970563 1.016573 1.844089 1.477265 0.513656 1.583760 0.943294 1.360746 1.712570 1.630120 0.405004 -0.583792 0.874355 -0.201973 0.875065 0.288278 1.754325 0.062730 1.691206 0.078345 0.043898 0.171812 0.239604 0.405894 0.163954 0.069877 1.348283 -0.227889 1.456252 0.902264 1.594167 -0.041274 0.991321 -0.011699 1.612911 1.829371 0.076728 0.445331 1.359500 0.711566 1.313573 1.616381 1.461936 1.687751 0.955562 0.781311 0.766095 -0.003075 0.589261 1.267798 0.653000 -0.114349 0.098191 0.278955 0.227545 1.224305 0.706551 0.775697 0.681909 1.002558 1.207502 1.362567 0.714845 0.344457 1.369108 0.781608 0.262969 1.279856 1.407468 1.468158 0.528073 0.801655 1.065990 0.139333 0.520467 0.077445 1.064304 -0.014053 1.408642 1.896180 1.218346 1.105301 1.698841 0.399514 0.519873 -0.453022 0.560491 0.729015 1.866137 0.206587 1.025187 1.025937 0.984978 0.114127 0.179817 0.457109 1.430718 0.216371 1.381632 1.890981 0.564691 1.663887 0.661096 1.969951 1.428511 1.030528 0.048012 0.504044 1.354605 1.126947 0.766294 1.821164 1.525241 1.078757 0.538416 0.807053)
)
;;; 126 all --------------------------------------------------------------------------------
@@ -1235,7 +1284,7 @@
14.859080656941 #(0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0)
14.851 #(0 0 1 0 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0)
- 13.029869 #(0.000000 0.819087 1.265648 0.077241 1.062999 0.398418 1.619530 0.320943 1.331342 1.633042 0.222586 1.798918 1.337143 1.538333 1.046396 -0.221713 0.195989 1.322900 0.023637 1.529776 1.348020 1.586590 1.351552 0.677144 0.659526 0.146679 0.589657 -1.961727 0.029252 1.357643 0.297065 0.807483 0.010869 1.423458 0.176060 1.764756 0.741283 0.221334 0.783392 1.548483 0.178687 0.713308 1.709416 1.189417 0.898132 0.402213 0.576173 1.729098 1.052078 1.295255 0.882867 0.261937 0.915577 1.382439 0.936567 1.778039 0.067162 0.732280 0.757663 1.350581 1.035842 0.949455 0.438014 0.017832 1.597035 1.276697 1.698138 0.046089 -0.080088 0.585743 0.732919 0.978888 0.534903 0.748373 0.499781 0.640831 0.144567 0.257652 0.678051 0.224364 0.245939 1.436094 1.558352 0.126991 0.200692 0.312110 0.383889 0.634744 0.678909 1.108931 1.069071 1.250041 0.123521 0.248973 0.530808 1.667358 1.657704 1.655155 1.204040 0.357326 0.026724 1.425632 0.664846 0.011605 1.276354 0.683975 1.602727 0.103844 0.579761 0.966048 1.377400 0.660726 0.583946 1.286682 0.973242 1.646780 0.943786 0.847954 0.088015 1.604222 0.335188 1.762239 0.386627 1.712170 1.506235 0.486031 1.284243)
+ 13.027883 #(0.000000 0.819233 1.266809 0.078750 1.063584 0.399300 1.620198 0.322251 1.332303 1.633665 0.223576 1.799756 1.338797 1.538556 1.046236 -0.220810 0.196327 1.322751 0.023186 1.528970 1.348013 1.584795 1.350450 0.676898 0.659090 0.146501 0.589971 -1.960260 0.029415 1.357476 0.297367 0.807420 0.010575 1.423026 0.175065 1.763904 0.740138 0.221695 0.782138 1.549753 0.177825 0.712260 1.708858 1.188407 0.898256 0.402051 0.574937 1.729836 1.050605 1.295224 0.883772 0.263126 0.915697 1.381590 0.936414 1.777452 0.068479 0.731819 0.756657 1.351630 1.035167 0.949035 0.439060 0.018708 1.596747 1.276506 1.698127 0.046247 -0.079800 0.585580 0.732002 0.978028 0.535066 0.748317 0.498489 0.641890 0.145425 0.256269 0.678012 0.224433 0.246288 1.435524 1.558218 0.128412 0.201609 0.312752 0.383963 0.635049 0.678576 1.109797 1.068008 1.249751 0.124139 0.249186 0.531623 1.667042 1.658913 1.655417 1.204551 0.357690 0.026841 1.425882 0.665532 0.010767 1.275606 0.682813 1.602880 0.104307 0.578568 0.966893 1.378306 0.660961 0.584186 1.286999 0.973008 1.646680 0.943841 0.849259 0.088539 1.604084 0.336457 1.761967 0.387073 1.711224 1.505667 0.485733 1.285267)
)
;;; 128 all --------------------------------------------------------------------------------
@@ -1249,19 +1298,26 @@
;;; 256 all --------------------------------------------------------------------------------
#(256 23.353 #(0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1)
+
+ 20.377604 #(0.000000 1.645544 1.743216 -1.169589 -1.153034 -0.994168 -1.340580 -1.000850 -1.885204 -0.776338 0.025953 -1.116917 -1.376560 -0.242909 -0.887205 -1.772569 -1.828906 -1.393104 -1.978170 -0.680489 -0.879225 -1.088104 -1.388828 0.002369 -1.802562 -0.410304 -0.615445 -0.740107 -0.048715 -1.817429 -1.799043 -1.000372 -0.004242 -0.465465 -0.052988 -1.715294 -1.039761 -1.757088 -1.711828 -0.387707 -0.087848 -0.051099 -0.188283 -0.236672 -0.823355 0.127339 -1.015669 -0.937046 -1.629727 -0.271269 -0.802168 -1.876226 -0.787053 -0.396061 -1.042568 -1.327297 -1.151937 -0.167917 -0.304700 0.076772 -0.137741 -1.059160 -0.265621 -0.033131 -1.615648 -0.078827 -1.423648 -1.022986 -0.136738 -1.857656 -1.590253 -0.951567 -1.728164 -0.535758 -0.854563 -1.132102 -0.445125 -1.767543 -0.298467 -1.100584 -1.299658 -1.602543 -0.980110 -1.887693 -1.468967 -0.742937 -0.419432 -0.794699 -0.096348 -1.691113 -0.326963 -0.933090 -1.055407 -0.682889 -0.216853 -1.484236 -1.047148 -0.515166 -0.557275 -0.487581 -1.075122 -1.988156 -0.303861 -0.434725 -1.759673 -0.023173 -1.693325 -0.081160 -1.266048 -1.583991 -0.887024 -0.811530 -1.522124 -0.094363 -1.445208 -1.727061 -1.985715 -1.352176 -1.283955 -0.574508 -0.511959 -0.909799 -0.311023 -0.028734 -1.429367 -1.690787 -0.804743 -1.809549 -0.128697 -0.093052 -1.703404 -1.510003 -1.487349 -1.832869 -1.939780 -0.792497 0.029215 -0.003209 -0.106210 -1.735547 -1.719988 -0.598679 -1.840690 -1.381863 -0.352896 -0.248763 -0.558665 -1.344961 -0.271269 -0.683132 -0.193572 -1.411550 -0.848449 -0.820254 -1.095689 -1.613471 -0.620656 -0.509917 -1.554980 -1.791108 -0.387126 0.136260 -1.496626 -0.194762 -1.929767 -0.530660 -0.722987 0.023462 -0.277591 -0.850660 -1.315883 -1.244972 -1.615497 -0.853807 -0.524074 -1.514403 -1.228515 -0.980433 -0.396115 -0.327603 -0.733488 -0.153147 -0.892359 -0.570188 -1.257519 -1.679072 -0.241460 -1.166183 -0.026706 -0.945060 0.022864 -1.042476 -0.896394 -1.092452 -1.936722 -0.233082 -1.215687 -1.721455 -1.588712 0.017160 -0.286463 -0.401257 -0.372394 -1.037362 -0.162014 -0.091253 -0.344683 0.092746 -1.704408 -0.777489 -1.147636 -0.936770 -0.552705 -1.709142 -1.728536 -1.139186 -0.409130 0.027304 -0.526563 -0.722101 -0.901154 -0.467668 -1.900709 -1.147236 -1.401088 -1.387750 -0.353578 -1.738782 -0.399729 -1.192278 -0.676225 -0.824862 -0.277703 -0.616850 -0.794173 -1.758921 -1.914518 -1.756321 0.010858 -1.074127 0.023184 -1.474949 -0.177998 -0.757108 -0.404818 -1.781549 -1.519195 -0.233227 -0.700935 -1.651827 -0.760531 -1.457174 -0.794033 -0.160345 -0.263276 0.224304)
)
;;; 512 all --------------------------------------------------------------------------------
#(512 34.209987205783 #(0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1)
+
+ 32.424602 #(0.000000 0.514386 0.959859 1.498888 -0.108652 1.691249 0.638454 -0.049158 0.746813 0.546361 1.433695 1.228595 1.688994 1.573449 -0.034643 1.419171 0.901138 0.983512 0.006169 0.064239 0.600693 0.481597 -0.043083 1.153567 0.923376 1.027003 -0.198599 0.836313 0.599486 0.504755 0.369581 -0.178921 0.364234 0.802300 1.588998 0.722464 0.236078 0.705669 0.168291 1.781373 1.488502 1.289651 0.680210 1.308014 0.401217 0.248599 1.642371 0.047417 0.989575 0.384842 0.632605 0.635285 0.708578 1.698628 -0.037223 1.180645 1.450121 -0.020070 0.105266 -0.129208 0.007289 1.242638 1.479033 0.141592 1.628364 -0.051677 1.078175 0.804841 0.894767 0.336051 0.509806 0.803091 0.197111 1.769786 0.141458 1.218368 -0.116525 0.229152 1.040945 1.194999 1.477905 0.625451 0.874042 1.635061 1.921554 1.153700 0.933390 0.487482 1.053546 0.227188 1.609768 1.741866 1.212052 0.605460 0.853991 1.539388 -0.052148 1.285396 1.003174 0.676768 0.159229 1.961992 0.436995 0.248135 1.621115 1.079562 0.855523 0.545356 0.806469 1.246164 0.140943 0.122331 0.026117 1.932588 0.605477 0.619548 1.903144 1.180215 1.357323 1.731067 0.911913 1.165550 -0.007181 0.695117 0.709659 1.803718 0.156076 0.939132 1.809268 1.436033 0.129479 1.344899 1.239413 1.658313 0.184432 0.076179 1.102720 1.119695 0.461550 1.186668 -0.101567 1.441090 1.179440 0.758970 -0.090065 1.196871 0.215596 -0.558152 0.590507 0.819794 0.525109 1.648025 0.731288 -0.161678 -0.104081 0.317108 1.188787 1.516243 1.045804 1.097883 0.888058 1.056087 -0.062928 1.909607 0.940848 1.311230 0.851847 0.236673 0.549439 -0.116299 1.179308 1.370681 0.266265 0.733187 0.348271 0.918455 0.410427 1.645439 1.533901 0.165824 1.227098 0.449107 -0.129880 0.878135 0.572595 0.902715 0.743965 0.092284 0.697719 1.595627 0.246971 1.265456 1.285239 0.634177 0.561901 0.617545 0.577597 0.561820 0.792696 0.831241 1.475245 1.262699 1.681635 1.858569 0.639913 0.822590 0.755874 1.238542 1.014495 0.032752 1.148650 1.672078 0.007929 0.380241 1.223381 0.894426 0.566843 1.841192 0.883869 0.677712 0.596573 0.300226 1.917765 1.680632 0.975489 0.129273 0.691625 1.039156 -0.130603 0.223541 0.224467 0.589455 1.573761 0.634878 0.008190 1.177248 0.812716 1.699055 1.284002 1.451138 1.266737 0.579830 1.551845 1.308471 0.179058 0.799302 0.920142 0.817808 0.568088 0.591012 0.523479 0.971522 0.386275 0.725294 1.598763 -0.144569 0.448156 0.752922 0.021060 1.487178 1.435090 -0.405091 -0.290367 0.464164 1.612398 0.964619 0.791093 1.858040 0.740713 1.539045 0.452175 0.622154 0.692671 0.872534 0.278872 1.324691 -0.021032 1.313531 0.765498 1.333004 0.471582 0.986195 0.855230 1.271666 0.626387 0.982145 0.395047 1.773857 -0.208493 0.304473 1.478578 0.824750 1.451749 1.373379 0.914830 1.978310 0.076668 0.906230 0.626615 1.082607 0.051428 1.067014 0.402476 0.029688 1.398544 1.095279 0.216310 1.114026 1.514507 0.827743 1.554622 0.484081 -0.199350 0.461611 0.288247 -0.259150 1.222330 0.425258 1.859435 0.230975 0.109332 1.922357 0.684480 1.817503 1.700040 -0.061171 0.142806 1.883180 0.430362 0.691916 0.217477 1.407022 0.832094 1.688012 1.833074 0.819864 0.346081 -0.170016 0.185165 0.960712 1.071152 0.596514 1.845387 0.237149 1.892891 0.218320 0.979780 0.799397 0.747348 0.507088 0.851783 1.412042 1.480498 1.427677 0.680133 0.744543 0.214434 0.666886 1.409247 0.406607 -0.064827 1.329092 0.233114 1.765106 0.894030 0.944308 -0.061178 1.583855 0.124181 1.084833 -0.157261 0.789912 1.559155 0.236842 0.720046 0.536007 0.225987 0.719195 0.863134 1.818859 1.447820 1.762751 0.269284 0.434891 0.062402 0.425014 0.943207 1.969305 0.650830 1.731918 0.189987 0.144036 1.234263 1.852578 1.200909 1.066311 1.283795 -0.047271 0.915318 1.699528 1.484395 1.294563 1.446597 1.676051 0.444866 0.802502 1.734950 0.031856 1.789865 0.664941 0.693128 0.987855 1.874533 1.893496 0.461992 1.251218 1.696338 0.619990 0.193112 -0.116327 0.762011 1.953616 0.402818 -0.089055 0.268280 0.275983 1.138570 -0.027356 0.071426 0.168640 0.006562 0.796598 1.811166 0.933671 0.430670 1.602175 0.142659 0.412481 0.709313 0.307247 -0.499038 0.902462 0.096552 1.571874 1.305497 -0.298824 0.985774 1.504936 0.303141 0.393988 0.401169 0.793241 0.116287 0.644426 -0.043299 -0.113626 0.900186 0.872247 0.771829 0.399486 1.679301 0.955464 1.396706 0.799520 1.367031 1.937797 0.816662 1.057319 0.430824 0.594800 0.979578 1.527498 0.854372 0.553084 0.551051 1.445099 1.412515 0.342890 1.296012 0.682965 0.245016 1.947237 0.854041 0.764203 0.479714 1.298055 0.594877 -0.356834 0.411063 0.028827 0.521665 0.984347 0.444819 1.493077 0.790467 0.860417 -0.143852 1.337305 1.194931 0.390994 1.271303 1.687933 1.929197 0.222704 -0.228746 1.116605 0.028875 -0.055152 1.588257 0.698352 0.813923 1.015553)
)
;;; 1024 all --------------------------------------------------------------------------------
-#(1024 55.981 #(0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0)
- 54.444 #(0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0)
+#(1024 54.444 #(0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0)
+
+ 50.555109 #(0.000000 0.329594 1.835688 0.818800 1.251923 1.670548 0.230246 1.040759 1.511027 1.599934 0.901964 1.250213 1.147244 1.494767 0.149186 1.135727 0.048119 0.794525 0.275684 1.740504 0.108709 1.139053 0.745058 0.410557 1.552271 1.249587 0.352226 1.101290 0.188309 -0.172701 1.968676 0.112298 1.692422 1.233096 1.282962 1.612221 -0.013209 1.376794 1.094790 -0.147389 0.703552 -0.037029 1.469385 0.735358 0.929748 0.403799 0.472721 0.377359 -0.091566 1.162736 0.699207 0.752275 -0.055975 0.063239 0.389342 0.766144 1.887621 1.919956 1.604472 1.727325 1.526050 1.677311 1.699301 0.479486 1.067993 1.887336 1.475629 1.656525 0.018369 1.521410 0.368314 0.203160 1.319415 0.185797 0.379164 1.470603 1.381147 0.893075 0.639764 0.328550 1.444410 0.600953 1.800442 1.727175 1.802285 0.801744 0.053062 1.904516 0.504037 1.481810 0.294743 0.611897 1.781118 1.356317 0.543461 0.125059 0.753628 -0.029984 0.459120 1.719852 1.084731 0.067054 1.626542 1.770022 1.154582 1.555630 1.491250 1.687557 -0.108968 1.822524 0.866753 1.596551 0.304550 1.406929 1.416796 0.692773 1.577445 1.411603 0.153030 1.221287 0.233575 0.344672 0.028820 0.097980 1.473317 1.375179 1.679031 0.717289 0.301012 1.141405 0.635756 1.227789 0.310199 1.904019 -0.276573 0.831332 0.957858 0.960825 0.472038 0.570440 1.190976 0.488301 0.121520 1.190261 1.846469 0.928649 1.825463 0.737374 0.476967 0.407924 0.437538 1.421335 1.524866 0.688228 1.288137 0.244215 1.353512 1.100495 0.311296 1.737636 0.204336 0.394516 1.003215 0.827589 0.314633 0.197661 0.592538 1.198624 1.190322 0.323748 1.707722 0.246817 1.070997 0.842720 -0.259318 0.469276 0.575288 -0.110524 1.444615 0.828479 1.881000 0.455259 0.329414 0.612000 0.819254 1.513267 1.722615 0.318901 0.080546 0.074504 1.453663 1.779086 1.157507 1.645766 0.905543 0.395134 0.814998 1.589289 1.313215 0.479526 0.895200 1.349059 1.829884 -0.087074 0.120326 1.300611 1.293249 0.010505 1.719787 0.308446 0.001660 -0.016296 1.579985 0.365405 0.499220 0.347328 0.929398 1.839193 0.264780 0.916959 0.657312 0.952279 0.106996 0.377950 0.682002 1.083786 0.316245 0.087248 1.386793 1.729531 1.624789 1.074283 0.315942 0.321014 0.891311 1.873166 0.232384 1.432038 0.848424 0.051774 0.588888 1.120201 0.900094 1.452083 0.736124 1.254647 1.785740 0.852565 1.672778 0.213358 1.558244 1.605151 1.934711 1.091227 1.629805 0.360710 0.003382 0.038756 1.447104 1.073976 1.829365 1.454930 1.242931 1.418395 0.674914 0.919692 1.219047 0.181686 1.244240 1.080205 1.076825 0.127624 -0.048216 0.503172 0.039595 1.523254 0.165615 0.234216 1.010788 0.852438 1.674181 1.827785 1.058588 1.150211 1.117328 0.852775 0.819029 1.308506 0.371574 -0.170264 1.633355 0.794596 1.236247 1.394570 0.575586 1.116857 1.528563 1.875273 0.130315 1.173883 1.101462 1.815560 -0.013354 0.399666 0.071125 0.210076 1.683347 1.657527 1.093635 1.675358 1.379517 0.907728 0.784669 1.307349 0.393154 0.616812 1.381202 1.604721 1.399565 0.434951 0.205505 0.661852 1.111269 1.467613 1.431951 0.144969 0.477303 0.251261 0.404324 1.630725 0.199812 0.045705 1.179687 1.113610 0.353956 1.972263 0.598145 0.309488 1.036567 0.448057 1.935377 1.175674 1.479812 0.381189 1.541472 0.126535 1.501069 0.765367 1.251664 1.180809 0.700600 1.101852 1.829039 1.293201 0.155641 1.698371 1.348404 1.362876 0.109677 0.502379 0.145722 0.815017 0.035761 1.645841 0.852864 0.758035 0.629121 0.824782 0.947701 1.157334 1.676599 0.829180 1.584993 0.147175 0.633748 1.856111 0.217976 1.095085 1.265881 1.196153 0.393289 1.641312 1.911924 1.676404 1.460633 0.183215 0.555818 0.063672 0.344334 0.052432 1.455553 0.815823 1.387614 1.236571 1.258970 -0.133803 0.241453 1.071979 0.914612 0.676664 0.853109 1.229176 0.513896 0.921690 0.470898 0.361928 1.821419 1.449553 0.003643 -0.284407 -0.025637 0.302774 1.543508 1.319864 0.318937 -0.219663 1.462266 1.383586 1.641714 0.933059 0.006300 1.210973 -0.048139 0.758220 1.497063 0.244121 1.042996 0.422535 0.267110 0.080202 1.745038 1.762674 1.205492 1.138115 1.096712 1.080844 0.194137 1.107981 1.370829 0.262618 0.002771 0.305749 0.781264 0.363137 0.802333 0.730609 1.010283 0.374751 -0.098696 0.644430 0.188703 1.413554 0.876112 1.006162 0.983563 0.256474 1.404818 1.614824 1.104627 1.247885 1.308323 -0.086314 1.662306 1.257700 1.486143 1.661624 0.665616 0.614643 0.810270 1.771037 1.069379 1.653115 0.816024 0.795295 0.345502 1.517573 1.398908 1.008546 1.647716 0.752682 1.645928 0.542282 0.410777 1.306903 0.060356 0.166210 1.436108 0.512720 0.397744 0.139823 0.322205 1.598534 1.502062 1.621664 1.858674 0.150927 0.286098 -0.074332 1.714288 1.372358 0.305261 1.023526 1.248039 0.543026 1.093783 0.523657 -0.195948 1.488225 1.025062 0.775513 0.030490 1.608010 1.493662 0.508294 0.301753 0.016580 0.944875 0.159756 0.188745 1.121083 0.635060 1.593485 0.309514 1.550986 0.901195 -0.062763 1.999525 -0.027567 1.175599 1.574281 0.445224 0.572408 0.635757 1.928494 0.120225 1.029098 0.670233 0.591599 0.939699 0.789926 0.045689 0.266616 0.870363 1.108830 0.489097 -0.210815 0.513785 0.839886 0.321156 0.427233 0.971235 1.863044 1.373501 0.694642 0.310834 0.727032 0.257450 1.024791 0.530415 1.452098 0.707770 1.440392 0.128298 0.660334 0.370772 1.582357 1.279362 0.295645 1.218473 0.470856 -0.004477 1.764985 1.318345 1.394991 1.387390 1.663166 0.590207 1.158090 1.470823 0.503709 1.150783 0.620625 1.452058 1.828541 1.027514 -0.017040 0.883077 0.265996 0.771741 1.314103 0.735886 0.545437 1.842473 0.956138 1.586830 1.397396 1.297963 0.138957 0.114550 1.375075 0.342649 1.438806 0.461475 0.682674 0.367233 0.418923 0.715009 0.085312 0.901155 1.171100 0.515883 1.482629 0.715355 0.269621 0.164766 0.062774 1.610852 1.566746 0.595199 0.765013 0.503541 1.087529 0.916554 1.160611 1.752680 0.935706 1.156269 -0.092243 1.225661 1.637051 0.851498 1.595830 1.572458 0.900709 0.743917 1.243538 1.029969 0.060091 1.044275 0.453577 -0.057967 1.315067 1.337655 1.524061 0.396827 1.552695 0.618281 0.273914 1.146976 -0.197926 0.507370 -0.065624 0.341479 0.397263 -0.041375 -0.003688 1.128854 0.196525 1.118486 0.288423 0.214709 1.582517 0.361679 1.636352 0.061883 0.988357 0.684793 -0.012546 0.829289 -0.055654 1.514580 1.776315 1.146562 0.213507 0.166107 0.310180 0.522013 -0.119652 0.631632 0.316542 0.873524 1.811323 0.913998 1.429416 1.306914 0.417914 1.049996 0.361835 0.308359 1.466358 1.528730 1.114461 -0.150253 1.422848 1.372822 0.890933 0.189909 1.161220 -0.420762 1.486564 1.527280 0.646407 0.283226 1.439960 0.390497 0.715670 0.705690 1.845687 -0.123839 0.625883 1.538049 1.926307 1.867371 1.298037 1.220941 1.252558 0.854190 0.078931 1.391202 0.116563 0.687802 1.154989 0.788112 0.893809 0.366613 1.314262 0.190903 0.550994 0.840558 0.900040 1.077354 -0.059573 0.460980 1.406639 1.491760 0.841864 1.260348 0.331380 1.067481 1.503091 0.786998 1.783742 0.438326 1.411077 -0.030143 0.760141 1.203532 0.496818 0.947584 0.586330 1.559547 0.829027 0.370195 1.903197 1.601057 1.110542 1.337403 1.101081 1.215422 0.447575 0.971587 1.158207 0.074174 1.187986 0.194105 0.165660 1.161669 0.678508 -0.009533 1.359316 0.759073 1.101700 1.081561 1.739501 0.074230 0.441824 0.715817 0.263638 1.555728 1.300506 0.249344 0.095061 1.706863 0.743296 1.709993 -0.108856 -0.189729 0.652412 0.607261 0.725402 1.494010 0.696254 0.800159 1.309726 0.811978 0.492091 0.886931 0.416274 0.865994 0.436850 0.375530 0.148229 0.905724 0.723018 1.284725 0.486264 0.177069 0.570542 0.861216 1.316324 0.955009 1.301530 0.621347 1.781503 0.194202 0.569628 0.019956 0.741272 0.941117 1.292036 0.119860 1.143916 0.879600 1.416145 0.606915 1.834969 0.336026 1.246031 0.550412 1.427481 1.341416 -0.028130 1.331729 0.635951 1.486034 0.256160 1.339958 0.791620 0.232097 1.342332 1.600396 1.883775 0.401461 0.406443 1.538398 0.506628 1.784609 0.946469 0.927113 1.020542 0.971063 1.184039 0.128231 0.249694 1.172283 0.494571 0.129069 1.390142 1.549704 0.453340 0.117847 1.177085 1.151642 1.419119 0.599464 0.420126 1.208760 0.105732 0.661939 1.332399 0.257454 0.973370 -0.218828 1.413201 0.379644 0.953524 0.615390 1.021100 1.021375 0.703050 1.269755 0.751810 1.037767 0.701985 0.150418 1.197633 1.115951 1.158912 0.152979 0.654074 1.566074 0.968672 0.011698 1.045054 0.614782 0.602676 1.587351 -0.136737 0.215863 0.596058 0.214631 0.428116 0.805204 0.224965 1.492951 0.033743 0.236143 1.049463 0.517436 1.120959 0.082105 0.681296 0.826538 0.138551 -1.970720 1.295522 1.766560 -0.107000 0.613824 1.058355 -0.043304 1.415857 0.248231 0.817651 0.472922 0.218618 0.376804 1.135099 -0.136494 0.257986 0.973823 1.258230 0.768246 0.385763 1.884923 0.595174 0.927311 1.515339 0.841749 0.841934 0.050341 0.002107 0.427520 0.973230 0.748938 -0.062239 0.977967 -0.234320 1.442087 0.687637 0.674428 0.596830 0.602528 0.594640 0.664110 1.123347 0.848694 1.674332 1.261944 0.910845 0.779938 0.957722 1.190690 0.828641 0.308004 1.924683 1.747638 0.410823 1.589277 1.006840 1.208727 -0.010234 1.238598 0.223456 0.906313 0.941883 0.325170 1.752126 1.186835 1.502018 1.486724 1.636734 0.020986 0.438291 0.613563 -0.355079 0.237536 1.311649 1.259707 0.484698 1.818577 1.498097 0.280321 0.925539 1.484958 0.142594 1.336727 1.425315 -0.109761 1.832020 1.609880 0.086751 0.387928 -0.087985 1.689455 0.714967 -0.118654 -0.071464 0.003283 1.491955 1.676206 0.211826 0.774795 1.177987 1.058625 -0.185225 1.440979 1.732083 1.642727 0.815308 0.777380 -0.182554 0.512425 1.026265)
)
;;; 2048 all --------------------------------------------------------------------------------
#(2048 89.538 #(0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0)
+
+ 79.258751 #(0.000000 0.516309 0.439576 1.131785 0.298061 1.450464 1.647400 1.071481 0.526850 1.356965 1.883198 1.155178 1.402507 0.198321 1.011053 1.541413 1.890815 1.779880 0.137415 1.745208 1.417883 1.666729 0.416772 1.282941 1.429663 0.721002 1.791812 0.750888 1.482179 0.304984 1.292686 1.462489 1.899050 1.981998 0.838558 0.286250 0.728457 0.877766 1.059301 1.572084 0.504616 1.603688 1.296766 0.614143 0.838670 0.791493 0.132755 1.880820 0.026522 1.653441 0.716636 1.094877 1.349520 0.459208 1.290146 1.536479 0.948894 1.500354 0.528632 1.065051 1.685393 1.412836 0.884273 1.248986 0.059697 1.755715 0.502327 0.084704 -0.109183 1.169780 1.827638 1.022085 0.760314 1.493852 0.816981 1.844013 0.385437 0.975747 0.156820 0.510378 0.778766 0.060315 1.478452 1.495330 -0.084702 1.424354 1.133895 1.501155 0.988620 1.354092 1.002198 1.295769 0.246528 0.583556 1.109827 0.249747 0.014897 1.569203 0.321792 1.136498 1.076699 1.065044 0.019333 0.366658 0.030899 1.730267 1.415392 0.740746 0.533587 0.528953 0.397306 0.936772 -0.033798 0.447556 -0.181462 0.970913 -0.071904 1.745044 1.074797 1.276851 1.218542 0.645936 1.717882 0.980735 0.781621 1.756481 0.785293 0.171667 1.793496 0.743745 0.243406 0.885719 1.853331 1.818041 0.804806 1.968549 0.838278 0.149293 0.387765 1.851924 0.664242 1.589370 -0.152982 0.694771 -0.096803 1.302222 0.090116 1.834090 1.860346 1.489632 1.331825 0.269704 0.450810 0.837894 0.781143 0.670460 1.446186 1.440109 1.271536 1.254919 1.118297 1.567426 0.072207 1.546209 1.728418 0.841856 1.141192 1.859650 1.597889 0.424094 0.041034 -0.048647 0.609123 1.286466 1.259364 1.059133 0.635029 1.881263 1.247702 1.355011 1.906834 0.580035 1.087998 1.160143 0.477632 0.024750 0.079093 0.226733 1.361441 0.082672 0.045715 0.059447 1.737694 0.428718 0.749227 0.972862 0.162888 1.583476 1.790908 1.930335 -0.072347 1.865065 0.659347 1.242023 0.592363 1.614990 1.569060 0.049042 1.057261 0.719002 1.904755 1.569238 1.258580 0.201486 0.751909 1.480236 0.194542 1.937750 0.792742 1.370224 0.956785 0.888875 1.732865 0.732129 -0.074097 0.464528 1.197407 1.413560 1.308123 1.383997 0.496149 0.766898 0.641273 1.211861 0.101888 0.600394 1.765170 0.547075 -0.078303 0.231430 -0.207481 1.831727 0.741399 0.525957 1.132700 1.243483 1.204573 0.646453 0.671791 1.767649 1.304225 1.499422 0.304184 0.799065 1.761929 1.829416 -0.172753 -0.095029 0.016330 1.576273 1.427562 0.180578 0.256923 0.753038 0.735196 1.729448 0.188998 0.911719 1.749771 0.768760 0.490741 0.283750 1.640842 1.302517 1.334707 0.569669 1.844684 0.311413 0.747149 1.296607 0.047359 0.612289 0.863746 1.115825 1.511773 1.547992 0.487970 1.179581 0.040960 0.302965 -0.019078 0.970199 0.578974 1.827919 -0.064133 1.808146 0.052515 0.750732 1.904682 0.710475 0.211830 0.559888 1.156297 0.413656 1.622690 1.060243 1.294732 0.072390 -1.982665 0.466292 1.678591 0.342440 0.028763 0.552291 1.844904 1.685023 0.895899 1.609678 -0.040743 -0.041266 0.826039 0.447378 1.302258 0.786169 1.788949 1.330651 -0.069061 0.280369 0.775270 -0.111358 0.272230 -0.063142 0.109347 1.276970 0.394606 1.443608 0.989620 1.231756 0.830768 0.990717 0.600473 0.302122 1.233928 0.959251 1.682203 1.035438 1.165305 0.443893 0.776941 1.419832 1.029467 1.749945 1.902301 1.446196 1.043261 1.514596 0.548384 1.481158 0.701552 1.129870 -0.099410 1.071434 1.947152 1.723630 0.832705 0.447539 0.804228 0.102686 0.855304 -1.990743 0.181107 0.039464 1.070858 -0.070103 0.287804 0.313340 0.827627 0.353590 0.217647 1.491550 1.761051 1.587561 1.358603 1.075515 1.317251 1.136602 0.935944 0.242819 1.938291 1.702718 0.334152 1.485092 0.039369 0.219593 1.003865 1.856524 -0.156788 0.562013 1.143461 1.771528 0.067606 1.744126 0.094466 0.109675 1.821966 1.592465 1.028818 0.077383 -0.103914 1.659448 0.755989 0.133607 0.968244 0.740150 0.550011 1.261024 0.707077 1.866605 1.831346 -0.059819 0.123179 0.379169 1.297029 0.700952 1.487674 1.317224 0.043919 0.377736 0.513360 1.351263 0.781937 0.741313 1.042726 0.418067 -0.028027 0.387675 1.582429 1.702315 1.417887 0.343025 0.910023 0.776310 -0.044638 1.451564 0.053773 1.898790 1.934557 0.590917 0.183152 0.166211 0.831601 1.233021 1.167063 0.458699 0.593863 1.955081 0.622696 0.806256 -0.097669 1.024620 0.773776 0.592160 0.586789 1.224415 0.540533 0.960402 0.662337 1.262778 1.945018 0.158705 1.851043 1.350985 0.397829 0.782756 1.430515 1.018370 1.806125 1.805643 1.070946 1.545518 0.137031 0.235638 0.890655 -0.118451 0.110242 1.579630 1.649257 0.631829 1.846473 1.178365 1.495621 0.427692 0.703526 1.017884 1.267545 0.568753 0.350973 1.812496 0.569306 0.493334 1.849443 0.426032 1.122983 1.370122 1.064753 0.856477 1.550064 0.541317 0.390078 1.904740 0.378335 1.470302 0.968718 1.082753 1.068102 1.531311 0.591045 1.326927 1.576941 0.657382 0.918626 0.341920 0.038673 0.907932 0.772015 0.935755 0.711317 0.943048 1.431286 1.871083 1.804073 1.655464 0.812931 0.540715 -0.080574 1.214539 0.997952 0.655067 0.931506 0.749717 0.458180 1.339849 0.071210 0.145870 1.357117 0.659435 1.643954 0.413348 1.154607 1.111947 0.482015 1.407867 1.330723 1.578397 1.537148 1.213946 1.765818 0.123547 1.329557 1.712427 1.709382 1.941736 0.241537 0.384105 1.294612 1.606936 0.517462 1.462880 1.212905 -0.117303 1.812430 1.176943 0.094072 1.099403 0.369218 1.485926 -0.172221 1.047437 0.348733 0.284966 0.386945 0.091839 -0.077727 0.820867 1.928169 0.658027 0.694423 1.171543 0.796877 1.889165 0.351741 1.752694 1.113378 1.198476 0.438893 0.777070 1.906720 0.405744 1.557256 0.474024 0.992704 1.016588 1.875278 0.542902 1.133157 1.558947 0.087589 0.954812 0.391596 1.598614 0.489924 0.245546 1.826369 1.329100 0.322064 0.132371 0.757983 1.451074 0.554894 1.757492 0.066807 0.736744 0.204682 1.239152 1.042295 0.519241 1.058144 1.858712 -0.024687 0.192600 0.738717 0.969069 0.181143 0.046574 0.233304 0.213946 0.142548 0.817825 1.637785 0.288689 0.153386 0.682330 0.803154 1.078202 0.898935 1.105120 0.889281 0.067198 0.435342 1.899322 1.520556 0.770804 1.656883 0.644233 0.741673 0.550003 1.262270 0.374335 1.688889 1.750742 0.322796 1.398530 1.625181 0.882333 0.541571 0.292427 0.277854 1.174969 1.735448 1.584213 0.683315 1.487808 1.377238 1.903280 -0.045031 0.478723 0.829262 0.065556 1.135418 0.781984 0.039019 1.814535 1.552719 1.256097 0.082070 1.561989 0.189920 0.763548 1.296619 1.428915 0.274539 0.616063 1.372142 1.691532 0.806799 0.414198 1.626062 0.451298 1.098927 0.408752 0.651026 1.697775 1.661194 1.010569 1.654468 0.736818 -0.014106 0.735126 0.007252 1.357992 0.149984 0.799741 0.007005 1.077943 0.792800 1.657296 1.306998 1.907068 0.758790 1.937722 0.967975 1.182722 1.643881 0.443816 0.627083 1.029885 -0.212829 1.575930 0.559825 1.412962 1.010252 0.405690 -0.053700 0.027760 1.526479 1.199891 0.566603 1.870139 1.559855 0.489549 1.277183 1.252350 0.741556 0.009513 0.223867 -0.010841 1.327612 1.621961 1.081123 1.893683 1.887535 1.065274 1.083154 0.655287 0.163700 1.222641 0.571014 1.282837 1.222794 0.897663 1.543932 1.616363 0.446730 0.432029 1.297037 0.631287 0.633154 1.137363 1.345999 1.408753 1.541871 1.199309 0.042931 1.443711 1.329402 0.340825 0.850077 1.751903 0.875823 1.671939 1.431331 0.399742 0.094095 1.768944 0.482462 0.800628 1.540203 1.261794 0.925427 1.109252 1.547327 0.436888 0.550708 1.173999 1.539434 0.811275 1.298719 0.431607 1.005624 1.474853 0.085032 1.392590 1.496216 1.090525 -0.006233 0.037319 0.347954 0.154681 1.118062 1.564304 1.832320 1.618583 0.125082 1.454088 0.439185 0.347898 0.071164 1.839076 1.887661 1.020181 0.142331 -0.085950 0.275105 0.511125 0.685124 1.357924 0.875679 1.192645 1.108716 0.612478 1.660615 0.800688 1.529812 0.613972 0.806504 1.369761 0.024851 1.011391 0.325188 1.395314 1.465366 1.664996 0.664966 1.171470 0.437952 0.818759 1.680536 0.130507 1.419214 0.557130 0.156359 0.440187 1.082443 1.126225 1.101340 0.405257 -0.003101 0.762353 0.874842 0.259041 1.767705 0.801907 0.861221 1.353002 0.471465 0.850227 0.069284 1.928235 0.160824 1.450644 1.063604 0.115285 1.765154 1.470850 0.536615 1.817314 1.047520 1.418720 1.268221 1.395731 0.041717 1.281631 1.776049 1.901232 0.710077 0.954163 1.432665 0.051107 0.865989 0.350711 0.622136 0.641506 0.286808 1.438467 0.772684 0.221447 1.401214 1.429944 1.164856 1.354116 1.291562 0.128918 1.870582 1.742982 0.767648 -0.036750 1.026700 1.671293 0.043941 1.763646 1.799681 1.694425 1.078934 -0.017216 1.589766 0.268823 0.862251 1.094319 1.304438 1.327717 0.086183 1.341703 1.853861 1.549213 0.351928 0.639876 0.339503 1.013265 0.675731 1.828640 1.272443 0.703378 1.273549 1.713752 -0.065170 0.499252 0.792052 0.807048 1.351990 0.450760 1.615125 1.025537 0.753797 0.708112 0.857120 0.861818 1.355820 0.989172 0.196898 1.201527 1.165447 0.285969 1.491005 1.160969 1.275908 0.545101 0.317594 1.551458 -0.008979 0.180636 0.519918 1.112979 1.208124 0.878329 1.023728 0.986225 0.299685 1.264979 0.706012 0.182954 1.478740 0.965650 0.067362 0.762353 0.859698 0.262318 0.971904 0.447337 0.343064 1.214022 0.972776 0.191619 1.485672 0.793969 1.903334 0.372176 1.882745 0.790921 1.617207 0.428032 0.783701 0.989932 1.672880 0.044317 1.033347 0.613568 1.562244 1.404116 1.162231 0.670380 -0.011185 0.324757 0.720662 1.108567 0.780932 1.917966 1.667422 1.917740 0.166905 -0.148754 1.425649 1.373055 1.923432 0.076996 1.836311 1.857883 0.658019 0.389235 -0.002043 1.275188 1.230530 0.271799 0.290891 1.879628 1.313846 0.543152 0.888452 0.695768 0.839473 1.446816 -0.206607 0.220159 0.649980 0.114725 0.612094 0.443380 0.621621 0.346330 1.681721 0.128012 0.134176 1.108087 0.784710 0.330032 1.109337 0.883276 1.373618 1.324662 1.812602 0.462484 0.018487 1.499087 1.507487 0.061742 0.002937 0.582368 1.351349 1.412175 1.406511 0.810342 1.144927 0.246711 0.986906 0.922887 1.734154 1.750756 1.205318 0.613575 0.166182 0.238519 0.465609 -0.063680 0.680907 1.334479 0.532102 0.866902 1.637264 1.254778 -0.042233 0.875018 0.763218 0.112188 0.588952 0.568747 1.401932 0.454929 0.135470 0.370752 0.241766 1.232656 1.135051 1.566706 1.181503 0.885455 0.901066 0.434415 1.439184 0.183478 1.546987 0.026456 0.379178 1.383533 0.789566 1.863614 1.402655 1.620721 0.195593 0.935473 0.727536 1.677180 0.965217 0.138031 0.708723 1.584240 0.601596 0.212291 1.440982 0.355522 1.545516 0.879978 0.120754 0.506993 -0.027976 1.648338 0.662884 -0.057828 1.672107 0.205878 1.597161 1.631982 1.111711 1.044409 0.085527 0.811263 0.211460 0.983012 1.257884 1.063000 0.447520 1.900896 0.662996 0.838564 1.300037 1.306159 0.290916 -0.013277 0.354608 0.919568 0.640851 1.723779 1.203143 0.775931 1.784048 1.247672 1.107495 0.855197 1.186396 1.839902 -0.210513 1.488276 1.597154 1.460862 0.004851 0.513185 0.441436 0.436173 1.524178 1.112643 1.793603 1.833484 0.237973 1.828770 1.080196 1.463603 0.655674 0.768824 1.715953 1.066890 0.777681 0.576349 0.625897 0.492241 0.779574 0.563433 1.388459 1.524942 0.228706 1.230699 1.149749 0.728606 0.613272 0.221006 1.288937 0.728488 0.501416 0.580759 0.913448 1.759946 0.786424 0.073339 0.150841 0.964265 0.377870 1.477343 0.824650 1.394646 0.272340 1.526047 1.293740 0.199292 0.967750 1.886735 0.360585 0.188587 0.337563 0.737640 1.293094 1.886017 0.629861 0.540523 1.356320 1.819377 0.062238 0.819319 0.547052 0.413775 1.179748 1.896986 0.766249 0.238070 0.238145 0.952012 1.909316 1.691218 0.942149 1.028978 1.571434 1.791845 1.517704 0.845106 0.881350 0.175553 0.832038 1.533432 0.077609 -0.085901 1.906189 0.816032 0.430345 1.409415 0.647294 1.789553 1.660547 1.864316 1.097416 0.634959 1.626223 1.109375 0.340120 1.016596 1.754920 1.457679 1.411500 0.785442 1.090683 1.580312 1.041631 1.201535 1.065128 0.770248 0.394212 1.512423 1.887650 0.767561 1.502358 0.365517 1.456362 1.272060 1.453495 -0.118154 1.707831 0.615318 -0.343591 1.006966 1.800091 1.183167 0.500705 0.751184 0.433490 0.733481 -0.108795 1.044167 0.668198 1.643298 1.776416 1.605946 0.853401 0.514056 0.260348 1.228293 1.784632 1.645328 1.205614 1.269064 1.169755 1.370215 1.812520 0.358577 0.044305 1.920397 0.150954 1.168951 1.724030 0.163912 0.498788 1.168145 0.332914 0.334129 1.601525 0.446708 0.597631 0.644669 1.525106 0.359414 0.738677 0.053167 0.747243 0.253221 0.335478 1.271612 0.797037 1.310506 1.674595 0.983541 0.198272 0.760080 -0.003396 0.730129 0.954943 0.901561 0.581665 0.033511 0.763891 1.671982 1.356641 1.820017 0.204333 1.016655 0.033904 1.641496 0.758811 0.774372 1.370298 0.344245 1.276039 0.950223 0.475855 1.472904 1.083136 1.805290 0.440105 1.032490 0.927508 0.526951 0.622953 0.960829 1.401076 0.404715 1.142811 0.987854 0.365765 1.885788 1.089381 1.894376 1.664218 1.481271 1.091280 0.851730 1.215290 1.161265 0.521524 1.654133 1.826569 0.409136 1.067001 0.525863 0.110990 0.050854 0.287929 0.245824 1.001923 0.106071 1.372248 0.535914 0.956095 -0.040075 -0.016714 0.729090 0.689713 -0.015974 0.817872 1.048752 0.356180 0.903739 0.253642 0.566932 1.505831 1.535490 1.585815 1.347981 0.582110 0.338416 0.184152 1.366868 0.794013 1.978949 1.434308 0.899365 1.953685 1.542102 0.827217 0.877031 0.874742 1.193609 1.853492 1.884228 0.665974 1.868404 1.712348 1.664384 1.180439 1.846541 -0.162046 1.401272 1.088451 1.384682 1.475931 0.365933 0.386222 0.564285 1.177141 1.765069 1.276397 1.107741 0.781786 0.434587 -0.042682 0.317848 1.256286 1.293495 1.580228 0.799181 1.273323 1.731888 0.772562 1.254483 1.808444 0.796963 1.437797 0.877150 1.736304 1.945859 1.730347 0.036756 1.202703 0.385985 1.373673 1.954088 0.821567 -0.029524 1.018386 0.898851 0.615750 1.619482 0.313229 1.444793 0.550041 1.407813 0.805218 0.921178 0.212333 0.029939 0.452865 0.124311 0.749340 0.419458 0.174475 0.276165 -1.953310 1.445970 0.754332 1.003487 0.830686 1.011900 0.462691 1.013659 0.069533 0.261707 1.073739 1.104034 1.612010 1.125964 0.581843 0.341814 0.737170 0.951133 0.226391 1.440480 1.848236 0.683384 -0.028125 1.582761 -0.119992 0.070190 -0.005539 0.278095 1.525493 1.109175 1.658271 1.832696 0.153870 1.091412 0.396806 1.052767 1.444089 0.679194 1.805538 -0.074157 0.918075 1.026362 1.392743 1.714563 1.706803 0.978262 1.465988 1.261728 1.151980 1.142174 1.119797 0.255036 0.009511 0.816882 1.579371 1.169069 0.868517 0.301179 1.029627 1.141393 0.488542 0.736437 1.783719 -0.004095 0.417469 1.044146 0.048999 0.250967 -0.075809 1.597347 0.446751 1.913123 0.135532 1.449369 0.484276 1.630667 1.709925 1.471011 1.781590 0.041247 0.542972 1.546080 0.879976 1.425271 0.622303 1.938423 1.141138 1.581827 1.593177 0.325094 0.472166 0.241870 -0.079036 0.711418 1.337234 0.446666 1.327122 1.464036 1.609205 0.819548 0.727123 1.235905 1.796475 0.880076 1.018975 0.480123 1.034313 0.551514 0.661596 1.514925 1.392187 0.145327 1.118928 1.628283 1.067288 1.682980 0.270674 0.493585 1.607037 1.317052 1.900282 1.165826 0.989906 -0.149320 0.508402 0.696137 1.414531 1.107950 0.696892 0.408450 0.520544 1.295201 0.183939 0.054875 0.966891 0.220501 0.791453 1.979686 1.492747 1.356022 1.316773 0.264114 1.448069 0.964569 1.583307 1.533018 0.257901 0.420090 -0.071793 0.861751 0.590637 0.133655 0.691036 1.733628 0.458535 0.503378 -0.077654 1.059098 1.222861 1.395932 0.767097 1.756007 0.820295 1.699931 0.463501 0.117893 0.085684 -0.007737 0.528223 1.635646 1.420935 1.612454 0.092898 1.642668 1.186215 -0.012207 0.218835 1.592341 0.300657 0.936704 1.483518 1.985596 0.954652 0.278247 1.683185 1.087074 0.804024 1.453214 0.675116 1.673581 1.743850 1.101862 0.311583 1.150433 1.671851 0.279955 0.581313 0.566325 1.430718 0.253594 1.741662 0.248004 -0.029524 1.455218 1.834381 0.946725 0.141157 1.036080 0.169572 -0.246023 0.254469 1.380242 0.728530 1.693583 1.857068 1.711276 0.834869 1.576495 0.000933 -0.088209 0.328117 0.258073 0.195541 1.420219 0.446996 0.533560 1.213911 1.859057 -0.043928 0.977084 1.330744 1.292047 0.749312 1.725125 0.356374 0.830003 1.484155 1.300185 0.639333 1.862477 0.139808 0.864177 0.569229 1.448584 1.813770 1.797318 0.126568 1.196718 0.570007 0.958738 0.253124 1.909534 0.160929 0.474146 0.361615 0.190754 0.519635 0.564105 1.518267 0.092706 1.626476 0.236638 1.222027 1.354050 0.266709 0.894600 0.235317 1.375009 1.496506 1.068789 1.754746 1.601774 0.957112 0.629847 0.623795 0.039493 1.933248 1.389133 0.179313 1.096470 0.067035 1.245648 1.342554 0.108747 0.821113 0.601396 1.240915 0.082374 1.676676 0.362757 0.207371 1.639562 1.800114 0.086028 1.183483 0.065733 1.085709 1.639745 0.434997 0.971394 1.654201 0.651208 1.188307 1.347505 0.374675 1.951609 1.282794 1.201360 1.040124 1.403549 0.032232 1.794609 0.621022 1.510203 0.828686 1.379670 0.830385 0.339148 1.852087 1.257539 1.709102 0.488245 0.714776 1.587770 1.203031 0.088776 0.203872 0.857413 0.534268 0.316862 0.987936 0.275155 0.908512 0.753153 1.183862 1.151887 1.511930 1.220581 1.037468 1.771495 0.875148 0.198227 0.162056 0.667145 1.764385 1.779559 0.572532 0.348778 1.714572 0.437458 1.279439 0.636857 -0.092184 1.241730 1.595510 1.261402 1.113612 1.758654 1.231514 0.568519 0.926945 1.300800 0.976804 1.595552 1.195759 0.403057 1.641457 1.531429 -0.004711 1.210636 1.617776 0.990702 1.785512 0.741659 0.089791 0.435057 1.311253 1.755996 1.601187 1.213888 0.347515 1.581423 0.137476 0.044446 1.024481 1.059742 0.111489 0.982336 0.706379 0.456266 0.734806 1.274270 1.577790 1.279049 0.599245 1.479340 1.147988 1.715586 -0.011077 -0.090702 0.532553 0.797665 0.912825 1.525832 0.570452 0.067002 1.631986 1.976804 1.123810 1.347775 1.218875 0.981365 0.832682 0.084846 -0.027654 1.392679 0.345404 0.906317 1.249837 0.479386 1.683172 0.702943 -0.154398 1.204176 0.902161 0.649178 -0.182768 1.233024 0.365048 1.205166 0.157442 1.578705 0.041077 0.939866 0.030591 1.034723 0.849810 0.227606 0.414542 0.530588 0.752583 0.453950 1.816120 1.133747 0.104048 0.937007 1.171945 0.823178 -0.119439 0.702212 1.291955 0.981090 1.332991 1.676203 0.110062 1.905486 -0.129102 0.384753 0.194881 0.158424 1.564232 0.512474 0.566461 1.681498 1.667768 0.295615 0.664757 1.493191 -0.000617 0.095199 1.772918 -0.092664 1.502405 1.650707 0.830552 0.224107 0.572636 1.494958 1.687429 0.336904 1.901186 0.163400 1.233078 0.781570 -0.082391 1.721504 1.542215 1.490750 0.491851 -0.088861 1.656639 1.720721 -0.114809 0.697238 -0.000584 0.329236 0.526126 0.523297 0.921011 1.742888 1.594651 1.539018 0.058306 0.072321 1.335169 0.886192 0.737377 1.815154 0.669134 0.356011 1.547788 0.229975 1.366485 1.495598 1.013554 0.692118 0.639991 1.152895 0.332395 1.094703 0.926387 1.315876 0.450175 1.556365 1.559236 0.407471 0.102498 0.147657 0.575734 0.764216 1.809766 0.691139 0.931675 0.110327 0.172605 1.085152 0.934546 0.721788 1.239567 0.011608 1.647872 1.225487 0.643580 0.143626 1.231083 1.462963 0.569080 0.754201 1.329599 0.417834 1.468453 0.870884 1.478402 1.606451 1.830462 0.339051 1.051773 1.091947 0.248501 0.029626)
)
;;; 4096 155.67; (expt 4096 .6) is 147
@@ -1403,6 +1459,7 @@
3.531897 #(0.000000 0.670162 -0.095257 0.537542 -0.014805 0.385445 0.484518 1.431811 0.066607 0.001633 1.257240 0.820923 0.574587)
3.476053 #(0.000000 0.380793 0.961293 0.353157 0.446308 0.965358 0.539394 0.172183 -0.067910 0.976833 -0.486927 1.072643 -0.036066)
3.475837 #(0.000000 1.619564 1.039514 1.647371 1.554490 1.036034 1.462185 -0.170348 0.070618 1.025887 0.489635 0.930545 0.039564)
+ 3.475735 #(0.000000 1.619382 1.038809 1.647668 1.554327 1.036302 1.462199 -0.170331 0.070303 1.026188 0.490144 0.930234 0.039322)
)
;;; 14 odd -------------------------------------------------------------------------------- ; sqrt=3.741657
@@ -1435,7 +1492,7 @@
4.6691436767578 #(0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1)
3.863264 #(0.000000 0.212739 0.823601 0.183475 0.522013 1.322798 0.144924 -0.004654 0.283110 0.829370 -0.006329 1.351573 0.889059 1.066540 0.816406 -0.008936)
- 3.860667 #(0.000000 0.140529 0.687619 0.030975 0.285616 1.041702 1.803393 1.622061 1.858734 0.341302 1.444955 0.704170 0.233405 0.359317 0.035659 1.177323)
+ 3.860090 #(0.000000 0.140361 0.687826 0.031302 0.285540 1.041416 1.802932 1.622140 1.858744 0.341220 1.444371 0.703291 0.233240 0.359715 0.034873 1.176817)
)
;;; 17 odd -------------------------------------------------------------------------------- ; sqrt=4.12310
@@ -1444,7 +1501,7 @@
4.8765740394592 #(0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0)
3.97646324 #(0.000000 0.753931 1.605116 -0.013833 0.719484 1.221266 1.149453 -0.016400 0.682620 0.271202 0.759215 0.509449 0.934281 0.751176 0.303242 1.755965 1.144501)
- 3.955784 #(0.000000 0.631694 0.861998 1.147010 1.641466 1.883279 0.557464 1.741517 0.422749 1.210933 0.490884 -0.007261 1.087229 0.816728 0.553813 0.737001 0.222303)
+ 3.955089 #(0.000000 0.631476 0.862836 1.146812 1.642068 1.883793 0.557919 1.741293 0.422903 1.211834 0.490614 -0.006408 1.087325 0.816118 0.553477 0.736752 0.221837)
)
;;; 18 odd -------------------------------------------------------------------------------- ; sqrt=4.2426406
@@ -1459,7 +1516,7 @@
4.18242582 #(0.000000 1.136222 0.770438 0.400169 1.826042 1.428576 1.017726 1.528217 0.877622 1.606644 0.825490 0.569790 0.688245 0.883189 1.302521 1.639646 0.475959 1.347778)
4.130024 #(0.000000 1.754352 1.775885 0.648861 0.498465 0.100092 0.902120 1.526431 0.475472 1.473007 0.551653 0.202011 1.209083 1.439412 1.702576 1.066652 0.934229 1.195458)
- 4.079330 #(0.000000 0.968906 1.085816 0.506580 0.812693 0.152909 0.641255 0.417478 0.045506 1.016423 0.672486 1.802200 0.409085 1.244719 1.301808 1.584720 0.279781 1.857190)
+ 4.078671 #(0.000000 0.969744 1.085924 0.506836 0.813444 0.152985 0.641410 0.417771 0.045280 1.016368 0.672305 1.801890 0.408199 1.243926 1.302682 1.584496 0.279107 1.857248)
)
;;; 19 odd -------------------------------------------------------------------------------- ; sqrt=4.358898
@@ -1473,7 +1530,7 @@
4.341600 #(0.000000 1.579328 0.343104 1.375842 0.353081 0.423388 1.240118 1.912826 1.194961 1.293193 0.615240 0.016197 0.673856 0.516664 0.391481 1.727303 0.190251 0.501442 0.668027)
4.195254 #(0.000000 0.791760 0.603530 1.420197 0.161131 1.375504 1.353582 1.630311 0.304896 0.430904 0.181997 0.875060 1.590045 0.702894 0.531692 0.132476 0.893747 0.532901 0.172031)
- 4.194026 #(0.000000 0.334523 1.420907 1.230547 0.439529 0.508875 1.301973 1.823759 1.326182 0.185388 0.527096 1.223793 0.591328 -0.267984 1.458292 1.595087 1.335199 1.705014 1.226859)
+ 4.192585 #(0.000000 0.334667 1.420715 1.229662 0.439270 0.509244 1.301905 1.823228 1.326149 0.184676 0.526501 1.223923 0.591639 -0.267702 1.457325 1.595982 1.335076 1.705792 1.227062)
)
;;; 20 odd -------------------------------------------------------------------------------- ; sqrt=4.472135
@@ -1483,6 +1540,7 @@
4.463104 #(0.000000 0.761800 1.236823 0.024313 0.590123 1.505373 1.550313 -0.073442 0.241861 0.856525 0.795787 0.538896 1.584914 1.104127 1.007262 0.563390 0.997438 0.457495 1.344824 0.646695)
4.375228 #(0.000000 0.120264 0.058549 0.278364 0.018634 0.826725 1.250736 1.815417 1.622638 0.590108 1.367652 -0.199000 1.281005 0.029737 1.792402 1.224285 -0.227452 0.740815 0.207694 1.917626)
+ 4.370636 #(0.000000 0.115728 0.061243 0.266695 0.023060 0.827128 1.260623 1.816144 1.627382 0.603746 1.364656 -0.191740 1.275171 0.025695 1.779265 1.224123 -0.229797 0.740104 0.201962 1.904574)
)
;;; 21 odd -------------------------------------------------------------------------------- ; sqrt=4.5825756
@@ -1492,7 +1550,8 @@
5.2105652502144 #(0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0)
5.1372244578347 #(0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 1)
- 4.461987 #(0.000000 1.242973 0.095612 0.910673 0.287081 1.765558 -0.087287 1.315792 1.095320 0.768238 1.094876 1.201252 1.516360 0.759575 1.528403 1.734436 0.589687 1.981439 1.153748 1.233984 1.941299)
+ 4.461169 #(0.000000 1.242994 0.095443 0.910807 0.287429 1.765367 -0.086732 1.316511 1.094842 0.768427 1.093908 1.200257 1.516331 0.758890 1.527686 1.733988 0.589920 1.981336 1.152781 1.233721 1.940908)
+ 4.456993 #(0.000000 1.252841 0.086637 0.914881 0.293400 1.758589 -0.082804 1.309367 1.082916 0.773964 1.102601 1.194344 1.512023 0.748678 1.538574 1.737305 0.591052 1.973588 1.152844 1.241997 1.948948)
)
;;; 22 odd -------------------------------------------------------------------------------- ; sqrt=4.6904157
@@ -1500,7 +1559,8 @@
5.473 #(0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1)
5.1805551751198 #(0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0)
- 4.611034 #(0.000000 0.223739 0.420983 1.927188 0.376078 0.620108 1.548158 1.791713 1.569355 1.343810 0.046344 1.736484 0.874292 0.371693 1.865026 -0.051817 0.078303 0.791263 1.485835 0.601233 1.766896 0.489431)
+ 4.607266 #(0.000000 0.222782 0.421798 1.926910 0.376255 0.619348 1.547456 1.792530 1.569236 1.345588 0.046219 1.736426 0.873767 0.373190 1.864434 -0.051434 0.078473 0.789957 1.485951 0.602220 1.765598 0.489670)
+ 4.590141 #(0.000000 0.209737 0.431451 1.939545 0.382924 0.609925 1.541919 1.807076 1.559885 1.355220 0.026059 1.738962 0.877273 0.384229 1.866444 -0.042108 0.085258 0.779049 1.487176 0.601177 1.738461 0.508904)
)
;;; 23 odd -------------------------------------------------------------------------------- ; sqrt=4.7958315
@@ -1508,7 +1568,8 @@
5.4125407453101 #(0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1)
4.741374 #(0.000000 1.417840 0.390887 0.393143 0.931382 1.527723 1.231278 -0.079525 0.379399 0.985968 1.831893 0.216680 1.240120 0.937466 0.688538 0.037994 1.326128 1.731497 1.304440 1.516775 1.413045 1.592375 0.968750)
- 4.724235 #(0.000000 0.386274 0.167337 -0.244566 -0.160013 0.735586 0.966385 1.298553 1.507455 0.452847 0.190481 0.235305 1.196759 0.725337 0.461837 0.422890 0.850719 0.155538 1.046990 0.904670 -1.879771 1.024406 -0.198458)
+ 4.723452 #(0.000000 0.386129 0.165946 -0.245217 -0.161090 0.736806 0.965691 1.298897 1.507789 0.452195 0.189203 0.235652 1.197560 0.725754 0.461806 0.424127 0.849770 0.154607 1.047971 0.905540 -1.880841 1.023827 -0.197119)
+ 4.695836 #(0.000000 0.388781 0.156203 -0.263065 -0.154168 0.762436 0.957067 1.307545 1.502806 0.440648 0.202332 0.232016 1.186799 0.724970 0.480902 0.450048 0.840704 0.144517 1.061488 0.902749 -1.898167 1.008055 -0.169002)
)
;;; 24 odd -------------------------------------------------------------------------------- ; sqrt=4.89897948
@@ -1518,6 +1579,7 @@
5.6193280144865 #(0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1)
4.806995 #(0.000000 0.496421 1.179048 1.436158 0.456954 1.449354 -0.055485 0.790933 0.033919 0.903143 0.035676 1.027399 0.988506 1.773724 -0.059353 0.163832 0.594174 0.300685 0.005827 0.116352 0.062331 -0.101488 1.183924 0.684546)
+ 4.800695 #(0.000000 0.505360 1.188263 1.431389 0.466768 1.458826 -0.056932 0.789474 0.026211 0.904291 0.036809 1.031019 0.997873 1.774274 -0.055048 0.171621 0.607068 0.289539 0.006354 0.116796 0.063593 -0.102334 1.183706 0.691091)
)
;;; 25 odd -------------------------------------------------------------------------------- ; sqrt=5
@@ -1528,6 +1590,7 @@
4.952389 #(0.000000 0.649552 0.146968 0.137592 1.920162 1.770908 1.877396 0.502509 -0.092100 0.572738 1.615288 0.866122 0.452803 0.426754 0.428242 1.480905 0.907148 -0.281654 1.752124 0.802190 0.517608 1.888063 0.273561 0.653670 1.328454)
4.940301 #(0.000000 0.068941 0.280987 0.744123 1.665761 1.640509 1.200511 1.123563 1.696266 0.637874 0.883209 0.025382 1.721216 0.451503 0.071096 0.292264 0.770874 0.241249 0.692111 0.321227 -0.116766 1.144162 -0.149523 0.630713 0.076503)
4.926836 #(0.000000 -0.099540 0.657446 0.808309 -0.281592 0.132990 1.153927 1.197681 0.006132 -0.239091 1.182721 0.314406 0.741058 1.168893 0.581218 1.492737 0.443100 0.072750 0.121485 -0.029194 1.043143 0.229002 0.560739 0.349499 0.274824)
+ 4.914701 #(0.000000 -0.096740 0.662167 0.811523 -0.279533 0.135523 1.152430 1.203220 0.008297 -0.242062 1.190417 0.308097 0.733696 1.161616 0.583348 1.479950 0.434586 0.086541 0.140377 -0.040374 1.054970 0.215969 0.561254 0.360667 0.283815)
)
;;; 26 odd -------------------------------------------------------------------------------- ; sqrt=5.0990
@@ -1540,7 +1603,8 @@
5.057251 #(0.000000 1.849117 1.623228 0.410350 1.086047 1.754775 1.282418 0.304298 0.522261 1.225401 1.575910 1.232337 1.744190 1.291250 1.802121 -0.126717 1.839627 1.168366 0.199625 1.201215 1.359646 0.045055 1.105661 0.810206 0.231847 0.508269)
5.055923 #(0.000000 1.850899 1.623230 0.411901 1.085371 1.752389 1.281766 0.304190 0.520004 1.225336 1.575826 1.230455 1.745219 1.292940 1.802108 -0.127313 1.840563 1.168270 0.199407 1.202404 1.359182 0.043186 1.106369 0.811094 0.231058 0.510109)
5.053527 #(0.000000 0.944025 1.245710 0.093194 0.306137 1.114440 1.444316 1.823154 0.610370 0.729077 -0.014396 1.183732 1.663139 0.726593 1.907293 0.624400 0.516512 1.574612 1.429517 1.489610 1.512613 -0.418034 1.459880 1.393958 0.677536 1.872369)
- 5.049344 #(0.000000 1.643819 1.358405 1.393739 0.649003 0.727651 1.252023 1.593865 1.024837 0.617878 -0.145045 1.040410 0.282978 0.133297 0.706753 1.145762 1.525151 -0.216777 1.385285 1.682935 0.825758 1.760131 0.671459 -0.191240 0.045330 0.099987)
+ 5.048508 #(0.000000 1.644193 1.358251 1.393615 0.649269 0.727876 1.252981 1.594204 1.025046 0.616653 -0.145103 1.039138 0.281826 0.133348 0.707707 1.147033 1.525733 -0.215165 1.384123 1.684103 0.824070 1.760417 0.670682 -0.191019 0.046525 0.099898)
+ 5.036549 #(0.000000 1.648474 1.356160 1.391618 0.645448 0.732825 1.249658 1.596266 1.029440 0.616916 -0.159137 1.033505 0.276988 0.131279 0.717345 1.158768 1.517445 -0.204978 1.374460 1.696096 0.814748 1.756815 0.666843 -0.182144 0.058624 0.100389)
)
;;; 27 odd -------------------------------------------------------------------------------- ; sqrt=5.196152
@@ -1550,8 +1614,8 @@
5.8637111082051 #(0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1)
5.159976 #(0.000000 0.060824 1.210207 1.106404 0.924969 -0.022790 0.023912 -0.183868 0.515526 0.968425 1.378371 0.126703 1.003394 1.684154 0.187692 -0.104012 0.879975 0.487286 1.825016 1.033078 0.155452 1.194679 1.635355 1.210386 1.229222 1.367651 1.379503)
- 5.149599 #(0.000000 0.065274 1.206410 1.105831 0.930436 -0.020678 0.022251 -0.180228 0.520914 0.967088 1.376954 0.132198 1.002719 1.686455 0.185393 -0.110152 0.881736 0.495440 1.828301 1.033788 0.156156 1.190773 1.635723 1.213163 1.229300 1.370417 1.378693)
5.138964 #(0.000000 0.069640 1.207074 1.106607 0.938155 -0.022961 0.022014 -0.175641 0.524055 0.965847 1.374681 0.134317 1.000265 1.686374 0.177984 -0.113132 0.885633 0.500219 1.826760 1.031403 0.156253 1.185539 1.634678 1.214504 1.237698 1.370969 1.376422)
+ 5.127649 #(0.000000 0.075935 1.194633 1.100459 0.935783 -0.017045 0.029468 -0.170958 0.536465 0.968122 1.366429 0.152232 0.989620 1.697608 0.172767 -0.120765 0.894958 0.517376 1.820543 1.025047 0.164641 1.179970 1.629877 1.210394 1.240904 1.368192 1.368181)
)
;;; 28 odd -------------------------------------------------------------------------------- ; sqrt=5.291502
@@ -1560,10 +1624,9 @@
6.057788848877 #(0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0)
6.0276107788086 #(0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1)
- 5.293491 #(0.000000 1.234442 1.811922 0.013662 0.568227 0.654628 0.840533 1.062815 1.588827 0.108205 0.623193 1.506752 0.279061 1.537922 0.386278 1.436713 0.194976 0.329307 0.590269 0.226139 0.168402 0.118625 1.938448 1.370426 0.757482 0.474210 1.759346 1.088111)
- 5.287938 #(0.000000 0.676445 1.659488 0.509342 0.080364 1.569888 0.470000 1.611310 0.348647 1.099940 0.943596 0.910942 1.439299 1.290350 0.410430 0.463776 1.612162 0.738111 -0.031322 0.205992 0.303982 1.529380 1.502484 0.477864 0.581131 1.980022 0.189606 0.247418)
- 5.275914 #(0.000000 0.481612 0.548789 0.864376 -0.270541 1.886218 0.585805 0.690221 0.485151 1.508446 1.614497 1.293790 0.057846 0.132504 0.408187 1.814948 0.607069 -0.077240 0.737319 0.028143 -0.087306 1.014852 1.869046 1.673141 0.950182 0.940787 0.234827 0.825443)
- 5.230207 #(0.000000 1.598378 -0.034751 0.157342 0.075110 0.857634 0.794810 0.208710 -0.212649 0.221337 0.630768 -0.052803 1.148240 1.782372 0.525359 0.274424 0.141546 1.711731 1.604365 0.356420 1.284175 1.710099 0.241087 1.254779 0.965093 0.202851 0.724229 0.349498)
+ 5.227814 #(0.000000 1.598220 -0.034761 0.157135 0.076356 0.857747 0.795001 0.207843 -0.212308 0.221481 0.631644 -0.052827 1.149380 1.782268 0.524943 0.274524 0.140955 1.711570 1.605287 0.356580 1.284685 1.710224 0.241605 1.255224 0.964895 0.202315 0.724011 0.349143)
+ 5.196119 #(0.000000 1.617095 -0.026795 0.178392 0.089613 0.876768 0.787211 0.188963 -0.197181 0.222419 0.631291 -0.053606 1.158407 1.786022 0.515505 0.265637 0.142039 1.706825 1.596251 0.377743 1.307602 1.707567 0.263771 1.257314 0.954368 0.197747 0.718393 0.338293)
+ 5.181387 #(0.000000 1.624203 -0.028425 0.187056 0.091547 0.882303 0.783936 0.183786 -0.191070 0.222441 0.633930 -0.050126 1.156242 1.785069 0.518535 0.261623 0.138007 1.703927 1.592659 0.384084 1.322331 1.713161 0.269368 1.251650 0.946311 0.192317 0.718552 0.333567)
)
;;; 29 odd -------------------------------------------------------------------------------- ; sqrt=5.385164
@@ -1574,7 +1637,8 @@
6.0321998596191 #(0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1)
5.408434 #(0.000000 1.230326 1.005338 1.568513 0.576466 1.768004 0.800504 0.140541 0.719371 1.353662 0.186415 1.632586 1.491027 1.607986 0.311591 1.880869 1.593879 0.776334 0.744436 0.853178 0.849473 -0.101925 0.610882 0.902989 1.474353 1.175276 0.765416 0.379647 0.892498)
- 5.316484 #(0.000000 0.079829 0.503389 0.696600 1.304927 -0.048338 1.609273 0.405099 1.707420 1.203981 1.009739 1.032448 0.731437 1.532970 0.678038 0.439385 0.307587 1.430269 0.636040 0.942489 0.933045 0.807992 -0.046024 1.135462 1.140642 1.803699 0.524859 1.432783 0.106236)
+ 5.315721 #(0.000000 0.079365 0.503581 0.697134 1.304651 -0.047589 1.609701 0.405141 1.707779 1.204808 1.009818 1.031377 0.730804 1.532058 0.678067 0.440445 0.307115 1.430580 0.635582 0.940852 0.932138 0.809257 -0.046879 1.135572 1.140637 1.804019 0.524748 1.432991 0.106858)
+ 5.309917 #(0.000000 0.086475 0.507888 0.696653 1.300551 -0.051066 1.617872 0.395210 1.709382 1.209107 1.001180 1.022007 0.732068 1.537796 0.678572 0.427961 0.301094 1.424088 0.636813 0.934060 0.929325 0.808933 -0.048521 1.121954 1.131637 1.802247 0.527138 1.433020 0.096399)
)
;;; 30 odd -------------------------------------------------------------------------------- ; sqrt=5.4772255
@@ -1586,7 +1650,8 @@
5.555741 #(0.000000 0.440437 0.547330 0.415184 1.387308 1.812823 0.105595 0.253652 1.773552 1.111459 0.099032 0.174668 1.454910 0.731376 -0.387293 0.833427 1.738667 1.583378 1.784819 0.419743 0.472096 1.815315 0.081606 1.690766 1.343988 -0.054973 0.554467 0.734783 0.203950 0.719585)
5.513413 #(0.000000 1.699709 0.335515 1.213665 1.173165 0.712606 1.332346 0.661773 1.151588 1.282957 0.915551 1.580851 0.407690 0.015142 0.608461 0.692936 0.435513 1.553569 1.342559 0.745177 1.768811 1.155092 0.969923 1.188309 0.450077 0.987363 1.749350 1.705283 0.542005 1.184319)
5.492249 #(0.000000 0.563551 1.671520 0.867866 1.418934 0.888205 1.760307 0.156746 0.075068 1.405354 0.475017 0.935741 0.137021 0.435531 1.006673 1.290807 0.884129 1.856283 1.482983 0.709540 0.436947 1.406909 1.323650 -0.251610 1.118569 1.335084 1.334543 0.672636 0.762099 0.969101)
- 5.446428 #(0.000000 -0.245928 0.730718 0.371107 1.828907 0.950850 1.804442 0.207800 0.840175 0.382260 0.701794 1.222255 -0.040740 0.846326 0.555748 1.130787 0.619366 1.765931 1.449295 1.642299 1.007155 0.172627 0.107755 0.057639 0.735425 1.486355 1.825933 1.592625 1.315194 1.460313)
+ 5.441986 #(0.000000 -0.246641 0.729358 0.371863 1.827684 0.949034 1.803907 0.206892 0.840865 0.383521 0.699810 1.222735 -0.040694 0.846309 0.556491 1.130711 0.620937 1.765872 1.449394 1.643089 1.007177 0.172161 0.108523 0.057681 0.734669 1.486192 1.827997 1.591565 1.315231 1.459761)
+ 5.419259 #(0.000000 -0.249665 0.727414 0.366135 1.817772 0.940168 1.787102 0.206317 0.847534 0.384839 0.694162 1.216814 -0.047247 0.838631 0.559036 1.134307 0.626947 1.755320 1.448216 1.640963 1.009930 0.170067 0.110324 0.041227 0.711962 1.489497 1.843963 1.593878 1.308983 1.459788)
)
;;; 31 odd -------------------------------------------------------------------------------- ; sqrt 5.56776
@@ -1596,9 +1661,8 @@
6.1342258453369 #(0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1)
5.614499 #(0.000000 1.057256 0.771211 1.692016 1.270992 0.219098 1.680191 0.736741 0.722604 0.077997 1.236137 1.356933 0.499227 0.145448 0.536830 1.669975 1.026571 1.731919 0.405892 1.552979 1.655350 0.117425 1.560581 0.172129 0.615040 0.346847 0.133285 0.186681 0.303421 1.326259 1.673642)
- 5.562820 #(0.000000 1.468006 -0.066544 1.463474 1.135748 0.362054 1.343193 0.155955 0.740408 0.171965 0.299242 1.257210 0.752896 0.600764 0.192758 0.377086 0.676248 0.561870 0.294882 1.061232 -0.222045 1.764421 1.677628 0.846719 0.277485 1.029453 0.151271 0.339793 0.857873 1.042330 0.036381)
-
- 5.5605616122659 #(0.0 1.4618545635974 -0.069783303015577 1.4586372299421 1.1314180696319 0.35628546558489 1.3378480314929 0.15058925485316 0.73986143853032 0.16570605620681 0.29363842506207 1.2510962151947 0.74745970175061 0.59418480191812 0.18694734209754 0.37332346846331 0.6715966332446 0.55717040967076 0.29152056022808 1.0586980666635 -0.22888794520862 1.7598422445124 1.6759371569287 0.83938904779532 0.26922029629729 1.0234383193278 0.14535644165771 0.33061276438368 0.85045481028221 1.0361853993142 0.031107478457504)
+ 5.551742 #(0.000000 1.460654 -0.071927 1.460547 1.132529 0.355432 1.336140 0.149511 0.744330 0.166997 0.293108 1.251333 0.750975 0.596146 0.186944 0.371668 0.669228 0.558849 0.295221 1.061142 -0.229044 1.762882 1.675782 0.837132 0.271753 1.024898 0.145663 0.326550 0.848897 1.034731 0.033259)
+ 5.473154 #(0.000000 1.426955 -0.083224 1.471968 1.139607 0.332711 1.293309 0.133745 0.769126 0.158797 0.275458 1.244096 0.780845 0.595354 0.190164 0.344657 0.643824 0.561503 0.322095 1.096846 -0.226503 1.766478 1.679717 0.808974 0.291310 1.038450 0.139597 0.291074 0.828692 1.045031 0.068678)
)
;;; 32 odd -------------------------------------------------------------------------------- ; sqrt 5.65685
@@ -1611,7 +1675,8 @@
5.737898 #(0.000000 1.505411 1.032925 1.272107 1.948264 0.535387 1.256291 1.374580 0.197145 -0.062144 -0.227457 0.725228 1.801557 1.715862 0.056005 1.135273 1.599180 1.263509 -0.001405 1.615917 0.681908 0.665842 0.435477 0.755601 1.495256 1.125605 1.363942 0.840006 0.784951 0.030466 0.994065 -0.231434)
5.715647 #(0.000000 0.410274 0.975561 1.602942 0.063060 0.072541 1.838816 -0.096294 1.663893 0.802756 0.594757 1.369695 0.800505 0.835361 1.017235 0.138821 1.593083 1.278450 0.935340 0.980912 1.470845 0.493496 0.245307 0.978711 0.840784 1.228750 0.330939 1.204178 0.236628 1.099369 1.618449 0.878276)
- 5.626977 #(0.000000 0.846128 1.239002 0.532481 1.062992 1.457902 0.209020 1.863394 0.512166 1.240656 1.058470 0.924077 1.381908 1.284860 0.310803 1.842504 1.332922 1.836592 1.724574 0.032358 1.116681 0.051270 1.915462 1.482160 1.145914 1.072685 0.868355 1.663486 0.356813 1.170958 0.874131 1.856986)
+
+ 5.606837 #(0.000000 0.857834 1.235854 0.541690 1.053374 1.464299 0.205210 1.860904 0.502430 1.244452 1.076625 0.924803 1.383174 1.294955 0.304311 1.870581 1.338746 1.846834 1.733595 0.037846 1.118973 0.050248 1.921853 1.479249 1.134164 1.079718 0.869444 1.656513 0.348359 1.185706 0.868017 1.857100)
)
;;; 33 odd -------------------------------------------------------------------------------- ; sqrt 5.74456
@@ -1622,12 +1687,9 @@
6.5448527336121 #(0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1)
6.4944429397583 #(0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0)
- 5.775884 #(0.000000 0.751258 0.344559 0.205091 0.295562 1.193303 1.691820 0.894054 1.321661 0.359147 1.671500 0.890418 1.265995 0.924932 1.057309 1.366885 0.226253 1.492465 0.556519 1.017591 0.916667 1.154084 1.242100 0.459531 0.476149 1.466068 1.758579 1.730962 0.631531 0.335668 1.441069 0.742214 0.632101)
- 5.771433 #(0.000000 1.009003 0.038938 1.270004 1.089047 1.898391 0.093630 0.641405 1.534401 0.494554 1.047073 0.470514 -0.111034 1.264251 1.391132 0.446434 0.098203 1.269408 1.349393 1.721978 0.255688 0.685797 0.342994 0.816252 0.292412 1.180073 1.182065 0.510965 0.893464 0.707189 0.567955 1.933919 0.418716)
-
- 5.765177 #(0.000000 0.112291 1.118495 1.699041 0.198880 0.686506 1.776394 0.837130 1.079533 1.573578 0.746192 0.401298 0.227680 1.454469 0.000802 0.039000 1.256840 0.563063 0.909562 0.744334 1.226188 1.056605 0.347291 1.002013 0.768014 1.066335 0.567524 0.893342 1.741215 1.250252 -0.066550 0.637439 0.191980)
-
- ;; #1: 0.0
+ 5.758270 #(0.000000 0.113404 1.120017 1.701330 0.197542 0.687920 1.778466 0.838895 1.080380 1.571697 0.746577 0.404086 0.231382 1.453934 0.000732 0.041420 1.256944 0.560894 0.913938 0.742759 1.225738 1.056488 0.349734 1.000449 0.767247 1.067291 0.568479 0.890173 1.741165 1.253922 -0.065271 0.637751 0.190859)
+ 5.688193 #(0.000000 1.524199 1.156032 1.298099 1.541803 0.880008 0.379485 1.701229 1.383525 1.125875 1.358696 0.841803 0.838106 1.015621 1.651453 0.180172 0.336830 0.732093 1.715011 1.117320 0.844935 1.683230 1.734220 1.439061 1.699603 0.590990 1.534100 -0.289055 0.614957 1.814358 0.538002 -0.020086 0.660601)
+ 5.658971 #(0.000000 1.522758 1.158601 1.296307 1.531645 0.874131 0.398789 1.709357 1.373490 1.133375 1.352763 0.843739 0.834551 1.009921 1.638274 0.183462 0.329851 0.735129 1.724799 1.138678 0.852794 1.673046 1.732859 1.438889 1.677579 0.593140 1.515211 -0.291894 0.622593 1.824296 0.542684 -0.015192 0.649078)
)
;;; 34 odd -------------------------------------------------------------------------------- ; sqrt 5.8309518
@@ -1640,8 +1702,11 @@
6.5771403312683 #(0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0)
5.886165 #(0.000000 1.745057 1.504386 -0.023968 0.205090 1.069486 -0.047234 -0.063358 1.013504 1.050064 1.684875 1.021832 1.166236 0.938115 1.431988 0.555525 1.405223 0.917281 1.215195 0.669468 0.053688 0.024930 1.643093 1.423509 0.223624 1.512856 0.695528 0.899790 1.529750 0.050412 1.716725 0.262916 0.290650 1.510059)
+ 5.839478 #(0.000000 1.077567 0.246449 0.066969 0.318374 0.562472 0.300162 0.284136 0.411567 -0.020399 1.219454 0.270019 1.522953 0.513677 1.223260 1.013061 0.431117 0.338529 1.237793 0.497738 0.580028 -0.075760 1.487399 0.638100 1.210373 1.405820 0.223755 0.099999 0.180390 1.071946 1.507801 0.907555 1.312123 0.150270)
- 5.842620 #(0.000000 1.077257 0.245089 0.069153 0.318248 0.562450 0.297927 0.283180 0.412929 -0.020574 1.220803 0.268855 1.523150 0.514320 1.223389 1.013880 0.430996 0.339609 1.237023 0.497378 0.579290 -0.075212 1.486113 0.639750 1.208778 1.404544 0.225088 0.100731 0.181686 1.072735 1.508488 0.906167 1.310131 0.148432)
+ 5.816833 #(0.000000 1.157345 0.256038 0.835407 -0.111435 1.474980 0.935665 0.608453 0.782889 0.016890 0.469694 0.073778 1.600833 0.868989 1.311955 0.083246 0.787037 0.915296 0.599183 1.680447 0.714292 0.577515 0.989293 0.528274 0.073313 0.898937 0.826996 0.257335 0.989154 1.326012 1.464130 -0.048931 0.064501 -0.019809)
+
+ 5.808111 #(0.000000 1.089013 0.260373 0.064087 0.317557 0.547079 0.313042 0.290104 0.395684 -0.020670 1.196564 0.272647 1.515701 0.511511 1.214193 1.004389 0.438002 0.332974 1.248869 0.493327 0.595802 -0.085601 1.484196 0.639060 1.221049 1.397543 0.212570 0.093126 0.151437 1.073931 1.483158 0.893929 1.319583 0.157255)
)
;;; 35 odd -------------------------------------------------------------------------------- ; sqrt 5.9160
@@ -1655,7 +1720,8 @@
6.019745 #(0.000000 1.737129 1.447005 0.192023 0.352390 1.109469 1.141770 0.792931 1.332317 1.747510 0.049345 0.538993 1.123913 1.631468 1.604207 0.569597 1.151844 0.643054 1.428529 0.806422 1.446482 0.982775 1.718698 1.359816 1.027004 0.088993 1.023736 -0.089824 0.151136 1.196612 0.522589 0.421171 0.192329 0.077722 1.755938)
5.948037 #(0.000000 1.888333 0.202222 1.459883 1.899590 0.077015 0.184626 0.842418 0.183084 0.790336 0.161822 1.118884 1.465652 0.054107 0.126784 0.159971 1.756298 1.301912 1.390376 1.485580 0.832130 1.913961 0.739868 1.697090 1.715452 0.577852 0.520050 -0.044341 1.434851 0.673531 1.907051 -0.198499 0.468800 1.485794 -0.010059)
- 5.926499 #(0.000000 0.469188 1.530749 1.650000 0.386582 0.947193 1.411376 1.485907 0.278517 1.215475 0.047482 0.327468 1.913778 1.065698 1.089297 1.635546 0.177773 1.395036 -0.020569 1.245234 0.451956 0.188773 1.785794 1.613209 -0.134546 -0.065699 1.568522 0.385886 1.123335 0.300341 1.632980 1.052049 0.667323 1.096686 1.008618)
+
+ 5.904167 #(0.000000 0.467316 1.539906 1.650784 0.389505 0.949316 1.400834 1.489350 0.271573 1.222139 0.050732 0.322362 1.913843 1.086016 1.089287 1.635665 0.198516 1.406384 -0.028077 1.242981 0.439339 0.199045 1.786508 1.609822 -0.139475 -0.074767 1.560108 0.386925 1.130946 0.296937 1.644159 1.037989 0.647756 1.104520 1.004190)
)
;;; 36 odd -------------------------------------------------------------------------------- ; sqrt 6
@@ -1670,7 +1736,9 @@
6.104999 #(0.000000 1.752837 1.478507 1.030358 0.542949 1.150752 1.406409 1.628306 1.434529 0.479758 0.002634 0.911576 1.383993 -0.102666 0.349338 1.583590 0.591440 0.477767 1.641508 0.699772 0.604507 1.198450 1.127226 1.313060 0.124747 1.197769 1.691888 1.408777 0.796362 0.816210 0.996479 0.378214 0.535476 1.799163 1.275608 -0.072063)
6.099892 #(0.000000 1.361377 0.202438 0.314999 0.779494 1.393777 1.913562 0.025829 1.339151 -0.043380 1.671171 1.100351 -0.055501 1.240865 0.568669 1.249382 1.470228 1.378432 1.688402 1.085009 0.463836 0.866522 1.785170 0.115926 1.223568 1.687751 1.149252 -0.013129 -0.098900 1.491222 1.091598 0.347575 0.045474 0.438897 0.881415 0.357110)
- 6.099564 #(0.000000 1.024006 1.673447 0.704264 1.296002 0.432302 0.937900 -0.103506 0.387745 1.496249 1.162101 0.836154 0.915174 0.183148 0.785524 1.235467 0.632860 0.312224 0.484251 0.093489 0.876182 0.000475 1.567667 0.610297 0.981144 1.309916 1.819849 0.842156 0.685048 1.613995 1.154258 1.169408 1.542722 1.668395 0.240359 0.145806)
+
+ 6.068055 #(0.000000 1.025020 1.676115 0.686856 1.307395 0.441435 0.951387 -0.095921 0.367471 1.508209 1.157956 0.837240 0.923151 0.176010 0.792906 1.251670 0.642869 0.304140 0.490069 0.095945 0.885765 -0.021213 1.568862 0.597559 0.973346 1.305863 1.819866 0.853639 0.683049 1.609296 1.149128 1.182786 1.544361 1.670403 0.233606 0.140762)
+ 6.052782 #(0.000000 1.750264 1.509727 1.000089 0.545336 1.160906 1.428382 1.609229 1.481339 0.489735 0.010770 0.951463 1.391963 -0.095818 0.365276 1.591882 0.594876 0.467694 1.644238 0.672835 0.585145 1.216413 1.166425 1.327660 0.114015 1.218808 1.700020 1.406578 0.796425 0.844819 0.992481 0.383736 0.549984 1.830025 1.268489 -0.088831)
)
;;; 37 odd -------------------------------------------------------------------------------- ; sqrt 6.0827
@@ -1685,7 +1753,10 @@
6.273110 #(0.000000 1.414826 0.628930 0.813312 1.065302 1.100961 0.750318 0.560248 1.131956 0.792537 0.929293 1.615968 0.180268 0.893844 0.600559 1.653420 0.991917 1.641041 0.200192 1.603679 0.411579 -0.041896 0.607810 0.660238 1.020969 0.955364 0.021152 0.677987 1.049195 0.130855 0.151263 1.871387 1.407878 1.188185 0.378601 0.736505 0.234494)
6.272789 #(0.000000 1.133035 1.392613 0.042242 0.488169 1.067855 0.466900 1.009724 1.297296 -0.020264 0.213550 1.161597 0.220645 1.302691 0.561728 1.363189 1.429844 1.006096 1.302650 1.283239 0.704952 0.925881 0.857679 0.228013 0.085843 0.496374 1.252893 0.798642 1.265720 0.745828 0.734376 1.709904 1.738836 1.195157 0.487100 1.694337 -0.109364)
- 6.206878 #(0.000000 0.973306 0.068807 1.631674 0.107421 1.410065 0.683063 1.637282 1.602149 0.625677 0.865641 -0.012563 0.155121 0.626005 0.516948 -0.107190 1.545951 0.183125 0.667109 1.763060 0.826350 1.158624 0.081174 0.788350 0.408168 1.615910 1.198206 0.806427 1.179868 0.470309 0.378931 1.796298 0.049276 0.205455 0.337537 0.476094 0.731345)
+ 6.205245 #(0.000000 0.973455 0.067952 1.631066 0.105736 1.409417 0.684112 1.635983 1.602936 0.626723 0.866310 -0.012808 0.155843 0.626732 0.517908 -0.107239 1.545697 0.183872 0.667015 1.763764 0.826021 1.158866 0.080222 0.789108 0.408351 1.615962 1.198377 0.806113 1.179983 0.470821 0.379434 1.796735 0.048950 0.205433 0.338357 0.477912 0.732359)
+ 6.188054 #(0.000000 0.968224 0.070327 1.632986 0.105613 1.411809 0.684391 1.642900 1.605862 0.625871 0.869592 -0.009040 0.146251 0.619250 0.523405 -0.104175 1.545106 0.182479 0.670963 1.750521 0.809958 1.155189 0.083130 0.801919 0.424481 1.619941 1.204745 0.810053 1.159940 0.480371 0.377627 1.784864 0.052817 0.212958 0.341438 0.490002 0.733538)
+
+ 6.176294 #(0.000000 1.205749 1.906971 0.906409 1.768879 0.608649 1.930965 0.297742 1.048545 0.914836 1.017621 1.385936 0.328478 1.685887 1.979137 0.459864 1.128727 0.093608 0.947273 0.836666 1.671806 0.484676 0.182913 1.423597 1.578951 1.469951 0.381280 0.340470 1.595982 0.929298 0.458827 0.029965 0.476700 0.403300 0.248558 0.232562 0.193971)
)
;;; 38 odd -------------------------------------------------------------------------------- ; sqrt 6.1644
@@ -1699,7 +1770,8 @@
6.498837 #(0.000000 1.801604 0.138566 0.402561 1.435184 0.824436 1.269325 1.272347 -0.296668 0.873783 1.019759 -0.253123 0.411596 1.052152 0.142907 1.757835 0.523367 1.303252 0.183203 1.272231 0.367459 0.107509 1.443922 0.519098 0.955865 1.626394 -0.190019 1.189288 0.505993 0.657608 0.052303 1.900451 0.696608 0.586186 0.959641 0.544372 0.416611 0.524010)
6.452596 #(0.000000 0.115497 -0.060036 0.317068 1.634984 0.036767 -0.086413 -0.083780 1.247181 0.433227 0.414209 1.132978 1.207160 1.490715 0.172103 0.712944 1.197801 1.103764 0.120056 1.101450 1.893411 0.654044 0.808558 1.430306 0.689174 1.160631 1.173076 0.697867 1.637022 0.354978 1.732659 0.883715 0.917374 1.137078 0.886037 0.623492 1.838209 1.361251)
6.348056 #(0.000000 1.247565 0.994689 1.551099 0.488888 1.542772 0.366143 0.747116 1.870909 0.581972 1.763898 0.325382 1.522317 1.667152 -0.036519 0.152144 1.656849 0.839732 1.484584 1.607022 1.778165 0.443653 1.638816 0.121838 0.586642 0.676378 1.844632 1.364308 1.088233 0.948975 0.777379 0.438270 1.909125 1.267138 0.242669 -0.098927 0.720866 1.048624)
- 6.299414 #(0.000000 0.520131 1.422314 0.180025 1.057226 1.392704 0.264685 1.639618 1.140590 0.399780 0.388106 0.952270 1.717491 1.439729 0.841222 0.240262 1.691351 1.091030 1.240655 -0.014581 0.471173 0.759723 0.877946 1.765254 1.625758 1.119302 1.686240 1.187665 0.063403 0.793337 0.102125 1.212769 0.376594 0.687841 0.521196 0.452519 0.407397 0.509599)
+
+ 6.280111 #(0.000000 0.520747 1.421577 0.176661 1.056916 1.397646 0.252339 1.633162 1.155547 0.398512 0.384452 0.956132 1.738361 1.431549 0.851601 0.235269 1.686534 1.104337 1.254740 -0.006588 0.459936 0.747650 0.874175 1.780060 1.617026 1.126483 1.676998 1.184412 0.040788 0.783302 0.108500 1.217910 0.360146 0.692188 0.518792 0.448666 0.423525 0.516280)
)
;;; 39 odd -------------------------------------------------------------------------------- ; sqrt 6.2449
@@ -1714,8 +1786,9 @@
7.2362656593323 #(0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0)
6.462067 #(0.000000 1.795459 1.784017 0.483619 0.568729 0.941472 1.832033 1.448092 1.077620 0.034685 0.883125 1.873724 1.497965 0.975006 1.176788 0.239320 0.676185 1.023431 1.786560 0.716448 0.526115 1.006061 0.473787 0.024751 0.022319 1.546096 1.828681 1.145327 0.004278 0.198717 0.660662 0.477926 0.443146 -0.193443 0.487446 0.769045 0.138291 1.289855 0.649880)
- 6.355513 #(0.000000 0.112290 1.438780 1.680036 0.432929 0.673080 0.637974 1.345628 1.129032 1.401538 1.056911 0.631114 1.138754 1.514454 0.699135 0.974553 0.852476 0.232085 1.179662 0.831617 1.514534 -0.020019 1.951109 0.638198 1.422559 0.356870 1.679251 1.234259 0.758266 0.207067 0.931452 0.316701 0.647220 1.573856 1.332040 1.199475 1.764454 0.913119 0.888923)
- 6.338478 #(0.000000 0.112644 1.438054 1.675983 0.429265 0.672184 0.637297 1.346273 1.132776 1.402646 1.054598 0.634520 1.141253 1.520192 0.692623 0.970276 0.854710 0.230969 1.182391 0.830430 1.509822 -0.024991 1.953177 0.632057 1.418128 0.356779 1.678993 1.231262 0.757876 0.203430 0.926400 0.312850 0.648823 1.576723 1.330036 1.199133 1.761695 0.914500 0.893453)
+
+ 6.337389 #(0.000000 0.112240 1.438602 1.676292 0.429304 0.672757 0.638085 1.346634 1.132771 1.402658 1.054458 0.635301 1.142229 1.519817 0.692745 0.970300 0.854503 0.230415 1.181627 0.829746 1.510105 -0.025161 1.952828 0.632464 1.418465 0.356526 1.679032 1.231337 0.757837 0.202480 0.926980 0.313435 0.648617 1.576145 1.329115 1.199417 1.762227 0.914164 0.893262)
+ 6.319448 #(0.000000 0.123734 1.453067 1.682025 0.412131 0.677969 0.632682 1.352382 1.130906 1.397507 1.059073 0.643382 1.148682 1.518561 0.702716 0.963355 0.857570 0.235976 1.181550 0.829109 1.509619 -0.032198 1.951373 0.637432 1.410100 0.361622 1.684750 1.232439 0.757376 0.185826 0.923139 0.302696 0.657360 1.594936 1.325923 1.207204 1.761185 0.911368 0.903488)
)
;;; 40 odd -------------------------------------------------------------------------------- ; sqrt 6.3245
@@ -1723,14 +1796,16 @@
7.5038495063782 #(0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1)
6.566332 #(0.000000 1.470543 0.181367 -0.174348 1.253649 0.045015 1.458341 0.025983 1.650285 1.425566 1.345927 1.560550 0.947286 1.019090 1.238103 1.329600 1.716150 1.638998 0.294274 0.775921 0.004181 0.678946 1.664987 1.624679 0.621322 1.196080 0.254744 0.487358 0.248968 1.045168 -0.056900 0.286198 0.992952 0.885599 1.692674 1.234112 0.792550 0.251953 -0.025761 1.457484)
- 6.458805 #(0.000000 1.339817 1.091639 1.115287 0.388727 0.845895 0.124281 1.653405 1.080525 1.475503 0.390602 1.008629 0.395888 0.354974 1.544132 0.219674 0.695156 -1.900471 0.510745 -0.011539 1.412722 1.546763 0.433942 1.248309 1.242827 1.416014 0.397583 1.087832 1.347371 -0.463952 0.287631 1.828817 0.835445 0.574581 1.470993 1.206651 1.406154 1.249440 1.892730 1.486874)
+ 6.387231 #(0.000000 1.332417 1.088044 1.100488 0.380531 0.838578 0.106130 1.655912 1.074956 1.477288 0.394665 1.022551 0.403585 0.341079 1.513453 0.217057 0.696663 -1.888463 0.484068 -0.023261 1.421464 1.548340 0.445141 1.250260 1.252341 1.411605 0.374796 1.088113 1.366024 -0.484483 0.296126 1.835198 0.848699 0.565323 1.463092 1.201147 1.420233 1.263077 1.900436 1.506022)
+ 6.349036 #(0.000000 1.322879 1.074832 1.090808 0.376951 0.829887 0.106302 1.666321 1.082941 1.483415 0.395557 1.030298 0.404283 0.331255 1.489799 0.212450 0.690690 -1.884968 0.471761 -0.039410 1.427315 1.553966 0.441358 1.255753 1.256480 1.406541 0.368362 1.082114 1.380896 -0.501678 0.308909 1.835256 0.866957 0.565134 1.452956 1.203643 1.436367 1.278010 1.897258 1.513744)
)
;;; 41 odd -------------------------------------------------------------------------------- ; sqrt 6.4031
#(41 7.86743174872036 #(0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0)
7.7093445316966 #(0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1)
- 6.649484 #(0.000000 0.748472 1.360406 1.401936 0.920541 0.387579 0.069206 0.083942 1.025277 1.135746 0.683932 0.789214 0.071155 0.331541 0.687493 0.313550 1.779486 0.515300 1.000193 0.393147 -0.021598 0.307646 0.665042 1.718006 1.932253 1.750466 0.145484 0.514748 0.985600 0.912775 0.499906 1.169929 0.692489 0.870821 1.863886 1.020511 1.852482 1.645018 0.404374 1.595093 1.232078)
+ 6.646317 #(0.000000 0.747575 1.360301 1.402138 0.921921 0.386756 0.070484 0.084889 1.024028 1.136457 0.684045 0.788881 0.070869 0.331341 0.686160 0.313395 1.779955 0.515374 1.000202 0.393943 -0.021731 0.307554 0.663667 1.717923 1.931965 1.750661 0.144975 0.513941 0.985055 0.912315 0.498894 1.169735 0.692154 0.870588 1.864910 1.021265 1.853132 1.645619 0.404114 1.594410 1.232672)
+ 6.600207 #(0.000000 0.741349 1.379955 1.419037 0.919554 0.403428 0.085327 0.082644 1.023472 1.135289 0.677002 0.782029 0.061387 0.351639 0.675836 0.316710 1.793533 0.533608 1.003987 0.417625 -0.014733 0.309104 0.669735 1.696094 1.921260 1.755256 0.151770 0.504542 0.986733 0.910327 0.486936 1.157855 0.689964 0.878370 1.876163 1.028656 1.864512 1.636941 0.398681 1.585714 1.226836)
)
;;; 42 odd -------------------------------------------------------------------------------- ; sqrt 6.4807
@@ -1740,7 +1815,9 @@
6.706991 #(0.000000 0.518280 0.007019 0.810804 -0.045818 1.526626 0.644856 0.631395 0.485435 1.019089 0.402578 1.150719 0.326239 0.265745 0.382157 0.440449 1.620707 1.807620 -0.005004 0.395513 0.938809 0.797445 1.144817 0.615661 1.254448 1.493647 1.598220 1.437204 0.340637 1.361556 1.144528 0.162157 0.958689 1.721553 0.024995 1.132719 1.393181 0.429404 0.164365 1.054389 0.976105 0.267729)
6.684033 #(0.000000 0.525437 0.011411 0.817575 -0.043990 1.528164 0.640334 0.636232 0.488862 1.015113 0.396715 1.154024 0.328981 0.264696 0.374376 0.443557 1.624162 1.809252 -0.004918 0.392220 0.940610 0.796778 1.155857 0.620475 1.249282 1.490550 1.601375 1.427170 0.338569 1.351786 1.140470 0.155804 0.949175 1.725245 0.023294 1.133357 1.386899 0.420227 0.161540 1.053674 0.973652 0.268093)
- 6.672735 #(0.000000 0.683697 1.456489 0.486522 0.195513 0.938900 0.183268 1.537783 1.051983 1.447997 -0.012502 0.769583 -0.136841 1.253606 1.445150 1.753729 1.611381 1.576672 0.303431 1.082079 1.565931 1.908096 0.068671 -0.214359 1.137359 0.871530 0.163998 0.158390 0.743595 0.179821 1.419974 1.929540 1.155350 1.370616 1.530372 -0.212923 1.691878 1.104839 0.553062 0.697953 0.299361 1.233266)
+ 6.671248 #(0.000000 0.683638 1.455005 0.487274 0.195650 0.937902 0.184591 1.538655 1.051620 1.448306 -0.013379 0.769351 -0.136719 1.254861 1.444925 1.754426 1.610883 1.575545 0.303918 1.082030 1.567087 1.908601 0.067169 -0.214046 1.137551 0.871241 0.163442 0.157706 0.743307 0.180848 1.420525 1.930444 1.154559 1.371811 1.530148 -0.213780 1.693108 1.103336 0.553073 0.696540 0.299769 1.233084)
+ 6.605191 #(0.000000 0.665340 1.466571 0.491840 0.201698 0.947379 0.197760 1.525199 1.056912 1.440651 -0.015812 0.754816 -0.131041 1.242773 1.459035 1.747032 1.606147 1.574331 0.312936 1.063108 1.587844 1.942742 0.037846 -0.219439 1.153070 0.874516 0.177739 0.138001 0.765842 0.184117 1.435891 1.935880 1.128883 1.395893 1.533883 -0.242256 1.673293 1.087111 0.535738 0.686069 0.292537 1.217477)
+ 6.537585 #(0.000000 0.659880 1.459923 0.502324 0.207055 0.950133 0.199814 1.521519 1.063230 1.430836 -0.024460 0.741564 -0.136613 1.236933 1.459047 1.751421 1.601904 1.579260 0.319417 1.062213 1.599559 1.977582 0.010630 -0.220221 1.161328 0.878573 0.185711 0.122848 0.779658 0.198848 1.461105 1.950446 1.112520 1.416486 1.540631 -0.264328 1.675898 1.080730 0.512711 0.685313 0.292249 1.196221)
)
;;; 43 odd -------------------------------------------------------------------------------- ; sqrt 6.5574
@@ -1749,7 +1826,8 @@
7.7573688953539 #(0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1)
6.820518 #(0.000000 0.946114 1.877677 0.723197 0.725132 1.297441 0.312494 1.248349 1.827086 0.656010 0.730435 1.197964 -0.053499 0.512828 0.829605 0.410572 0.310633 0.359026 0.179249 1.314896 1.669338 0.527022 0.969277 0.409984 1.179725 1.028799 0.880097 1.924964 0.214159 -0.097459 0.914438 0.686393 0.041508 1.071215 0.397214 1.419020 1.608047 1.556428 1.740781 -0.228589 0.944234 0.106788 1.730937)
- 6.784161 #(0.000000 0.313858 0.892628 0.696404 0.409525 0.219442 0.504649 0.163070 0.167874 1.373878 1.192208 1.144009 1.639213 0.739745 0.848947 0.313583 1.946781 1.049643 0.739539 0.261405 0.724822 1.466254 1.772779 0.023159 0.566956 1.838073 1.496775 1.160317 -0.000340 0.406653 1.586206 0.455091 1.743991 0.873230 0.277831 1.188682 0.138535 0.514437 1.210898 0.923266 1.357913 1.194979 1.817485)
+ 6.782479 #(0.000000 0.314123 0.893087 0.695351 0.409184 0.217515 0.504707 0.163930 0.167981 1.373456 1.190707 1.145083 1.639580 0.738700 0.848129 0.312544 1.947445 1.050346 0.741204 0.260449 0.725210 1.467645 1.772609 0.021819 0.566564 1.837136 1.496495 1.161009 -0.001385 0.407314 1.586137 0.455866 1.743739 0.873072 0.277270 1.189010 0.136766 0.514016 1.210625 0.924072 1.357727 1.194882 1.817577)
+ 6.713978 #(0.000000 0.324136 0.899651 0.665103 0.395302 0.212561 0.495827 0.172512 0.181571 1.386518 1.204789 1.141610 1.644520 0.722629 0.831081 0.322850 1.958208 1.033598 0.770319 0.260134 0.701674 1.459068 1.782076 0.018527 0.604978 1.838596 1.516179 1.173337 0.016439 0.384451 1.598267 0.468358 1.762835 0.879300 0.275183 1.216138 0.127362 0.510238 1.207613 0.913037 1.362717 1.190656 1.825549)
)
;;; 44 odd -------------------------------------------------------------------------------- ; sqrt 6.6332
@@ -1757,7 +1835,8 @@
7.9338580613871 #(0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0)
6.948605 #(0.000000 1.282417 1.848828 0.482134 1.123482 0.162578 0.878259 1.430483 1.224322 1.763162 1.482121 1.659199 1.627592 -0.088177 0.849972 0.234361 1.010931 0.292866 1.224433 1.225527 1.243469 0.799808 1.243736 0.910691 0.810712 1.105316 0.349723 1.681266 1.218477 0.381110 1.869161 0.038098 0.908002 1.259616 1.569472 1.634082 0.309876 0.326070 1.382178 1.371085 0.343309 1.261477 0.345941 0.161500)
- 6.941554 #(0.000000 0.494437 1.305929 1.485638 1.446421 0.529702 0.444077 -0.126630 1.056379 0.373254 0.654818 1.738684 1.886084 1.167014 1.472169 1.382951 0.487954 0.156962 1.614270 1.108363 1.312212 -0.184591 1.173639 0.715124 0.510768 0.459175 0.706810 1.079324 1.376521 0.697046 1.092113 1.420045 0.854257 1.366751 0.349156 1.109156 0.618404 1.618507 0.425759 0.065132 1.038616 1.363542 1.517493 1.563136)
+ 6.938574 #(0.000000 0.494918 1.307077 1.486115 1.446778 0.528206 0.443607 -0.126870 1.057297 0.374317 0.655793 1.738250 1.886260 1.166132 1.471840 1.382437 0.487545 0.156366 1.613976 1.107682 1.312704 -0.185245 1.172546 0.714872 0.510705 0.457888 0.706370 1.080271 1.377429 0.698938 1.092530 1.420037 0.854464 1.367402 0.349499 1.109099 0.617860 1.617782 0.425749 0.064629 1.039153 1.363482 1.517363 1.561193)
+ 6.907515 #(0.000000 0.493952 1.314789 1.470240 1.438642 0.535237 0.438835 -0.142442 1.057575 0.377652 0.653965 1.731054 1.890756 1.150468 1.472588 1.402833 0.480698 0.148510 1.619302 1.105213 1.330276 -0.210500 1.151769 0.711354 0.504583 0.457253 0.710641 1.079030 1.378759 0.688713 1.092512 1.415381 0.845127 1.366237 0.361182 1.107367 0.607537 1.631024 0.428317 0.051481 1.042375 1.370631 1.521857 1.550032)
)
;;; 45 odd -------------------------------------------------------------------------------- ; sqrt 6.7082
@@ -1765,7 +1844,8 @@
8.1351366043091 #(0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0)
7.014550 #(0.000000 1.549820 1.727819 0.947378 0.202649 0.128108 1.845552 0.989769 1.385432 0.774466 1.562304 1.791925 0.994094 0.351909 1.681951 0.720260 1.571855 1.622106 1.386850 -0.198958 0.204647 0.483002 0.056720 0.712129 0.333500 1.341493 0.578522 0.993324 0.454692 0.578053 0.974240 0.388626 1.746814 0.438852 0.578490 0.087252 0.189583 1.329407 -0.180755 1.569434 0.723657 0.922447 1.443666 0.001943 0.207990)
- 6.982932 #(0.000000 0.912208 0.440416 1.254705 0.496424 0.712437 0.696064 -0.097881 1.195355 1.405972 1.663035 1.207199 1.198307 0.182823 0.550585 1.355010 0.837503 0.437502 1.000681 1.641938 1.418614 1.891256 0.726059 1.331907 0.102255 1.904600 0.984466 1.726802 1.233195 1.064979 0.323147 1.479395 1.891083 1.741366 1.697978 0.526634 1.470190 1.489516 1.203884 0.033596 0.405088 1.208816 0.930595 1.166674 0.949688)
+ 6.979832 #(0.000000 0.911146 0.440714 1.255454 0.497298 0.711629 0.696436 -0.097445 1.195347 1.407286 1.662950 1.206531 1.198048 0.182847 0.550596 1.356131 0.836275 0.438164 1.000274 1.641813 1.419751 1.889954 0.726837 1.331775 0.103515 1.904545 0.984163 1.726841 1.234783 1.065842 0.323830 1.478871 1.890882 1.741689 1.699695 0.526939 1.468630 1.487722 1.204860 0.033936 0.404950 1.209025 0.928975 1.166571 0.951037)
+ 6.944207 #(0.000000 0.920579 0.452707 1.240876 0.499135 0.697832 0.684659 -0.087771 1.197543 1.416396 1.668008 1.191853 1.207223 0.188561 0.556223 1.356141 0.817189 0.449379 1.011416 1.645856 1.433683 1.879498 0.732017 1.342510 0.104122 1.909571 0.984383 1.730891 1.247164 1.074595 0.318371 1.491736 1.879552 1.727429 1.712053 0.543578 1.462606 1.470618 1.194373 0.030170 0.415244 1.211404 0.935061 1.181182 0.951995)
)
;;; 46 odd -------------------------------------------------------------------------------- ; sqrt 6.7823
@@ -1773,7 +1853,8 @@
8.1455316543579 #(0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1)
7.105251 #(0.000000 1.353994 0.413905 0.999377 1.057068 0.709675 0.615860 0.113982 1.576267 0.179678 1.426822 0.981541 -0.162204 0.434777 1.205347 1.524673 1.000438 0.303430 0.718528 1.199417 0.734265 0.168285 1.707809 1.461986 0.687343 1.450258 0.999465 -0.087951 1.790205 0.193916 1.555009 1.838407 0.970275 1.651515 1.399755 1.688215 1.322336 0.182176 0.028034 1.214377 1.744514 0.477277 0.913755 0.573956 1.002048 1.301328)
- 7.056980 #(0.000000 0.732205 0.806622 0.953122 0.724744 1.389338 0.114124 -0.145148 0.545717 1.742891 0.623985 0.426454 1.040192 1.172395 0.025247 0.728278 0.667912 0.003832 0.816702 1.019282 1.628753 0.420038 0.923681 0.463370 0.952739 1.509040 0.621375 1.301850 0.674221 1.468719 1.018642 0.829521 0.204446 1.878302 0.777151 0.267867 0.015030 1.559634 1.959647 0.437641 0.345667 -0.218233 -0.011718 1.627490 1.038455 0.812980)
+ 7.055138 #(0.000000 0.733103 0.806231 0.952954 0.725909 1.387841 0.114193 -0.146457 0.545410 1.742840 0.624185 0.426819 1.039217 1.172116 0.024410 0.729554 0.667626 0.002466 0.817086 1.019928 1.627785 0.418636 0.924915 0.463978 0.952578 1.509621 0.622377 1.301657 0.674035 1.467622 1.018421 0.830168 0.203096 1.877261 0.778034 0.266159 0.015894 1.559157 1.959092 0.437188 0.345487 -0.219486 -0.011925 1.627241 1.039073 0.811953)
+ 7.020408 #(0.000000 0.741050 0.793676 0.954833 0.723080 1.372279 0.100357 -0.163889 0.525177 1.751306 0.629286 0.423593 1.042638 1.158840 0.021745 0.744212 0.645538 -0.011329 0.804634 1.030294 1.619291 0.417666 0.931262 0.459672 0.937345 1.521062 0.614937 1.304723 0.675889 1.473901 1.021078 0.835859 0.206203 1.869463 0.774349 0.262929 0.016355 1.568586 1.965653 0.430126 0.353767 -0.220174 -0.014694 1.626401 1.037468 0.808183)
)
;;; 47 odd -------------------------------------------------------------------------------- ; sqrt 6.8556
@@ -1781,22 +1862,21 @@
8.336971282959 #(0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0)
7.210873 #(0.000000 1.566854 1.559342 1.445736 1.743531 1.716836 1.127417 0.668001 1.528054 0.174443 0.272253 -0.014976 1.790296 1.376529 0.342231 1.723531 1.448614 0.625536 0.532794 1.251120 1.472450 0.700758 1.236925 0.393791 1.737381 1.495383 1.315233 0.281691 0.613711 0.576631 0.821529 1.851651 1.045857 0.247443 0.699845 0.467117 -0.093990 0.590323 1.217594 -0.076570 1.358863 1.779697 -0.068622 0.698093 0.197578 1.317204 0.013950)
- 7.152778 #(0.000000 0.802539 0.478505 0.996158 0.329905 0.787665 0.017978 1.291011 1.543641 1.286826 -0.065474 1.874702 -0.075959 0.094259 0.185982 0.108410 -0.028402 1.342143 1.233085 0.229126 -0.023319 1.605695 1.729677 0.405210 1.302821 -0.066922 0.369812 1.688033 1.179093 0.850823 0.341212 0.894368 0.608893 1.584306 0.278486 0.047505 0.667264 0.833086 1.861218 1.887145 1.497750 0.520486 1.514876 0.767436 1.203712 1.514455 0.342852)
+ 7.151089 #(0.000000 0.802179 0.479058 0.995523 0.330857 0.787309 0.018849 1.290389 1.543898 1.286376 -0.065478 1.873807 -0.075856 0.095059 0.185679 0.108381 -0.027830 1.343002 1.233320 0.229301 -0.024179 1.606192 1.729972 0.404980 1.302085 -0.066593 0.370262 1.688240 1.178420 0.850625 0.340801 0.893433 0.609800 1.585127 0.279230 0.047129 0.667544 0.832286 1.860982 1.887130 1.497861 0.520610 1.514135 0.766858 1.202981 1.515261 0.342115)
)
;;; 48 odd -------------------------------------------------------------------------------- ; 6.9282
#(48 8.35563071219336 #(0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1)
7.246462 #(0.000000 1.356698 -0.062399 0.419335 0.018912 0.019469 1.086834 1.375876 0.814929 1.060293 1.712420 0.396926 0.730832 0.467653 0.801802 1.172900 0.374224 1.608410 1.858565 -0.107371 0.553667 1.618892 -0.030210 1.701272 0.760689 0.150761 -0.015109 0.877602 1.005512 1.608485 1.126036 1.486738 0.755311 1.289597 1.205930 0.058019 1.997882 1.013411 1.721191 1.269691 1.807633 1.364924 1.101733 0.778774 1.718707 1.730713 -0.031059 1.492536)
- 7.212032 #(0.000000 1.237542 1.016289 -0.008794 1.613070 0.162603 1.880026 1.780945 0.301613 0.874645 0.491036 1.502274 0.682971 1.619061 0.968495 1.702371 0.162642 0.873322 0.405301 1.110223 0.194520 0.969599 1.317959 1.833424 0.175645 1.540437 1.050792 1.906901 1.186019 1.825891 0.280624 0.538284 0.952445 0.764398 0.544413 0.171992 0.167155 0.375878 1.622817 1.498515 0.549150 0.201768 0.274760 1.329950 0.206522 0.540317 0.162611 1.779831)
+ 7.208597 #(0.000000 1.237786 1.016918 -0.009567 1.613205 0.162287 1.880479 1.780426 0.301880 0.874514 0.490620 1.501849 0.682691 1.619168 0.967932 1.703056 0.162830 0.873905 0.406192 1.110879 0.195345 0.969691 1.318815 1.834296 0.174727 1.541086 1.050589 1.907489 1.185228 1.825802 0.281013 0.537450 0.952557 0.763734 0.544912 0.171646 0.166408 0.374909 1.623496 1.498652 0.549437 0.200991 0.274116 1.330253 0.205626 0.539603 0.162525 1.779500)
)
;;; 49 odd --------------------------------------------------------------------------------
#(49 8.57458718352971 #(0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0)
7.434920 #(0.000000 1.125898 0.150074 1.046158 0.962446 1.306626 0.103665 0.653682 1.788801 0.037785 1.543260 0.755454 1.626361 0.904741 -0.121968 1.522476 -0.211749 0.009130 0.232027 0.865627 0.510112 1.776874 1.854081 -0.068569 1.679078 -0.260736 0.476878 1.267880 0.914970 1.402339 1.212345 0.456306 1.109712 1.090381 0.135938 1.900427 1.411989 0.728803 0.602931 0.285995 1.442410 0.612579 0.888404 1.459891 0.396330 1.364427 1.371237 1.163607 1.483597)
-
- 7.334367 #(0.000000 -0.060248 -0.051440 1.098592 1.516898 0.281237 -0.039714 -0.041060 1.310199 1.673415 0.797463 0.575275 0.815857 1.443536 0.201131 0.821659 1.684012 1.480626 1.880031 1.500368 1.050553 0.662734 1.062321 1.007990 1.363656 -0.048400 0.053406 1.252487 1.487752 1.695062 1.264501 0.221767 1.933076 1.071933 0.763275 1.628958 1.136746 1.325168 0.753630 1.876001 0.476280 1.530687 0.609868 0.315255 1.354326 0.120847 0.523249 -0.012206 0.202785)
+ 7.331901 #(0.000000 -0.060748 -0.051246 1.098496 1.517879 0.281300 -0.038960 -0.040114 1.310417 1.674211 0.798244 0.574534 0.814930 1.443570 0.201006 0.822614 1.684704 1.480120 1.879506 1.500216 1.050687 0.662741 1.062510 1.008098 1.364623 -0.048640 0.054305 1.253128 1.488240 1.695301 1.263575 0.221657 1.933573 1.071990 0.764020 1.629694 1.136321 1.325025 0.753190 1.876201 0.476066 1.531167 0.609249 0.314878 1.354084 0.120420 0.523074 -0.012200 0.201853)
)
;;; 50 odd --------------------------------------------------------------------------------
@@ -1805,23 +1885,21 @@
8.711 #(0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1)
7.519331 #(0.000000 0.293426 0.360224 0.076166 0.939479 0.623387 0.941058 0.905040 1.028452 0.321975 0.758001 0.061474 1.120108 0.847094 -0.157186 0.649910 1.783136 0.552384 1.451250 0.436900 0.941433 1.015998 0.132368 -0.236041 1.927183 1.298731 1.635014 1.757997 1.907563 1.590912 1.245579 0.572586 1.287736 0.654530 1.656919 0.751059 0.616771 0.064328 1.125030 0.995342 0.911824 -0.002450 1.258100 0.020071 -0.104777 1.108824 1.195184 -0.077440 0.466585 1.031158)
-
- 7.403909 #(0.000000 1.268136 1.224001 0.230309 1.359647 1.740692 1.956030 0.938160 0.274325 0.947775 1.008820 0.932926 1.732978 1.523082 1.206418 1.749418 0.092342 0.749660 1.594663 1.069566 0.045479 1.456997 0.498233 1.040727 0.667352 1.329497 1.718179 1.784571 0.161449 1.736706 1.894618 1.567364 1.573066 1.868512 1.132562 0.858258 0.309640 1.740088 1.867448 0.743010 1.388644 0.750005 0.280456 0.717011 1.322724 0.702479 0.589053 0.020064 1.117555 1.962754)
+ 7.402824 #(0.000000 1.268920 1.223801 0.230427 1.359701 1.741882 1.956826 0.938227 0.274600 0.948188 1.008551 0.933850 1.732935 1.523539 1.206939 1.749317 0.092837 0.750137 1.594612 1.069498 0.045122 1.456296 0.497114 1.041062 0.668132 1.329099 1.719051 1.784736 0.160829 1.737093 1.894892 1.567318 1.572858 1.868876 1.132538 0.857664 0.311118 1.740965 1.866357 0.741713 1.388450 0.748994 0.279885 0.716043 1.323280 0.703842 0.587755 0.020035 1.116783 1.962308)
)
;;; 51 odd --------------------------------------------------------------------------------
#(51 8.7549686431885 #(0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0)
8.5829010009766 #(0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0)
- 7.519602 #(0.000000 0.896824 1.151091 0.524473 1.787388 0.762424 0.091237 0.207689 0.277198 0.276201 1.188731 -0.015758 1.001432 1.309201 0.826244 1.033174 0.795932 0.692331 1.032319 0.770012 0.760095 1.694672 1.197867 0.433901 1.075359 -0.082071 0.671897 1.203706 1.748152 0.330008 0.427145 0.040344 1.385220 0.382380 1.031839 0.722710 0.136224 0.213895 0.126941 1.231846 1.281262 1.727129 0.033238 -0.019043 0.670295 0.324701 0.272263 1.463485 1.027024 0.393164 1.112236)
+ 7.517092 #(0.000000 0.896944 1.151842 0.525028 1.787180 0.761493 0.090987 0.208783 0.275073 0.275517 1.188620 -0.015038 1.003295 1.310220 0.826285 1.033871 0.795839 0.692864 1.031050 0.770844 0.760416 1.694438 1.195864 0.434548 1.074427 -0.082372 0.670606 1.205088 1.748388 0.331633 0.426799 0.039210 1.383537 0.381055 1.031545 0.721045 0.134319 0.215087 0.126331 1.233099 1.280225 1.725641 0.034393 -0.019845 0.669770 0.323424 0.270922 1.464363 1.025975 0.392120 1.110631)
)
;;; 52 odd --------------------------------------------------------------------------------
#(52 9.0527429580688 #(0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0)
8.8599758148193 #(0 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1)
- 7.714055 #(0.000000 -0.050632 0.662811 0.467377 0.252704 0.262276 0.785339 0.680656 0.910141 0.151524 1.148948 0.712550 1.455463 0.430422 1.823462 0.681790 1.300081 0.651944 0.417154 0.467551 1.190370 1.560941 1.818275 1.056287 1.012876 0.129472 1.431323 1.600123 1.435866 -0.023097 1.455161 1.178047 0.416734 0.680233 0.760451 0.395549 0.772646 0.217496 0.486993 1.646781 0.026270 0.962251 0.314215 0.856212 1.206403 1.652964 1.741714 0.643485 0.070833 0.210605 1.157210 -0.181021)
- 7.688232 #(0.000000 -0.044684 0.911465 0.730577 0.507073 -0.102942 -0.063769 0.729659 0.820932 1.938578 1.627774 0.461239 0.416580 -0.135807 1.137576 0.224666 0.991230 0.174475 0.445843 1.602109 1.839682 1.355443 0.825528 0.547186 1.324988 0.981396 0.134306 0.585754 0.981383 0.308063 0.580748 1.013960 0.108370 -0.009736 0.244825 1.104782 0.887939 1.620650 0.829143 -0.055516 0.793732 0.785644 0.460954 1.081261 1.674913 1.490429 1.484542 1.721351 0.349429 1.920256 1.866534 0.228933)
+ 7.682637 #(0.000000 -0.043655 0.911335 0.731033 0.506944 -0.101955 -0.062441 0.730189 0.821289 1.938292 1.628803 0.462375 0.416428 -0.135129 1.138001 0.223534 0.992270 0.174533 0.444929 1.601486 1.839063 1.355008 0.827051 0.548603 1.323296 0.981430 0.134622 0.585840 0.981865 0.308232 0.581171 1.014624 0.109262 -0.008922 0.244369 1.105186 0.887633 1.619763 0.828552 -0.055851 0.794405 0.784596 0.461835 1.081011 1.674111 1.490474 1.484268 1.720189 0.348967 1.920303 1.866488 0.228300)
)
;;; 53 odd --------------------------------------------------------------------------------
@@ -1831,15 +1909,16 @@
9.037 #(0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0)
7.834630 #(0.000000 1.360462 1.392837 1.543932 1.283103 0.249470 1.601785 1.803543 1.826099 0.107735 0.087229 1.015075 0.712334 -0.022305 1.658595 1.262305 0.311766 0.022270 1.578199 0.564494 1.066978 0.743752 1.114000 1.567511 0.205262 1.788122 1.987955 1.361881 1.689935 1.109428 0.524184 1.741065 1.840446 0.523134 1.134719 0.847779 1.290054 1.848262 1.333341 0.832564 1.522739 0.819513 1.488442 0.392568 0.715382 0.352190 0.189198 0.393049 1.369737 -0.171228 0.176508 0.814655 1.690536)
- 7.775983 #(0.000000 1.173474 0.065894 0.499234 -0.019868 -0.027712 0.059444 0.454383 1.461044 0.942211 -0.065599 1.125218 1.627078 1.162044 0.059067 0.540707 0.681250 0.999693 1.667729 1.314495 0.983733 -0.025272 0.418874 0.265631 0.900019 0.258699 0.538071 0.549159 1.953838 -0.321141 0.815990 1.338180 0.060125 1.268029 1.332743 0.416540 0.549389 0.135477 1.738502 1.355493 1.994801 -0.011196 1.269488 0.528770 1.624736 -0.300765 1.717716 -0.149603 1.019899 1.697380 0.044871 0.650343 0.131386)
- 7.715727 #(0.000000 1.178766 0.068550 0.502126 -0.026909 -0.032589 0.057608 0.456059 1.472825 0.926902 -0.073854 1.126899 1.628091 1.149096 0.069350 0.544590 0.677005 1.006516 1.663454 1.301340 0.989647 -0.037817 0.409097 0.254629 0.893150 0.254016 0.549792 0.543339 1.955087 -0.322900 0.811893 1.337802 0.065863 1.273276 1.346204 0.411117 0.541915 0.134594 1.759099 1.360263 0.006471 -0.012676 1.271201 0.527626 1.633032 -0.293406 1.727945 -0.149517 1.016172 1.693416 0.039324 0.629695 0.132403)
+ 7.713435 #(0.000000 1.178959 0.067806 0.502157 -0.026648 -0.031410 0.058427 0.457485 1.473761 0.926626 -0.074314 1.125416 1.627519 1.148429 0.069298 0.544750 0.676168 1.007830 1.661671 1.300009 0.988492 -0.039123 0.408883 0.254918 0.892108 0.253352 0.550758 0.542154 1.954538 -0.323248 0.812312 1.336536 0.067335 1.273545 1.346577 0.411381 0.541955 0.135632 1.758557 1.360932 0.006985 -0.011929 1.272238 0.527847 1.634777 -0.294481 1.728841 -0.150329 1.014958 1.692520 0.039509 0.629910 0.132426)
+ 7.689580 #(0.000000 0.990251 0.867937 1.244600 0.208911 1.279344 0.616629 1.044762 0.279156 0.735539 0.115579 0.649409 1.405164 0.122059 0.385224 0.128271 0.384911 1.629693 1.176172 1.330417 0.696337 0.288869 1.852715 0.563725 1.219992 1.291522 0.104688 0.970235 1.076785 1.566071 0.074323 0.336871 1.666760 0.891367 1.214496 1.391365 0.874530 -0.036273 1.203800 0.538264 1.918580 0.007888 0.719040 0.112102 0.157491 0.954765 0.781931 0.740961 0.943684 1.724332 0.611499 0.551186 0.477470)
)
;;; 54 odd --------------------------------------------------------------------------------
#(54 9.3444428264144 #(0 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1)
9.025 #(0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0)
- 7.910330 #(0.000000 0.575258 1.649658 0.442014 0.029795 0.243346 0.116626 -0.112354 1.927740 1.608955 0.829859 1.640685 1.877716 1.641381 1.373904 0.651952 0.060238 1.987451 0.047004 1.746838 0.065108 0.428248 1.371379 0.374643 1.283657 0.053324 1.524522 0.163521 0.141117 0.590351 1.313398 0.228389 0.710968 0.492233 1.177849 1.365549 1.975045 1.575319 1.278401 1.422176 0.656573 0.444517 1.187395 0.234191 1.759340 1.577467 0.214854 0.367760 1.366992 0.497898 0.154473 1.301473 1.646288 0.575958)
+ 7.909090 #(0.000000 0.575533 1.650151 0.442556 0.029264 0.242895 0.117160 -0.111650 1.927840 1.609010 0.829413 1.641295 1.878284 1.641225 1.374209 0.651875 0.060303 1.987995 0.046630 1.746432 0.065020 0.428144 1.371651 0.374446 1.283114 0.053469 1.525505 0.164243 0.140917 0.591320 1.313132 0.228674 0.710780 0.492877 1.177965 1.365714 1.974894 1.575443 1.278166 1.422311 0.656210 0.444247 1.188187 0.234190 1.759073 1.576591 0.214001 0.367049 1.366017 0.498172 0.155327 1.301384 1.645971 0.576034)
+ 7.798340 #(0.000000 0.369150 1.513529 0.082942 1.789172 0.097471 1.290113 1.401434 0.619870 1.009121 0.204336 1.145587 0.405131 0.108622 0.108445 -0.018343 1.368958 0.075617 0.232426 0.550400 1.800691 0.078602 1.929016 1.538974 1.366845 1.264477 0.329007 1.032469 1.929959 1.623550 0.567283 1.336113 0.274450 0.699206 1.827868 0.882880 0.533758 1.170659 0.722641 0.085742 1.483678 0.880607 0.825646 1.805215 1.466636 0.620141 1.006481 1.375457 1.483774 1.631414 1.921871 0.149365 0.682194 0.457984)
)
;;; 55 odd --------------------------------------------------------------------------------
@@ -1847,7 +1926,7 @@
9.2039985656738 #(0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1)
7.967501 #(0.000000 0.114824 0.754288 1.568503 -0.000073 1.845111 1.401789 0.385564 1.306605 1.187419 0.409546 0.220689 1.197884 0.775952 1.483899 1.169252 0.288456 0.795382 1.958528 0.303768 1.126547 1.730406 1.573922 1.385950 0.233854 0.712846 0.724411 0.479079 0.401210 -0.031541 0.746591 -0.037899 0.684571 0.243932 1.210741 1.203812 0.743919 1.623134 1.380966 1.398503 0.030757 0.075035 1.453219 1.009474 1.271799 0.511996 1.141909 1.582994 1.116151 1.177404 0.919157 1.729440 0.212386 1.989862 1.150567)
- 7.910520 #(0.000000 0.303356 0.284732 1.364134 0.562013 1.123627 1.266544 0.037657 1.359230 0.302112 1.826974 0.709257 0.134848 1.852369 0.065364 0.543333 1.676573 1.015094 1.307492 1.273117 -0.095700 1.900101 0.188408 0.172814 1.599171 0.152627 0.256156 1.505655 1.429365 0.546906 0.658420 0.306947 0.060895 0.343801 1.131545 0.910803 1.496877 0.282135 -0.017105 1.088523 1.016455 -0.069558 1.380659 1.307453 0.663913 1.285773 0.200557 0.716017 0.314293 0.536025 0.205587 1.430352 0.363950 0.603497 1.856256)
+ 7.906425 #(0.000000 0.303952 0.284916 1.364360 0.562420 1.124241 1.267620 0.036958 1.359090 0.301303 1.826083 0.709550 0.134838 1.852292 0.064210 0.542219 1.676359 1.013692 1.306873 1.273312 -0.095616 1.901121 0.188634 0.172644 1.598746 0.151905 0.256190 1.505731 1.429952 0.546210 0.657956 0.308010 0.059913 0.344425 1.131606 0.911610 1.497666 0.281294 -0.016088 1.088509 1.015652 -0.069609 1.380369 1.306796 0.663457 1.284467 0.199430 0.717592 0.313701 0.534990 0.204868 1.429939 0.364894 0.603470 1.857080)
)
;;; 56 odd --------------------------------------------------------------------------------
@@ -1855,7 +1934,7 @@
9.3816785812378 #(0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0)
8.014360 #(0.000000 1.797743 1.790929 -0.063244 1.399761 0.825467 1.042878 0.871116 0.660103 0.792084 1.323592 1.775920 0.351764 0.773747 0.912164 0.801864 1.136307 0.033185 1.586113 0.536880 -0.077324 0.430168 0.174323 0.399851 1.429710 0.251935 -0.137558 0.679380 0.477708 1.540522 0.662388 1.519768 -0.242728 -0.073217 1.093520 0.871057 0.321485 0.164858 0.286317 0.927138 0.308282 0.236823 0.640929 -0.015174 -0.119175 1.253268 0.209654 0.781356 1.431116 0.571652 0.052428 0.983550 0.980338 0.561459 0.703409 1.606571)
- 7.941634 #(0.000000 0.397223 0.924236 1.370991 0.473464 1.513061 1.836065 1.675193 0.664352 0.909631 0.406437 0.281337 0.930527 0.882434 0.578524 1.028726 1.092458 0.803354 1.444744 1.411536 0.062362 1.881536 1.315464 1.375573 1.654070 0.250005 0.588422 1.629905 1.242836 -0.133319 1.505444 1.607611 0.372976 1.588192 0.998292 1.225360 1.459247 1.062589 1.019465 0.243429 0.358775 0.003558 1.041333 0.247977 1.058884 1.393111 -0.009422 1.214160 0.429869 1.217787 1.113325 1.853601 0.663600 1.735781 1.436683 1.061046)
+ 7.938712 #(0.000000 0.398446 0.923787 1.370687 0.474513 1.512124 1.836648 1.675730 0.662982 0.910146 0.406888 0.280460 0.930743 0.882485 0.576908 1.027832 1.093424 0.802764 1.445730 1.412375 0.061892 1.881226 1.315258 1.374663 1.654078 0.250926 0.587919 1.631358 1.242844 -0.134307 1.504610 1.607906 0.373135 1.588130 0.997187 1.226509 1.459703 1.061631 1.019665 0.243831 0.359597 0.002891 1.041917 0.247145 1.058143 1.393763 -0.010811 1.214368 0.428813 1.217360 1.113211 1.852395 0.663285 1.735710 1.436988 1.061403)
)
;;; 57 odd --------------------------------------------------------------------------------
@@ -1864,7 +1943,7 @@
9.3903837203979 #(0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0)
8.153561 #(0.000000 1.684511 0.395320 1.559500 0.099704 0.379289 0.037223 0.916346 0.377018 0.527812 0.616527 0.712142 1.804818 0.189502 1.126051 -0.056602 1.721419 0.847869 1.633289 1.342478 0.627159 1.355924 1.769068 0.758602 1.158468 0.123753 1.706511 1.276749 1.451713 1.194448 1.565933 0.473307 1.535506 0.764639 0.424671 1.801553 0.643764 1.175661 0.792978 1.153771 0.427617 0.169094 0.235485 1.603950 1.281174 1.713134 0.235119 0.879894 0.719225 1.264748 1.587799 1.288087 0.479907 0.239266 1.664803 0.719998 0.903985)
- 8.102543 #(0.000000 0.084195 1.298260 0.689559 0.668305 0.007038 1.693133 0.960202 1.670624 1.309163 1.046734 1.075539 0.561516 1.386358 1.553576 0.976968 -0.126306 0.798715 1.518869 0.711201 0.909652 0.647436 1.524691 0.129831 1.803590 0.558057 -0.085312 1.980404 0.200155 1.477037 0.414505 0.092950 -0.017996 0.454297 0.410445 0.916662 1.309993 1.421185 0.461349 1.201596 0.691731 0.015840 1.917660 1.562344 0.284236 0.309896 1.133537 0.405869 1.394479 1.441479 0.309523 0.860617 0.729015 0.430734 0.355031 0.781365 1.879831)
+ 8.101129 #(0.000000 0.084141 1.298632 0.689329 0.668897 0.007139 1.693526 0.959778 1.670625 1.308471 1.046444 1.074921 0.562204 1.387144 1.553328 0.977090 -0.125950 0.799193 1.519579 0.711553 0.909386 0.647693 1.524859 0.130158 1.802963 0.558724 -0.085391 1.980487 0.199875 1.477940 0.415419 0.093680 -0.018093 0.454996 0.409679 0.915780 1.309664 1.421015 0.460452 1.200684 0.691653 0.015745 1.917467 1.561822 0.284497 0.310031 1.134023 0.405953 1.393499 1.441258 0.309271 0.860366 0.729197 0.431665 0.355042 0.781152 1.880475)
)
;;; 58 odd --------------------------------------------------------------------------------
@@ -1873,7 +1952,7 @@
9.5893135070801 #(0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0)
8.111595 #(0.000000 0.114015 0.556241 0.741930 1.407205 1.027319 0.685372 1.279761 1.198109 0.093106 -0.492978 0.290524 0.836910 1.383532 0.394064 1.818496 1.814179 1.180940 1.646749 1.363393 0.601153 1.348309 0.800538 0.558880 1.187430 0.268125 1.172620 0.378465 0.606149 1.894903 1.882951 0.719611 1.441954 1.576337 1.384013 0.845091 0.225454 1.741272 0.957008 1.475760 -0.019393 1.501759 0.900295 0.881454 1.057711 1.385935 -0.033557 1.470713 0.659316 1.526338 0.368676 1.208865 1.282096 0.755442 0.746082 0.835197 -0.213420 1.560142)
- 8.104014 #(0.000000 0.549281 0.086517 1.264772 0.465544 0.764273 0.521435 1.007579 1.045055 1.052228 1.740954 1.569640 0.641433 1.420860 1.768730 0.366130 0.922469 1.407245 1.899961 1.485436 0.253521 1.898237 1.469262 1.326221 0.547414 1.440755 0.147975 0.157790 0.719988 1.157052 1.123129 0.867578 0.108885 0.253854 1.906503 1.158561 -0.029354 1.955451 1.617777 -0.069850 1.440594 0.594478 0.012427 0.643666 1.084991 0.587193 0.448398 1.675581 0.418225 1.614614 1.960679 1.227433 -0.165603 0.384477 0.888028 0.212679 1.755391 0.002719)
+ 8.100582 #(0.000000 0.549234 0.087145 1.264889 0.466587 0.765130 0.520970 1.007596 1.046374 1.053457 1.739632 1.567989 0.642563 1.420450 1.769253 0.367054 0.922793 1.407937 1.900932 1.486044 0.253497 1.898294 1.469214 1.326468 0.546837 1.440613 0.147606 0.157635 0.719109 1.156565 1.123249 0.867987 0.109050 0.254212 1.907040 1.157367 -0.027980 1.957240 1.617104 -0.069823 1.441395 0.594711 0.014112 0.642878 1.085538 0.587530 0.448379 1.675420 0.417987 1.616348 1.961726 1.227856 -0.166913 0.385256 0.886237 0.210802 1.756041 0.003336)
)
;;; 59 odd --------------------------------------------------------------------------------
@@ -1881,14 +1960,14 @@
9.6750946044922 #(0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1)
9.5173864364624 #(0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0)
- 8.163006 #(0.000000 1.332966 0.504615 1.083385 0.404246 0.348617 0.092370 0.710989 1.331970 0.475102 -0.204055 1.950089 1.301396 1.250357 0.478723 1.293182 0.668105 1.599798 1.760072 1.884794 1.707581 0.278889 0.033249 1.533197 0.340500 1.320517 0.914476 -0.070035 0.276318 1.000616 0.915383 1.457468 0.803667 1.256911 0.584521 0.275815 0.936260 0.750285 -0.020673 0.011639 1.176304 0.737562 1.244283 1.405087 0.199947 1.685316 1.623335 0.882710 1.242842 1.288195 0.494408 1.244403 0.428433 0.727572 1.535530 1.088565 0.835189 1.252530 1.565460)
+ 8.161418 #(0.000000 1.333321 0.505391 1.084170 0.404634 0.347363 0.092509 0.711329 1.332337 0.476244 -0.203004 1.949851 1.300907 1.250102 0.479638 1.293236 0.668816 1.599089 1.760865 1.884572 1.706751 0.278772 0.032763 1.533515 0.340271 1.322303 0.913987 -0.070984 0.275684 1.000174 0.915668 1.456247 0.804542 1.257801 0.583877 0.275638 0.936324 0.749819 -0.022089 0.010769 1.176176 0.737252 1.244013 1.405869 0.199125 1.684550 1.622470 0.882994 1.241705 1.287343 0.493800 1.245390 0.428488 0.726116 1.535415 1.087613 0.834624 1.251174 1.565530)
)
;;; 60 odd --------------------------------------------------------------------------------
#(60 9.8824768066406 #(0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0)
9.6560277938843 #(0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0)
- 8.319737 #(0.000000 0.318099 0.605823 1.664639 1.168070 0.118289 1.043661 0.823106 0.477742 1.218198 0.072265 1.392531 -0.138225 1.537215 1.311594 -0.135292 1.402103 0.296569 0.949167 -0.317985 1.148076 0.205648 0.904708 1.194237 1.873597 0.060944 0.017305 1.859746 0.443375 1.497565 1.571748 0.124388 1.918810 1.704448 0.559820 0.276335 1.516547 1.381087 0.517588 0.050710 0.226933 1.236111 1.605073 0.118927 1.537462 1.500565 1.148281 0.575399 -0.040215 0.798169 1.521144 1.003702 1.287268 0.462177 -0.140160 1.605161 0.033633 0.840164 0.884544 0.591685)
+ 8.317339 #(0.000000 0.317806 0.606795 1.664404 1.168997 0.118160 1.044163 0.822238 0.477262 1.218638 0.071405 1.392847 -0.138405 1.537589 1.310749 -0.135302 1.403099 0.296339 0.949443 -0.317675 1.148963 0.205823 0.904342 1.195105 1.874018 0.061364 0.017499 1.858769 0.443848 1.496992 1.572098 0.123926 1.918179 1.704858 0.560198 0.275793 1.516760 1.381010 0.518017 0.049893 0.227152 1.236288 1.604829 0.118576 1.536713 1.500649 1.148137 0.575976 -0.040473 0.797609 1.520366 1.003416 1.286463 0.461885 -0.139780 1.605172 0.033069 0.839984 0.885458 0.592349)
)
;;; 61 odd --------------------------------------------------------------------------------
@@ -1906,7 +1985,7 @@
9.8772821666628 #(0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0)
9.7982149124146 #(0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0)
- 8.462081 #(0.000000 1.831029 -0.170121 0.234194 0.680914 0.186206 1.497153 1.178416 1.483370 0.832212 0.291090 0.278622 0.110686 1.336085 0.731604 0.747964 0.381740 0.356972 0.613200 0.266073 -1.842733 1.672751 0.243049 1.762555 0.124118 0.428281 0.757933 0.183736 1.430024 0.513662 1.440257 1.492825 1.255469 0.794635 0.814134 1.301492 1.507757 0.158119 0.452990 0.233160 1.141402 1.569304 0.248735 0.738799 1.356493 0.728250 1.041034 1.239683 -0.135187 0.832117 0.646592 1.618959 0.422985 1.424562 1.562099 0.919244 0.013781 1.103955 0.985473 0.417069 1.573809 0.789495)
+ 8.460654 #(0.000000 1.832640 -0.170370 0.233285 0.681182 0.187354 1.496750 1.178176 1.483692 0.832870 0.292431 0.278444 0.109484 1.336036 0.731622 0.747613 0.381038 0.357211 0.613207 0.266071 -1.842751 1.673389 0.243196 1.764182 0.125303 0.428135 0.759384 0.184504 1.430579 0.513582 1.441032 1.493168 1.255571 0.793496 0.813952 1.300297 1.507259 0.159288 0.453838 0.233620 1.141470 1.570258 0.249228 0.737964 1.356224 0.728901 1.040047 1.238948 -0.135762 0.830270 0.646987 1.618604 0.422231 1.425821 1.562763 0.918023 0.012539 1.104240 0.985253 0.417711 1.573628 0.789245)
)
;;; 63 odd --------------------------------------------------------------------------------
@@ -1914,7 +1993,7 @@
10.191082449969 #(0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0)
9.8550319671631 #(0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0)
- 8.461614 #(0.000000 1.640780 0.175777 0.917173 0.641941 0.524713 0.536959 1.082746 1.144099 1.065953 1.795730 0.062080 -0.284734 0.683723 1.464051 0.340103 0.152537 1.293118 0.318408 0.981286 1.622180 0.333507 1.773550 0.932944 1.128945 1.621191 0.831683 1.913568 0.513998 0.835119 0.586353 0.104530 0.610322 1.620442 0.021538 1.697224 1.301631 1.506066 1.537481 1.609330 1.651659 1.486882 0.820735 0.247452 1.653700 0.068599 1.680675 1.063355 1.415147 0.584759 0.821563 1.338104 0.161708 -0.051376 1.300059 1.125909 0.954924 0.280118 1.445107 0.831289 0.208370 1.988853 0.831662)
+ 8.460755 #(0.000000 1.639292 0.176233 0.916229 0.641025 0.525167 0.535945 1.083769 1.144226 1.066865 1.795430 0.061627 -0.286391 0.684001 1.464117 0.339137 0.152513 1.294002 0.318708 0.979688 1.623882 0.333727 1.774740 0.933490 1.130231 1.621426 0.832979 1.914393 0.513784 0.835219 0.587734 0.105476 0.610508 1.620250 0.021508 1.697842 1.300977 1.506050 1.537375 1.610695 1.651772 1.486161 0.820440 0.246301 1.654201 0.067330 1.680503 1.063456 1.415942 0.585214 0.820905 1.338127 0.161170 -0.051331 1.299294 1.125447 0.953663 0.280187 1.445152 0.831049 0.207146 1.988868 0.831390)
)
;;; 64 odd --------------------------------------------------------------------------------
@@ -1924,20 +2003,20 @@
10.022200584412 #(0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1)
10.0 #(0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0)
- 8.611195 #(0.000000 0.977374 1.792452 1.871521 -0.096103 0.492764 0.969200 -0.161768 1.418632 0.226648 0.335981 0.047942 0.073877 1.121710 0.869769 1.390242 0.037050 1.792210 0.541142 0.202562 0.409615 1.967804 1.590269 1.156603 1.846151 1.154937 0.864343 0.102542 0.650425 1.302115 1.461864 1.138949 0.737367 0.735300 0.851333 1.823867 0.967359 0.579555 1.046125 0.427403 0.582299 1.682036 1.305488 0.696540 1.739572 1.365901 0.724420 0.941741 0.171024 0.630346 0.928455 1.415210 0.041930 1.669515 0.538027 1.643312 0.159923 1.062075 0.713332 0.526264 0.965409 0.900846 0.587635 1.131833)
+ 8.556224 #(0.000000 1.003744 0.731363 0.766660 0.485218 0.941603 1.011757 0.134838 0.728962 0.030502 1.292100 1.257487 1.201918 0.020298 0.711953 0.340836 1.069477 -0.005116 1.495906 0.824537 0.573352 0.917142 0.946748 1.806816 0.505255 -0.563909 0.774916 0.512729 1.223463 0.574638 1.724708 1.163253 0.775498 0.256584 1.021859 1.046676 1.269040 0.411499 1.213900 1.741006 0.730506 0.120895 0.103157 0.597352 1.979924 0.049131 0.367899 0.609277 0.661859 1.429276 -0.161692 0.150928 -0.317350 1.546589 0.310544 0.414811 1.402921 1.479464 0.883471 1.085172 0.392052 1.595490 0.390014 0.696688)
)
;;; 65 odd --------------------------------------------------------------------------------
#(65 10.517309434908 #(0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1)
10.169842720032 #(0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1)
- 8.723722 #(0.000000 1.599115 1.316130 1.737730 1.513610 1.053371 0.016555 1.180384 0.074184 1.548940 1.248549 0.496916 0.131116 0.466108 0.562792 1.585342 1.740021 1.946896 0.515124 0.486002 1.899178 -0.001103 1.640605 1.124922 1.380891 1.497316 0.404913 1.526975 0.676735 1.247339 1.969149 -0.022944 -0.203636 0.338114 1.599124 1.544953 1.334541 1.359940 1.534351 1.927591 1.075609 0.321569 0.330294 0.065482 0.773828 1.008403 1.157707 0.828197 0.945079 1.608123 0.124818 0.818068 1.652306 1.414116 0.810198 1.901270 1.938590 0.850347 0.500044 1.573494 0.155915 1.221500 0.432166 1.075581 0.763619)
+ 8.718151 #(0.000000 1.600540 1.317058 1.736539 1.514367 1.054149 0.016899 1.181483 0.075813 1.547879 1.248646 0.496669 0.131433 0.466684 0.564650 1.585576 1.740222 1.946894 0.515908 0.485700 1.898747 -0.001421 1.640587 1.124779 1.380012 1.496139 0.404441 1.525283 0.676454 1.247620 1.970065 -0.023254 -0.205380 0.338411 1.598936 1.545011 1.334056 1.359307 1.534335 1.929437 1.075500 0.322198 0.329587 0.064261 0.774691 1.008562 1.158318 0.828332 0.945159 1.607654 0.125357 0.819775 1.652241 1.415146 0.809011 1.902126 1.938102 0.850236 0.501303 1.572520 0.155689 1.221422 0.433346 1.074674 0.763486)
)
;;; 66 odd --------------------------------------------------------------------------------
#(66 10.212840820553 #(0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0)
- 8.820777 #(0.000000 0.890576 -0.145869 1.113937 1.098858 1.061752 -0.046948 1.039851 1.248246 1.675732 0.136608 1.353369 -0.091455 0.078131 0.659295 -0.091108 1.544814 0.871739 0.385397 0.780639 0.024430 0.706257 0.300843 1.222189 0.200292 1.710326 1.514465 0.416952 1.557882 1.122817 0.359460 0.885401 0.070581 0.023960 1.406548 1.385212 1.474639 0.167363 0.035943 1.832140 1.004257 -0.043256 1.137102 0.120183 0.744663 1.221218 0.708430 0.823887 1.688187 0.097427 1.704611 0.082194 0.469592 0.888888 0.994302 1.593070 1.772324 1.141214 1.139120 1.717982 1.508326 1.172776 0.877670 1.245444 1.569443 0.972394)
+ 8.818083 #(0.000000 0.892187 -0.146460 1.115438 1.098398 1.061158 -0.047919 1.038908 1.248599 1.676237 0.136451 1.352192 -0.090267 0.076447 0.660130 -0.090883 1.545226 0.871833 0.386265 0.780474 0.023982 0.704827 0.299277 1.223293 0.200824 1.711085 1.514450 0.416922 1.558330 1.121638 0.359692 0.885591 0.070808 0.023818 1.406315 1.385524 1.476209 0.166870 0.035356 1.832258 1.004793 -0.043039 1.137749 0.120634 0.744820 1.220302 0.707918 0.824160 1.686631 0.097536 1.705834 0.083039 0.469763 0.888652 0.993641 1.593969 1.773129 1.141953 1.139169 1.718658 1.509289 1.171520 0.877438 1.246152 1.569207 0.971627)
)
;;; 67 odd --------------------------------------------------------------------------------
@@ -1945,14 +2024,14 @@
10.287303318203 #(0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 1)
10.209677696228 #(0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 1)
- 9.039770 #(0.000000 0.400330 0.888203 0.642577 1.521554 0.482390 0.779328 0.214201 -0.233953 1.402997 0.913675 0.138687 1.443279 0.017264 0.865635 1.194500 1.319048 1.102975 1.035370 0.863608 1.764101 0.524170 1.097092 1.247879 0.235846 1.642392 1.851403 0.598571 1.327792 -0.026148 0.051844 -0.104084 1.809862 1.064670 0.704456 0.713076 1.906535 1.189453 1.284672 1.683258 0.743411 0.508857 1.034743 0.809408 0.657804 1.623045 1.471869 0.148672 1.521442 0.922777 1.450178 0.132592 0.891606 0.668664 0.478585 0.664310 0.352314 0.078821 0.679363 1.012831 1.137661 -0.131708 0.853505 0.168866 0.457137 -0.051180 0.689684)
+ 9.037560 #(0.000000 0.399945 0.888012 0.642166 1.521769 0.481523 0.779936 0.214576 -0.234029 1.401037 0.914470 0.138763 1.442274 0.016954 0.866833 1.194652 1.318944 1.101815 1.034905 0.863234 1.763858 0.524351 1.096825 1.248651 0.235129 1.643410 1.850820 0.598952 1.328344 -0.025668 0.052311 -0.104086 1.809401 1.064287 0.703949 0.711563 1.907801 1.190232 1.285796 1.683568 0.744856 0.507500 1.035712 0.808301 0.658284 1.622300 1.471006 0.149122 1.521163 0.922261 1.449365 0.134239 0.891434 0.667904 0.479963 0.664780 0.351447 0.079659 0.678471 1.012523 1.137521 -0.131810 0.854900 0.169147 0.455238 -0.051052 0.689984)
)
;;; 68 odd --------------------------------------------------------------------------------
#(68 10.698028101377 #(0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1)
10.359804316765 #(0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0)
- 9.038716 #(0.000000 0.256110 1.816079 0.976178 0.690062 0.370103 0.161562 0.091455 0.783669 -0.044116 1.539221 0.866854 0.559885 0.796053 0.090450 1.568296 0.106239 0.616478 0.679384 0.807618 1.525357 1.413945 0.511420 0.585468 0.909238 0.778103 0.894716 -0.186953 0.330796 0.254121 0.051538 0.591411 0.317154 0.793355 0.206248 0.528938 1.540678 1.733567 0.933013 1.497882 -0.126381 0.859517 1.594381 0.910485 0.190807 1.415418 1.682070 1.077534 1.389518 1.134313 1.536755 0.226684 1.972015 1.406649 -0.146171 0.534822 -0.010563 1.037128 1.396069 1.827096 0.505208 1.709154 1.210290 0.247641 0.683597 1.200152 0.850232 0.133011)
+ 9.037047 #(0.000000 0.256284 1.816668 0.977057 0.689836 0.369745 0.161286 0.091713 0.783724 -0.043351 1.538972 0.867228 0.560580 0.795614 0.090170 1.569096 0.106055 0.615706 0.679075 0.807355 1.525256 1.413193 0.511384 0.585524 0.908378 0.777947 0.895077 -0.186931 0.330116 0.254327 0.050766 0.592045 0.316522 0.793287 0.207108 0.529469 1.541495 1.733695 0.932046 1.498268 -0.126048 0.859106 1.593707 0.910225 0.190311 1.415932 1.681993 1.077741 1.388597 1.133497 1.536343 0.226665 1.971858 1.406687 -0.145683 0.534419 -0.011245 1.037726 1.396634 1.826967 0.505682 1.708816 1.209425 0.247601 0.683238 1.200371 0.850642 0.133500)
)
;;; 69 odd --------------------------------------------------------------------------------
@@ -1961,14 +2040,14 @@
10.636575441359 #(0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1)
10.452348709106 #(0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1)
- 9.069729 #(0.000000 0.246484 1.072237 1.369373 0.143046 0.965112 -0.496275 1.554676 1.698906 1.354384 0.799154 0.893297 0.656954 1.267436 0.746071 0.451444 1.532307 1.825470 0.285777 -0.092259 1.640597 1.834657 0.239411 0.087514 1.147828 1.314290 -0.260248 1.440047 1.637055 0.010507 0.147466 0.737613 1.022889 0.780987 1.661204 1.680622 0.915218 1.192512 0.661148 0.987080 1.734464 0.733534 0.230113 1.734136 1.485671 1.500176 0.580057 0.807663 0.215239 0.993269 0.872452 0.732294 1.767051 0.801065 0.506258 1.174075 1.464125 0.481717 1.563162 0.709557 1.387205 0.688789 0.172141 0.709131 0.055386 1.649288 0.988950 1.790251 0.433639)
+ 8.968883 #(0.000000 1.673496 1.523485 0.007287 0.171302 0.473747 0.683465 1.333337 0.981720 0.100030 1.647188 0.617282 1.150903 1.261565 1.143270 1.000422 0.294007 0.183636 0.336228 0.148010 1.823220 0.177454 0.713756 1.600356 0.863222 0.527960 1.413471 1.765623 0.818723 0.285238 1.292676 -0.054440 0.394081 1.450903 1.995427 1.545600 1.114425 1.469540 1.387927 0.373034 1.570064 0.888101 0.217276 0.083735 0.808897 1.009471 0.884329 1.857603 0.567631 0.867504 0.020526 0.114027 1.424830 0.570467 0.871690 0.966437 -0.035976 0.654950 1.348777 1.045671 0.736412 0.572491 -0.073660 0.907793 1.212384 0.767884 0.605340 1.119910 0.721177)
)
;;; 70 odd --------------------------------------------------------------------------------
#(70 11.087729454041 #(0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1)
10.431521047498 #(0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1)
- 9.065731 #(0.000000 1.049012 0.476637 -0.285235 0.288697 0.903173 1.166186 -0.041827 1.679621 1.376992 1.516820 0.071317 -0.054160 1.035675 0.002182 -0.257401 0.419229 0.206086 0.845396 -0.019581 -0.003738 0.503637 0.758384 0.981670 0.865250 -0.484102 0.972508 0.576562 0.548770 -0.436019 0.364880 0.638940 0.292975 1.560894 1.382357 1.358466 -0.213210 1.154319 0.518298 0.631261 1.335639 0.894272 1.410937 1.747551 0.405799 1.660084 0.474627 1.326633 0.068830 1.218814 0.595057 0.236020 1.138689 1.241250 0.842845 1.458236 -0.549271 -0.305435 1.226016 0.983558 0.733637 0.763315 -0.020516 1.030290 1.339249 0.960309 1.023511 1.222322 0.211194 0.615422)
+ 9.063070 #(0.000000 1.049673 0.475640 -0.284361 0.288138 0.903305 1.167055 -0.042721 1.679535 1.376218 1.516452 0.071578 -0.055477 1.035124 0.002301 -0.256448 0.418640 0.205192 0.847097 -0.018969 -0.003256 0.503833 0.758774 0.983169 0.865401 -0.483133 0.972821 0.578021 0.549652 -0.435246 0.365580 0.637962 0.292985 1.560704 1.382857 1.358941 -0.213364 1.154759 0.517054 0.631805 1.333993 0.894917 1.411802 1.747848 0.405321 1.660360 0.475471 1.326536 0.069383 1.217537 0.594781 0.235880 1.139694 1.241873 0.843062 1.458571 -0.548275 -0.305211 1.225759 0.983779 0.733245 0.764363 -0.020526 1.029843 1.337858 0.959771 1.022593 1.223213 0.211818 0.616212)
)
;;; 71 odd --------------------------------------------------------------------------------
@@ -1976,7 +2055,7 @@
11.002258540604 #(0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0)
10.642364501953 #(0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0)
- 9.256818 #(0.000000 0.911227 0.693013 1.920425 0.169873 -0.173237 -0.170571 1.581513 0.425961 0.850160 1.099469 0.836772 0.524343 0.791113 -0.092214 0.234855 0.946379 0.300290 1.481968 0.986510 1.235442 1.235120 1.897838 1.870157 1.399034 1.470606 0.505923 1.480006 0.646519 0.580526 1.160087 1.590177 -0.080336 0.871348 -0.042524 1.100490 1.406955 1.709961 0.010337 0.966193 0.719689 0.098958 0.945107 1.039780 1.487617 1.640023 1.111293 0.912280 0.762296 1.175626 0.544874 0.773503 1.365673 0.254777 1.596719 0.441414 0.699777 -0.179901 0.840138 0.189211 -0.270278 0.643683 1.188725 0.653784 1.717269 -0.333252 1.624106 1.487330 1.292823 0.449257 1.539917)
+ 9.253409 #(0.000000 0.912005 0.692877 1.921000 0.169416 -0.173407 -0.171356 1.582459 0.426049 0.851093 1.098785 0.836379 0.525110 0.790925 -0.091946 0.235715 0.947112 0.300555 1.481077 0.986486 1.235556 1.234773 1.897765 1.870760 1.398281 1.470329 0.505928 1.480878 0.646939 0.579740 1.159797 1.590284 -0.081025 0.871018 -0.041739 1.099598 1.407276 1.710878 0.011097 0.966115 0.720663 0.098577 0.945253 1.039828 1.487202 1.639390 1.111409 0.911299 0.761665 1.175358 0.544225 0.773787 1.364872 0.255496 1.596459 0.441760 0.699950 -0.179841 0.839764 0.189282 -0.270071 0.643474 1.189010 0.653916 1.717086 -0.333719 1.624417 1.486830 1.292116 0.450193 1.539540)
)
;;; 72 odd --------------------------------------------------------------------------------
@@ -1984,7 +2063,7 @@
10.912703440154 #(0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 1)
10.880306243896 #(0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1)
- 9.356581 #(0.000000 1.536323 0.317003 0.439029 0.745365 1.501820 0.973192 1.560393 0.216456 1.185422 0.510097 0.770448 1.659497 0.822729 1.253059 1.522910 1.181498 0.405216 1.666734 0.208276 0.702498 0.578983 0.849954 0.657160 0.939951 1.594810 0.899174 1.667548 1.122828 1.270706 0.360926 0.414680 1.634567 0.161111 0.480745 1.579096 0.765418 0.305030 1.260303 1.351662 0.468496 1.074948 0.913725 0.139349 0.546583 0.667119 1.867011 1.331478 1.700750 0.786229 1.076971 1.408796 0.422217 1.140446 0.630570 1.460285 0.999478 0.946973 0.635276 0.181117 1.005354 1.140891 0.045148 0.059764 1.939429 1.274045 0.975264 -0.042897 0.114462 0.167672 -0.027368 1.763793)
+ 9.354708 #(0.000000 1.537010 0.316412 0.438223 0.745483 1.500969 0.973595 1.560329 0.217057 1.185539 0.509323 0.770025 1.659901 0.821844 1.253393 1.523047 1.181788 0.404961 1.666674 0.208686 0.702028 0.579453 0.849437 0.656711 0.939816 1.594296 0.900064 1.667644 1.122564 1.270831 0.360240 0.415028 1.634526 0.161327 0.480790 1.578178 0.764459 0.304884 1.259576 1.352148 0.467810 1.073956 0.913123 0.139638 0.546669 0.666526 1.867575 1.330492 1.701738 0.786362 1.076089 1.408082 0.421929 1.139826 0.631240 1.459418 0.998796 0.946766 0.635722 0.181344 1.004657 1.140725 0.045775 0.060758 1.939056 1.274665 0.974610 -0.043369 0.114328 0.168328 -0.028319 1.764050)
)
;;; 73 odd --------------------------------------------------------------------------------
@@ -1999,7 +2078,7 @@
11.288741871055 #(0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0)
11.262331896 #(0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0)
- 9.359411 #(0.000000 0.298708 0.505882 1.236986 0.817442 0.092071 1.164818 1.285938 0.271699 0.935335 1.279868 -0.040205 0.952074 1.450920 0.385601 0.062856 1.259488 0.145630 0.690598 1.084017 0.768540 1.244374 1.152650 0.033458 0.777478 1.409807 -0.190008 0.422609 -0.110018 0.786040 -0.158726 0.201860 0.778668 1.622026 1.226545 1.760772 -0.244930 1.779444 1.042495 1.679311 0.752429 1.293507 0.573303 -0.178512 0.186565 1.800363 0.229857 1.900582 1.161198 1.344443 1.295048 -0.052698 1.339720 0.738732 0.105234 1.473824 0.905890 1.113532 1.652750 1.137340 1.389479 0.976752 0.892058 1.949887 1.453364 -0.386668 1.107626 0.967165 -0.009060 0.124392 -0.155651 0.154340 1.504841 0.817201)
+ 9.354411 #(0.000000 0.298593 0.506130 1.238027 0.817072 0.092008 1.163107 1.286336 0.272292 0.936799 1.279665 -0.038909 0.951674 1.449397 0.384959 0.061607 1.259543 0.144777 0.690030 1.083121 0.767952 1.244620 1.152491 0.032716 0.777433 1.410269 -0.190518 0.423223 -0.108662 0.784774 -0.158795 0.202683 0.778329 1.621736 1.226959 1.759259 -0.243629 1.779909 1.042525 1.679241 0.751212 1.294113 0.573888 -0.177350 0.187217 1.800244 0.229684 1.900746 1.161579 1.345865 1.295695 -0.052076 1.340517 0.737474 0.105113 1.474047 0.906555 1.114156 1.653086 1.137997 1.389547 0.976760 0.891743 1.950320 1.454563 -0.385653 1.107435 0.966800 -0.007872 0.124625 -0.155386 0.154105 1.504444 0.817577)
)
;;; 75 odd --------------------------------------------------------------------------------
@@ -2030,14 +2109,14 @@
;;; 78 odd --------------------------------------------------------------------------------
#(78 11.455265310659 #(0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0)
- 9.689330 #(0.000000 1.628844 0.878138 0.052966 0.224831 0.957889 0.400207 0.834835 0.959374 0.609989 1.870621 1.067340 0.929459 1.115359 1.917455 -0.075798 0.364233 0.025885 1.071486 0.506928 0.655557 0.536157 0.135702 0.180292 -0.041387 0.817715 0.294084 0.973775 1.950711 0.127042 0.258282 0.292523 0.589078 1.063985 0.016442 0.665154 0.682477 0.516232 1.096805 0.514279 0.743518 1.735940 1.357202 1.619505 0.328786 1.031617 1.627424 1.609150 0.823763 1.270069 1.452211 0.115105 -0.027006 0.762099 0.497817 0.313528 0.636989 1.570025 0.074497 1.154607 1.487089 -0.035207 1.621704 1.334774 0.913886 0.322544 1.220284 -0.082128 1.415226 0.070801 1.710283 0.943889 1.111192 -0.027088 1.041985 0.726612 0.822628 0.289477)
+ 9.684944 #(0.000000 1.628586 0.876835 0.051948 0.225446 0.957682 0.399816 0.835219 0.960881 0.610075 1.870085 1.067593 0.929443 1.114752 1.918079 -0.075624 0.363686 0.026688 1.070954 0.505946 0.654008 0.535327 0.135465 0.179306 -0.041660 0.818114 0.294244 0.974372 1.950323 0.126988 0.257954 0.292923 0.589657 1.063885 0.017472 0.665923 0.682337 0.516258 1.096580 0.513461 0.744503 1.736089 1.358168 1.619440 0.329913 1.030859 1.626812 1.607634 0.822899 1.270674 1.453325 0.115904 -0.025894 0.760601 0.498142 0.313656 0.637412 1.569662 0.073732 1.154138 1.488106 -0.036369 1.622715 1.335329 0.912805 0.322870 1.219850 -0.083683 1.414009 0.070751 1.710370 0.944133 1.111559 -0.027334 1.042167 0.726781 0.822450 0.289732)
)
;;; 79 odd --------------------------------------------------------------------------------
#(79 11.710210993982 #(0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0)
11.54291004024 #(0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0)
- 9.907591 #(0.000000 1.323153 0.561739 1.416114 0.499890 1.163337 1.642776 1.088026 1.359570 0.545337 0.512144 0.461521 0.659697 1.500336 0.329509 0.098207 0.394590 0.903329 0.593759 0.543830 0.326804 0.401274 0.326000 1.107063 0.420054 -0.042054 0.630029 1.064910 0.875433 1.564545 0.527497 0.638985 1.163808 0.074801 0.418767 1.451079 1.505501 0.293736 1.464100 -0.170922 0.166917 1.096636 1.041099 0.137125 -0.109750 1.462070 0.483669 -0.467115 1.896114 1.189375 1.115413 0.523010 1.633409 1.281536 0.296221 1.503714 0.249992 0.256231 0.351287 1.392883 1.130000 1.362411 0.641013 1.501226 -0.019849 1.669348 1.563267 0.844481 1.634405 0.452722 1.849461 0.542373 1.697783 1.690984 0.222373 0.278095 1.257265 0.666310 0.900822)
+ 9.897466 #(0.000000 0.258198 0.144624 1.109600 -1.973087 0.965122 0.879701 0.183752 0.341259 0.586965 0.763119 1.034777 1.113506 1.274885 0.176090 1.258061 0.223606 0.010659 1.483572 1.861964 0.323413 1.468005 0.399341 0.902945 0.573498 0.220899 1.187479 1.205109 1.033963 0.600105 1.180800 1.142798 0.089930 1.099801 0.932956 1.157604 0.851713 1.269024 0.120365 0.385883 1.179845 0.519337 1.720962 0.145987 1.593445 1.441431 -0.022464 0.906997 -0.044342 1.106511 0.317358 0.563014 1.596044 1.107173 1.416729 1.670363 0.374626 0.440306 1.549438 0.279954 0.361321 0.017109 1.101416 1.487700 1.195189 0.145544 1.175192 1.053981 0.600940 0.911019 0.729179 0.226640 0.017423 0.964490 1.165943 0.987828 0.399156 1.559343 1.428338)
)
;;; 80 odd --------------------------------------------------------------------------------
@@ -2047,7 +2126,7 @@
11.501195907593 #(0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1)
11.122416496277 #(0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1)
- 9.914661 #(0.000000 0.552663 0.612675 1.488074 0.218428 1.597625 0.177545 1.613623 1.348529 0.836277 0.394506 1.241829 0.408525 0.758031 0.243112 -0.073378 0.155430 0.953028 1.020625 0.799097 1.760012 0.976166 0.435308 0.271146 0.826513 1.874108 0.373136 1.319829 0.628545 0.924959 0.850215 0.040647 1.249755 1.021552 0.164865 0.646065 0.900616 -0.074214 0.951454 0.146487 0.414121 1.537900 0.608934 0.874987 0.038322 0.436835 0.720200 1.295322 1.540620 0.895075 0.330508 1.310988 0.111062 0.894262 -0.218629 1.502779 1.138278 0.413600 0.620931 0.934645 1.511293 1.127932 0.147242 1.115087 0.622047 0.140828 0.454933 0.741211 1.177198 1.712943 1.672177 1.879923 0.012054 0.140015 1.574078 0.225528 -0.044550 0.163272 -0.338290 0.874375)
+ 9.839038 #(0.000000 0.557632 0.612112 1.493501 0.236573 1.596851 0.188255 1.605763 1.332184 0.854812 0.405788 1.222516 0.416859 0.756791 0.233468 -0.080687 0.161620 0.943166 1.015839 0.776547 1.773413 0.978271 0.447728 0.277025 0.829561 1.885292 0.377535 1.330238 0.637627 0.927721 0.839577 0.046426 1.244388 1.025940 0.165521 0.648212 0.892377 -0.092263 0.953723 0.146157 0.401058 1.541466 0.602995 0.880459 0.029203 0.434535 0.725535 1.288140 1.541178 0.902310 0.322571 1.297606 0.132432 0.890452 -0.224214 1.505327 1.128561 0.415246 0.618277 0.947345 1.499994 1.131948 0.150795 1.115265 0.630659 0.144229 0.448260 0.747473 1.178787 1.703751 1.677842 1.889735 -0.000419 0.115316 1.579144 0.220267 -0.056031 0.164625 -0.335925 0.884826)
)
;;; 81 odd --------------------------------------------------------------------------------
@@ -2056,14 +2135,14 @@
11.381307601929 #(0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1)
11.372210502625 #(0 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1)
- 9.931977 #(0.000000 0.079827 -0.055279 0.051500 0.873604 1.261994 0.263541 1.103658 0.370300 0.673532 0.617252 0.786836 1.672613 -0.090142 0.382621 1.422940 1.061429 0.833275 0.484691 0.821764 0.432004 0.249653 1.505392 0.795892 -0.007836 0.358144 1.067879 1.391497 0.522044 1.296531 1.018918 1.127195 1.756850 1.149478 0.334604 1.616584 0.335661 0.309155 0.140549 1.058264 1.357219 0.914133 1.494073 1.004030 -0.029957 0.647127 1.308780 0.262808 0.189221 0.453180 0.299673 1.826133 0.544646 0.411138 0.440249 1.891440 -0.228861 1.721297 1.083950 0.400427 1.419512 0.290484 1.582787 1.369991 1.478133 1.957461 -0.015832 1.076671 0.967871 -0.061673 0.180606 1.616847 1.606724 0.521075 1.893947 0.332119 0.391653 1.091790 0.064512 1.320996 0.994489)
+ 9.857316 #(0.000000 0.077217 -0.052603 0.067198 0.882267 1.259422 0.264613 1.113581 0.360857 0.687163 0.614995 0.774045 1.699708 -0.090959 0.371747 1.417261 1.067481 0.830283 0.482104 0.826610 0.427488 0.253118 1.506019 0.811968 -0.016419 0.360650 1.069899 1.401397 0.522233 1.287511 1.029994 1.145709 1.766115 1.153007 0.326710 1.627820 0.353482 0.323058 0.160011 1.049669 1.352002 0.928266 1.492204 1.025978 -0.035087 0.660051 1.295294 0.257693 0.192929 0.437831 0.299765 1.839851 0.540261 0.422877 0.435903 1.885211 -0.228862 1.729293 1.083049 0.403583 1.415957 0.293540 1.565490 1.371943 1.471631 1.962955 -0.012966 1.085166 0.970827 -0.049501 0.187063 1.630248 1.597317 0.522487 1.889580 0.326461 0.382392 1.097176 0.065018 1.324647 0.991792)
)
;;; 82 odd --------------------------------------------------------------------------------
#(82 11.815696616621 #(0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0)
11.662058134504 #(0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 0)
- 10.007245 #(0.000000 1.724547 0.933512 0.830314 0.647749 1.560591 1.431503 1.164084 0.905684 0.116476 1.222182 0.804229 1.755943 0.643885 1.483176 1.619945 0.453460 1.103753 0.317195 0.390273 0.033649 1.733149 0.146005 0.199591 0.363981 -0.055905 1.478526 0.057777 1.101197 0.046144 0.706965 0.522696 1.896609 0.175322 1.975792 1.942835 0.155437 1.078216 1.114174 -0.204257 -0.116456 0.453470 1.498585 0.756887 0.246844 1.535701 -0.160082 1.809816 0.671310 0.123845 0.711404 1.628211 0.712692 1.248787 0.691181 1.326555 0.355924 1.309967 1.899986 0.635482 0.858240 1.565244 0.218486 1.650652 0.205917 1.490927 1.644680 0.158921 -0.072447 1.100716 0.856115 -0.145736 0.752547 0.935942 1.579708 1.550276 1.225487 0.214549 0.355374 0.329420 0.358047 0.239456)
+ 9.946913 #(0.000000 1.723534 0.924124 0.824201 0.651105 1.566203 1.440851 1.159858 0.910623 0.103228 1.214642 0.798177 1.747879 0.634624 1.478003 1.626584 0.455679 1.110513 0.306235 0.391871 0.042966 1.730582 0.158373 0.196215 0.365344 -0.052757 1.486313 0.060847 1.092824 0.051296 0.713151 0.527731 1.905043 0.177247 1.979354 1.944182 0.153646 1.080464 1.123281 -0.198404 -0.117766 0.462610 1.514906 0.751002 0.265991 1.525548 -0.154579 1.796965 0.677759 0.133224 0.724095 1.629727 0.702440 1.247499 0.681212 1.321928 0.344149 1.313343 1.907447 0.633181 0.861093 1.556526 0.198693 1.660104 0.194772 1.491172 1.644077 0.173552 -0.076502 1.097994 0.838617 -0.143812 0.765046 0.923700 1.573475 1.544071 1.223952 0.207887 0.346417 0.337761 0.343559 0.237239)
)
;;; 83 odd --------------------------------------------------------------------------------
@@ -2071,7 +2150,7 @@
11.795211509729 #(0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1)
11.730722255301 #(0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1)
- 10.165187 #(0.000000 0.716050 1.301624 0.097106 0.210594 1.906591 1.068860 0.669863 1.410644 0.132722 0.963169 0.931376 0.423280 0.481038 1.756020 0.657479 0.745371 1.032166 1.858179 1.624335 0.958184 -0.133245 0.447963 0.256687 1.811713 -0.079952 0.589555 0.262267 1.482332 0.348161 1.567713 0.220075 1.727754 1.186838 1.740037 0.635095 1.321136 0.259322 -0.094062 0.041203 -0.121576 1.791233 0.615347 1.164970 0.139951 0.646531 0.161681 0.815846 0.513415 0.775858 0.886045 0.885403 -0.001419 1.415892 1.051652 0.561725 1.408474 0.993134 0.009402 0.709195 0.594212 1.018310 0.910938 -0.101432 1.602074 1.818576 0.741222 0.644984 1.727160 0.543203 -0.102180 1.324875 1.380952 0.224117 0.897697 0.821964 1.266514 0.689208 0.898237 0.622318 0.891591 1.883179 0.159637)
+ 10.087885 #(0.000000 0.730702 1.297756 0.107400 0.204091 1.911702 1.072431 0.657447 1.414949 0.133810 0.950968 0.929453 0.414592 0.490315 1.766504 0.681019 0.747339 1.033546 1.857214 1.620081 0.956907 -0.119344 0.460473 0.253567 1.816131 -0.075521 0.596916 0.257658 1.467177 0.352319 1.584601 0.230368 1.739861 1.205888 1.750153 0.629182 1.330234 0.259085 -0.101300 0.052446 -0.125797 1.788033 0.596425 1.168771 0.133630 0.649065 0.153891 0.831573 0.524812 0.769455 0.896865 0.868016 -0.012829 1.412314 1.075578 0.554150 1.407875 0.984867 0.002446 0.685867 0.585294 1.017588 0.898880 -0.095936 1.600583 1.822556 0.736517 0.651074 1.711524 0.537040 -0.108495 1.338320 1.374263 0.214061 0.901958 0.823979 1.265821 0.686393 0.897865 0.614728 0.882638 1.876167 0.155072)
)
;;; 84 odd --------------------------------------------------------------------------------
@@ -2087,7 +2166,7 @@
12.309050256429 #(0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1)
11.829360154975 #(0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1)
- 10.179765 #(0.000000 0.853011 1.803816 0.929482 0.655728 0.468372 1.449070 1.662297 0.053175 0.832880 0.252032 1.543775 1.806482 1.575978 0.339931 1.244393 -0.050087 1.469868 1.812649 1.105830 -0.280053 1.564383 0.951635 1.315761 1.724110 -0.276636 0.822381 0.540360 0.880267 1.807999 1.558819 0.908554 0.936981 1.399410 1.132935 0.418426 1.666700 1.114003 1.614604 0.660176 0.017743 1.564704 1.457708 0.758496 1.191052 1.617878 0.767011 1.546845 0.364045 0.228641 1.010498 0.221365 0.801330 1.294525 -0.127593 0.047035 1.403499 1.548301 0.125911 1.543908 0.605677 1.469712 -0.036492 0.871625 0.446267 0.393809 0.830112 0.342295 -0.087117 -0.112696 0.387582 0.861187 1.344578 0.899428 0.335936 0.465813 0.222215 -1.871897 0.884322 1.242700 1.114099 0.604652 1.719664 1.388474 0.069911)
+ 10.106415 #(0.000000 0.863565 1.813422 0.926864 0.641920 0.464584 1.444279 1.670388 0.049460 0.839580 0.242224 1.540152 1.787145 1.566084 0.358543 1.249084 -0.048461 1.466967 1.803319 1.105092 -0.296150 1.558222 0.958216 1.328013 1.722732 -0.281656 0.809949 0.544571 0.862192 1.817168 1.569187 0.899226 0.945163 1.409589 1.135548 0.429883 1.667033 1.119401 1.623002 0.668139 0.010797 1.569949 1.467092 0.754074 1.195479 1.606662 0.779690 1.530649 0.370850 0.230159 0.999558 0.215810 0.804853 1.291028 -0.131180 0.033214 1.411985 1.563539 0.131645 1.563188 0.613560 1.469511 -0.025892 0.868366 0.438359 0.394141 0.826240 0.351204 -0.085853 -0.105900 0.391480 0.859738 1.336489 0.887975 0.349010 0.467662 0.215242 -1.875154 0.882788 1.235510 1.114899 0.594519 1.713397 1.384624 0.064229)
)
;;; 86 odd --------------------------------------------------------------------------------
@@ -2095,7 +2174,7 @@
12.274354058598 #(0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1)
12.138233978686 #(0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1)
- 10.488339 #(0.000000 0.674278 0.520329 1.622439 0.145166 0.656188 0.666969 1.306244 0.588877 0.394925 0.289030 0.230292 0.362442 0.320363 0.654731 -0.071127 1.553974 -0.432645 0.332383 0.225149 1.324953 1.604382 1.535812 0.221409 0.488171 1.547430 0.651482 0.889744 0.609232 1.967648 1.088096 1.089742 1.341856 0.276774 1.595364 0.699065 0.303274 0.541815 0.432007 0.427444 1.867728 1.020498 1.711511 1.856154 0.078091 1.134956 0.386838 0.959012 1.500513 0.609356 1.138197 -0.019119 1.001558 0.720740 0.069664 1.580096 1.711491 0.830639 1.351147 1.200148 1.964131 0.857318 1.328512 1.722010 1.639719 0.568463 -0.061556 0.380536 0.896980 0.141482 0.131336 0.775320 0.190408 0.447800 0.217709 1.469261 0.791207 1.142858 1.097175 0.528320 1.766014 0.952204 -0.027226 1.827369 1.045975 0.601671)
+ 10.365895 #(0.000000 0.674177 0.513020 1.628220 0.138111 0.642703 0.660506 1.294238 0.588329 0.386791 0.278473 0.242815 0.376081 0.314318 0.662469 -0.061241 1.555143 -0.463957 0.347166 0.234064 1.313918 1.608939 1.543194 0.206535 0.480020 1.565043 0.653923 0.875858 0.621746 1.981938 1.076745 1.092748 1.363893 0.266401 1.598038 0.711629 0.301437 0.532620 0.429015 0.421144 1.865894 1.024388 1.709916 1.851523 0.087012 1.128669 0.379186 0.955515 1.496400 0.616290 1.131864 -0.022917 0.999012 0.724535 0.060432 1.567987 1.711550 0.850315 1.355001 1.196274 1.951862 0.836877 1.320106 1.729373 1.619662 0.566085 -0.057612 0.379618 0.881540 0.121133 0.135746 0.775716 0.183558 0.456555 0.229479 1.474222 0.802827 1.170757 1.097871 0.532518 1.772327 0.934702 -0.052746 1.820739 1.048760 0.618666)
)
;;; 87 odd --------------------------------------------------------------------------------
@@ -2103,7 +2182,7 @@
12.481803894043 #(0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1)
11.937030388359 #(0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1)
- 10.516149 #(0.000000 1.289766 0.886983 1.322560 0.876439 1.627193 0.493810 0.970605 0.961548 0.705567 0.050852 1.986475 1.533290 0.358450 0.666765 1.905985 0.414541 0.576661 0.667406 1.239471 1.787090 0.109565 1.161566 0.682967 0.929605 0.888453 1.128336 1.124479 0.587254 0.581669 0.806753 1.517894 1.779945 0.845009 0.764071 0.592805 0.341083 0.931107 1.482379 1.311352 1.313908 1.320904 0.428872 0.323579 0.392771 0.248018 0.119632 0.236892 1.154436 -0.032188 0.737816 1.314784 -0.215989 1.242700 0.313371 -0.149097 0.798973 0.833425 -0.042399 1.378110 0.036756 1.641328 0.279697 1.543157 1.073889 1.377645 0.495879 -0.338266 0.323477 -0.439679 1.285431 0.452291 0.371700 1.263128 0.482066 1.124580 0.000582 0.492025 0.753662 0.349226 0.001492 0.650988 1.329368 0.852697 0.563418 -0.163491 1.015659)
+ 10.439028 #(0.000000 1.293615 0.891704 1.310178 0.871892 1.631519 0.507524 0.964303 0.961820 0.711555 0.037453 1.967779 1.529327 0.387875 0.670026 1.904543 0.413125 0.578546 0.668035 1.233649 1.799148 0.114053 1.171211 0.678512 0.931544 0.886139 1.134985 1.133850 0.582366 0.582940 0.804177 1.516606 1.773452 0.852295 0.771255 0.593571 0.354837 0.923077 1.483111 1.333483 1.304276 1.312691 0.426333 0.336748 0.396992 0.256279 0.125269 0.243969 1.152832 -0.033606 0.743325 1.315396 -0.218859 1.229602 0.321005 -0.151540 0.792293 0.827770 -0.045338 1.389821 0.049496 1.637654 0.274655 1.545970 1.076448 1.381528 0.486593 -0.337101 0.320744 -0.436795 1.281696 0.465798 0.367231 1.264912 0.484598 1.097006 -0.005951 0.479046 0.749733 0.340439 0.002468 0.652540 1.320867 0.869974 0.560586 -0.166505 0.992855)
)
;;; 88 odd --------------------------------------------------------------------------------
@@ -2120,7 +2199,7 @@
12.4725522995 #(0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0)
12.362 #(0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0)
- 10.569351 #(0.000000 0.221340 0.719804 -0.033416 0.227680 1.072824 0.484691 1.322931 0.201854 0.730444 0.347906 0.027529 0.502065 1.682228 0.786406 0.074535 0.054357 1.347169 1.430789 1.163229 1.190503 1.138969 0.021967 1.429265 1.467281 1.280123 1.220480 0.641398 1.257417 1.406582 0.372255 1.605856 0.165566 0.600869 0.437792 1.651964 0.815582 -0.138502 0.158713 1.032820 0.760300 1.754766 1.164044 1.804590 0.742148 0.916593 1.563591 0.333893 0.131043 1.290629 1.123312 1.117056 1.549569 0.672500 0.265541 1.056212 1.172378 1.105695 1.600715 0.930620 1.240797 0.224311 0.786555 0.100799 1.214902 1.481764 -0.375209 0.975346 0.462647 1.055618 -0.210921 0.777150 0.772299 -0.224267 0.081604 1.095637 1.027142 1.904790 1.611526 0.922140 0.956661 0.760366 1.159196 1.641222 1.050269 -0.152657 0.147492 0.189305 0.508418)
+ 10.564040 #(0.000000 0.222671 0.720613 -0.034480 0.227017 1.071976 0.485700 1.323661 0.202655 0.730327 0.347008 0.027552 0.503120 1.683398 0.787677 0.074207 0.054899 1.346473 1.430831 1.163184 1.190780 1.138336 0.020209 1.429712 1.467695 1.280923 1.219256 0.641409 1.257009 1.405872 0.371889 1.604636 0.164997 0.600689 0.437261 1.651974 0.816125 -0.138714 0.159856 1.034493 0.760757 1.755811 1.164651 1.804257 0.741946 0.916337 1.564083 0.334413 0.132176 1.291498 1.123100 1.116512 1.550394 0.672812 0.266520 1.055925 1.172674 1.105082 1.600737 0.929586 1.241857 0.222957 0.785082 0.101553 1.214804 1.481638 -0.375678 0.976110 0.461230 1.054758 -0.212694 0.777014 0.772746 -0.224492 0.080641 1.095388 1.027431 1.904950 1.609911 0.923230 0.956550 0.759552 1.159764 1.641245 1.049825 -0.152379 0.147566 0.190222 0.508490)
)
;;; 90 odd --------------------------------------------------------------------------------
@@ -2128,7 +2207,7 @@
12.44910044225 #(0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1)
12.309 #(0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1)
- 10.570763 #(0.000000 0.322609 0.160007 0.738794 0.992148 1.746954 0.204234 0.973601 1.325153 -0.000488 0.937295 1.568778 0.712811 -0.000729 0.589779 0.440670 1.198946 0.125048 1.025173 0.828774 1.151214 0.526091 -0.111774 1.698298 0.722279 0.391578 1.502926 0.495127 0.008070 0.486379 0.472456 1.303760 1.119473 1.108429 1.084469 0.793101 -0.256975 0.640393 1.376766 0.513030 0.649647 0.617599 0.614981 1.258091 1.539781 1.673851 1.316282 1.001744 1.862757 1.358282 1.104662 1.099158 1.273211 1.192248 1.700560 0.516862 0.672563 0.369989 0.800329 0.585479 0.046851 1.067785 1.202486 0.143080 0.692131 0.460253 0.996744 1.853413 0.885613 0.227395 0.083654 0.013763 1.211706 1.590670 1.755987 0.345633 0.298585 1.837863 0.548676 0.290802 0.563110 0.000113 1.369217 1.095696 0.312144 1.163320 1.205725 0.497614 0.557572 1.959641)
+ 10.565897 #(0.000000 0.323336 0.160997 0.737976 0.991783 1.746178 0.204615 0.973350 1.325582 -0.000496 0.936849 1.569311 0.713776 0.000170 0.589250 0.440874 1.199211 0.125809 1.024730 0.829524 1.151850 0.525749 -0.112451 1.698366 0.721305 0.391788 1.502375 0.495336 0.008265 0.486362 0.473226 1.304754 1.119101 1.108647 1.085071 0.792759 -0.257844 0.639466 1.377610 0.513265 0.648699 0.618170 0.614280 1.257451 1.539835 1.673272 1.316922 1.001913 1.863150 1.359210 1.105139 1.100157 1.272833 1.192402 1.701496 0.517431 0.673234 0.369522 0.799548 0.585801 0.046079 1.066906 1.202041 0.142710 0.692510 0.460924 0.996741 1.853951 0.885033 0.227117 0.084145 0.013504 1.212499 1.591553 1.755651 0.346105 0.298673 1.838366 0.549442 0.290810 0.562135 0.000038 1.369412 1.095152 0.312535 1.162805 1.204780 0.497142 0.558399 1.960120)
)
;;; 91 odd --------------------------------------------------------------------------------
@@ -2136,14 +2215,14 @@
12.706615204918 #(0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0)
12.351367950439 #(0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 0)
- 10.583860 #(0.000000 -0.067239 0.751721 0.893220 1.672063 0.103866 0.873087 0.209306 0.287370 0.184429 1.070358 0.022234 -0.098737 1.165004 1.134886 0.221765 1.343402 1.569310 0.077260 1.688403 0.876645 0.258074 -0.072081 0.219944 1.101830 0.458368 1.334393 1.507597 1.353685 1.339986 0.230944 0.299306 1.473077 1.890234 0.776899 0.628262 1.106468 1.493565 1.078086 0.432060 0.902048 1.174827 -0.044393 1.202646 0.774075 1.365539 1.666159 0.641851 0.041993 0.757227 1.310443 0.363466 0.435554 0.198437 0.354870 0.652543 0.898049 1.935696 1.058435 1.135641 0.340035 0.840287 0.290769 1.078951 0.897109 1.460526 0.799502 0.987268 0.610078 1.040490 0.162953 1.471294 0.680852 0.175800 0.679700 0.813512 1.265246 1.802123 1.296610 0.612673 -0.175046 1.144844 1.682838 1.198970 1.504343 0.970856 1.484783 0.563167 0.586558 0.292505 0.157216)
+ 10.580820 #(0.000000 -0.066594 0.753106 0.892230 1.672729 0.104584 0.874579 0.210329 0.287912 0.184300 1.069784 0.022315 -0.097980 1.166013 1.136168 0.223258 1.343119 1.568772 0.076270 1.687896 0.877138 0.257618 -0.071795 0.219340 1.101818 0.458001 1.333827 1.506289 1.352524 1.340131 0.231231 0.297806 1.473018 1.891024 0.776740 0.628977 1.105932 1.493035 1.077683 0.432311 0.900280 1.174027 -0.042938 1.202385 0.775424 1.366973 1.667197 0.641918 0.041936 0.757387 1.309760 0.363591 0.436450 0.199575 0.354296 0.653682 0.898497 1.936370 1.059953 1.136607 0.339573 0.840568 0.291329 1.078675 0.897876 1.460148 0.799434 0.987401 0.608927 1.040581 0.162655 1.471239 0.679281 0.175232 0.680155 0.813337 1.264396 1.801863 1.296172 0.612758 -0.175218 1.146096 1.683573 1.198581 1.503967 0.971127 1.484566 0.563556 0.586642 0.292128 0.156623)
)
;;; 92 odd --------------------------------------------------------------------------------
#(92 12.42142723142 #(0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1)
12.280749613899 #(0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1)
- 10.852836 #(0.000000 -0.050980 0.400435 -0.097583 1.260495 0.737509 -0.128105 0.939677 -0.052079 1.506138 0.531050 1.537435 0.751329 0.089904 -0.595006 0.079844 -0.031794 0.390270 0.596583 0.112877 1.568139 -1.828294 -0.233989 1.457703 0.301247 0.137064 0.463302 0.325453 0.277083 1.287384 0.474939 1.826147 -0.401233 0.419482 0.062341 -0.016305 0.831855 0.011329 0.551210 -0.753132 -0.736852 0.059770 0.939158 1.105811 0.078143 0.684638 1.322990 1.204876 1.766728 1.045678 -0.804356 1.551901 -0.757244 0.552920 0.922008 -0.338272 0.058055 -0.145022 0.155875 1.395001 0.846361 0.486473 0.713662 0.302934 0.855766 0.120044 0.703179 0.975302 1.648295 1.492957 1.741431 0.144080 0.861034 1.543722 1.402932 0.387069 0.678532 0.643865 0.564337 0.286884 1.648833 1.361911 1.215031 0.491477 1.639994 -0.088117 1.205109 0.450034 0.162061 -0.717850 1.411726 0.970850)
+ 10.756788 #(0.000000 1.369624 1.194830 0.936388 0.730850 1.719298 0.115781 1.462115 0.905402 0.690913 0.692908 0.521187 -0.124344 0.868603 1.301740 0.800554 0.430489 1.863631 0.719072 1.453268 1.815453 1.740997 0.189565 -0.207008 0.716236 0.878748 0.930789 0.457524 0.969004 1.428430 0.617593 1.426864 1.149099 0.252519 0.411738 1.516481 0.910568 0.014985 1.454858 1.046423 0.299082 1.202909 0.125253 1.256958 0.675773 0.719849 1.521494 1.680690 0.966184 0.641960 0.175610 1.581800 0.873941 0.587347 1.353829 1.343228 -0.073549 0.553785 1.317742 -0.074566 0.338371 1.010093 0.778368 0.981084 1.396990 0.993938 1.183193 0.686244 0.710707 0.951535 1.476970 0.986287 1.561601 0.752894 0.874991 -0.006380 0.852235 1.725409 1.689722 1.621415 0.102046 0.792477 0.874880 1.373766 0.605784 0.209690 0.091484 0.394417 -0.009282 1.936427 1.821816 0.821170)
)
;;; 93 odd --------------------------------------------------------------------------------
@@ -2152,14 +2231,14 @@
12.587555885315 #(0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1)
12.403578299298 #(0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1)
- 10.795505 #(0.000000 1.427667 1.532782 0.695830 0.042692 -0.034205 1.000137 1.005318 0.781018 1.024903 0.433626 1.085214 0.800510 1.663248 1.564509 1.237500 0.556386 1.386670 1.630969 0.818974 1.704686 0.006538 -0.073739 1.631875 0.760396 1.057157 0.379008 0.515513 0.064378 1.539002 1.645810 -0.292878 -0.128940 0.215020 0.187419 0.780840 -0.069562 0.738780 1.850739 0.039770 -0.105392 1.243554 0.507863 1.782428 1.307549 0.295065 0.153184 0.774727 1.766789 -0.044124 1.772190 0.994226 1.971299 0.467587 0.972277 1.560766 0.350352 1.266592 1.729805 0.656884 0.718689 1.177763 1.503793 1.638125 0.938931 1.474872 0.841043 1.715038 0.770687 1.164302 0.430880 0.096087 1.299776 0.392197 0.156307 0.836332 -0.027157 1.654738 1.892251 0.353502 1.126968 0.915112 1.568927 0.892010 1.293349 1.328966 1.179646 1.838236 0.761791 0.275720 1.394218 1.427487 1.099182)
+ 10.790036 #(0.000000 1.428716 1.534161 0.695509 0.042606 -0.034105 1.000023 1.003681 0.781846 1.025568 0.433459 1.083836 0.800592 1.662645 1.563993 1.239176 0.555756 1.387054 1.630283 0.818717 1.705123 0.006075 -0.074162 1.632432 0.760238 1.056975 0.377989 0.515155 0.063396 1.539671 1.644172 -0.292127 -0.128413 0.214058 0.188640 0.781653 -0.070210 0.738140 1.851744 0.039564 -0.105263 1.243425 0.506869 1.782242 1.306734 0.295709 0.151933 0.774659 1.767039 -0.043429 1.770942 0.995164 1.972024 0.467155 0.971801 1.559315 0.349733 1.267330 1.730486 0.656269 0.719055 1.178003 1.503849 1.638208 0.939314 1.474745 0.841719 1.714976 0.770617 1.164675 0.430358 0.097535 1.301246 0.392113 0.155952 0.835459 -0.027759 1.654074 1.892687 0.354465 1.127666 0.916536 1.569304 0.892919 1.292494 1.328663 1.179349 1.837000 0.761736 0.275710 1.394123 1.427320 1.098857)
)
;;; 94 odd --------------------------------------------------------------------------------
#(94 12.792093608509 #(0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1)
12.789479876738 #(0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1)
- 10.931289 #(0.000000 1.627785 0.828313 1.011630 0.665424 0.914501 1.199058 0.670695 0.911009 0.258860 0.847639 0.822166 1.436763 1.739379 0.412002 -0.036021 1.564058 0.979430 1.063550 0.127625 0.732982 -1.899351 0.345326 1.517049 0.157927 0.176037 0.573451 1.059985 0.043109 0.512167 1.486602 0.296740 -0.101908 0.211833 1.187411 0.107326 0.365427 0.439064 1.109336 1.231238 0.742913 0.716175 0.604691 0.802442 0.994789 0.709133 -1.951063 1.998621 1.056757 0.316853 0.642254 0.341743 -0.003807 0.556436 1.151907 1.657741 0.266198 0.753957 0.702896 0.528189 1.630351 1.223683 0.606515 1.409725 0.259959 1.635234 0.539572 0.865857 1.140434 1.691218 0.272614 1.557281 0.052991 1.446665 0.443700 0.225136 0.805918 1.773546 1.144217 -1.891744 1.600398 1.483838 1.708889 1.246274 1.650643 1.867038 0.775654 0.618215 0.435686 1.276543 0.249437 1.665020 1.265538 0.783596)
+ 10.927037 #(0.000000 1.626681 0.829955 1.010240 0.664233 0.913758 1.199948 0.669622 0.911576 0.259289 0.848829 0.822136 1.437096 1.738789 0.413383 -0.035194 1.563514 0.979262 1.063426 0.126656 0.733692 -1.898723 0.344570 1.516033 0.158815 0.175468 0.573142 1.060297 0.042863 0.512772 1.486408 0.295766 -0.101212 0.211587 1.188376 0.105685 0.365886 0.437671 1.109089 1.231399 0.744266 0.716316 0.605478 0.802168 0.994077 0.708959 -1.950755 1.997536 1.055776 0.315707 0.643181 0.342210 -0.003827 0.557681 1.151801 1.658103 0.266280 0.754642 0.704155 0.529302 1.629191 1.224676 0.606829 1.410588 0.261171 1.635301 0.540253 0.865018 1.139969 1.690426 0.273032 1.557577 0.053894 1.446345 0.443237 0.226192 0.805316 1.773939 1.143493 -1.891950 1.600920 1.484406 1.708430 1.245949 1.651862 1.868318 0.776505 0.619191 0.436541 1.276281 0.248634 1.664335 1.266079 0.783779)
)
;;; 95 odd --------------------------------------------------------------------------------
@@ -2168,7 +2247,7 @@
12.858592033386 #(0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0)
12.572603216801 #(0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0)
- 11.075572 #(0.000000 1.455572 0.059811 -0.195740 1.548332 1.521386 0.919969 1.058544 1.169284 0.328971 0.837696 1.556776 1.863582 1.266402 0.849021 0.886615 0.209783 0.391835 0.432218 1.083573 0.252013 1.753966 1.063941 0.612558 0.848847 0.327142 0.262814 0.790085 1.676452 1.120589 0.559971 0.263347 0.281265 1.731856 1.124290 1.203359 0.150062 0.833569 1.177519 1.149559 0.850247 1.874566 1.357012 0.903934 0.644736 0.422186 1.480587 1.555371 1.241507 1.281918 1.793859 0.586637 0.987483 1.011805 0.930041 1.342413 1.780175 0.462629 -0.073348 1.652797 1.138491 -0.169871 1.175197 -0.016102 1.100918 -0.066257 1.103982 1.383763 0.142317 0.178899 1.093706 1.203566 0.298476 0.964042 0.695324 0.708258 0.819734 0.864467 1.365899 1.566443 -0.126210 1.572865 1.920918 1.036790 -0.265378 -0.055008 1.080268 0.477206 1.320879 0.943770 0.260303 0.068485 0.883520 0.901984 0.257430)
+ 10.972495 #(0.000000 1.449667 0.060926 -0.201380 1.548663 1.519600 0.938214 1.062175 1.174870 0.333416 0.837318 1.560838 1.862954 1.267192 0.849868 0.883271 0.202595 0.388073 0.431413 1.076586 0.244615 1.747160 1.058538 0.596873 0.837670 0.328242 0.269596 0.787857 1.674013 1.117617 0.562113 0.268180 0.293670 1.739946 1.123177 1.219836 0.147953 0.825012 1.173554 1.149466 0.853192 1.867305 1.353842 0.897875 0.650134 0.414983 1.484702 1.546801 1.245132 1.289257 1.794113 0.590642 0.981862 1.025381 0.917183 1.351881 1.793049 0.461111 -0.072467 1.657938 1.136680 -0.167321 1.165874 -0.028616 1.100971 -0.064408 1.098503 1.375066 0.146380 0.173094 1.088926 1.186393 0.299888 0.954291 0.700657 0.702286 0.835918 0.879818 1.362486 1.554878 -0.125935 1.565773 1.929243 1.044577 -0.266372 -0.057867 1.088814 0.481040 1.320370 0.941781 0.270422 0.071074 0.886342 0.900115 0.257131)
)
;;; 96 odd --------------------------------------------------------------------------------
@@ -2177,7 +2256,7 @@
12.956554412842 #(0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0)
12.803173065186 #(0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0)
- 11.147820 #(0.000000 0.718181 1.850402 0.552730 0.146092 0.080582 0.829850 0.380651 0.186511 1.853169 0.425696 1.855176 0.534087 0.999456 1.372214 -0.075387 0.071744 0.591127 0.875726 -0.017258 1.269786 1.844878 0.565501 0.148000 0.264123 1.189244 1.448379 0.428871 0.675459 0.235897 0.257685 1.466728 1.840357 1.581750 1.345328 0.494925 1.073714 0.032937 0.913739 -0.004947 1.798107 1.777756 0.399938 0.162672 0.763993 -0.027914 0.831291 0.670873 1.595738 0.539889 0.509907 0.828813 1.415931 0.967019 1.814818 0.731379 1.857842 1.463306 0.777560 0.603739 0.968243 0.983113 0.733061 0.072624 -0.017853 -0.113874 1.210758 0.327566 0.404511 0.632834 1.447563 0.807907 1.217188 -0.022318 0.437477 1.267648 1.331908 1.819115 0.718075 0.104258 1.474720 1.865088 1.616682 1.585736 1.386406 1.615613 0.159792 1.400278 0.799083 0.679386 1.455343 0.666278 0.253746 1.792149 -0.031901 0.528916)
+ 11.140087 #(0.000000 0.720511 1.849696 0.548540 0.143796 0.078198 0.835480 0.384414 0.185614 1.851906 0.430241 1.852469 0.534407 0.994680 1.375499 -0.078235 0.070487 0.591624 0.880047 -0.014769 1.267384 1.842603 0.562108 0.144174 0.265852 1.189020 1.450300 0.429659 0.673228 0.234813 0.259067 1.466644 1.843161 1.581585 1.342633 0.502261 1.077399 0.032607 0.911237 -0.004185 1.797194 1.776370 0.399052 0.161414 0.768447 -0.023151 0.828511 0.672222 1.599699 0.536698 0.513080 0.826097 1.415517 0.971226 1.810764 0.729398 1.857311 1.461757 0.779080 0.601347 0.969872 0.982185 0.732540 0.077400 -0.020651 -0.113889 1.208673 0.329500 0.403819 0.634653 1.445351 0.809636 1.210871 -0.022473 0.439332 1.271404 1.331084 1.824241 0.721355 0.106316 1.474991 1.863621 1.615775 1.583783 1.390145 1.610829 0.153352 1.409737 0.804622 0.680587 1.449995 0.668246 0.253857 1.791837 -0.027206 0.531015)
)
;;; 97 odd --------------------------------------------------------------------------------
@@ -2203,7 +2282,7 @@
13.046126365662 #(0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1)
13.000000000002 #(0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0)
- 11.350553 #(0.000000 0.453989 1.995173 1.509536 1.242321 1.057876 1.329639 0.027902 0.986225 0.741991 1.329636 1.918440 1.429633 1.469666 1.725452 0.473084 0.221055 1.310440 0.961243 0.323412 0.982060 -0.519894 1.185250 1.403140 1.335608 1.913714 1.324448 1.382474 0.767788 1.208261 1.751447 0.106067 0.755110 -0.022968 0.953702 1.428000 0.085523 1.448455 0.980729 0.355148 1.645894 0.455119 0.736199 1.508747 1.538408 0.681593 0.970487 0.386870 0.224580 0.255564 0.773879 -0.297325 0.670548 1.060619 -0.017278 1.296945 0.295925 -0.326005 0.492259 0.101529 1.138826 0.890263 1.155710 0.435757 0.144570 0.827366 0.521916 0.217972 0.766721 0.409852 -0.246291 -0.032717 1.764475 1.253561 0.448383 -0.035516 1.924273 1.321034 0.533716 1.655287 0.210655 0.685009 1.422580 -0.240755 1.278524 1.721789 0.233315 0.729487 0.889366 0.854813 0.579354 0.837570 0.744947 0.456092 1.237501 0.266363 1.123979 1.410091 1.142063)
+ 11.345669 #(0.000000 0.454564 1.994924 1.510381 1.241869 1.057206 1.329731 0.028501 0.985527 0.742650 1.330343 1.917590 1.429702 1.469962 1.725955 0.473656 0.220453 1.309614 0.961727 0.324110 0.981659 -0.520371 1.185169 1.403275 1.335942 1.914374 1.324474 1.382530 0.767723 1.208649 1.751792 0.106270 0.755250 -0.022000 0.953715 1.427546 0.085459 1.448027 0.979824 0.354179 1.645092 0.455304 0.736395 1.509603 1.538206 0.682457 0.969990 0.386579 0.225475 0.254880 0.773361 -0.296914 0.670619 1.061337 -0.016894 1.296346 0.294942 -0.325290 0.493031 0.102019 1.138266 0.889818 1.155955 0.436097 0.144471 0.827628 0.522461 0.218062 0.765965 0.410673 -0.246044 -0.032147 1.763806 1.252853 0.447580 -0.035967 1.925022 1.320824 0.533630 1.655725 0.210843 0.685289 1.422701 -0.239847 1.277699 1.721905 0.232911 0.730321 0.890214 0.855077 0.578903 0.837600 0.745413 0.456235 1.237180 0.265549 1.124309 1.410122 1.141199)
)
;;; 100 odd --------------------------------------------------------------------------------
@@ -2211,28 +2290,28 @@
13.24493912033 #(0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0)
13.117680368039 #(0 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0)
- 11.377003 #(0.000000 0.798445 0.757822 0.694000 0.270669 1.579415 0.554471 1.108077 1.679288 0.614282 1.312673 0.646788 -0.282219 0.258987 0.831853 0.875961 1.894369 -0.034140 1.079157 0.219001 0.624863 1.470472 1.966873 0.201208 0.558689 1.482903 0.562738 0.416976 1.662226 1.294023 1.218754 1.032139 0.379881 1.944282 1.546018 0.129592 1.745511 1.802179 0.145111 1.717217 1.042857 1.440652 0.824329 1.493422 0.381071 0.581534 0.327238 0.080817 0.212190 -0.248112 0.675487 0.208539 0.633555 1.372435 0.436218 1.066582 0.209371 -0.176556 1.787309 0.719014 0.565389 0.390935 0.640893 -0.119942 0.810665 0.607873 1.849517 1.151963 0.728385 -0.263564 1.050786 1.515831 0.541188 0.278610 1.100267 1.578265 1.621436 0.122231 0.135729 0.214779 0.230766 0.206349 1.090226 1.916071 -0.214843 1.060249 1.596322 0.463448 -0.021877 1.268002 0.211690 1.335562 1.282186 1.152381 0.108405 -0.169204 0.658240 0.864631 0.944370 1.099517)
+ 11.196081 #(0.000000 0.796414 0.781705 0.712482 0.278708 1.578975 0.559318 1.112999 1.673196 0.595213 1.315391 0.674721 -0.265795 0.264189 0.828898 0.888829 1.898506 -0.024589 1.079602 0.220846 0.626026 1.479974 1.992741 0.204960 0.558175 1.472544 0.577462 0.420843 1.702717 1.288585 1.223599 1.076535 0.367912 1.960872 1.538625 0.128329 1.729600 1.815771 0.129084 1.714658 1.025730 1.427542 0.829608 1.497572 0.388988 0.570635 0.326955 0.076283 0.196276 -0.238239 0.681242 0.201610 0.642219 1.352314 0.432217 1.074321 0.223713 -0.191773 1.776005 0.696503 0.556671 0.383270 0.616917 -0.136292 0.824118 0.577900 1.847649 1.134821 0.727411 -0.277347 1.046244 1.523155 0.561998 0.281090 1.127487 1.565297 1.602089 0.132884 0.141252 0.218607 0.248314 0.218176 1.099054 1.898173 -0.224042 1.062239 1.585309 0.454473 -0.024732 1.292403 0.199242 1.348560 1.260786 1.141367 0.130481 -0.183089 0.663188 0.870374 0.960196 1.100008)
)
;;; 101 odd --------------------------------------------------------------------------------
#(101 13.462674500314 #(0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1)
13.279868125916 #(0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1)
- 11.493865 #(0.000000 0.172911 1.748150 0.013044 1.102891 0.418689 1.210781 0.330067 1.582416 1.142748 0.439125 0.360841 0.041466 0.954426 0.836732 0.266506 1.453299 1.237522 0.568166 0.917286 0.447724 1.072605 1.166106 0.394908 1.771668 1.650662 1.866969 1.573242 0.118186 0.350966 0.180538 1.804786 1.191340 0.684412 0.145455 -0.023671 0.926997 1.797140 1.656712 -0.183948 1.666089 0.024104 0.911302 0.031960 1.723545 -0.041506 -0.079783 0.700713 1.385565 0.081874 0.714879 1.656054 1.391391 1.535252 0.399992 0.694352 0.021055 0.271866 0.985570 1.535027 1.364914 1.013222 1.101878 1.291763 1.427291 0.204190 0.232999 -0.181629 -0.165770 0.457715 1.510508 1.565150 1.219268 -0.237079 1.667282 0.396864 -0.011791 1.310486 1.498112 1.123904 0.541090 0.707244 0.366871 1.428722 -0.116323 -0.001373 0.701430 0.526909 1.451941 0.631349 0.339575 1.146950 0.182859 0.705709 1.879403 1.111601 0.102882 1.817848 -0.066522 0.369398 1.411855)
+ 11.409126 #(0.000000 0.154217 1.741105 0.023007 1.097647 0.429254 1.206973 0.321434 1.578737 1.131854 0.446540 0.346019 0.047493 0.952195 0.831953 0.265777 1.456860 1.238682 0.548067 0.919990 0.448211 1.065687 1.157078 0.398867 1.772028 1.636755 1.856964 1.583019 0.124215 0.351462 0.181831 1.807070 1.178102 0.684350 0.144316 -0.027521 0.933318 1.800350 1.648162 -0.193380 1.647042 0.022062 0.912945 0.018117 1.738383 -0.026097 -0.081483 0.696493 1.374451 0.083542 0.716238 1.659703 1.382962 1.538156 0.396181 0.694637 0.019262 0.283730 0.993783 1.524302 1.376991 1.020377 1.090943 1.274927 1.419138 0.212063 0.224329 -0.183473 -0.167044 0.452404 1.525772 1.559983 1.206307 -0.253551 1.662975 0.393549 -0.002714 1.312608 1.500051 1.145934 0.536246 0.723495 0.370144 1.435046 -0.127316 0.005983 0.700938 0.524640 1.461604 0.632127 0.352088 1.165366 0.178865 0.686390 1.885132 1.118194 0.100097 1.816128 -0.054786 0.368761 1.412075)
)
;;; 102 odd --------------------------------------------------------------------------------
#(102 13.701085090637 #(0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0)
13.159336831147 #(0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0)
- 11.532551 #(0.000000 1.879367 0.329673 0.447027 1.577458 1.612436 0.841102 0.512491 0.293787 1.105869 0.576797 1.508976 0.388980 0.652108 1.820574 1.111438 0.891763 1.130685 1.807134 0.222164 -0.061105 1.092983 0.558032 0.787865 1.113553 0.559485 1.633028 1.112282 0.023311 0.326034 1.242047 1.512452 1.390430 1.186065 0.510246 0.164653 0.158542 1.331545 1.693069 0.245900 0.294057 0.944558 0.327638 0.743641 0.746794 0.756413 1.492546 0.780749 1.321884 1.138345 1.877883 1.133811 0.342857 0.743073 -0.010460 0.974823 1.473921 0.139152 1.109864 1.672583 1.771178 1.572310 0.891035 1.175246 0.443725 -0.086669 0.329023 0.600104 0.997681 0.265424 0.908426 1.000418 0.453133 0.631474 -0.134607 0.197756 0.859270 0.674511 0.665842 1.813712 0.453028 0.194494 0.436584 0.307896 0.737441 0.485950 0.194454 1.732765 -0.031971 1.292934 1.473345 -0.088572 0.928749 0.868097 0.200200 1.455418 0.862914 0.349223 1.207284 1.733036 1.640225 0.404936)
+ 11.368618 #(0.000000 1.872282 0.313052 0.445090 1.590355 1.598083 0.853204 0.504213 0.322446 1.108005 0.564441 1.514591 0.396272 0.654269 1.823374 1.104274 0.907198 1.147369 1.817252 0.223623 -0.064608 1.107518 0.578174 0.773539 1.129365 0.535265 1.652763 1.107007 0.006274 0.336207 1.213800 1.509323 1.388850 1.196842 0.503310 0.172576 0.140080 1.321160 1.692902 0.226879 0.323368 0.932257 0.317342 0.716477 0.769016 0.763162 1.516137 0.776386 1.324429 1.120906 1.857534 1.141392 0.334266 0.748765 -0.001463 1.011983 1.459458 0.145681 1.110146 1.672343 1.773970 1.556955 0.884809 1.168102 0.456636 -0.090263 0.330975 0.592877 1.019183 0.261688 0.923998 1.002380 0.454059 0.633890 -0.135837 0.191436 0.868758 0.690538 0.645214 1.790776 0.433841 0.212842 0.459203 0.284696 0.738821 0.496551 0.193441 1.727503 -0.038614 1.275224 1.486007 -0.071217 0.910826 0.887661 0.198865 1.461310 0.849254 0.354336 1.197851 1.753257 1.635106 0.416256)
)
;;; 103 odd --------------------------------------------------------------------------------
#(103 13.551587266363 #(0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1)
13.142812158651 #(0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1)
- 11.633311 #(0.000000 1.500558 -0.011348 1.585939 1.559237 1.186287 0.721326 1.200071 0.306620 1.676321 1.576112 1.845746 1.596384 0.447758 0.264585 -0.267546 1.479367 0.797848 1.388781 0.333623 -0.257160 0.971403 0.346427 0.838887 1.753231 0.865811 0.896116 0.147620 0.302549 0.386111 -0.023820 0.836142 1.360645 1.122941 0.598478 0.063855 1.275787 0.260312 0.786456 1.606118 0.237108 0.878618 1.159942 0.031950 1.130785 0.076523 0.879127 0.543995 0.989197 0.696361 1.789308 0.243322 0.611197 0.523856 1.122090 1.793411 0.922671 1.184147 1.387589 0.151966 0.986536 0.310573 1.670843 0.991398 0.493853 0.654198 0.383851 0.785742 1.811656 1.632644 -0.070547 1.296273 1.594216 -0.022866 -0.331419 1.766909 0.426407 0.628064 1.690108 1.160756 1.719528 0.983070 1.222294 0.037271 1.597644 0.887141 0.930736 0.114284 1.041337 0.759729 0.552903 1.612196 0.132627 0.870850 0.786938 1.323360 1.150744 0.385535 1.155945 1.053830 -0.008326 1.823195 1.642775)
+ 11.534387 #(0.000000 1.496874 -0.008287 1.577425 1.549680 1.183866 0.715895 1.192786 0.313300 1.667262 1.579135 1.835228 1.590627 0.450371 0.272790 -0.278018 1.477856 0.791529 1.380383 0.313584 -0.256592 0.965257 0.336286 0.842998 1.753795 0.883388 0.890084 0.151316 0.294798 0.382750 -0.028933 0.842488 1.346453 1.128710 0.606551 0.064543 1.284155 0.281268 0.783937 1.611801 0.239594 0.897929 1.158717 0.040713 1.125432 0.076025 0.880671 0.556367 0.993915 0.684358 1.786181 0.251902 0.612358 0.522608 1.119899 1.795162 0.914341 1.177505 1.370034 0.155946 0.987376 0.311232 1.663281 0.974303 0.500817 0.645917 0.367513 0.777534 1.804572 1.632896 -0.072231 1.295056 1.596829 -0.019324 -0.337815 1.748462 0.430896 0.647929 1.701444 1.145851 1.726737 0.977037 1.210626 0.063198 1.606235 0.890127 0.940340 0.104958 1.032041 0.757566 0.548658 1.597558 0.135913 0.872801 0.792606 1.311790 1.137983 0.397452 1.154780 1.051497 0.003283 1.819714 1.660335)
)
;;; 104 odd --------------------------------------------------------------------------------
@@ -2241,21 +2320,21 @@
13.214084551284 #(0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0)
13.176067352295 #(0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0)
- 11.661910 #(0.000000 1.027991 0.005853 1.224705 1.409544 1.313201 1.850168 1.848847 -0.131229 -0.016644 0.340039 1.638881 1.577630 0.501043 0.889605 0.387210 0.756496 1.697260 1.880941 1.391330 0.149204 0.914474 0.872907 0.876542 -0.166929 0.618114 1.710884 0.927871 0.547346 1.238806 0.957554 1.573293 0.880267 0.778368 0.902490 1.355599 0.869460 0.948770 0.752146 1.601514 -0.012973 0.977190 0.927305 0.397640 0.451572 0.805084 0.996587 -0.059069 0.497548 0.920779 1.576331 0.282990 1.017273 1.569131 0.971666 0.343896 1.767834 0.323081 -0.084667 0.951483 1.927500 0.757991 0.775415 1.737145 1.561682 0.960775 1.128981 1.507347 1.166408 1.345005 1.116896 0.798969 1.889957 0.417542 0.036009 1.200635 -0.002016 0.753233 -0.021980 -0.062118 1.159688 0.102895 0.063313 1.088008 1.044636 0.261302 1.578594 0.849467 0.730497 1.502009 1.289554 0.071862 1.289587 1.760017 1.488720 1.625406 0.786074 0.712592 0.668687 1.793198 1.744770 0.263486 0.487814 -0.148350)
+ 11.656865 #(0.000000 1.026916 0.005090 1.225997 1.410747 1.313050 1.849815 1.848857 -0.130987 -0.016727 0.341401 1.638429 1.576358 0.500055 0.889257 0.387027 0.755944 1.696795 1.880174 1.391718 0.148907 0.913753 0.871967 0.876819 -0.166476 0.618070 1.711671 0.928677 0.547165 1.238552 0.957342 1.572223 0.879102 0.778609 0.902093 1.353997 0.868778 0.948939 0.750839 1.601639 -0.013253 0.977449 0.927680 0.398794 0.452431 0.804719 0.997393 -0.059500 0.496935 0.920885 1.576236 0.283747 1.018146 1.569860 0.971737 0.344267 1.768216 0.322107 -0.085082 0.950865 1.927922 0.757204 0.774987 1.737738 1.561809 0.962613 1.128360 1.507335 1.165970 1.344196 1.116169 0.799262 1.890981 0.416395 0.035318 1.200754 -0.002817 0.753018 -0.020726 -0.062045 1.159760 0.102193 0.063754 1.089206 1.045084 0.260610 1.579030 0.848595 0.730467 1.502246 1.288921 0.073189 1.289083 1.760949 1.489547 1.626197 0.785804 0.713584 0.668877 1.792779 1.744729 0.263347 0.489061 -0.148773)
)
;;; 105 odd --------------------------------------------------------------------------------
#(105 14.179738044739 #(0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0)
13.491228801467 #(0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0)
- 11.664791 #(0.000000 1.716036 1.478944 1.084464 0.591664 0.889942 0.808779 0.648573 1.768109 1.496056 0.151937 1.400548 1.266549 0.732563 0.520603 0.871787 1.740956 1.895616 0.695958 1.873694 1.775364 1.401956 0.588760 1.221974 -0.074059 1.885924 1.096444 1.485424 0.062126 0.843048 1.107064 0.545368 0.957126 -0.251623 1.445999 1.129095 0.696480 0.323748 1.159739 1.536160 1.031928 1.027160 1.378490 1.260526 1.360651 -0.092118 0.987149 -0.007251 -0.271952 0.312329 1.394002 1.333198 0.638789 -0.169872 0.936118 1.672017 0.093408 1.042290 0.240578 1.022933 1.481232 1.115585 0.223895 0.460896 1.089009 1.581246 0.015250 1.650761 -0.017947 1.777823 1.044520 0.340840 0.766819 0.698841 1.262627 0.148556 1.151251 0.758403 0.466562 1.280433 0.997228 0.616884 0.095286 0.436525 1.657670 0.274506 1.738354 0.312979 0.373444 1.112236 1.803978 1.656150 1.348216 1.951552 0.941562 -0.150687 1.480320 0.015466 0.163202 0.271254 0.138209 0.302417 0.608467 -0.372562 1.420909)
+ 11.659995 #(0.000000 1.715636 1.479996 1.084090 0.591018 0.890650 0.808660 0.648001 1.767371 1.495915 0.152797 1.400088 1.267278 0.732786 0.521765 0.872061 1.741117 1.896093 0.694217 1.872429 1.774811 1.401343 0.588691 1.220995 -0.073399 1.886137 1.096821 1.486615 0.063186 0.843386 1.105387 0.544756 0.958403 -0.250151 1.445002 1.128567 0.696027 0.323571 1.159613 1.536733 1.032811 1.028761 1.378442 1.261417 1.360695 -0.092879 0.987788 -0.007078 -0.272763 0.312018 1.393921 1.334383 0.639872 -0.169684 0.935913 1.672624 0.094139 1.041148 0.239420 1.022618 1.481554 1.115101 0.223650 0.461935 1.089359 1.581313 0.015010 1.652752 -0.018161 1.777688 1.044294 0.341636 0.767003 0.700244 1.262799 0.148696 1.151844 0.758122 0.465621 1.278727 0.997371 0.615766 0.096183 0.436807 1.658864 0.275455 1.739735 0.312437 0.373347 1.110980 1.804411 1.655998 1.347323 1.951413 0.942743 -0.151043 1.480701 0.014713 0.164018 0.271478 0.138357 0.302161 0.607648 -0.371500 1.421635)
)
;;; 106 odd --------------------------------------------------------------------------------
#(106 13.492804348903 #(0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1)
13.091135978699 #(0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0)
- 11.834238 #(0.000000 0.746099 1.129351 0.207857 1.871037 1.031487 1.564949 1.001475 0.474550 0.879891 1.969401 0.885772 0.511350 0.785224 1.236626 0.094082 0.120704 0.958955 1.822789 0.265327 0.576722 1.391860 -0.257246 1.601684 0.575442 0.330526 1.138931 1.013063 1.136014 0.404330 -0.173912 1.725370 1.816749 0.854712 0.698852 0.666387 1.520727 1.331330 0.610330 1.459818 0.330651 0.181826 0.136178 0.902590 0.311793 0.902827 0.199068 0.451023 0.662634 0.781438 0.853157 0.380778 0.606999 0.830346 0.210531 1.931446 1.639339 1.838847 1.116363 -0.223022 1.643617 0.148435 1.006310 1.310040 0.428886 1.312056 1.337143 1.573778 1.018272 1.438596 1.507024 -0.039231 0.517919 0.165995 0.178366 1.790729 1.160872 0.158623 1.527511 1.106857 1.289963 0.268687 1.837373 1.051214 0.757998 1.447074 1.174641 -0.077302 0.272434 1.561371 -0.069608 1.061128 1.377582 0.144459 1.775768 0.439759 0.049002 1.380201 1.472341 0.192686 0.723381 0.290133 0.375234 1.454109 0.105479 1.475472)
+ 11.830185 #(0.000000 0.745887 1.129623 0.209788 1.870856 1.032498 1.565202 1.001311 0.475730 0.879287 1.968776 0.885754 0.510767 0.785493 1.236756 0.093613 0.120239 0.958868 1.822261 0.264632 0.577469 1.392312 -0.257210 1.601662 0.575756 0.329964 1.139762 1.011977 1.136093 0.403863 -0.174592 1.725392 1.817293 0.854357 0.699573 0.667409 1.522109 1.332229 0.610776 1.460291 0.331906 0.182656 0.135695 0.903549 0.311599 0.901971 0.199924 0.451810 0.663349 0.781897 0.853472 0.381375 0.605671 0.829713 0.210857 1.930678 1.640506 1.840063 1.116401 -0.223753 1.643567 0.148406 1.006138 1.308603 0.429942 1.312601 1.337189 1.573972 1.016519 1.439552 1.506910 -0.040040 0.518690 0.165698 0.176610 1.791124 1.161163 0.158343 1.525952 1.106715 1.289839 0.268988 1.838068 1.051339 0.757913 1.447426 1.174844 -0.077495 0.272277 1.561728 -0.068883 1.060914 1.378123 0.142891 1.775286 0.440214 0.049293 1.380038 1.471877 0.191036 0.722545 0.291459 0.373956 1.454671 0.106192 1.475178)
)
;;; 107 odd --------------------------------------------------------------------------------
@@ -2280,7 +2359,7 @@
#(109 13.88663482666 #(0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0)
13.798 #(0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0)
- 12.172330 #(0.000000 1.581160 0.296696 1.367553 1.170553 0.109183 0.283685 1.722956 1.265701 1.401636 1.834696 1.634505 0.769647 0.595492 1.188799 1.154337 0.472832 0.465979 0.361538 0.939166 -0.122910 0.649652 0.986308 1.184167 1.520374 1.056826 1.675237 1.424805 0.661543 0.108688 1.425128 1.487419 0.212478 1.513857 0.779471 1.152224 1.890558 1.836446 0.665946 1.683981 0.466822 1.197831 1.028971 1.828107 0.726118 0.609985 0.629907 1.263111 0.762744 1.167268 0.173460 -0.093791 0.957507 1.557965 1.914686 1.056421 1.542057 0.816952 1.160590 1.127651 1.565772 1.160813 1.735994 1.239722 0.917522 0.269783 1.040472 1.803746 1.119841 1.903238 1.835131 0.001921 0.761210 0.754731 0.444049 0.403165 1.857560 -0.042928 1.577297 1.700649 1.555676 1.250080 0.052535 -0.001190 1.790522 -0.057874 0.558227 0.401631 1.431170 0.738651 0.370000 1.465705 0.017471 1.793842 1.205066 0.434226 0.728656 1.587733 1.285408 1.277571 0.543882 0.896009 0.124012 1.099506 0.118762 1.111257 1.310500 0.257226 0.545829)
+ 12.013782 #(0.000000 0.061086 1.468665 0.451207 0.535321 1.555298 1.055792 0.976020 0.342194 1.761611 1.381013 1.456387 1.625596 -0.122539 0.921570 1.271250 0.770247 0.369081 0.657881 0.739537 0.178240 1.523128 1.154124 0.372167 0.885319 1.257607 0.594901 0.082628 1.439964 0.932878 1.163287 0.541700 0.415256 1.533168 1.105661 1.304665 1.165653 0.428600 1.089722 -1.751996 1.090956 1.884763 0.252509 1.117966 1.317922 0.537754 1.385348 0.852433 0.570495 0.421467 1.297749 0.675341 1.838893 0.451388 0.889460 1.552987 1.524925 1.163043 1.645606 0.792785 1.475669 0.958086 0.011099 1.161431 0.832939 0.096035 0.761329 1.346894 0.342735 0.219377 0.248537 1.993212 1.307737 -0.043199 1.501713 0.408338 1.630114 0.858157 0.907167 1.790409 1.946259 1.360302 -0.098380 0.684721 0.783034 1.153065 1.450988 0.925559 1.121801 1.066730 1.203169 1.894353 1.492960 0.718943 1.111065 -0.091677 0.697753 1.672781 1.151837 0.028545 0.487493 0.936191 0.431878 0.932908 0.721365 1.483363 -0.161630 1.872909 0.519773)
)
;;; 110 odd --------------------------------------------------------------------------------
@@ -2288,7 +2367,7 @@
13.75 #(0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0)
13.576010454591 #(0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0)
- 12.081072 #(0.000000 1.587061 1.023196 0.910010 0.423738 0.300158 0.469908 1.235392 1.743629 1.212608 -0.133483 -0.098194 1.561343 1.128139 1.298927 0.157903 0.109198 0.837753 1.425499 1.388435 1.456134 1.381841 1.248826 1.256513 1.238493 -0.153528 -0.050918 -0.116342 0.005162 0.632084 1.887314 1.097157 -0.215286 0.587211 1.088606 1.382355 1.401173 1.293503 0.050642 0.839882 1.345781 1.505031 0.817971 0.510773 0.757310 1.849033 -0.054410 0.634241 1.088917 0.163332 0.598132 0.056407 1.507664 0.453652 0.504685 1.447281 1.836279 0.506483 1.687269 1.023114 1.419774 0.789496 0.783591 0.200708 1.236540 -0.006026 1.162015 1.364591 1.483578 1.734850 0.766623 0.273870 1.620515 0.779665 1.426830 0.474190 1.042017 -0.279350 0.492198 0.303844 -0.051540 0.328388 0.325130 1.126927 1.353358 0.996757 0.288942 1.785463 0.199300 1.028484 0.052234 1.030715 0.073761 1.696901 0.217974 0.106781 -0.406244 0.934350 1.476114 -0.059054 1.804818 0.834773 0.408460 1.150444 0.751749 0.531209 1.175251 0.133909 0.238984 0.424094)
+ 12.076746 #(0.000000 1.587476 1.022738 0.911081 0.423707 0.299340 0.467960 1.236252 1.743630 1.212092 -0.131920 -0.098435 1.562185 1.127371 1.297359 0.156355 0.108751 0.836424 1.426857 1.388096 1.456408 1.383101 1.247416 1.256847 1.238566 -0.154266 -0.050287 -0.115862 0.004633 0.631510 1.887624 1.096193 -0.214760 0.587331 1.088696 1.381472 1.402513 1.292808 0.049139 0.838940 1.345661 1.503758 0.817517 0.510362 0.757280 1.848711 -0.053383 0.633784 1.089259 0.163069 0.597666 0.054863 1.507281 0.453484 0.504801 1.445727 1.836368 0.507504 1.685683 1.022851 1.418964 0.789853 0.782763 0.200917 1.236047 -0.006814 1.162998 1.365930 1.483811 1.736291 0.765781 0.274801 1.621435 0.780418 1.425414 0.475164 1.042429 -0.280681 0.492648 0.302886 -0.049710 0.328831 0.325846 1.126507 1.353854 0.997074 0.289140 1.784935 0.198948 1.029971 0.052379 1.030963 0.072608 1.697055 0.219159 0.106106 -0.406315 0.935390 1.475623 -0.060415 1.806214 0.834506 0.408642 1.149495 0.751853 0.530462 1.174683 0.134816 0.238119 0.424285)
)
;;; 111 odd --------------------------------------------------------------------------------
@@ -2296,7 +2375,7 @@
14.114 #(0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0)
13.709900383304 #(0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0)
- 12.205334 #(0.000000 0.202452 0.364548 -0.055092 0.672690 0.138060 1.115444 1.129700 -0.169387 0.159084 1.628650 1.905236 0.100209 0.642270 0.622243 1.806428 1.292247 1.219057 1.425179 1.621142 0.075829 0.219128 1.650987 1.030559 -0.252356 1.509813 0.573952 1.695061 1.648106 1.878090 1.073466 0.781132 0.464195 0.180331 0.222250 1.471523 0.913436 0.945642 0.843993 0.757256 0.230789 0.958275 -0.161463 0.219275 0.376966 -0.167098 0.927689 1.123020 0.111872 1.238217 1.074372 0.155719 0.910425 1.586387 1.431101 0.617957 1.580226 0.084166 1.671453 0.578849 -0.006295 0.153762 0.046509 1.132743 0.566851 0.566315 0.273233 0.276782 1.800284 1.428213 1.922052 0.119884 1.457068 1.277677 -0.191902 0.337805 0.025529 0.575231 1.384862 1.724748 1.014405 0.096356 0.064928 1.551404 1.764766 0.460388 1.372480 0.699626 1.806687 0.601423 1.256166 0.242680 0.324882 0.952914 1.197617 1.968954 -0.011745 1.867653 0.310465 1.619805 1.535358 1.187764 0.073025 -0.224756 0.448728 1.288926 0.409926 1.437186 1.771934 0.883599 0.328148)
+ 12.201863 #(0.000000 0.201647 0.364518 -0.054422 0.672801 0.137142 1.115879 1.129482 -0.169088 0.159700 1.628319 1.905246 0.099363 0.642675 0.621726 1.805687 1.291390 1.219104 1.425287 1.621038 0.075052 0.218537 1.651905 1.031181 -0.253289 1.509448 0.573724 1.695100 1.648615 1.878656 1.073384 0.781235 0.464833 0.180606 0.222637 1.472174 0.913421 0.945030 0.844825 0.756449 0.231021 0.958162 -0.160739 0.218425 0.377861 -0.168016 0.927557 1.123748 0.111269 1.238653 1.074529 0.155341 0.910420 1.586325 1.430617 0.617680 1.580198 0.083869 1.671418 0.577882 -0.005746 0.153250 0.047244 1.133703 0.567804 0.566131 0.273622 0.276972 1.799350 1.427609 1.922924 0.119208 1.456180 1.278193 -0.192469 0.337258 0.025326 0.574343 1.384216 1.725635 1.013769 0.095541 0.064353 1.550596 1.765741 0.460655 1.371587 0.700373 1.807569 0.601038 1.255479 0.241681 0.325687 0.952737 1.197361 1.968565 -0.010778 1.867192 0.311193 1.619464 1.534571 1.187737 0.073514 -0.225625 0.449392 1.289821 0.409710 1.437026 1.771264 0.884385 0.329006)
)
;;; 112 odd --------------------------------------------------------------------------------
@@ -2312,7 +2391,7 @@
14.00348588593 #(0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0)
13.825498858186 #(0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0)
- 12.242913 #(0.000000 0.595172 0.702354 0.825314 0.355107 1.216736 0.261353 -0.023767 0.652597 1.756357 1.116238 1.588282 1.344120 -0.054705 0.044824 1.763705 1.943110 0.697278 1.000523 0.923696 0.632933 1.250956 1.784271 1.230737 1.639315 0.606952 1.635846 0.818079 0.912886 0.486427 0.586385 1.047273 1.799664 1.297928 1.466107 1.253714 0.495139 0.398228 1.147501 0.849707 0.537985 0.862893 0.388057 0.544973 0.369332 1.364230 0.670139 0.205611 1.258122 1.443593 1.184661 1.034727 0.616668 1.785452 0.488713 1.602966 1.861793 1.730859 0.851643 0.633497 0.992410 1.656230 0.717410 0.811611 1.915815 1.289364 0.443182 1.163431 0.057449 1.841466 1.550192 0.762894 -0.001260 0.419486 1.248868 1.718717 1.573339 0.247631 0.158310 1.377832 0.979862 0.700420 -0.062149 0.051150 1.841802 1.431019 1.619165 0.276079 1.012151 0.433082 1.056668 0.875942 0.032792 0.718634 1.179870 0.490838 0.228277 1.160388 0.853711 1.342971 1.635074 0.730557 1.373906 1.790869 1.414689 0.882063 1.280349 1.075293 1.736874 0.160709 0.754697 0.602498 1.262990)
+ 12.241704 #(0.000000 0.595073 0.701762 0.825483 0.354595 1.217541 0.260784 -0.024584 0.652566 1.756603 1.115615 1.588113 1.343200 -0.054482 0.045305 1.763259 1.942169 0.696423 1.000665 0.923031 0.632688 1.250450 1.783485 1.231324 1.638876 0.606425 1.635032 0.818061 0.913691 0.485751 0.586540 1.047698 1.799717 1.297923 1.465667 1.253055 0.495888 0.399082 1.148086 0.850192 0.538609 0.863029 0.388249 0.545422 0.368665 1.365033 0.669854 0.205657 1.258859 1.443104 1.184599 1.034509 0.615940 1.784823 0.488335 1.602546 1.862645 1.731050 0.851032 0.633455 0.992145 1.657115 0.717335 0.812453 1.915602 1.289098 0.443606 1.162634 0.057043 1.840665 1.550407 0.762600 -0.001418 0.420438 1.248383 1.718276 1.573755 0.247471 0.158544 1.377580 0.979520 0.700858 -0.061365 0.050997 1.841003 1.431928 1.618974 0.276666 1.012993 0.432919 1.057472 0.875319 0.033668 0.719362 1.180395 0.491802 0.228607 1.160261 0.852869 1.343380 1.635614 0.730798 1.373067 1.791453 1.415194 0.881181 1.281087 1.074655 1.736326 0.160865 0.755561 0.603196 1.262053)
)
;;; 114 odd --------------------------------------------------------------------------------
@@ -2322,6 +2401,7 @@
13.920305720092 #(0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0)
12.388669 #(0.000000 0.358609 0.413824 0.747446 0.688480 1.506856 0.560069 -0.340240 0.947024 1.012871 0.508172 1.694502 1.080262 0.596204 0.854793 0.902354 0.060291 -0.165510 0.834789 1.695480 1.241683 0.595147 0.371558 0.144247 0.313006 0.256535 0.122917 1.097127 1.117218 0.511442 0.458892 0.097925 1.324730 0.129827 0.562367 1.013766 0.186532 1.384907 0.890518 0.157632 1.523736 0.650731 0.167048 0.962161 1.094955 1.208423 1.642492 1.917213 1.293331 1.578709 1.785577 1.268736 0.734298 0.560897 0.584557 0.466809 1.219087 0.869652 1.688899 1.928548 -0.015148 1.678039 0.495703 0.257989 1.246837 1.728332 0.522903 0.073925 1.444096 -0.037987 0.074235 0.680867 1.644537 0.035013 1.784037 1.455480 0.145848 0.754392 1.112048 0.979614 0.859109 0.006173 1.351620 0.889613 0.614880 0.227617 0.726160 1.251960 0.334472 1.338027 -0.111228 0.522146 1.427297 1.653741 1.723083 0.690356 -0.060035 0.524334 1.258910 1.024747 1.041406 0.596899 1.009506 0.471848 1.257670 0.826740 1.275093 -0.117186 1.729528 1.671262 0.932447 1.226189 -0.237934 0.416179)
+ 12.321518 #(0.000000 -0.057507 0.611054 0.228974 0.995609 1.470380 0.687986 0.585786 1.132001 1.639099 0.313679 0.369485 1.438605 -0.027079 0.866445 -0.280867 1.715380 1.095211 0.701793 1.589006 0.274034 1.212102 0.597822 0.371681 0.728905 0.793691 1.099989 1.354078 0.614712 0.895237 0.651200 1.690344 0.716163 1.504440 0.898571 0.841659 1.281383 0.280613 1.639840 1.166997 0.294313 1.276983 -0.048925 0.594644 1.568530 1.402705 1.654452 1.633613 0.881882 1.769217 1.877221 1.585187 0.879139 -0.329544 1.675105 0.977403 0.042356 0.012203 0.179971 1.717167 0.693649 -0.083524 0.562602 0.753264 0.799499 1.686635 0.688278 1.873020 1.298781 1.095358 1.750762 1.883482 1.735318 0.021951 1.237576 0.871963 0.528769 1.871442 1.268756 1.135392 0.759699 0.173043 0.331337 1.467568 0.142004 0.243712 1.536900 1.563055 1.450508 -0.053076 1.781785 1.001242 1.486377 1.392102 1.412935 0.290520 1.441510 0.446482 0.655870 1.214594 1.456628 1.731767 1.283163 1.515113 1.201380 0.552336 0.555384 0.958896 0.080771 1.542365 1.660658 0.633506 1.228703 1.418629)
)
;;; 115 odd --------------------------------------------------------------------------------
@@ -2337,14 +2417,14 @@
14.619069099426 #(0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0)
13.887789451571 #(0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0)
- 12.354923 #(0.000000 0.289838 0.535560 0.880667 1.228424 1.031550 0.741899 1.506102 0.988320 1.508278 0.571455 0.600729 0.452018 1.275933 0.653475 1.338568 1.734244 1.494156 1.238413 1.348119 0.486125 0.003041 1.679271 0.629334 0.333278 0.581786 0.749219 0.238688 1.743430 1.765695 1.732489 0.187357 0.862203 0.528330 0.734030 1.737169 -0.066824 0.619892 0.625627 0.119067 0.438778 0.244824 1.213825 0.365406 1.835766 0.967593 1.254970 1.661803 1.937458 1.271122 1.176447 0.233122 1.830348 0.981479 1.762616 0.423652 0.367393 0.599490 1.364577 0.253931 1.029579 1.802626 1.421661 1.008618 1.915604 0.654670 1.382978 1.210833 1.497368 0.008169 1.268104 1.887897 1.959290 1.204464 0.946923 0.625933 1.535579 -0.117514 1.018516 0.097527 1.174064 0.149347 1.927763 0.899633 1.290979 0.452304 1.773546 -0.120686 -0.023400 1.145205 0.068848 1.642575 0.478026 0.060327 0.466688 1.783313 1.691486 0.275306 1.788827 1.156157 1.326085 1.756753 1.363008 0.125185 0.276981 1.696476 0.839634 1.621441 1.330289 0.465686 0.646496 0.997104 0.155251 0.674147 -0.088807 0.158305)
+ 12.349982 #(0.000000 0.288583 0.535138 0.880768 1.229071 1.032005 0.741958 1.506708 0.988664 1.510035 0.570634 0.600887 0.452407 1.277540 0.653028 1.338519 1.734821 1.492629 1.238052 1.348061 0.485825 0.001527 1.680203 0.630277 0.333625 0.581166 0.749384 0.237252 1.744972 1.764540 1.733139 0.187989 0.862514 0.528253 0.734898 1.736887 -0.065491 0.619951 0.626077 0.119446 0.438557 0.245278 1.215483 0.366169 1.836234 0.967914 1.255476 1.661987 1.937937 1.269810 1.176079 0.233419 1.830674 0.981834 1.763676 0.423164 0.368218 0.598144 1.363542 0.254169 1.030372 1.802236 1.420231 1.009244 1.916283 0.654820 1.382282 1.209232 1.496643 0.007139 1.266446 1.888309 1.959907 1.205159 0.947575 0.625503 1.535791 -0.117561 1.018192 0.098235 1.173764 0.149329 1.928529 0.900726 1.292077 0.452718 1.773053 -0.121555 -0.023669 1.146036 0.069891 1.643518 0.479017 0.061079 0.465229 1.783719 1.691515 0.273950 1.789736 1.156460 1.325619 1.757362 1.362908 0.125379 0.277670 1.695830 0.840351 1.620085 1.330755 0.465762 0.646757 0.996525 0.155600 0.674032 -0.087677 0.157608)
)
;;; 117 odd --------------------------------------------------------------------------------
#(117 14.63381513714 #(0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1)
14.427604264985 #(0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1)
- 12.504861 #(0.000000 0.166334 0.957606 0.309184 1.350927 1.304487 0.836762 1.539423 1.690430 0.511084 1.154195 0.686769 1.784386 -0.353692 1.228419 0.889375 1.315151 0.235787 1.056663 0.099057 0.779988 0.784891 1.709694 1.280296 1.122879 1.067008 0.366112 0.905437 1.498879 0.186932 0.654964 1.406621 1.789138 0.947529 1.428430 0.554986 0.174151 -0.065996 -0.116049 1.273956 1.922240 -0.007821 0.343767 1.247202 0.441545 1.273545 0.971562 0.891778 -0.061883 0.415802 1.183989 0.896038 0.809536 1.435198 1.864005 1.389945 0.042280 1.619962 0.723060 0.767710 1.455126 1.012438 1.475518 0.712930 1.070419 1.267019 0.956412 0.245717 -0.059397 1.648413 1.659047 1.773657 1.536369 1.356963 0.168233 0.494115 0.169816 0.992350 0.517734 0.594497 0.844271 1.845792 -0.032928 1.425571 0.255726 1.747664 0.725150 0.586038 0.364505 1.722908 1.315964 0.047280 1.388900 1.848813 1.628539 0.314917 0.719658 1.142658 1.818323 1.606467 0.460490 0.630526 0.494870 1.328803 1.935566 0.056205 0.115580 1.054536 0.089139 0.071248 0.315477 1.403343 1.826847 0.419455 1.762399 1.527182 1.243256)
+ 12.497617 #(0.000000 0.166520 0.957411 0.308331 1.351678 1.303710 0.836827 1.538965 1.691156 0.512024 1.153466 0.685935 1.784638 -0.353842 1.227688 0.889689 1.314784 0.235196 1.056757 0.099728 0.779671 0.784996 1.708986 1.279798 1.123779 1.066116 0.365235 0.904939 1.499625 0.186355 0.655800 1.406347 1.788857 0.947000 1.428645 0.555043 0.174063 -0.066957 -0.116488 1.274585 1.922966 -0.007277 0.344091 1.247861 0.440997 1.273082 0.971109 0.891894 -0.062492 0.415203 1.184321 0.896707 0.808739 1.435355 1.863505 1.389292 0.042455 1.620299 0.723699 0.767067 1.454222 1.012288 1.475240 0.712413 1.069841 1.267805 0.955908 0.246237 -0.058970 1.648496 1.658859 1.773828 1.535381 1.355973 0.168327 0.494959 0.169698 0.991743 0.516868 0.594289 0.845027 1.845315 -0.032532 1.425598 0.256037 1.747354 0.725173 0.585490 0.364051 1.723179 1.315691 0.047923 1.389148 1.849128 1.628291 0.315640 0.718911 1.142223 1.818430 1.606227 0.460678 0.630370 0.494106 1.327938 1.934943 0.056963 0.115917 1.054843 0.088747 0.070887 0.315974 1.402763 1.827289 0.420130 1.763238 1.527373 1.244000)
)
;;; 118 odd --------------------------------------------------------------------------------
@@ -2352,7 +2432,7 @@
14.72793006897 #(0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1)
14.39733490263 #(0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1)
- 12.527822 #(0.000000 1.272681 1.676917 1.389102 0.699660 1.196229 0.220423 0.267212 0.209242 1.649585 0.432113 1.486739 -0.407051 0.905781 1.076682 0.437667 0.411369 0.556447 0.176591 0.784023 0.921917 0.142554 1.400098 0.752305 1.684233 1.853307 -0.240044 -0.285415 0.412772 0.867393 0.572933 -0.094155 1.590508 1.666909 0.634509 0.261201 1.523032 0.835257 1.425693 0.978917 1.741737 1.791112 0.643391 1.566055 0.519662 0.169329 0.518188 0.986538 -0.170141 0.949621 0.814442 1.221185 1.904041 -0.264323 0.695507 1.379213 1.414170 -0.356973 1.484704 0.596818 0.636930 0.975730 1.405613 1.340052 1.762831 1.350459 1.704888 0.507460 1.515233 1.378410 0.629185 0.707634 0.864622 1.653914 -0.031939 0.196417 1.718851 1.038018 1.389550 0.386204 1.723131 1.637333 0.807004 1.339324 0.952346 1.021885 0.995615 1.272478 0.410218 1.347112 1.001368 0.542093 1.102173 0.305307 0.258588 -0.087846 1.068795 0.931113 0.074860 1.027694 1.124888 1.885622 0.849623 1.539371 0.684423 0.922365 1.433998 1.598341 1.047048 -0.174434 1.580430 0.403982 1.662733 -0.153298 1.883922 0.107597 1.073776 1.743898)
+ 12.524034 #(0.000000 1.271849 1.677257 1.388762 0.699801 1.195351 0.220802 0.268059 0.208614 1.648690 0.431135 1.488118 -0.405543 0.905582 1.076854 0.437501 0.412656 0.558180 0.176994 0.783364 0.922069 0.142442 1.400630 0.752426 1.684258 1.854134 -0.240920 -0.285342 0.412111 0.867288 0.574014 -0.094145 1.589960 1.667067 0.634923 0.261401 1.522602 0.835944 1.426042 0.979727 1.742038 1.790938 0.643251 1.566950 0.519633 0.170385 0.517981 0.985084 -0.170326 0.950707 0.814111 1.222019 1.904227 -0.264523 0.693821 1.379373 1.414055 -0.357299 1.486139 0.596468 0.635693 0.974031 1.404880 1.340263 1.764523 1.350096 1.704295 0.507341 1.515284 1.378014 0.629167 0.707718 0.865467 1.655578 -0.031689 0.197848 1.718434 1.038014 1.389329 0.385890 1.722159 1.637240 0.806319 1.339839 0.952318 1.022967 0.996094 1.272134 0.410349 1.346430 1.002769 0.543213 1.103475 0.305670 0.260014 -0.087781 1.067697 0.932583 0.074883 1.028646 1.124903 1.885937 0.848622 1.538989 0.684500 0.921251 1.435175 1.598231 1.047353 -0.174464 1.581058 0.403341 1.662760 -0.153424 1.885529 0.106540 1.073780 1.744887)
)
;;; 119 odd --------------------------------------------------------------------------------
@@ -2360,7 +2440,7 @@
14.647579104049 #(0 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1)
14.464 #(0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1)
- 12.742865 #(0.000000 1.723402 0.390017 1.771157 1.511959 -0.058574 1.832261 0.055783 1.237716 0.936856 0.298857 0.820603 0.563688 0.907321 1.351029 0.598444 0.200339 0.302497 1.473973 0.995067 1.350492 1.466616 0.403569 0.830850 -0.097353 1.110398 -0.210673 1.315228 0.172442 1.741851 1.710906 1.031518 0.104464 1.786885 1.376286 0.503296 0.377897 0.929726 -0.030910 1.069295 0.868511 0.786634 1.643945 -0.100149 0.338887 1.667201 0.600904 1.203264 0.594438 0.861838 0.014398 0.108047 1.592461 0.674129 1.049668 1.051242 0.873663 0.550082 0.525816 1.343529 1.568308 1.386961 0.096639 0.129956 -0.109955 0.149151 0.010499 1.791183 0.406640 0.325139 -0.295785 1.087280 1.161612 1.458101 1.554068 1.637234 0.557224 1.213725 0.572790 1.218473 0.255800 1.306554 1.053730 -0.410917 1.326573 1.225138 0.885448 0.580139 0.837652 0.818320 1.535705 1.365816 1.200977 0.644517 1.713253 0.836106 1.463799 0.730104 1.157854 1.715431 1.703094 1.895537 1.232939 0.881260 1.431773 1.485474 0.738377 1.479603 0.418390 1.029047 1.387503 0.138421 0.836590 1.877028 1.781602 0.645747 1.146135 0.012879 0.090672)
+ 12.625590 #(0.000000 1.290380 1.974282 0.503453 0.972565 0.617951 1.477984 1.593722 1.575363 1.969454 1.713486 1.424368 0.887686 1.636609 0.118894 1.757695 0.905221 0.719402 0.310050 -0.041914 0.324978 0.606422 0.446900 -0.073006 1.489602 -0.028975 1.414273 1.459625 1.578483 0.780419 0.123110 -0.185615 1.829392 0.005865 0.455632 1.208385 1.134893 0.171382 1.780281 0.379740 -0.103058 1.320189 1.752847 0.654908 1.386964 0.368240 1.855635 0.232059 0.363622 1.519013 0.920646 1.583665 0.278893 0.918955 1.651703 0.521842 1.732961 1.597921 1.040556 1.633183 -0.123093 0.519090 1.085534 0.938654 0.571804 1.779326 0.860897 -0.060596 1.894771 0.724959 1.308085 1.606923 0.960916 0.804239 1.274902 1.770417 1.160363 1.754334 1.278754 0.080367 -0.218197 -0.157900 0.905084 1.350471 1.025624 0.181951 1.466991 1.528815 0.940504 0.429527 1.484590 0.307516 0.492570 0.465505 0.465863 0.895606 0.171562 0.924109 0.955767 1.789961 0.017905 1.429850 0.074028 0.139497 1.137019 0.676207 1.719651 1.553067 1.181662 0.086361 0.961933 0.769032 1.383638 1.929047 1.541463 1.092374 1.384053 0.762786 1.670247)
)
;;; 120 odd --------------------------------------------------------------------------------
@@ -2369,7 +2449,7 @@
14.578378677368 #(0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1)
14.530112637252 #(0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0)
- 12.590803 #(0.000000 1.641345 1.457552 1.137354 0.094379 1.416947 0.050660 0.105352 0.986792 1.291038 1.094232 1.547127 1.476433 1.075790 1.473104 0.708876 0.808622 1.196321 1.047819 1.589786 1.890122 0.265085 1.180803 1.223466 1.809314 0.570416 0.883119 1.232043 1.698152 -0.056270 0.248806 -0.010473 0.092385 0.128975 0.160512 0.969549 0.539778 0.203498 1.044405 0.265725 1.282506 1.849326 0.622741 1.366610 0.118307 1.147609 1.670874 1.471746 0.588631 0.393160 1.595516 1.521216 0.798764 0.119568 0.988858 1.487779 0.085883 1.839168 1.291012 0.733359 0.885919 1.355316 0.628984 1.260405 1.004722 0.449415 1.176948 1.498954 0.447110 0.121777 0.461314 1.601923 -0.115454 1.387212 0.609016 1.094385 0.611307 0.179007 1.800194 1.170198 1.666754 0.926239 1.638324 0.149877 0.053703 1.008341 1.600757 1.708575 1.099932 0.101000 0.324001 0.341770 1.691895 0.973378 0.306342 0.751530 0.408692 0.917105 0.639603 0.800839 0.215592 1.734051 1.823385 0.301237 0.730192 1.824384 0.855716 0.607629 0.220533 1.477915 0.356698 1.587286 1.220340 0.165574 0.584150 1.180050 0.511773 1.125569 0.320616 -0.028011)
+ 12.585068 #(0.000000 1.642250 1.457417 1.137459 0.094311 1.416472 0.051282 0.105963 0.987263 1.291373 1.093738 1.548015 1.476225 1.074911 1.473417 0.709403 0.808324 1.195288 1.048758 1.590347 1.889082 0.265007 1.181398 1.223972 1.811257 0.570424 0.883768 1.231716 1.699272 -0.057335 0.249750 -0.009343 0.092588 0.128880 0.160015 0.968242 0.540629 0.204369 1.043865 0.267028 1.282318 1.849967 0.623854 1.367800 0.117666 1.146794 1.671849 1.471918 0.588542 0.392693 1.595203 1.521711 0.798477 0.118198 0.987527 1.488329 0.086316 1.839698 1.292409 0.733240 0.885498 1.354614 0.630153 1.260240 1.003308 0.450419 1.178182 1.499186 0.446567 0.121946 0.462482 1.602362 -0.114613 1.387267 0.608384 1.093599 0.611716 0.179167 1.799724 1.169899 1.667167 0.926542 1.639331 0.149824 0.053003 1.009009 1.601654 1.707890 1.098182 0.100185 0.323759 0.340948 1.693424 0.972998 0.305147 0.751780 0.408203 0.916858 0.640088 0.799791 0.214855 1.733068 1.823671 0.300407 0.729747 1.825355 0.855384 0.607414 0.221708 1.477901 0.356681 1.587645 1.219766 0.165086 0.583414 1.179385 0.511447 1.124888 0.320373 -0.028868)
)
;;; 121 odd --------------------------------------------------------------------------------
@@ -2385,7 +2465,7 @@
14.561 #(0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1)
14.266534958875 #(0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1)
- 12.818230 #(0.000000 1.402791 1.625038 1.231722 1.789644 1.590114 0.123971 0.370107 0.535185 1.422476 0.674830 0.697146 1.111568 0.682599 0.351088 0.248485 0.804782 -0.005796 0.079767 -0.059210 1.327135 0.580329 0.247436 0.225826 0.568139 0.439915 1.322639 -0.226421 1.558467 0.223720 0.997225 0.942791 1.102802 1.733016 1.749226 1.657205 0.659055 1.524547 1.701123 0.590117 1.352858 0.419375 0.031258 0.059842 0.429217 1.021705 0.774084 0.461871 1.737795 0.792501 0.777590 1.611534 0.499983 1.855582 1.814985 0.465931 1.190670 0.494281 1.485673 1.408726 1.811728 1.522069 0.496404 0.430059 1.778484 0.480972 0.735918 0.358829 1.879797 0.518195 1.765489 1.804116 0.751263 0.075132 0.590522 0.258735 -0.035286 1.674858 1.140910 -0.036001 0.448180 1.413370 1.594087 1.211896 0.265703 1.872134 0.413411 0.401483 0.000426 0.406325 0.709185 1.707240 0.327038 1.422255 1.712317 1.519333 1.552253 0.608364 1.043035 0.811620 -0.174262 0.381809 0.854767 1.360680 0.685704 1.330222 0.847208 1.965476 1.126939 1.211179 0.913832 0.079331 1.246918 1.834712 0.289333 0.908564 1.390893 1.130960 0.783764 0.724607 1.665803 1.373812)
+ 12.815441 #(0.000000 1.403115 1.625705 1.231427 1.790515 1.591033 0.124021 0.370248 0.534702 1.422778 0.673865 0.697808 1.112133 0.682960 0.351576 0.248301 0.805611 -0.006266 0.079244 -0.058595 1.327301 0.581316 0.247099 0.225227 0.567168 0.439945 1.323339 -0.225444 1.558727 0.224297 0.997055 0.942245 1.102596 1.732740 1.749095 1.656464 0.659021 1.524851 1.701892 0.589835 1.352980 0.419743 0.032194 0.059526 0.429417 1.021254 0.773585 0.461483 1.737779 0.791729 0.777319 1.611089 0.499694 1.856029 1.815732 0.466409 1.191392 0.494791 1.485462 1.408098 1.811573 1.522265 0.496542 0.429625 1.778677 0.481515 0.736872 0.359528 1.879869 0.517308 1.765667 1.803898 0.751937 0.075838 0.591217 0.258517 -0.035025 1.675291 1.141862 -0.036822 0.447686 1.413477 1.594291 1.212812 0.265402 1.872004 0.413002 0.401680 0.000918 0.406341 0.708410 1.706799 0.327908 1.423175 1.712794 1.519990 1.552302 0.608404 1.042683 0.810825 -0.174289 0.381719 0.854980 1.361184 0.685809 1.330281 0.847044 1.965474 1.127139 1.211992 0.913155 0.079627 1.246664 1.834610 0.289051 0.907660 1.390649 1.130752 0.784486 0.724056 1.665417 1.374574)
)
;;; 123 odd --------------------------------------------------------------------------------
@@ -2393,14 +2473,14 @@
15.019962594276 #(0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0)
14.795100232697 #(0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0)
- 13.014503 #(0.000000 1.270023 1.389929 1.344002 0.291355 0.772907 0.436925 0.518581 0.374691 -0.087463 1.864330 0.912788 0.141734 1.549422 0.011969 0.508660 0.456525 1.492730 1.579773 0.843268 1.611884 0.098583 0.749061 0.234597 0.094342 1.382866 0.545639 0.918955 1.113000 -0.159085 0.100219 1.881659 1.209762 0.863656 0.871108 0.435478 1.040696 1.037047 1.015465 1.472909 0.363075 0.395557 1.785527 0.564097 1.351560 0.111864 1.204267 0.031137 0.804673 1.067854 0.574624 1.198995 0.085581 1.416666 1.162072 0.798531 1.185387 1.384896 1.755382 0.646307 0.392236 0.813341 0.842330 0.466270 1.535935 1.636824 0.169154 1.289779 1.236171 1.202271 0.002239 1.018914 1.810396 1.647358 0.337147 0.663087 1.805075 1.583503 1.394724 0.657521 0.374902 0.131782 -0.200376 -0.075125 1.165504 0.082294 1.174750 -0.042756 0.686983 0.461621 1.594553 0.123034 1.297180 1.192006 0.465936 1.271827 1.003368 0.363594 1.086922 1.208510 1.910795 1.740993 1.692602 -0.166267 -0.108206 0.290439 -0.094601 0.361877 1.842541 1.267197 -0.134657 1.282665 0.557880 1.842843 1.075108 1.662205 1.085850 0.723105 1.193829 1.725027 0.922960 0.316327 1.253506)
+ 13.011739 #(0.000000 1.270831 1.390117 1.343131 0.290733 0.774362 0.438248 0.518740 0.375214 -0.086565 1.865393 0.914481 0.140930 1.549233 0.011695 0.508550 0.457073 1.491605 1.580265 0.842899 1.610671 0.097680 0.748724 0.234627 0.094494 1.382100 0.544332 0.918208 1.113103 -0.158865 0.100591 1.881170 1.209847 0.864105 0.872636 0.434589 1.039963 1.036855 1.014096 1.473344 0.363678 0.395883 1.786197 0.564823 1.350177 0.111177 1.203946 0.031690 0.804937 1.066722 0.573905 1.199822 0.083837 1.416293 1.161712 0.799785 1.185613 1.383528 1.756560 0.645390 0.391332 0.812529 0.841775 0.467316 1.535976 1.635412 0.168664 1.289118 1.237575 1.201858 0.000492 1.019459 1.809351 1.646838 0.338073 0.663437 1.805930 1.584188 1.395094 0.658473 0.375608 0.130466 -0.201128 -0.075112 1.165574 0.083507 1.174429 -0.042711 0.686797 0.462186 1.595198 0.124139 1.296852 1.192894 0.465487 1.271487 1.002755 0.363938 1.085223 1.207026 1.911620 1.741013 1.692879 -0.165593 -0.109796 0.291887 -0.096010 0.361861 1.841827 1.267818 -0.134674 1.284156 0.558428 1.843219 1.075857 1.660531 1.086799 0.724122 1.194885 1.725055 0.923397 0.317384 1.253548)
)
;;; 124 odd --------------------------------------------------------------------------------
#(124 15.930208950198 #(0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0)
14.82254124518 #(0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0)
- 13.054981 #(0.000000 0.690375 1.905608 0.973025 0.574775 1.017029 -0.020234 0.935605 0.566782 -0.603576 -0.102676 -0.107765 0.837272 0.590605 0.388807 1.730251 0.177368 0.139396 0.926513 1.604206 -0.251002 0.270700 1.142724 0.215021 1.363360 0.077736 0.318531 1.137271 1.570029 0.926684 0.467441 -0.069255 -0.148680 0.824863 0.554897 1.715175 0.511342 1.319275 1.320369 0.043130 1.563502 0.139272 0.024324 0.849945 1.743297 0.664131 0.260521 1.657969 0.837753 0.118179 -0.008467 0.834137 0.106498 0.556045 1.082289 1.075022 1.899199 -0.014341 0.302963 0.410046 0.840831 0.784519 0.411221 0.301880 0.049035 0.980274 0.318162 0.903405 1.236506 0.828463 1.129919 1.722316 0.772745 -0.296964 1.412899 1.276198 0.026632 1.283258 1.767558 0.566409 0.103431 0.485196 1.420570 1.197751 0.490160 0.436529 0.978461 0.624656 0.781454 0.064009 -0.020468 -0.148714 0.147339 -0.273261 -0.502487 0.379281 0.309413 0.893890 0.002523 1.478974 1.299713 1.784828 1.549835 0.261983 0.002144 1.410299 1.325799 0.685662 0.592794 0.323592 1.775078 1.498347 1.307763 -0.278370 1.469165 1.851821 1.207711 1.723289 0.639564 0.693176 1.222591 0.616442 0.558911 -0.025286)
+ 13.049986 #(0.000000 0.689926 1.905320 0.973014 0.574556 1.017560 -0.020213 0.934776 0.567372 -0.603509 -0.102759 -0.108485 0.836521 0.591485 0.388177 1.730331 0.177885 0.140244 0.926407 1.603798 -0.251300 0.269140 1.141337 0.214954 1.363090 0.077705 0.319273 1.137542 1.569722 0.926478 0.468543 -0.070207 -0.148189 0.825451 0.554203 1.714756 0.510553 1.320078 1.321596 0.042298 1.563350 0.137732 0.023706 0.849784 1.743307 0.664503 0.259382 1.658816 0.838970 0.118133 -0.009055 0.835196 0.106933 0.554759 1.082608 1.074364 1.899655 -0.015771 0.303658 0.409136 0.841585 0.784635 0.411031 0.300886 0.049481 0.980225 0.318248 0.903666 1.235486 0.828671 1.131305 1.722491 0.772913 -0.297562 1.414101 1.274713 0.025837 1.282982 1.766959 0.564972 0.103712 0.485099 1.420691 1.198807 0.488585 0.437298 0.977923 0.623804 0.782654 0.064636 -0.020879 -0.148228 0.147209 -0.273674 -0.502609 0.379845 0.309088 0.893845 0.002244 1.478419 1.298541 1.784652 1.549456 0.261979 0.002012 1.411288 1.325004 0.685419 0.593775 0.323887 1.773849 1.498911 1.306696 -0.278799 1.470169 1.851883 1.206934 1.722537 0.641040 0.692393 1.223682 0.617241 0.557473 -0.025320)
)
;;; 125 odd --------------------------------------------------------------------------------
@@ -2408,14 +2488,14 @@
14.833 #(0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0)
14.82163143158 #(0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0)
- 13.072619 #(0.000000 0.806731 1.819573 0.710334 0.537360 1.515951 1.280534 0.398454 0.964262 0.476780 0.525356 1.713502 1.203472 1.299412 1.416700 0.114385 0.305197 1.356355 0.193043 0.813134 0.513779 0.851395 0.763095 1.024202 0.117158 0.106323 1.021166 1.036612 0.444334 0.928112 0.608676 0.006979 1.866448 0.654782 -0.208376 0.879056 1.771654 0.905163 0.104416 0.188576 0.807826 1.654136 0.919852 1.482341 0.009363 1.230536 1.436422 1.704097 1.273064 0.016434 -0.153946 0.251304 0.631615 0.043979 0.014646 0.110087 0.012680 1.389314 1.245290 -0.128968 1.176941 1.347591 0.232571 -0.141852 1.777854 0.280283 0.355142 1.166842 1.385546 1.291725 0.957440 1.753850 0.625161 0.207822 1.125559 1.622773 0.212795 1.678759 0.041557 0.501059 1.246989 0.126073 -0.016945 1.581771 1.376614 0.833709 0.657334 -0.005957 0.817884 0.270002 0.512223 1.631325 1.416897 0.220354 1.168303 -0.192619 1.554084 1.426050 0.304788 1.710664 1.208346 1.035430 1.150929 1.812358 1.868058 0.937441 1.896487 0.809194 0.125308 0.830814 1.347726 1.037888 0.301255 1.705992 0.452231 1.121236 0.353147 0.212075 0.151272 0.694737 1.928943 1.579873 0.605161 0.286660 0.007327)
+ 13.069565 #(0.000000 0.806329 1.820718 0.710116 0.537939 1.516013 1.281131 0.399606 0.963852 0.477282 0.523912 1.713023 1.203912 1.300350 1.415929 0.114333 0.305103 1.357092 0.194541 0.812320 0.513820 0.851811 0.762924 1.024077 0.116391 0.106763 1.022493 1.037521 0.443182 0.928998 0.609993 0.005847 1.865292 0.656626 -0.208558 0.878421 1.771361 0.905611 0.103716 0.187788 0.807934 1.654519 0.919933 1.482596 0.009004 1.230310 1.436172 1.703868 1.273090 0.015738 -0.152958 0.251595 0.631761 0.042442 0.014812 0.109814 0.012970 1.389088 1.244378 -0.130286 1.175932 1.348493 0.232828 -0.142041 1.779673 0.278775 0.355180 1.166958 1.387057 1.291355 0.957543 1.752890 0.623975 0.208619 1.127074 1.622018 0.212204 1.678947 0.041395 0.502006 1.247290 0.125349 -0.017298 1.582443 1.377659 0.835197 0.656146 -0.006634 0.819061 0.269880 0.511151 1.631755 1.416138 0.220020 1.168572 -0.193176 1.554846 1.425567 0.304431 1.711634 1.208919 1.034873 1.150446 1.811164 1.868895 0.938628 1.895277 0.808842 0.125477 0.829799 1.349324 1.037255 0.300457 1.706559 0.452733 1.119939 0.353154 0.212340 0.151736 0.696009 1.929655 1.580007 0.605127 0.285405 0.006038)
)
;;; 126 odd --------------------------------------------------------------------------------
#(126 15.556811374771 #(0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1)
14.961482935205 #(0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1)
- 13.252524 #(0.000000 1.163679 1.771929 -0.057696 0.913447 -0.288984 0.818879 1.550991 1.240960 1.731444 1.238211 0.953895 0.968322 1.371530 1.035791 -0.153197 -0.115310 0.524581 1.258870 0.609461 0.033330 0.483804 0.280137 1.326299 0.164865 0.466881 1.126145 1.601939 0.577268 0.066642 0.107086 0.611039 1.691320 0.841731 -0.293237 -0.008316 -0.006205 0.903676 0.854758 1.361854 1.143347 1.571486 1.891566 1.455336 0.624610 0.645606 1.558061 1.455578 0.174176 0.276039 0.416182 1.817036 -0.125520 -0.112330 0.738021 0.738609 1.662570 1.367406 0.554444 1.828026 0.567080 0.472949 0.388439 0.112228 -0.046561 0.755798 1.880879 0.764908 1.308460 0.339296 0.273158 1.240460 1.143667 0.637233 0.037521 1.356134 0.445306 0.857807 1.240292 1.332030 1.438052 0.928292 1.389528 1.935367 0.455659 0.518709 0.176354 1.641403 0.322824 1.607003 1.053502 0.608663 1.119557 -0.119273 0.988514 1.276484 1.057190 0.894360 1.670297 1.435031 0.317220 0.213951 1.673680 1.244077 1.187117 0.534641 0.873837 0.394895 1.404380 0.035419 0.685283 -0.064122 0.663774 -1.934541 0.658593 1.027532 0.739543 1.189466 -1.892575 1.701541 1.363253 1.917226 0.650008 0.930354 -1.881847 0.995457)
+ 13.250538 #(0.000000 1.162062 1.772969 -0.056549 0.913770 -0.288690 0.818539 1.550214 1.242276 1.730985 1.237567 0.955275 0.970163 1.372752 1.034742 -0.152966 -0.115290 0.523671 1.259447 0.610945 0.033439 0.483099 0.279912 1.325871 0.165105 0.467000 1.124882 1.602402 0.578025 0.066216 0.106159 0.609562 1.691827 0.842480 -0.292760 -0.008012 -0.005727 0.904444 0.854421 1.362000 1.143477 1.572727 1.891524 1.455790 0.624443 0.645696 1.557970 1.455103 0.172921 0.274644 0.417475 1.816849 -0.125977 -0.112706 0.738919 0.740104 1.661927 1.368115 0.552904 1.828238 0.567369 0.473127 0.387547 0.112106 -0.047665 0.755689 1.881607 0.764308 1.308467 0.339941 0.273739 1.240680 1.143921 0.637299 0.037102 1.355660 0.445990 0.858672 1.238886 1.332053 1.437889 0.929628 1.388662 1.934496 0.456316 0.518687 0.177187 1.641883 0.321437 1.607102 1.053562 0.607278 1.119966 -0.118980 0.988577 1.276193 1.055845 0.893019 1.669306 1.434278 0.317087 0.214588 1.673980 1.245566 1.186306 0.534977 0.873369 0.394522 1.403575 0.034643 0.685768 -0.064633 0.663919 -1.934469 0.657095 1.027211 0.738638 1.189471 -1.892923 1.702553 1.362451 1.917772 0.650041 0.930493 -1.883243 0.993992)
)
;;; 127 odd --------------------------------------------------------------------------------
@@ -2435,22 +2515,27 @@
)
;;; 256 odd --------------------------------------------------------------------------------
-#(256 24.544 #(0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1)
- 22.546259712247 #(0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1)
+#(256 22.546259712247 #(0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1)
+
+ 20.538261 #(0.000000 0.272889 1.778769 0.030967 1.593584 -0.156089 1.691613 -0.011734 1.415852 0.367481 1.789082 0.401388 1.866971 1.666929 0.819081 1.467893 0.146121 0.557866 1.090825 0.141857 1.030076 0.369300 1.268680 1.646719 0.574097 1.584981 -0.023631 0.806792 0.521545 1.903980 0.033814 0.643051 1.686268 1.471927 1.695518 1.211602 1.162050 1.582687 0.323121 1.660328 0.860454 0.822833 0.675181 1.203397 0.892488 0.926742 0.920069 0.307485 1.199156 0.944395 0.050569 1.348344 1.581019 0.466873 0.460372 1.564569 0.356519 1.411446 0.234539 0.544372 1.796447 1.420865 1.541281 0.553019 0.035036 0.301550 0.198288 1.087811 1.510906 0.048779 1.185101 0.342671 0.776066 1.839874 0.501578 0.672094 0.418330 0.075584 0.148104 0.942149 1.886312 1.932956 0.350754 1.238743 0.215471 1.818436 0.525427 0.145769 1.901993 1.157652 0.288534 0.183124 1.754402 1.830403 1.601910 0.141387 0.405725 0.595425 1.430880 -0.161107 1.180637 1.203632 1.878709 1.401133 0.405050 0.455206 1.647563 0.182909 0.019855 1.078895 0.942655 1.045295 1.172630 1.285736 1.713659 0.519136 1.856181 1.588529 1.500652 1.704524 0.668290 1.446880 0.757422 1.551941 0.471224 1.194767 0.605203 0.601783 0.213882 1.441882 1.504403 1.766276 0.890296 0.969441 0.188532 0.741899 1.887602 1.479262 0.906811 1.720353 0.478860 0.069125 0.145297 0.991730 1.606271 1.618275 1.768087 1.327011 0.161937 0.303896 1.387980 1.475731 1.304815 1.660642 1.062295 1.945784 1.225941 1.811044 0.240279 1.802803 1.407750 0.361823 1.171677 0.977299 0.399409 1.522484 1.210021 0.033856 0.871445 0.101417 1.215328 0.684777 0.461050 0.679741 1.357845 0.363204 1.701430 0.119127 -0.160307 1.604465 0.885857 0.676623 0.479812 1.680229 1.192876 1.812974 1.814897 0.651446 0.216711 -0.015843 1.000707 0.243445 1.317402 1.693848 0.528782 0.284705 0.581688 0.708470 1.186913 -0.112097 0.154883 -0.010075 0.945515 1.496756 1.306887 0.035687 0.365269 0.481390 1.872369 0.981375 1.147497 1.956320 0.764911 0.910673 0.202515 0.814410 1.691726 0.557338 1.631392 1.269859 0.713665 0.925596 0.587556 -0.095376 0.964079 1.410809 0.409565 0.194512 0.264862 0.098841 1.486375 0.516496 0.697590 1.673947 0.812171 1.076503 0.533280 0.740481 1.049141 1.355196 0.272213 1.246626 1.332406 1.932431 0.488170 1.060888 1.316737 1.523815 1.727182 1.887168 1.598230 0.781322 1.868790 -0.070394 1.003618 0.832997)
)
;;; 512 odd --------------------------------------------------------------------------------
-#(512 36.681 #(0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0)
- 35.541 #(0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0)
+#(512 35.541 #(0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0)
+
+ 32.503493 #(0.000000 0.679412 0.809237 1.066615 0.548324 1.628776 0.941414 0.769740 1.029750 0.896961 1.421259 0.002179 1.339313 1.358909 0.628749 1.277896 0.379479 1.137571 0.474593 0.039830 1.205360 0.545719 0.590881 0.434073 1.873138 0.200972 1.655091 1.242097 1.652255 1.569195 0.528746 0.785327 1.124074 0.995370 1.487557 0.677142 0.625466 0.897605 1.153890 1.127021 0.760421 0.296504 0.871868 0.921035 0.377158 1.750225 0.988692 0.505392 0.634645 0.325469 1.159004 0.854892 0.254871 -0.116033 0.858820 1.419185 0.146458 -0.005864 0.124247 0.937549 0.745187 1.672580 0.907490 0.796624 1.677186 1.370454 1.929724 0.008804 1.831977 0.810046 1.048145 1.219355 -0.053406 1.026846 0.223994 0.075263 0.016013 -0.125581 1.400031 0.623622 1.706089 1.122996 0.619718 0.883175 1.321273 1.588549 0.202103 1.565659 0.942493 1.525690 0.790427 0.633216 1.174762 1.620809 1.909703 0.793423 0.162566 0.862037 0.825158 -0.209576 1.184857 0.068694 1.025003 1.605360 0.760824 0.420006 1.022864 1.554782 0.280606 0.168797 1.720534 1.319911 -0.196005 0.345206 1.620856 1.296162 1.534763 1.100352 0.381694 1.544756 1.264805 0.171639 0.833251 0.343792 1.656969 0.340247 0.605053 0.028078 1.527535 1.753703 0.220888 1.721972 -0.014515 0.597355 0.101013 1.039747 0.300384 0.973035 1.213655 0.643812 0.502086 1.570691 0.151513 0.574285 0.981364 1.023741 1.322018 0.393931 1.283578 1.255204 0.501198 1.129955 0.485714 1.864730 0.802278 0.466095 0.265473 0.232057 1.069382 0.779956 0.563809 0.871179 0.662227 1.411243 0.743545 0.062056 0.270035 0.622595 0.967823 0.720025 -0.121588 0.893300 1.751443 0.372694 0.669472 0.792414 0.418681 0.992553 1.135363 0.798665 1.823495 0.958873 1.351729 1.421915 0.741905 1.820588 0.057004 0.826246 1.021904 1.423703 0.462006 1.892559 0.731092 0.503856 1.208434 0.513154 0.070868 0.166480 0.034766 0.195292 0.071458 0.146382 0.250755 1.279455 1.607915 0.002711 0.729902 1.137061 0.754906 1.256442 1.175198 1.716023 0.327046 0.087013 1.341237 1.043708 0.156105 0.300686 0.996832 1.724575 1.448183 0.711387 0.522091 0.045199 0.407390 0.638475 1.599413 0.911511 0.484786 -0.004920 0.484210 -0.042146 -0.038564 0.117833 1.036642 1.557603 0.079479 1.746104 1.195581 0.353674 1.111301 -0.104914 0.790788 0.423874 0.229730 1.087925 0.056416 0.866145 1.203006 0.009367 1.434052 1.155547 1.556295 1.690324 1.822350 0.797891 0.495021 1.011782 0.844274 1.773314 0.692176 1.418663 1.494635 1.186803 0.405932 1.282873 1.103735 0.537268 1.446763 1.268687 0.077012 0.348370 1.262330 0.942791 -0.110671 -0.204302 0.309011 1.734463 1.397747 0.666179 1.155069 0.802291 1.425857 -0.087638 0.486956 0.929752 1.651012 1.402509 1.730485 1.648871 1.038299 0.285915 0.212211 1.434005 1.457453 0.924468 0.847575 1.125105 1.374853 1.210111 1.534002 0.375785 -0.181628 -0.299413 0.000626 0.978258 0.875368 1.505462 0.927863 1.729821 0.807697 0.318995 1.364023 0.428411 1.338258 1.410759 0.980643 1.354574 1.657838 0.298608 1.652033 1.073666 1.888442 1.602881 -0.004937 1.725862 0.650257 1.328504 1.421702 -0.127511 0.055031 0.780918 -0.044425 1.353563 0.567325 1.041729 1.067199 1.104630 0.746025 0.063094 0.337045 1.200676 1.183969 -0.127518 0.684565 -0.157959 0.862704 1.908495 0.091821 1.564884 0.973193 -0.009563 0.902018 1.603876 0.720977 1.097974 1.530876 0.635424 0.557942 0.951593 0.604792 0.096250 1.850747 0.927902 0.101609 0.016017 -0.055576 1.178340 1.244133 1.483481 0.030257 1.673563 1.712417 1.895657 0.804158 0.284388 0.186228 0.115592 0.345551 1.067451 1.266168 -0.166620 0.462150 0.434233 0.314337 0.267796 1.048871 1.774918 1.058398 1.710687 0.302054 1.306832 1.274040 0.802406 0.344367 1.255489 0.758856 0.662853 0.515720 0.750605 1.441790 1.447306 1.258926 1.781105 0.951579 1.830323 0.602932 0.012292 0.629192 1.161514 1.584519 0.512187 1.623868 0.011995 1.189620 -0.117491 1.072949 1.816290 1.072713 -0.110451 0.482660 0.247038 0.018810 1.575293 0.177126 1.664719 0.255603 0.402715 0.380357 1.135020 -0.157363 0.005896 1.617115 1.483205 0.598996 1.342460 1.255997 1.133337 -0.020480 0.502666 0.933241 0.871879 1.276232 0.407344 0.003813 0.173443 1.306013 1.058188 1.556833 0.752099 1.348533 1.229824 0.437326 -1.900001 0.037489 1.825433 0.390192 1.039835 0.381888 1.696682 1.095663 0.938256 1.014208 1.162364 0.651126 1.830745 0.241634 1.857248 0.779587 1.524196 1.754351 0.739230 0.133693 1.724692 0.610130 1.768182 0.670295 1.533058 1.884824 -0.055705 0.453010 1.417400 0.140669 0.314344 0.493746 1.570750 1.716798 1.415537 0.001217 1.273893 1.774138 0.660847 0.663845 0.455063 1.856273 1.591822 -0.144666 0.232403 0.584326 0.148068 0.891260 1.252693 0.568983 0.203742 1.707956 1.046843 0.815807 1.082555 0.677334 1.528644 1.273297 1.120976)
)
;;; 1024 odd --------------------------------------------------------------------------------
-#(1024 60.851 #(0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0)
- 52.508 #(0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0)
- ) ; 134 from here
+#(1024 52.508 #(0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0)
+
+ 49.917747 #(0.000000 1.538718 1.673453 1.170805 1.359133 1.908376 1.996331 0.797005 0.894370 0.589653 1.325886 0.933855 0.980838 0.836513 0.500420 1.338727 0.447775 1.156265 1.734351 1.812171 1.641441 1.116064 -0.103226 1.035119 0.633950 1.272170 1.435951 1.447510 0.429110 1.130962 0.328732 -0.002087 1.393707 -0.119000 1.581385 1.028232 0.876240 0.426232 1.217167 0.985070 1.654555 1.926974 -0.202040 1.521498 0.430775 1.807764 0.374060 0.256278 1.247952 0.962957 0.333800 -0.003539 0.273071 1.181833 1.487259 -0.093975 1.738006 1.735086 0.525119 0.084233 1.359315 0.177187 0.943973 1.194748 0.527778 0.867902 0.817228 -0.186512 1.339132 1.551494 0.843719 1.466863 0.902899 0.541881 1.153290 1.622094 1.373660 0.678997 1.573578 0.544673 1.266479 1.602941 0.546330 0.989293 -0.067994 0.647585 1.300110 1.514573 0.571905 1.358883 0.206093 1.184934 1.521021 0.880741 1.367056 1.788831 1.948494 1.370363 1.140516 0.716407 1.050295 0.354485 -0.296287 0.661276 0.131290 1.053318 1.687445 1.667561 0.214107 1.734753 0.363141 0.665010 1.372144 1.007738 0.683663 1.299293 0.415834 -0.061858 1.576065 0.476145 0.807546 0.957773 1.697912 1.638598 1.424334 1.559075 0.468335 1.772613 1.543208 1.138206 1.750653 0.437399 1.146881 1.300421 0.934756 0.220147 1.626653 0.413646 0.962300 0.840552 -0.190640 0.237209 0.489388 0.961530 1.179991 1.978534 0.344456 0.633529 -0.099360 1.348822 0.258153 1.701323 0.814976 1.183920 0.331141 0.267929 1.521084 1.420577 0.971363 1.688325 0.739714 0.944208 1.306464 0.419784 1.583516 1.098152 1.722870 0.285577 1.325725 0.335897 -0.189466 0.611056 1.303669 0.094110 1.683154 0.898510 0.504590 1.375147 0.910814 0.684539 0.325852 1.190884 1.833117 1.913872 0.747712 0.792427 0.694550 0.356286 0.741411 1.263077 0.676914 0.777321 0.285274 0.187950 1.423854 0.487302 0.029914 1.392850 0.211156 1.939576 1.813644 -0.024537 1.621275 1.358140 0.760259 1.692371 1.873313 0.263796 1.849726 0.382488 1.394880 0.341959 0.103293 1.149742 0.478329 0.259601 -0.058533 1.607482 1.436110 0.888238 1.218430 1.637317 0.042267 1.876608 0.719472 0.576144 1.268764 1.747253 1.243516 0.931356 1.242900 1.608775 1.880086 0.025365 1.090458 0.937916 1.258646 1.853438 1.456749 0.877274 1.353161 0.763781 1.369966 0.704756 1.697017 0.449923 0.877873 -0.035397 0.987295 1.121737 1.085135 1.453828 0.883323 0.527567 1.543968 0.999017 -0.067914 1.545674 1.025500 0.092428 1.920962 0.472766 1.740162 1.598195 1.383824 1.762336 -0.164575 1.198370 0.676795 0.983396 1.917387 1.320466 -0.079958 0.180092 0.740050 0.229224 0.265965 1.351148 1.230245 0.442417 0.928552 0.661027 -0.046630 1.316227 0.829789 1.458035 0.820976 1.194758 0.135181 0.621568 0.322580 0.246307 0.698051 0.211806 1.212736 0.313608 0.927303 0.154345 1.184265 1.010322 1.784525 0.972213 1.670573 1.567389 0.910363 0.068950 0.812276 0.094311 1.291542 1.653470 0.080928 0.440721 0.130283 1.144019 0.283970 1.202403 0.580108 0.855265 0.949102 1.666738 1.957784 1.114690 1.774701 1.596751 1.770552 0.010833 0.526721 0.954103 1.507522 0.198883 0.254643 -0.028915 0.910776 1.065761 1.917372 0.333991 1.858192 1.897788 0.832130 -0.077712 1.175786 0.935216 0.758104 0.501547 1.915493 1.492255 0.620947 0.119487 1.446596 1.690272 0.612090 1.678853 0.159492 0.644091 0.789285 0.633346 0.621274 1.976048 1.397494 1.513719 1.507292 1.311749 1.315985 1.232071 1.767199 0.817480 0.534287 0.014567 1.720034 1.583440 0.162972 0.324888 1.642114 1.575404 1.668592 1.954637 1.356403 0.017159 -0.156138 1.529208 0.071726 1.733802 1.751833 0.107963 1.679616 0.828919 0.407130 0.249317 0.524324 1.639325 0.580945 1.486456 0.631537 0.215183 1.697902 0.589438 0.713226 0.911234 1.926756 -0.073203 0.632186 0.267297 1.462174 1.395280 0.606996 1.436094 0.068123 0.660220 -0.101417 0.674887 0.676142 1.449723 0.715377 0.507057 1.596687 -0.009828 -0.084831 1.691062 1.154527 0.081573 0.142519 1.091313 0.015673 0.546875 -0.066135 0.020865 1.893947 0.657531 1.023647 0.623604 0.962746 1.727459 1.319711 0.139936 1.802051 0.761255 1.799457 0.668192 0.636953 0.557118 0.129957 0.108099 0.153127 0.628833 1.170685 1.829410 1.809593 0.715985 0.838449 1.766310 0.053898 1.752953 1.086390 0.018483 1.062957 1.491248 1.304418 1.650149 0.353298 0.371065 1.563611 1.350570 0.768585 1.616251 0.988588 0.021238 0.553913 0.014938 1.673355 0.054242 0.308791 0.918205 1.288445 1.424848 0.798214 0.415061 1.948153 1.881338 0.303812 1.769120 -0.072420 1.037934 0.163144 0.223426 1.428543 1.171751 0.531729 1.320576 1.000052 1.400005 0.288627 0.387419 0.990513 1.871013 1.632329 1.642593 0.592328 1.701298 0.694222 0.391748 0.218750 1.908702 0.771610 0.920063 1.239514 0.055738 1.634091 0.159501 0.513851 1.812285 1.040458 1.165857 1.421263 0.722806 1.487979 0.215466 1.121320 0.240567 -0.106603 1.227501 1.766342 1.304502 0.013636 0.178489 1.178445 0.175773 1.570370 1.498041 1.132800 0.507567 0.108960 0.718484 0.952164 0.311672 0.217439 1.642520 0.470698 0.493314 0.826744 1.751538 0.247767 0.532651 0.748558 0.316839 1.669380 0.647337 0.340542 0.839836 0.706536 0.010018 1.353405 1.417075 1.871682 1.003518 0.363437 1.864347 1.321796 -0.019171 1.844210 0.786510 1.437958 0.250679 1.791458 0.654765 1.293024 0.420605 1.771227 0.064886 1.746996 -0.059467 1.183013 0.083772 0.509871 -0.018262 0.185458 0.762622 1.765536 0.790375 0.069803 -0.057147 1.642953 1.703039 1.680127 1.706822 0.582851 0.186555 1.246479 1.643732 1.804666 0.575734 0.046279 1.592722 1.498570 0.623198 0.129449 1.277347 1.112301 0.681389 1.395493 1.081335 0.585292 1.170237 1.170525 0.451039 1.157711 0.207917 1.846771 1.553874 0.924567 1.016520 0.350104 0.152766 1.245423 1.590899 1.437191 0.698175 0.732665 0.783183 1.480607 0.278060 0.271243 1.021704 1.581846 1.168143 1.087762 1.409784 1.821386 0.485270 0.768498 0.647623 1.916746 0.049589 1.529712 0.307692 1.120742 1.883356 0.949123 0.595901 1.488037 1.149880 1.154746 0.104842 1.103203 0.227633 0.811685 1.004520 0.385175 1.620155 -0.238898 1.601397 0.979863 1.332672 1.939692 1.494173 0.386161 0.715534 0.253441 1.075470 1.790439 0.048570 0.976103 1.152028 0.602698 0.599216 1.624172 1.260535 1.429403 0.766635 0.259238 0.861647 1.333370 1.459329 0.852277 0.522911 1.741632 -0.029368 1.736002 0.280554 -0.105878 0.356199 1.394345 1.278089 1.568584 0.525803 0.219138 1.195649 0.935728 1.885098 1.024077 0.536298 1.500177 0.042464 1.866297 0.121877 0.009302 -0.093563 0.102584 0.277689 0.335886 1.179059 1.151437 0.406205 0.276857 1.277935 0.261262 1.540227 0.412430 0.187554 1.340723 1.378443 1.085797 1.804181 -0.057875 0.391205 1.525590 0.115877 0.890801 0.291287 1.737986 0.716051 1.521189 1.855614 0.287690 1.068422 0.622803 0.240462 0.041725 1.339422 0.123643 0.638937 0.859718 0.873174 1.000222 1.827840 0.401645 1.350832 0.399512 -0.005145 0.394027 1.138432 1.598235 0.629733 1.737282 1.726544 0.733443 1.701485 1.194854 0.280657 1.240213 0.696102 1.114009 0.343354 0.985076 1.371980 1.418927 0.149158 1.654854 0.002838 0.253861 1.546716 0.499053 1.292841 1.870539 1.773440 1.750547 1.288328 1.474927 1.160890 1.928999 0.181544 1.476941 0.833815 0.647440 1.100081 0.052404 0.786167 0.887022 0.366601 0.717052 0.396698 1.127214 1.254992 0.527962 0.014015 0.655528 1.831507 0.663755 0.685914 1.607977 1.530969 1.767200 1.718284 -0.036525 1.869307 0.308184 0.505558 0.078784 1.261876 0.521580 1.407277 0.569269 1.726882 0.165684 0.763531 0.628910 1.098747 0.158761 0.226373 0.514445 0.525279 0.218965 1.247774 0.525370 0.135368 0.350902 1.477683 0.480785 0.938538 -0.195160 1.585838 1.764096 0.838547 0.282443 0.923434 0.751077 1.058915 0.858567 1.528998 0.657600 0.648910 -0.061095 0.492716 1.793090 0.428821 1.549191 0.984910 1.314701 1.644637 1.518519 0.568293 1.387323 1.675950 1.185423 0.405225 0.754681 0.366358 -0.012536 0.985231 1.809058 1.802200 0.336000 0.067752 0.861299 0.234375 -0.045847 0.281854 0.976139 0.937817 0.187818 1.252600 1.838592 1.217731 0.648890 1.210154 1.054122 0.794211 0.510442 0.812912 -0.087284 1.380226 1.848354 0.168680 1.559596 1.470578 1.184711 0.527144 1.346592 1.063547 0.217368 0.224605 0.919283 1.021527 0.452847 1.479221 -0.149202 1.044395 -0.029261 0.624714 1.064160 0.546017 -0.006669 -0.069616 1.165967 1.449815 1.030899 1.321948 1.653545 1.896190 0.584806 0.681802 0.616186 0.795972 0.119729 1.476546 0.040709 1.059441 1.659860 0.965275 1.692842 0.661980 0.746322 0.228606 0.843614 1.733833 0.961236 0.756965 1.692145 1.242326 0.899479 0.947054 0.871777 1.535702 0.956181 0.349349 0.772900 1.490193 1.104050 -0.018757 0.955891 1.513314 1.654909 0.829702 1.652256 0.813856 1.207703 0.774522 1.809662 0.708776 0.712684 1.720461 1.362333 0.033018 0.906961 1.186722 1.168286 1.511307 1.545521 1.775486 1.094047 0.797341 0.330392 0.735597 0.052074 -0.018423 -0.012268 0.713989 1.515364 0.899401 0.980474 1.470208 1.596712 0.828388 0.068321 -0.071921 1.628581 0.652993 0.431677 1.695077 0.676972 1.673770 1.758153 1.579301 1.315721 -0.017745 -0.019040 0.246526 0.077512 1.843249 0.546020 0.775438 1.389556 0.425204 0.605997 1.801725 0.014294 1.045023 0.707213 1.599479 1.980346 0.365745 0.656642 0.005984 1.190805 0.479537 1.327628 0.291758 0.641163 0.649276 0.102381 0.281639 1.973399 0.071051 0.156820 0.923432 1.198058 0.557809 1.489840 1.827811 1.854522 1.940413 1.824872 1.541449 0.707432 0.620870 1.331305 -0.126617 1.204142 -0.006039 1.135342 1.337189 1.335699 1.824816 0.706564 0.025969)
+ )
;;; 2048 odd --------------------------------------------------------------------------------
#(2048 83.108 #(0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0)
+
+ 81.700532 #(0.000000 1.630929 1.094114 1.640623 0.612338 -0.059005 1.654502 0.659967 0.540782 0.843991 0.198997 0.381211 1.238114 1.541898 1.645566 0.661162 1.316765 1.012522 1.290433 -0.103846 0.019030 0.550416 1.333852 1.715120 1.789997 0.713559 1.669068 0.631917 1.914659 0.091509 1.181696 1.005514 -0.042336 0.121364 1.686991 1.078677 -0.128321 1.868763 0.747493 0.375654 0.095756 1.449260 -0.134380 0.391690 0.199444 0.913108 1.582071 0.673265 1.412480 1.199030 1.024220 1.364721 0.848475 1.419300 1.303610 0.131980 0.586724 1.268872 0.564806 1.135716 1.469442 0.337595 0.619328 0.223539 -0.007130 0.342614 1.279713 0.361215 1.353084 1.094727 1.301241 1.836434 0.149577 1.553289 1.934554 1.606837 0.997711 1.637359 1.637726 1.628953 1.379378 1.543773 1.724834 0.525547 -0.102571 1.070867 1.533275 0.415840 -0.068967 0.905563 1.776656 1.254573 0.092019 1.871393 1.539616 0.312045 1.423351 0.614918 0.876285 1.324117 -0.041440 0.443743 1.054641 0.176946 1.555581 1.380618 1.793223 1.703308 0.989913 1.439045 1.417437 0.382647 0.117999 0.074079 1.374609 1.428129 1.686161 0.298638 0.858901 1.096533 1.564905 1.306728 0.759712 1.795099 0.971214 1.702994 1.694526 0.680164 0.600559 0.692653 1.765458 1.653545 0.991041 0.684205 0.637049 1.532444 -0.102600 0.254314 0.737323 1.244189 1.946716 0.469489 0.918673 0.793238 1.087745 0.867964 -0.255897 0.973486 1.488496 0.587706 0.076546 0.750282 0.016453 1.197331 0.171174 0.863953 1.359074 0.438547 -0.088671 -0.306907 1.583003 1.600689 0.451981 0.491408 0.893925 -0.035878 0.258865 1.694671 1.028807 1.680382 0.489833 -0.259849 1.651744 0.547516 0.061358 -0.018316 0.963975 1.114485 0.057255 0.489485 0.537191 0.952962 1.531187 1.493653 0.703095 1.149282 0.192510 1.040006 1.179561 1.507457 0.687848 0.547980 0.520191 0.344116 0.583355 1.174183 0.821009 1.635756 0.206032 0.938873 0.735832 0.666759 0.013316 1.225636 1.443276 0.895741 0.303782 -0.125355 -0.261447 0.623182 0.138976 1.268481 1.667701 0.434140 0.738956 -0.006473 1.156134 1.211193 1.755215 0.367921 0.607385 1.628475 1.073414 0.805913 0.077049 1.088986 0.334748 0.522757 1.377719 1.257952 0.108146 0.798936 0.320567 1.190473 -0.092444 0.436188 0.744731 0.112748 0.496204 1.127554 1.246254 1.538893 1.626897 1.591108 1.453157 1.938860 1.549259 1.366376 0.091569 0.332055 1.512399 1.145967 0.111076 1.493580 0.144286 0.005536 1.292629 1.854819 1.337100 0.427326 1.308061 0.153716 0.951465 0.056113 0.128937 1.287462 1.290439 1.900915 0.956272 1.402134 0.922671 1.151574 1.631816 0.472200 0.290549 0.591879 0.461212 0.446451 1.790179 0.630352 0.215887 1.809012 0.111084 1.371588 0.510165 1.686845 1.401699 0.830502 1.368701 0.470171 0.880080 1.882586 1.215540 0.812956 1.275327 0.867155 1.413061 1.516625 1.842839 0.299013 1.290297 1.554837 0.004296 1.922030 1.715971 0.745671 1.834833 1.685188 0.459546 0.852753 0.222708 1.234686 0.066818 0.408757 1.014860 0.439007 1.014639 1.260840 0.655777 0.991649 0.527294 -0.041261 1.711591 0.847940 0.179268 0.465383 0.194523 0.899065 0.071528 0.418693 0.418103 0.732361 1.297546 1.256178 0.846633 0.392737 1.820891 0.713707 1.291834 1.210356 1.275578 0.200742 0.613096 0.139169 0.341529 1.296228 0.763760 0.313638 1.595900 0.194525 1.833744 0.352448 0.889375 1.676171 0.501212 0.331975 0.885351 0.345396 0.880101 0.007208 1.738210 1.269611 0.672678 0.421691 0.263085 1.316376 0.794111 0.154712 1.289873 0.890304 0.432099 1.197318 1.278859 0.612746 0.130591 1.065268 0.189717 -0.135565 0.506017 0.967909 1.703954 1.930673 1.452673 1.567695 -0.014515 0.625969 0.201367 0.452228 0.652907 0.293525 1.112909 1.642972 0.431389 0.797765 0.977773 0.358388 1.874632 0.037684 1.652601 0.303906 0.914574 0.633176 1.249397 0.773101 1.208696 1.286408 1.666054 1.256075 1.140119 1.311614 0.991953 0.863871 -0.136979 1.089162 0.835943 0.466134 0.479027 0.703219 0.333846 0.397370 1.617390 0.728484 1.673126 1.282363 1.797707 -0.044128 0.353277 1.045390 0.972154 1.054862 1.120394 1.304780 1.060875 1.168615 0.742265 1.546111 0.650969 0.446651 1.786706 0.166953 -0.069741 1.867821 1.793996 0.260793 1.465915 0.551938 1.304116 0.277393 1.851218 0.699626 1.809329 0.914075 1.247352 1.311319 1.108855 1.188673 1.705050 0.073568 1.834587 0.391872 -0.137874 0.006661 0.675483 1.697564 1.225504 -0.108845 1.634825 -0.049004 0.706364 0.938834 0.058626 0.190676 0.902727 0.846414 1.174571 1.916067 1.690762 1.471187 1.627049 1.498812 1.715189 1.703943 1.092997 0.538489 0.298876 1.949290 0.953680 0.842257 0.422108 1.219498 1.049814 0.877677 -0.053929 0.129455 1.261563 -0.345280 1.763678 1.501178 1.463688 0.011614 0.549141 1.533902 -0.065444 0.411369 0.555053 0.985704 0.138752 1.219213 1.827050 1.260185 1.876681 1.787899 0.785190 0.388294 1.318712 1.220823 1.384594 0.877816 -0.202000 0.503826 1.271523 0.806115 1.686481 1.709962 0.560468 0.739745 0.528231 0.224899 1.285780 1.243486 1.503994 1.906018 0.997974 1.815865 0.898806 1.242726 1.032340 0.614666 0.605411 0.649847 0.268270 0.752001 1.361427 1.508250 1.224032 0.692505 0.299695 1.444192 0.537379 0.269797 1.645860 0.546597 0.764695 0.914880 0.954918 0.195452 0.555182 1.484763 0.427836 0.357606 0.451366 1.118370 1.769388 1.341533 0.815540 0.316978 0.596852 0.589007 1.048427 0.919308 0.449421 1.368847 1.409050 0.024999 0.062853 0.469688 0.962197 0.271776 1.332264 0.694575 1.469416 1.866061 1.557680 0.715433 0.046946 1.014977 0.913078 1.607646 1.173762 -0.012120 1.643768 0.759323 1.996128 -0.050977 1.294074 1.589835 1.394156 1.777285 1.117698 0.369220 0.522149 -0.117438 0.209492 0.990844 1.690964 1.137822 0.751663 1.378934 0.939631 0.627559 0.271292 0.581045 1.315228 0.505507 1.261125 1.577008 1.483078 0.878615 0.078757 0.053956 0.668896 0.592883 0.511379 0.928320 1.355265 0.753869 0.818102 0.187930 1.375758 0.446576 1.056231 0.810924 0.891131 1.146618 0.009020 -0.006166 0.657618 1.195953 0.870824 -0.007337 1.706863 0.310118 1.268391 -0.027332 0.014551 1.453128 0.226953 1.703132 1.777566 1.229981 -0.016380 1.438802 0.376965 1.033157 1.462338 -0.066424 0.703203 0.906360 0.124367 1.942462 0.125306 0.162789 1.909445 1.021899 1.308871 1.785865 0.782564 1.613587 0.080444 0.458384 1.124723 1.619622 1.299011 0.353847 1.595309 1.472322 0.107586 0.860123 1.560561 1.848675 1.409213 0.741772 0.071391 1.666612 1.640711 0.293948 1.934368 0.009827 0.425785 0.685438 1.794520 1.769536 0.369308 0.895015 0.723213 1.887784 1.434394 1.306825 0.101117 0.228391 0.403564 0.621907 0.306610 0.731693 0.686899 1.189478 1.683636 1.813732 0.697024 0.821081 1.530430 1.616582 1.087175 1.838005 0.049156 0.145369 0.466399 1.824828 0.580552 1.430482 0.388672 1.484642 1.824113 1.825254 1.225263 1.115072 -0.039172 1.329297 1.032701 1.184710 1.967539 1.030190 1.069197 -0.315706 1.638073 1.756641 0.369998 1.371255 1.322663 1.809504 1.204624 1.360516 1.560017 0.728786 1.198141 0.205090 1.160044 0.123788 1.055389 0.000606 1.053192 1.151477 1.373542 1.265186 1.724798 1.886742 0.005357 0.765937 0.357094 1.883191 1.413956 0.425519 1.541890 0.228828 0.444569 1.731242 0.758135 1.694845 0.235575 1.375622 0.966774 0.064210 1.818181 1.701152 0.939885 0.869690 1.721261 0.903745 0.572776 1.613709 1.429967 -0.204365 -0.159847 1.411098 1.849827 1.332361 0.123284 0.471584 0.124263 1.548507 0.037436 1.450427 1.608213 0.751526 1.251800 0.449356 0.995685 0.168581 0.578596 -0.008301 -0.108588 -0.051841 1.255443 1.717525 0.066269 0.462219 0.617376 0.732084 0.457786 1.648457 0.084351 1.425839 1.132695 1.075568 0.426124 1.683785 -0.026802 0.659449 1.976438 0.327653 0.176478 1.519385 0.950918 1.117125 0.681302 1.220378 1.564197 1.081199 0.035168 0.774191 1.423020 0.542872 1.005906 0.925064 1.222361 0.709077 1.232009 0.175848 1.766418 0.768157 1.120193 0.595285 1.601960 1.422274 0.916402 1.448116 0.640237 0.643692 0.251324 0.741667 -0.143977 1.397369 1.463541 0.154011 1.310131 0.932001 0.753147 0.647945 1.983809 0.331356 0.039426 0.675089 1.044512 1.749427 0.466421 1.329106 0.614988 0.427666 1.438464 1.323273 0.710947 0.849134 0.666531 1.817634 0.140362 1.325895 0.771077 0.075639 0.215751 1.234804 1.390106 1.182646 1.003854 0.013770 1.827076 1.287194 0.957362 0.727601 1.710334 0.146925 1.363164 1.235333 1.207632 1.759338 0.000776 0.001067 1.292928 1.073254 1.890373 0.606827 0.181623 1.422096 1.818391 0.491047 0.947882 1.522891 0.622651 0.231882 0.552506 -0.214757 -0.053201 0.304820 1.072877 1.169681 1.901575 -0.092557 1.464238 0.530517 0.760214 0.184567 0.354900 0.763822 0.875569 0.244640 1.314029 0.587594 1.619930 0.698392 -0.181363 0.024190 0.931927 1.045769 0.079044 0.719967 0.551470 0.460989 1.721308 1.512101 0.729903 0.832498 0.501992 1.146729 1.023131 1.011971 0.564333 1.875893 0.486515 0.918728 1.673893 1.790532 1.544474 0.647989 1.273184 1.130883 0.440570 1.323044 0.382668 1.042155 1.285675 0.211456 0.502048 1.189816 0.534034 1.407641 1.396625 1.348606 0.205338 0.169613 -0.251785 1.520873 0.112457 1.155081 1.283677 1.090786 1.526686 -0.115764 0.068967 0.239760 0.596159 0.948975 0.049865 1.012595 1.804858 1.292393 1.484553 0.425388 0.321439 0.063327 1.428852 0.582776 0.833098 1.051708 0.774444 1.876183 1.535729 1.461779 1.473666 0.303086 0.720744 0.374541 0.755229 -0.055643 0.188433 0.498668 1.597273 0.766659 1.321301 1.495768 0.819036 1.138608 1.159473 0.761863 0.670979 -0.098153 0.448910 0.939632 0.922536 1.106894 0.720136 0.429535 0.121384 1.794329 0.127746 1.172651 0.399136 0.133453 -0.165391 1.916043 0.540311 0.212827 0.683252 1.623311 1.138221 1.630690 0.756739 1.664517 -0.028629 0.616701 -0.155817 1.562563 0.655621 0.469385 0.284323 0.346021 1.210168 0.185069 1.861215 0.681268 1.510357 0.613663 0.376371 1.912091 0.054078 0.489070 1.286420 0.425791 0.742853 0.578076 0.160000 0.163093 1.019223 1.661548 1.024647 1.576844 1.595196 0.752288 0.366969 0.867927 0.361642 1.395106 -0.034080 1.835172 1.691725 1.801541 0.654914 -0.041273 0.328990 1.768449 0.795101 0.997312 1.195282 0.781554 1.151484 1.191750 0.477387 0.553091 0.366634 1.426276 0.923195 0.519343 1.370423 1.105417 0.254981 -0.021406 0.870643 1.281654 1.699929 1.096017 0.153801 0.813486 0.155964 0.167265 0.906116 1.600814 1.546916 1.009804 0.580677 1.831690 0.621781 0.269422 0.068023 0.375118 0.392483 0.645346 0.726257 1.866670 1.438871 1.819957 1.876558 0.805047 0.268251 1.873954 0.724392 1.724914 0.061731 1.758237 0.049363 1.338298 1.592725 0.110822 0.070554 1.080204 1.660994 0.323601 0.066554 0.935522 0.625000 0.948577 1.536436 1.569960 1.250499 0.840977 0.618873 0.326876 0.016957 0.553092 1.742929 0.033075 0.705283 1.317553 0.857354 1.570911 0.666923 0.699337 1.072114 1.490230 1.152199 1.457229 1.446920 0.535560 0.840597 1.553697 1.432581 1.225356 0.983635 1.341505 0.184996 0.542601 0.591029 1.546770 0.354289 1.474863 0.800221 0.842475 1.758179 0.637846 0.778074 1.479088 1.621038 0.384223 1.279410 1.604567 1.299460 0.212084 0.922044 0.089352 0.048483 0.818589 1.426555 0.418824 1.005097 1.686282 0.134313 1.851577 -0.066031 1.100005 1.405115 0.347333 1.397633 1.437795 1.651533 -0.238059 1.032263 1.804189 1.525625 1.200245 0.325330 1.630091 0.183877 1.134113 0.039761 1.489778 0.963327 1.587820 0.343193 1.487904 1.560897 0.506776 -0.028556 1.639374 0.489331 -0.120847 1.486097 1.113385 0.818559 1.458254 0.379312 0.103127 1.764014 0.045134 1.857665 0.074990 1.252619 0.764720 0.274340 1.041679 0.736801 1.109047 0.633472 0.616452 0.701812 0.259074 1.220492 0.990225 1.469215 1.122294 1.691573 1.007128 1.914729 1.046027 0.960188 1.052492 1.263789 0.256791 1.082266 1.564876 0.767580 1.665671 1.120116 1.476337 1.656355 1.697957 1.779212 1.899439 0.704596 0.478737 0.639105 0.056120 0.934412 1.562426 0.295572 1.797791 0.012179 0.859778 0.373190 1.413334 0.662523 1.795260 0.540434 1.550712 0.295331 0.789514 1.104423 1.606744 1.027104 0.104342 0.714491 1.258853 1.087852 0.605032 0.317064 1.553622 1.415202 0.270208 1.144114 1.311076 0.793202 0.032702 1.383318 1.158686 0.646710 1.115656 0.964201 0.942657 0.799390 1.486686 1.086567 1.038546 0.055309 0.741162 0.086784 1.038227 0.094432 0.207456 0.626876 1.517393 0.127161 1.068240 1.442156 0.273590 1.284737 0.477934 0.473085 1.942640 0.062778 0.243140 1.632289 0.511216 0.151255 1.197956 0.776004 1.112350 1.385013 1.196290 1.658894 0.897830 1.458073 1.581040 1.354446 0.335038 1.160037 1.586889 0.653957 0.295992 1.385754 0.095788 1.319550 0.425803 1.460134 1.078479 1.125803 0.932132 0.667512 0.629981 1.087063 1.449613 1.075382 1.088690 1.239380 1.305439 0.869954 0.692212 1.065130 1.219586 1.111215 0.089192 0.836221 1.138355 1.945019 0.296229 1.186500 0.342130 1.232618 1.710282 1.986021 0.950320 0.495020 1.401488 0.976052 0.679239 1.853418 1.720813 0.223308 1.389019 0.941208 1.661414 -0.012657 1.283710 1.487429 0.823783 1.360182 0.177313 1.052477 0.432488 1.199655 1.143938 1.514324 0.877808 0.650891 1.043137 0.325729 1.299690 0.729208 1.021757 1.526267 1.469028 1.081560 0.071050 1.202749 0.374817 1.153580 0.568680 0.162383 0.505291 1.851347 1.412587 0.819201 0.097817 1.973576 1.568679 0.224658 0.601107 0.842611 1.040590 0.035672 1.474388 1.543181 1.448033 1.083332 0.228181 0.052902 1.797137 1.310910 0.495990 0.383665 -0.086138 -0.094189 0.729327 0.051485 0.669810 1.073596 1.313582 0.939163 1.082077 1.201117 0.624420 1.824142 1.492310 1.257313 1.701444 0.479923 1.983507 0.832439 0.912729 1.762346 1.715092 1.655982 0.954559 0.613332 0.692469 0.537613 0.286034 0.515639 1.488961 1.861358 1.127184 0.251114 1.847182 1.445373 0.313099 0.422195 1.034094 1.024292 0.412421 0.159320 1.310858 0.899619 0.476523 0.769707 0.878341 0.305843 1.276970 1.032700 1.009946 -0.069853 0.146832 0.911001 1.250154 0.454603 1.761483 1.726389 1.474818 0.733881 0.147590 0.552453 1.912088 1.004706 -0.102653 1.473088 1.468754 1.772940 1.879832 0.971078 1.615059 -0.115166 1.739167 -0.002023 1.569220 0.180507 0.198087 -0.134233 1.275981 1.606464 0.714902 1.304672 1.105521 1.240017 1.535617 0.319181 0.918684 1.743778 1.558601 0.338631 0.399170 1.432489 0.112576 1.886436 1.562142 -0.024108 0.598197 1.036296 0.588486 1.319704 1.523359 0.543659 1.195335 0.601039 0.764233 -0.077083 1.501171 1.695061 1.321697 0.695092 1.633198 1.883887 -0.024737 1.279944 0.414434 1.631632 0.643374 0.610497 1.355265 1.307675 0.326636 1.389259 0.191833 1.021876 0.187621 0.456069 0.228919 0.379028 0.760297 0.757632 1.142513 1.537731 0.600440 0.265685 0.932773 0.913509 -0.200060 1.377976 0.439405 0.217117 -0.073503 0.501370 1.122413 0.175827 1.246033 0.387894 0.404290 0.320875 0.196271 1.008346 1.119913 1.655881 0.396755 1.492684 0.480400 1.842793 1.443282 1.395858 0.970655 -0.009975 1.414204 0.202723 0.188203 1.777759 1.363710 1.432199 1.159443 0.976227 1.255006 0.908198 1.620066 1.916071 0.097593 0.328901 0.067608 1.004743 0.585298 0.074380 1.595189 0.660523 0.338864 0.091261 0.239667 0.326231 1.482832 0.921071 0.891452 0.254766 0.039582 0.785938 1.873909 0.002978 1.347910 1.051314 0.067288 1.386345 1.757919 1.171580 0.783862 0.439741 0.461515 0.485647 0.029094 1.573455 1.246301 0.201551 1.942214 1.416732 1.928033 1.928840 0.187017 0.076688 1.436638 0.591098 0.845717 1.050410 0.618795 0.979503 1.596239 1.753497 1.295340 1.598782 0.868787 1.904322 0.873015 1.151254 0.528900 1.177379 1.799925 1.343422 1.550074 0.821416 0.379389 0.852728 1.309077 1.893498 1.650137 0.204429 0.016089 0.580561 0.094042 0.138503 1.120888 1.190249 1.402953 0.818838 0.843544 0.476039 0.818557 0.772026 0.020762 0.591849 0.714850 1.168245 1.799409 0.865955 0.677000 0.821752 1.056095 1.142529 0.087996 1.850212 0.780206 0.458059 0.696792 1.149724 0.994532 0.671757 1.707878 0.385934 0.870416 1.459651 0.659678 0.327530 0.458572 0.008146 1.512192 0.567770 1.870562 1.527804 0.578037 1.856490 0.141902 1.231135 1.392547 0.270148 1.068155 0.023390 1.159102 1.362068 0.727755 0.094182 1.064016 0.337791 0.117156 0.539198 1.211991 1.451911 1.021603 0.491286 0.293551 0.371801 0.284474 1.165006 0.137262 1.479375 0.287365 1.459300 0.281980 1.904086 0.734313 1.195385 0.046091 1.557977 0.728796 1.301848 1.743558 1.143585 0.788219 0.759209 0.509926 1.796707 1.368720 1.286657 -0.062087 1.526534 0.878678 1.812008 0.707789 1.190134 1.514280 0.047575 0.563531 1.543542 1.606308 0.151694 0.109509 0.499422 0.889672 1.652796 0.102759 0.908231 1.742743 0.834000 1.428919 1.525945 1.008232 1.505940 1.858825 1.750446 0.845554 0.601147 0.827081 0.205832 0.080833 0.713952 0.249859 1.423129 1.619076 1.700349 1.685235 0.921690 1.168774 1.615059 1.444049 0.221349 0.217084 0.482003 1.021496 0.841911 1.021914 0.196904 1.665027 0.166506 0.224034 1.413453 0.832441 0.056767 1.534361 0.614422 1.632902 0.682076 1.866906 1.771477 0.565935 0.574907 1.191693 1.039149 0.897034 0.292820 -0.048727 1.767884 0.476460 1.607964 1.541032 1.623282 1.078563 0.872967 1.848588 0.042590 1.339678 0.165623 1.272406 0.620460 0.369626 -0.112649 -0.088659 1.856203 1.143713 1.093267 1.746104 0.489089 0.717101 0.225880 1.043382 0.622450 -0.150497 0.983630 1.751518 0.266414 0.637518 1.279067 -0.031861 1.724106 0.109340 -0.116276 -0.047884 0.319897 0.670495 1.078008 0.639371 0.801576 1.083869 1.621119 0.889823 0.930122 1.575123 1.867559 1.029674 1.465560 0.117367 0.627982 0.487635 1.663071 0.771107 0.222146 -0.127571 1.150692 0.991701 0.025807 1.042588 1.542589 1.071272 1.225186 1.833225 0.975210 -0.077186 1.418656 0.429973 0.228562 -0.160882 0.348927 1.284798 0.070139 0.131564 0.294090 0.449645 1.260139 1.853688 0.464997 0.105448 1.130884 0.859086 1.143562 0.174115 0.101670 1.754841 1.093365 0.158871 0.155271 0.223536 1.562860 0.135431 1.828754 0.380708 1.121628 0.085322 1.573346 0.967432 1.891542 1.702359 1.257171 0.533161 1.255176 1.375597 -0.078684 0.881799 1.250021 0.435607 0.160869 0.258410 0.812452 0.253444 1.792255 1.074924 0.220601 0.029721 0.477966 -0.078696 1.023634 0.204468 0.016608 0.246772 1.341919 1.384069 0.744538 1.364802 0.518863 1.650722 0.993983 1.267762 0.034870 0.414694 1.899845 -0.010726 1.463904 1.575453 0.231887 0.544576 1.033090 0.085019 0.507967 0.772132 0.877929 0.404390 -1.948076 0.632160 1.440882 1.300264 1.433784 0.066197 1.347971 0.473919 0.663321 0.627873 1.468796 0.811124 1.215371 1.558794 1.086172 1.257824 0.856167 0.458127 1.283692 0.630254 1.346541 0.003750 1.487384 0.642198 0.552044 0.252638 0.693926 1.283405 0.336547 0.178117 1.701054 0.198419 0.879596 0.339342 0.872446 1.977245 1.711070 1.473033 1.907844 1.030056 0.003757 0.217575 1.155605 1.430836 0.912025 0.685322 1.695148 -0.093333 0.650928 1.540781 0.033695 0.899947 1.056397 0.888523 0.797001 0.574074 0.714735 0.595830 0.346684 0.317866 0.409902 1.946172 0.977527 0.967141 0.849284 0.067462 1.230601 1.513986 0.866081 0.160429 0.826036 0.465825 0.975601 0.812619 1.565109 1.422901 1.573749 1.812609 0.821048 0.748877)
)
))
@@ -2514,6 +2599,7 @@
3.1492093077352 #(0 0 1/2 0 1/2 1 1/2)
3.061912 #(0.000000 0.714759 0.260578 0.166208 0.059602 1.174495 0.323635)
+ 3.061861 #(0.000000 0.715739 0.261422 0.169339 0.062479 1.180650 0.330190)
)
;;; 8 prime --------------------------------------------------------------------------------
@@ -2526,6 +2612,7 @@
3.263480 #(0.000000 1.792783 -0.032826 0.250009 -0.061235 1.659318 0.603596 -0.057373)
3.263115 #(0.000000 0.207652 0.035023 1.752163 0.064249 0.346105 1.403170 0.065734)
3.263026 #(0.000000 0.792560 -0.034573 0.248474 1.936538 1.655196 0.598263 1.936131)
+ 3.262977 #(0.000000 0.792550 1.965637 0.248661 1.936840 1.655647 0.598935 1.936915)
)
;;; 9 prime --------------------------------------------------------------------------------
@@ -2534,6 +2621,7 @@
3.9154822826385 #(0 0 0 1 1 1 0 0 0)
3.382645 #(0.000000 0.562589 0.520940 1.521127 1.682374 0.721497 0.805534 1.254209 0.726847)
+ 3.382399 #(0.000000 1.437745 1.479554 0.480268 0.319088 1.280870 1.197460 0.749784 1.277141)
)
;;; 10 prime --------------------------------------------------------------------------------
@@ -2543,6 +2631,7 @@
3.602714 #(0.000000 0.594153 1.304664 1.610566 1.241680 0.148124 1.920208 0.972526 1.622030 0.768137)
3.602602 #(0.000000 1.405079 0.694565 0.388252 0.756491 1.849937 0.076683 1.023761 0.374165 1.226329)
+ 3.602329 #(0.000000 0.594431 1.305346 1.611464 1.243212 0.149889 1.922392 0.975619 1.625276 0.772405)
)
;;; 11 prime --------------------------------------------------------------------------------
@@ -2551,6 +2640,7 @@
4.4176635742188 #(0 0 1 0 0 0 0 0 0 1 0)
3.779310 #(0.000000 0.795034 0.550625 0.191200 0.209037 0.086985 0.729229 1.230323 0.721250 -0.058459 1.262582)
+ 3.779046 #(0.000000 0.211414 1.453486 1.827574 1.811694 1.949216 1.313595 0.823256 1.334141 0.127849 0.824659)
)
;;; 12 prime --------------------------------------------------------------------------------
@@ -2558,7 +2648,7 @@
4.6850221453825 #(0 0 1 0 1 0 1 1 1 0 0 0)
4.3595271110535 #(0 0 0 0 0 0 1 0 1 1 0 1)
- 3.938936 #(0.000000 0.360355 0.987020 1.746289 1.270565 0.100598 0.711002 1.508708 1.220462 0.225217 0.232286 0.217155)
+ 3.936657 #(0.000000 0.367346 0.997085 1.763425 1.295636 0.140826 0.757652 1.565853 1.284651 0.304758 0.331248 0.325474)
)
;;; 13 prime --------------------------------------------------------------------------------
@@ -2569,12 +2659,17 @@
4.650 #(0 29/28 39/25 2/33 28/139 47/28 23/15 113/94 58/31 401/229 93/65 27/107 18/17)
4.180492 #(0.000000 1.772215 1.337771 1.572723 0.985677 1.717413 1.821689 0.986759 1.151868 0.637061 0.595788 1.561353 1.695959)
+ 4.155503 #(0.000000 1.115751 0.463368 0.110540 0.613302 1.581997 1.394002 -0.005270 1.724217 0.023531 1.743892 0.616897 0.124222)
+ 4.155447 #(0.000000 0.888617 1.517807 -0.126164 1.379365 0.386974 0.577265 -0.035993 0.235237 1.925386 0.197791 1.315578 1.792037)
+
+ 4.155397 #(0.000000 0.889095 1.516866 -0.126190 1.379921 0.387624 0.577311 -0.035814 0.235894 1.925264 0.197860 1.315963 1.792333)
)
;;; 14 prime --------------------------------------------------------------------------------
#(14 4.827317237854 #(0 0 0 0 1 0 0 0 0 1 1 0 0 0)
4.328845 #(0.000000 1.631608 0.105786 1.732589 0.749692 0.105117 0.626364 1.395811 1.430614 0.705052 0.780338 1.582470 1.046721 0.950090)
+ 4.326976 #(0.000000 0.364582 1.890353 0.257084 1.236968 1.870081 1.347397 0.568508 0.530480 1.244349 1.158504 0.351458 0.874868 0.961576)
)
;;; 15 prime --------------------------------------------------------------------------------
@@ -2583,6 +2678,10 @@
5.116711139679 #(0 0 0 0 1 1 0 0 1 0 0 0 1 1 1)
4.482073 #(0.000000 0.430607 1.010272 0.810816 1.103409 1.274070 0.728190 1.576850 0.465054 1.582164 0.985518 1.441214 0.149277 1.211260 1.202522)
+ 4.468487 #(0.000000 -0.170894 1.166594 0.261941 0.795313 -0.037553 0.002464 1.693993 1.753074 1.644706 -0.070294 0.671844 1.070595 0.053777 -0.250027)
+ 4.468456 #(0.000000 1.163642 0.822265 1.719160 1.174671 -0.001630 -0.050625 0.246910 0.168123 0.266790 -0.043714 1.191768 0.791421 1.787408 0.068509)
+
+ 4.468227 #(0.000000 1.163360 0.821825 1.719236 1.176172 -0.001579 -0.049058 0.246791 0.169303 0.265483 -0.043935 1.191333 0.791982 1.786817 0.068461)
)
;;; 16 prime --------------------------------------------------------------------------------
@@ -2591,6 +2690,11 @@
5.2015118598938 #(0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1)
4.662724 #(0.000000 0.254861 1.684311 0.497899 0.656871 1.722503 0.329340 1.047910 0.635053 1.158523 0.448629 0.050078 1.573549 1.470622 1.991728 1.975781)
+ 4.607704 #(0.000000 0.863393 1.574552 1.705278 1.569228 0.102457 0.353917 0.651931 1.696462 1.761383 0.072955 1.294632 -0.307040 1.072928 1.543936 0.777891)
+ 4.606477 #(0.000000 0.063715 0.365372 0.117043 0.193143 1.512895 1.195495 0.797456 1.646578 1.458347 0.946115 1.646531 1.022197 1.509568 1.014563 1.618704)
+
+ 4.605936 #(0.000000 0.062783 0.365100 0.116854 0.191641 1.514695 1.196399 0.797535 1.646767 1.458340 0.947574 1.647179 1.022766 1.510456 1.014996 1.620517)
+ 4.603563 #(0.000000 0.058279 0.360249 0.118870 0.188733 1.520196 1.197587 0.796110 1.647952 1.455743 0.954899 1.650113 1.028040 1.516864 1.018349 1.626281)
)
;;; 17 prime --------------------------------------------------------------------------------
@@ -2600,13 +2704,22 @@
5.5318970680237 #(0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1)
4.732840 #(0.000000 1.594259 1.537383 1.654009 0.059827 1.456178 1.640619 0.725632 -0.052840 0.741210 1.485914 1.399005 0.596215 1.791931 0.887057 0.720499 0.037113)
+ 4.722267 #(0.000000 0.745012 1.746720 1.857322 0.395619 0.089137 0.377160 1.693046 1.022690 0.006860 1.068984 1.241035 0.656572 0.031366 1.331142 1.361315 0.976051)
+
+ 4.721823 #(0.000000 0.743855 1.746189 1.857446 0.396581 0.088714 0.378562 1.692782 1.022551 0.007089 1.069256 1.241125 0.656507 0.031115 1.331252 1.360795 0.977429)
+ 4.720335 #(0.000000 0.741764 1.745798 1.858232 0.394387 0.086105 0.379819 1.692029 1.022315 0.008990 1.069411 1.241786 0.653220 0.028583 1.334535 1.358902 0.976814)
)
;;; 18 prime --------------------------------------------------------------------------------
#(18 5.6380511040237 #(0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0)
5.518 #(0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0)
- 5.013076 #(0.000000 1.424773 1.151032 1.088194 0.335035 1.829783 0.589631 1.302327 1.464570 0.453030 1.760227 0.948122 1.737172 0.290462 0.593673 0.293173 -0.061059 1.769915)
+ 4.881625 #(0.000000 1.688958 1.279188 1.177293 -0.318361 0.802007 0.250184 -0.270074 -0.003800 1.870180 1.633808 0.442468 -0.114869 0.906870 1.252354 1.245762 -0.107436 0.786324)
+ 4.873983 #(0.000000 1.294215 0.677028 0.767080 0.216703 1.053732 1.558920 0.021622 1.718601 1.799683 -0.043454 1.131408 1.619627 0.529888 0.161043 0.076136 1.380515 0.372909)
+ 4.861048 #(0.000000 0.759594 1.400352 1.380791 -0.021867 1.257810 0.804917 0.457473 0.843250 0.862198 0.848370 1.729218 1.383618 0.634141 1.026759 1.274916 0.088715 1.295112)
+
+ 4.860375 #(0.000000 0.758984 1.399757 1.380903 -0.022289 1.257398 0.804273 0.457932 0.842771 0.862126 0.848667 1.730206 1.384282 0.633731 1.027661 1.274988 0.089709 1.295851)
+ 4.857460 #(0.000000 0.760733 1.399738 1.384312 -0.023901 1.256074 0.802674 0.456628 0.836375 0.859214 0.851397 1.732270 1.392917 0.637205 1.030677 1.267425 0.093843 1.291693)
)
;;; 19 prime --------------------------------------------------------------------------------
@@ -2614,7 +2727,9 @@
5.707 #(0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1)
5.7069295560724 #(0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1)
- 5.224483 #(0.000000 1.008754 1.359764 0.238526 0.771021 0.860534 0.389574 0.705746 0.498279 0.544055 1.380668 1.282349 0.887684 0.421672 1.793126 1.006352 -0.053383 0.148566 0.623588)
+ 5.050598 #(0.000000 0.718637 1.798883 1.579536 0.015456 1.806520 0.208708 1.353434 1.112089 1.766036 0.720549 1.107314 0.509279 -0.117956 1.148417 0.726527 0.254889 1.769009 0.642150)
+ 5.021091 #(0.000000 1.619333 1.632600 1.311158 1.621931 1.174349 1.448853 0.362928 -0.088824 0.458062 0.974263 1.262388 0.348296 1.476078 0.556767 0.005450 1.132051 0.282051 1.020436)
+ 5.017269 #(0.000000 1.615189 1.624600 1.310534 1.621918 1.182157 1.449569 0.369086 -0.084792 0.459555 0.978427 1.263962 0.347956 1.473899 0.566448 0.004230 1.129771 0.283684 1.025677)
)
;;; 20 prime --------------------------------------------------------------------------------
@@ -2623,7 +2738,10 @@
5.931 #(0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0)
5.8879864574703 #(0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1)
- 5.332767 #(0.000000 1.588736 0.407908 1.312201 0.979540 0.092669 0.793957 1.901720 0.761073 0.022095 0.225064 0.064542 0.446402 0.508871 1.543102 1.840445 1.003753 0.658472 0.604952 1.481844)
+ 5.219761 #(0.000000 1.154818 1.816853 1.891880 -0.032202 0.197019 1.018732 1.639212 0.953425 0.695031 0.577021 1.061687 0.455312 0.907081 0.481515 1.400124 0.806615 1.262883 0.187894 1.041939)
+ 5.214980 #(0.000000 0.840843 0.870934 -1.936784 0.124790 0.037596 1.842854 1.506881 0.243469 1.454635 0.781572 1.020004 -0.209275 1.345639 1.356003 1.554666 0.375592 1.561439 1.206468 1.818047)
+ 5.195592 #(0.000000 1.308286 0.836717 0.721652 0.014336 1.269342 1.770967 0.018944 1.620000 0.391358 0.060240 1.245410 0.211221 0.564481 1.999654 0.758548 1.620945 0.639625 1.010870 0.092874)
+ 5.191776 #(0.000000 1.304053 0.834086 0.729580 0.020033 1.269830 1.771149 0.008816 1.613452 0.393606 0.060535 1.247418 0.223146 0.557325 0.007610 0.755009 1.618223 0.629304 1.012960 0.083475)
)
;;; 21 prime --------------------------------------------------------------------------------
@@ -2632,6 +2750,8 @@
6.1138607493652 #(0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0)
5.486939 #(0.000000 1.054487 0.664992 0.221211 0.326872 1.588195 1.592726 1.336003 -0.011408 0.242484 1.885446 1.030420 0.900483 1.377784 1.752653 1.724134 1.420616 1.866623 1.449894 1.955882 0.634259)
+ 5.364729 #(0.000000 0.126645 0.205400 0.493396 1.819656 0.793652 0.531707 0.451172 -0.086061 0.428806 1.709444 1.530708 0.012548 0.546834 0.923593 0.972076 0.905563 1.194666 0.049961 1.147910 1.708241)
+ 5.350241 #(0.000000 0.135627 0.209129 0.486013 1.823739 0.799888 0.529447 0.448581 -0.074800 0.435949 1.711871 1.519432 0.006798 0.559492 0.905602 0.974049 0.909432 1.209651 0.045420 1.145955 1.721134)
)
;;; 22 prime --------------------------------------------------------------------------------
@@ -2640,7 +2760,9 @@
6.33751039349071 #(0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0)
6.3374844973589 #(0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0)
- 5.594568 #(0.000000 1.469907 0.167287 0.994513 0.795429 1.190029 1.972937 0.505610 1.651614 0.105303 0.461162 1.766974 1.284503 0.538478 0.157116 1.190739 1.207105 0.667366 0.875185 1.940447 1.632046 0.332821)
+ 5.508496 #(0.000000 1.554868 1.261041 1.228936 0.711722 0.501029 0.621002 1.942233 0.506831 0.465521 0.558205 0.278591 1.040235 0.094908 0.869978 -0.081825 1.044210 1.751433 1.433134 0.293388 0.957115 1.634297)
+ 5.481313 #(0.000000 1.526342 1.256451 1.198981 0.714321 0.494762 0.639483 1.931115 0.504494 0.469001 0.568616 0.286258 1.044659 0.083908 0.869021 -0.080230 1.035514 1.762909 1.435139 0.299975 0.958202 1.638702)
+ 5.471307 #(0.000000 1.515121 1.259203 1.191078 0.705493 0.502933 0.649117 1.930320 0.486105 0.475368 0.585449 0.283100 1.047369 0.089192 0.864052 -0.079225 1.038793 1.773949 1.432236 0.302611 0.966283 1.631998)
)
;;; 23 prime --------------------------------------------------------------------------------
@@ -2648,7 +2770,9 @@
6.5358400344849 #(0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1)
6.5309901747782 #(0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1)
- 5.829945 #(0.000000 0.922393 0.449521 1.276960 0.224090 0.462437 1.684350 1.490622 1.708431 1.164224 -0.128029 1.425006 0.581948 0.153748 0.998674 1.230987 1.111652 0.942756 0.185426 0.960606 1.438480 1.232711 0.702684)
+ 5.685285 #(0.000000 0.254600 -0.012994 0.113546 0.539539 1.037398 1.757854 1.055458 0.272297 -0.046061 0.094856 0.510270 0.402511 -1.992644 1.761629 0.351312 0.348956 1.246604 0.787427 1.083729 1.586582 0.611927 0.184053)
+ 5.624319 #(0.000000 0.111340 0.718028 0.223542 1.146734 1.272778 0.293503 0.944368 0.616128 1.612738 0.413214 0.453242 0.182667 0.460745 0.409053 0.607774 1.238915 1.551280 0.588763 0.165014 1.035923 1.463808 1.485878)
+ 5.620354 #(0.000000 0.117997 0.708610 0.228851 1.149295 1.276123 0.290952 0.945834 0.609919 1.611171 0.415218 0.454302 0.181258 0.458880 0.395016 0.611309 1.239117 1.552809 0.590981 0.161246 1.037321 1.465866 1.486062)
)
;;; 24 prime --------------------------------------------------------------------------------
@@ -2657,6 +2781,8 @@
6.5623834870329 #(0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0)
5.949920 #(0.000000 0.128611 0.694957 0.658206 0.886509 0.768948 1.233345 -0.189112 1.759586 0.197333 1.393597 1.021426 0.619470 0.959617 0.232166 0.499447 1.419100 0.526324 0.173261 0.228559 1.292462 0.139965 0.391749 1.913935)
+ 5.713005 #(0.000000 0.906076 1.837577 1.208891 1.231380 0.500589 -0.081845 -0.290081 1.733614 1.438418 0.350697 1.657899 -0.225835 1.063682 1.800005 1.417046 1.288216 0.451237 0.858447 0.189950 0.290432 0.722411 1.224710 1.469471)
+ 5.665525 #(0.000000 0.898041 1.824693 1.202797 1.212468 0.497469 -0.114979 -0.258514 1.754040 1.426218 0.311486 1.652943 -0.270641 1.054523 1.825010 1.402802 1.291879 0.451230 0.867557 0.167813 0.285420 0.748149 1.225765 1.464488)
)
;;; 25 prime --------------------------------------------------------------------------------
@@ -2665,7 +2791,9 @@
6.6733964421745 #(0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0)
6.635721206665 #(0 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1)
- 6.016027 #(0.000000 0.106530 0.022313 0.509471 0.167877 1.135366 0.507502 0.406088 0.500826 1.366506 1.647879 1.651292 1.960995 1.364937 0.402779 1.852416 0.968518 0.688598 1.360839 0.478960 0.445153 1.640633 1.344097 1.700880 1.069954)
+ 5.988895 #(0.000000 0.958244 1.345633 0.953582 0.394970 1.901749 1.046106 1.586016 1.673907 1.504535 0.855726 1.185762 0.711920 0.273710 0.138584 1.350736 -0.012172 1.001100 -0.022766 1.615113 1.538010 -0.061672 0.033456 -0.153052 0.855356)
+ 5.929625 #(0.000000 0.560320 1.421714 1.301451 1.598466 0.354996 0.019090 1.111634 1.211711 0.212102 1.525555 0.365810 0.082554 1.521220 -0.261960 1.082739 1.506918 1.061178 1.821977 0.383824 1.717752 0.818966 1.432949 0.533424 0.536656)
+ 5.921707 #(0.000000 0.561128 1.422129 1.288359 1.598038 0.352917 0.032596 1.100373 1.220188 0.222201 1.528108 0.364694 0.070690 1.512349 -0.271359 1.080088 1.502830 1.057859 1.813653 0.381762 1.699723 0.815937 1.422647 0.546858 0.545714)
)
;;; 26 prime --------------------------------------------------------------------------------
@@ -2674,7 +2802,8 @@
6.9264546836564 #(0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1)
6.8401503562927 #(0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1)
- 6.206211 #(0.000000 0.485469 0.878884 0.659950 0.709297 1.094145 1.117323 1.989379 1.751467 0.912434 0.062823 0.809150 0.309607 0.899900 1.874836 0.531584 1.243522 0.716983 0.512636 1.821754 0.917882 -0.050316 -0.176032 1.383622 1.582700 1.112749)
+ 6.114195 #(0.000000 0.487946 1.509453 0.656427 -0.061099 1.024534 1.764200 0.719985 0.845113 1.416156 0.999041 1.502717 1.217362 0.470360 0.781338 0.378324 1.225888 1.318663 1.531597 0.037759 1.356653 1.047908 -0.226597 0.213201 0.995851 0.546112)
+ 6.074530 #(0.000000 1.943057 1.974964 0.423204 0.990989 0.826039 -0.012086 1.652156 0.214423 0.118240 1.353424 0.391258 0.284181 0.188910 -0.169487 1.727524 -0.096788 0.333269 1.304541 0.718448 0.601774 0.390976 0.594076 1.101120 1.773566 0.196210)
)
;;; 27 prime --------------------------------------------------------------------------------
@@ -2684,6 +2813,7 @@
6.9491486549377 #(0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1)
6.306082 #(0.000000 1.014487 0.044686 1.244051 0.504595 0.487037 0.595344 0.942363 1.421788 1.271617 1.672410 0.919810 -0.088188 -0.004921 0.389662 1.276380 1.315062 0.969929 1.267761 0.826017 0.908595 0.237755 0.772601 0.772305 0.470772 1.354427 0.868884)
+ 6.250703 #(0.000000 1.417695 0.379863 0.574075 0.026310 1.854097 1.799270 1.048756 0.017719 1.590423 0.709941 1.873537 1.208517 0.024528 0.975026 0.008370 1.420162 0.290841 0.325800 1.168479 1.245685 1.563863 -0.217899 1.934168 1.859690 1.621341 0.313314)
)
;;; 28 prime --------------------------------------------------------------------------------
@@ -2693,7 +2823,7 @@
7.1576952692751 #(0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0)
7.1576952934265 #(0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0)
- 6.347580 #(0.000000 0.510338 1.032480 1.583992 0.866059 1.894927 -0.182177 1.312440 0.778732 1.135650 0.370015 0.516297 0.911543 0.183761 0.331223 1.539887 1.021770 1.129234 1.217506 0.462917 1.274150 1.469113 1.232802 0.149370 0.560324 0.977349 1.433609 1.134757)
+ 6.266481 #(0.000000 0.464977 0.954351 0.843190 1.125317 0.010507 1.072665 0.506420 0.334117 -0.002274 0.804342 1.777515 0.702462 1.533180 1.276804 0.055155 0.922788 0.985869 0.597230 0.416958 0.876178 1.168420 0.578974 1.494226 1.590875 0.468961 1.546102 0.116359)
)
;;; 29 prime --------------------------------------------------------------------------------
@@ -2701,7 +2831,7 @@
7.24235304747816 #(0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0)
7.2415904369233 #(0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0)
- 6.557021 #(0.000000 1.610669 1.469168 0.982902 1.656354 1.417045 1.128871 1.850656 1.542150 0.186147 1.606284 0.557752 0.376984 0.194496 1.202747 1.074049 1.661590 0.743527 1.698983 1.872035 1.063328 1.380159 0.113917 0.716848 0.519064 1.975355 1.445415 1.578746 0.685114)
+ 6.436508 #(0.000000 0.959665 0.070142 1.613727 0.570027 0.616169 1.479500 1.067280 -0.043135 0.088604 1.767056 1.562744 1.044755 1.611902 -0.049034 0.923286 1.476347 1.274732 0.064816 -0.008450 0.585605 0.472018 0.570671 1.306333 1.107434 1.186437 0.932748 0.765902 0.489942)
)
;;; 30 prime --------------------------------------------------------------------------------
@@ -2711,7 +2841,8 @@
7.4977698326111 #(0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 1)
7.1189651489258 #(0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0)
- 6.699668 #(0.000000 1.266038 1.190522 1.376281 0.356920 -0.077863 0.715417 0.925471 1.576754 0.455792 0.702003 1.033771 -0.052956 0.284956 1.804466 0.558942 -0.066299 0.246313 0.261599 0.227872 0.738239 0.814338 0.343326 0.981475 0.188887 1.906504 1.677459 1.202707 1.101523 0.429140)
+ 6.658580 #(0.000000 1.477513 0.548175 1.347892 0.733820 0.121555 -0.032344 0.713938 0.819135 1.370527 1.738632 0.698418 0.364253 0.441036 -0.035716 0.516534 0.740702 0.984618 1.142869 0.406938 1.301988 0.810169 0.504070 1.569824 0.496394 0.536230 1.606405 0.027724 1.473284 1.742612)
+ 6.468710 #(0.000000 1.680776 0.826899 0.932817 0.846474 1.688126 1.301582 1.469487 1.223335 1.896950 0.951231 1.784064 1.941924 1.374093 0.106784 0.089904 1.256719 1.559531 0.403622 0.363629 1.577609 0.977925 0.034372 0.880337 1.659463 1.658654 1.057897 1.350247 0.616124 0.852509)
)
;;; 31 prime --------------------------------------------------------------------------------
@@ -2720,7 +2851,7 @@
7.5718903541565 #(0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1)
7.4906754493713 #(0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1)
- 6.802509 #(0.000000 0.784021 0.748923 0.735198 1.360082 0.607595 0.364322 1.095286 1.638240 0.833143 1.510734 1.123764 1.662333 1.330287 0.670507 1.835217 1.240600 0.908153 0.286125 1.000493 0.708884 0.734475 0.112791 1.335927 1.811569 0.888623 0.675312 1.056323 0.915994 1.843358 0.406303)
+ 6.754243 #(0.000000 0.758454 0.750304 0.747571 1.376074 0.589849 0.377034 1.102662 1.662809 0.839547 1.508248 1.126251 1.672003 1.346432 0.641709 1.803564 1.248769 0.898642 0.284303 0.999928 0.751064 0.745306 0.090089 1.349771 1.823758 0.877530 0.670997 1.068561 0.919734 1.833873 0.415089)
)
;;; 32 prime --------------------------------------------------------------------------------
@@ -2731,6 +2862,7 @@
7.6309351921082 #(0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0)
6.945565 #(0.000000 0.046495 0.496817 0.680238 1.009260 1.131116 1.092336 0.893510 1.099114 0.815014 -0.083387 0.117703 1.618006 0.348695 1.351638 1.392799 1.435601 1.178568 0.246956 1.532146 1.530973 0.353380 1.008482 1.228068 1.716716 1.252232 0.794560 0.240630 1.365270 1.163613 1.530387 0.931563)
+ 6.906252 #(0.000000 0.275821 0.498145 0.052023 0.521184 0.089552 0.892457 1.279842 1.046869 1.315941 0.766659 0.660262 0.300595 0.894477 0.884655 1.755251 0.090926 1.876576 0.253382 -0.057814 1.381131 0.898570 -0.010539 1.541038 1.433207 -0.014565 0.236526 0.995302 1.735657 1.072516 0.338127 1.412696)
)
;;; 33 prime --------------------------------------------------------------------------------
@@ -2739,7 +2871,7 @@
7.7895503044128 #(0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1)
7.7389698028564 #(0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0)
- 7.095945 #(0.000000 0.720773 0.074665 1.087909 0.670851 0.282794 1.854776 1.222479 0.154272 1.346168 0.691877 0.259650 1.445713 0.585915 0.577788 1.886795 1.617091 1.287490 1.435763 0.653711 0.599199 1.376886 1.571214 -0.056574 0.684251 0.282893 1.448245 -0.093549 -0.174575 0.497765 1.771096 1.745903 1.289590)
+ 7.029147 #(0.000000 1.607365 1.241036 0.777600 1.074977 0.841861 0.915645 0.540343 1.045301 0.967959 1.093845 0.356485 1.386580 0.422382 0.844445 0.375365 0.464922 1.460485 0.036389 0.998476 0.305190 1.813494 0.854960 0.018926 0.508668 0.922369 1.800686 0.365762 1.762926 1.444879 0.617737 1.856296 0.538876)
)
;;; 34 prime --------------------------------------------------------------------------------
@@ -2749,7 +2881,7 @@
7.9716163031165 #(0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1)
7.9624452590942 #(0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0)
- 7.201864 #(0.000000 1.706101 0.222170 1.709397 0.346232 0.830073 0.457347 0.661232 1.880940 1.142839 1.347640 -1.868304 1.441088 0.663745 1.522627 -0.174573 1.549912 1.234666 0.983864 0.654903 0.656198 1.060528 0.742551 0.068549 1.422446 1.094691 0.576964 0.012984 0.767457 1.340226 1.182513 0.608104 1.628703 0.405308)
+ 7.183019 #(0.000000 1.712561 0.217132 1.723595 0.340284 0.843218 0.457608 0.664542 1.888630 1.161946 1.354854 -1.875365 1.436149 0.660043 1.525865 -0.196571 1.549572 1.238287 0.981797 0.656936 0.664729 1.071650 0.741907 0.077384 1.411634 1.091424 0.576948 0.026581 0.771646 1.340109 1.193689 0.593241 1.618577 0.398362)
)
;;; 35 prime --------------------------------------------------------------------------------
@@ -2761,7 +2893,7 @@
8.1317510604858 #(0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0)
8.0019035339355 #(0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0)
- 7.403616 #(0.000000 1.837792 1.783525 0.840140 0.174335 1.507909 0.181152 0.437026 0.644447 0.004496 1.957141 1.153303 0.611189 0.843858 0.639243 0.969330 0.097986 1.841829 0.785639 1.056499 0.551307 1.487034 0.858181 1.317521 0.159579 0.896645 0.389121 -0.004351 1.288498 0.634155 1.734378 -0.021345 1.619225 1.096225 1.388819)
+ 7.295313 #(0.000000 1.202557 0.490248 0.550847 -0.001052 0.838411 1.110504 1.732576 1.466163 0.868560 0.927867 1.453603 0.200799 1.716962 1.417541 0.711032 0.008799 1.438033 0.470770 0.268438 1.030252 1.577853 0.477618 0.538417 0.269592 -0.005718 0.647951 0.398077 0.721135 0.545658 1.390386 0.199584 0.313383 0.250740 1.138970)
)
;;; 36 prime --------------------------------------------------------------------------------
@@ -2773,7 +2905,7 @@
8.3783054351807 #(0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0)
8.3031883239746 #(0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0)
- 7.587624 #(0.000000 0.590674 1.775177 1.689012 0.797150 0.765735 1.333134 0.178361 1.616384 1.857224 1.832696 1.240950 1.551233 0.600364 0.084529 1.173878 0.501773 1.440812 0.181978 1.537497 0.638213 0.652682 0.752243 0.031095 1.520631 0.040414 -0.160673 -0.047030 1.222437 -0.026884 1.543519 0.368863 0.787909 1.079179 -0.066922 1.654012)
+ 7.531822 #(0.000000 0.425534 1.726404 0.669940 0.799396 0.152804 0.709343 0.523206 0.212487 1.189904 0.572282 1.043446 0.907907 0.750844 1.017969 0.070588 0.414543 -0.080771 1.305782 0.144324 1.762811 1.657963 0.647698 1.261754 1.765647 0.539636 0.678629 1.528197 0.608650 1.760066 -0.044846 0.427501 0.663221 1.310085 1.692653 -0.099917)
)
;;; 37 prime --------------------------------------------------------------------------------
@@ -2782,7 +2914,8 @@
8.4779825210571 #(0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0)
8.4775905609131 #(0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1)
- 7.683871 #(0.000000 1.828699 1.715054 -0.174908 1.879398 1.361077 1.842061 1.393271 0.552745 0.396984 -0.017302 0.072287 1.822957 1.119646 0.888420 0.629258 0.532954 1.104117 0.521425 0.186473 1.835403 0.438716 0.760953 0.173151 0.175912 0.974160 1.344276 0.043223 1.818080 1.088408 0.320586 1.091061 1.810001 1.185776 0.430256 1.040876 0.234313)
+ 7.556349 #(0.000000 1.196885 1.098052 1.278009 0.712601 1.073617 0.640179 1.819966 1.215007 -0.010536 1.519018 0.100525 1.669334 0.118304 1.150079 1.071494 0.819395 0.148566 1.700888 0.940967 -0.026823 0.052858 0.927003 0.782608 1.528406 0.207815 0.859866 0.539796 1.037144 0.075621 0.575538 -0.075098 1.257732 1.448616 1.796742 1.347204 1.593122)
+ 7.545472 #(0.000000 1.204123 1.099254 1.275408 0.714126 1.073456 0.640078 1.820880 1.216135 -0.009822 1.517987 0.103724 1.667147 0.124954 1.152909 1.070619 0.817485 0.150169 1.704050 0.943542 -0.028740 0.053886 0.920874 0.779706 1.521803 0.211973 0.856779 0.541415 1.037631 0.071105 0.576812 -0.074598 1.257536 1.445308 1.794087 1.346374 1.594078)
)
;;; 38 prime --------------------------------------------------------------------------------
@@ -2795,56 +2928,56 @@
8.5991640090942 #(0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0)
8.5527725219727 #(0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0)
- 7.841085 #(0.000000 0.778059 0.832833 1.641546 0.551127 1.959544 0.371732 0.010708 1.582757 0.234017 0.432922 1.633749 1.913053 0.392687 0.998305 1.130363 0.872862 1.161992 1.293121 0.001277 0.112623 0.157792 1.782743 0.827041 1.701063 0.688463 0.023183 0.154467 1.406727 0.264809 1.652115 0.095003 0.937860 -0.059606 1.776433 1.189212 0.411021 1.722753)
+ 7.691530 #(0.000000 0.347085 1.276980 -0.120799 0.319391 0.890156 1.870413 0.550245 0.133805 0.760986 1.678554 1.595853 0.397799 1.103040 1.280122 -0.311461 0.258637 0.253230 1.249455 -0.205576 1.757869 0.400070 -0.164952 0.727795 1.926033 0.892980 0.350004 0.638891 0.661022 0.495977 0.512730 1.314466 0.199324 0.342038 -0.131473 1.298390 0.538607 0.048218)
)
;;; 39 prime --------------------------------------------------------------------------------
#(39 8.9125862121582 #(0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0)
8.8173857964668 #(0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0)
- 7.827440 #(0.000000 0.652210 0.393453 1.020714 1.073745 0.564172 0.808103 0.339650 1.713952 0.873028 1.263445 0.527241 0.121516 1.404043 1.377383 1.771177 1.291016 1.694741 1.924477 -0.026772 1.189442 0.716758 0.820985 1.410300 1.763237 0.230950 -0.565184 1.224887 1.420723 0.338452 0.273720 1.474973 0.763731 1.174350 1.949899 0.577219 -0.024971 1.258463 1.052784)
+ 7.784208 #(0.000000 0.121590 1.054068 0.236304 1.501231 1.429532 0.901575 0.317453 0.075755 1.122544 0.920391 1.365471 0.277839 0.487471 1.279613 1.668108 0.079558 0.929452 1.317694 1.369128 1.199998 1.280488 0.961352 0.546932 0.525195 0.637238 1.255287 0.981241 0.977235 0.828059 1.476948 0.180486 1.361190 1.823437 1.568461 0.109493 0.543298 1.279489 1.260105)
)
;;; 40 prime --------------------------------------------------------------------------------
#(40 9.0681540417544 #(0 1 0 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1)
8.9134502410889 #(0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1)
- 7.910669 #(0.000000 1.604300 1.726845 1.198288 0.024211 0.405948 0.978717 0.588290 0.291148 1.320197 1.585904 0.556093 1.309513 0.325993 0.734659 1.115989 0.708341 0.457095 1.699466 0.431940 1.685067 0.264443 0.542147 1.848935 1.782713 1.182220 0.630319 0.259321 1.401888 0.606322 0.611242 1.588627 0.566401 1.409142 1.732235 0.622632 1.375983 -0.088550 1.472900 1.465532)
+ 7.908007 #(0.000000 1.605211 1.725678 1.197642 0.024267 0.406741 0.978072 0.589347 0.291191 1.319831 1.586797 0.557257 1.308900 0.324459 0.733467 1.115604 0.707203 0.456844 1.700262 0.432756 1.684406 0.264210 0.541840 1.849304 1.781504 1.182435 0.630893 0.260626 1.401525 0.606435 0.612002 1.588581 0.566473 1.408301 1.733606 0.622198 1.374978 -0.088892 1.471935 1.465356)
)
;;; 41 prime --------------------------------------------------------------------------------
#(41 9.295313835144 #(0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0)
9.1567583084106 #(0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0)
- 8.069725 #(0.000000 0.601958 1.271956 0.102297 0.480413 1.018703 1.665771 0.930310 0.514537 0.017936 0.329216 0.748103 0.685896 0.625176 0.230504 1.367054 1.089279 1.251667 -0.206285 0.255826 0.513413 1.121358 1.183404 0.477568 1.935318 1.225269 1.575753 1.582230 0.497283 0.024367 1.639502 0.925239 1.451636 0.577931 0.385375 1.448219 0.979769 0.911378 0.925504 0.570887 0.323801)
+ 8.044824 #(0.000000 0.515502 -0.084474 1.160373 0.403802 -0.015369 -0.213402 -0.083458 0.138130 0.014208 1.424435 0.438729 1.502978 1.864380 1.400038 0.855110 -0.047405 1.485210 1.058086 0.399761 0.516275 0.765859 1.318239 0.465856 1.707134 0.700900 0.551921 0.932376 0.863963 0.765112 1.663905 1.234496 0.602406 0.161490 0.658622 1.504998 0.268341 0.797358 0.326539 1.332497 0.722218)
)
;;; 42 prime --------------------------------------------------------------------------------
#(42 9.3096771240234 #(0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0)
9.2193641662598 #(0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0)
- 8.167423 #(0.000000 -0.259498 0.019898 1.582449 0.958332 1.249228 1.387914 1.817646 0.320220 1.409223 1.174890 1.170622 0.402311 0.161036 0.867563 0.409852 1.496452 0.478587 1.250582 0.847130 1.860331 1.527473 0.770942 0.194547 0.237958 1.698433 0.452021 1.075130 1.021019 0.772848 1.121299 0.285443 0.143246 0.449159 1.045273 1.292560 0.349095 0.208796 1.360404 0.868354 0.897317 0.716742)
+ 8.165740 #(0.000000 -0.257769 0.019775 1.582575 0.959460 1.248780 1.388137 1.817201 0.320564 1.409523 1.174425 1.171466 0.401009 0.159933 0.867192 0.410601 1.497163 0.479908 1.251280 0.847104 1.859854 1.528865 0.771666 0.194477 0.236427 1.698266 0.450721 1.075333 1.021184 0.772835 1.121837 0.285543 0.144193 0.449708 1.045791 1.292230 0.349655 0.208499 1.359582 0.869901 0.896282 0.717770)
)
;;; 43 prime --------------------------------------------------------------------------------
#(43 9.4925568571597 #(0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1)
9.4329051971436 #(0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1)
- 8.425971 #(0.000000 1.567546 0.523306 1.123939 0.221223 0.945571 0.197826 -0.211015 0.278977 1.406943 1.041918 -0.218197 1.399279 0.429858 0.907215 0.383796 1.437769 -0.105816 1.503701 0.376606 1.764370 1.588985 1.544155 0.324639 1.858313 0.735555 0.548056 1.385369 1.196117 1.123018 -0.111456 0.359934 0.080389 -0.078798 1.709620 0.971929 0.009604 0.411808 1.485333 0.102194 0.925139 -0.119268 1.222216)
+ 8.306918 #(0.000000 1.882760 0.356930 0.064466 1.191310 0.167454 0.004466 1.772005 0.818670 0.863488 0.928731 1.825306 0.540056 0.377484 1.006184 1.440567 0.040430 1.815977 0.171650 1.607075 1.479482 1.293871 0.059415 1.036121 1.756011 0.097716 1.268213 0.086678 0.085017 0.121034 -0.074207 0.583391 0.913035 1.566572 1.367626 0.329248 1.736810 1.258148 0.863654 0.033763 1.784202 0.146186 1.378117)
)
;;; 44 prime --------------------------------------------------------------------------------
#(44 9.6622378996026 #(0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0)
9.6263332366943 #(0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1)
- 8.568048 #(0.000000 0.442775 0.183857 1.098025 0.232525 0.583956 1.506705 0.688705 0.404612 1.284269 0.694124 0.532658 0.085789 1.068420 0.901912 0.265410 0.512858 0.480496 1.285930 1.901342 0.855894 0.002940 0.495976 1.578109 -0.117227 1.190705 1.438396 0.173451 -0.021501 0.734623 1.020550 1.662145 0.203811 0.467604 0.339585 1.680164 1.331810 1.327900 0.796473 1.189891 0.720731 0.214081 1.577179 1.188107)
+ 8.379767 #(0.000000 1.288218 0.243907 0.777361 0.859250 0.892273 0.478398 0.790917 0.359833 0.845304 0.132499 0.810436 1.785678 0.010538 0.196291 1.805915 1.870383 1.027164 1.375086 0.218343 0.562647 0.169604 1.242948 1.386309 0.717199 0.261933 1.142376 1.313707 0.674949 -0.091263 0.494013 0.037437 0.611802 1.045213 1.357187 1.615588 1.083862 -0.278606 0.295121 1.072246 0.785769 1.519002 0.866684 1.922346)
)
;;; 45 prime --------------------------------------------------------------------------------
#(45 9.8476276594031 #(0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1)
9.7923860549927 #(0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1)
- 8.605973 #(0.000000 1.228902 0.975222 1.475961 1.836501 0.522050 -0.131944 0.013722 1.526317 0.178825 -0.094208 0.188033 0.523506 0.924260 1.490580 0.140114 -0.037829 0.789761 1.545908 1.577853 0.124791 -0.145077 0.900511 0.556794 1.602120 1.497551 1.384263 0.938265 1.009631 0.406297 -0.097652 0.059625 1.464765 1.214323 1.845986 1.502941 1.606554 0.236457 0.911280 1.560207 0.410568 1.472780 1.470425 1.652423 0.514268)
+ 8.531010 #(0.000000 0.638362 0.815393 1.433581 0.383626 0.688923 0.170001 1.639534 1.264502 0.198252 1.371925 1.378010 1.010105 0.892142 0.226711 0.953669 1.386369 1.526407 1.153112 0.182068 1.565895 1.347055 0.486500 1.002282 1.526554 1.712315 1.056247 1.724331 0.716550 1.740613 0.382219 -0.026552 1.216630 1.307225 1.309768 1.560386 1.959163 1.203884 0.751399 1.518834 0.337855 0.621579 0.771546 -0.019855 0.737162)
)
;;; 46 prime --------------------------------------------------------------------------------
@@ -2852,14 +2985,14 @@
9.8914480209351 #(0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0)
9.7220277786255 #(0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0)
- 8.768336 #(0.000000 1.629118 1.963011 0.957596 0.014386 0.910774 0.164425 0.810534 0.837978 1.853768 0.016218 1.765503 1.426255 0.926300 1.104300 0.363483 1.017657 1.521299 -0.010879 1.462841 1.979076 -0.018355 0.333849 1.478629 0.293539 1.789675 0.329601 -0.061833 1.346800 0.467021 1.904400 1.499995 1.533000 0.895643 -0.063182 0.104218 0.175795 1.328407 0.404420 1.774687 0.874713 1.136501 0.217631 0.940693 0.990689 0.664592)
+ 8.608845 #(0.000000 0.123302 0.136287 1.399817 0.898698 0.632326 0.696394 0.530391 0.071827 1.669939 0.143734 1.440190 1.067890 -0.158361 1.192695 0.689716 0.437597 0.976553 1.620342 0.651144 1.134274 0.269512 0.684534 1.273052 0.985807 0.205106 0.961262 1.456548 1.860623 0.046427 -0.191886 0.487736 1.500200 0.988025 1.011523 0.791151 0.049947 1.587455 0.634968 0.906097 1.192973 1.221528 1.305414 0.545240 0.609668 0.905043)
)
;;; 47 prime --------------------------------------------------------------------------------
#(47 10.097447395325 #(0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0)
10.0 #(0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0)
- 8.821521 #(0.000000 0.778458 1.267256 1.730599 0.162700 1.451167 0.757506 1.301824 0.931356 0.116375 0.547158 1.673969 1.003923 1.149425 1.603319 1.343790 1.141910 1.313527 1.770226 -0.081564 0.994328 0.961395 1.481262 1.115828 1.508338 0.431203 0.907427 1.434523 0.529751 0.568715 1.651405 1.697675 0.901075 0.138993 -0.060548 0.757048 1.664230 1.590124 0.252153 0.334764 0.118629 1.552321 0.644362 1.461092 0.321653 0.958922 0.881854)
+ 8.699175 #(0.000000 1.206293 0.155915 -0.034353 0.818950 0.092561 1.135145 1.488306 1.172406 1.154474 1.211140 0.691163 -0.261556 0.922892 0.514656 1.960387 1.754199 0.107388 0.949197 0.269747 0.255501 1.692498 1.098961 1.733936 1.507970 1.784327 0.722560 1.353892 0.962776 1.211670 1.428489 1.109893 1.229414 1.194678 1.833795 1.233722 0.099052 1.243706 1.121659 1.297166 -0.051864 1.158952 1.640861 0.332000 0.005617 0.602737 0.258593)
)
;;; 48 prime --------------------------------------------------------------------------------
@@ -2867,7 +3000,7 @@
10.248653411865 #(0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0)
10.073040962219 #(0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1)
- 8.873413 #(0.000000 0.637567 1.455527 0.740545 -0.113312 0.844790 0.699557 0.245972 1.445463 1.282308 -0.117408 -0.078917 0.191646 0.400725 0.074557 1.522393 0.888215 1.235896 1.708420 1.623760 1.558050 0.269999 1.001585 1.242874 0.740358 0.965881 0.332769 0.557904 1.669441 1.741797 -0.132832 1.157652 0.237906 0.292027 0.177726 0.490973 0.528709 0.766458 1.419658 0.797058 0.578054 1.492036 0.873774 0.639288 0.241836 1.767913 0.849655 0.291024)
+ 8.801431 #(0.000000 0.252761 1.793753 1.755406 0.548028 0.534432 0.797672 1.827535 -0.002725 0.174172 0.995556 1.129254 0.574088 1.081336 0.817151 0.396701 1.051834 0.453788 1.758786 0.574169 0.012381 0.619957 1.558581 1.205113 1.436843 -0.058121 1.167791 1.385432 1.324732 0.739054 1.639524 1.296325 -0.076764 0.579683 1.856882 0.895327 1.303867 0.783736 0.689068 1.019157 1.514361 1.130483 1.972472 1.137272 0.723545 1.098985 0.461074 -0.123889)
)
;;; 49 prime --------------------------------------------------------------------------------
@@ -2875,7 +3008,7 @@
10.207101821899 #(0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0)
10.209 #(0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0)
- 8.999400 #(0.000000 1.302996 1.906502 0.446992 1.790754 0.657087 0.157048 -0.038162 1.421257 0.558400 1.450944 1.274685 1.225421 1.041128 1.964194 0.345820 0.345172 1.342767 0.736318 0.768619 1.480992 0.332884 1.340084 0.040935 0.380024 1.795490 0.641236 1.235841 -0.111601 0.033372 0.309348 1.597726 1.445366 0.585512 -0.037751 1.338485 0.621000 1.149319 1.559669 1.011430 1.568337 1.654196 1.820806 1.607753 0.083481 1.664909 -0.070530 1.023931 1.838980)
+ 8.932775 #(0.000000 1.529957 0.349453 0.980933 0.996420 0.323770 -0.047523 0.746415 0.854338 1.567152 1.178413 1.645990 1.243000 1.705499 0.250151 1.505503 0.163649 1.750214 0.334987 0.154940 1.082770 1.104002 0.615361 1.734792 1.885327 0.066363 1.925400 0.351399 1.299639 0.972658 1.576041 1.780650 1.681074 0.016790 1.218604 0.674609 -0.130324 1.799726 1.730296 1.616317 0.732883 1.484031 0.904525 -0.157617 0.171826 0.846831 0.537959 1.779983 1.208575)
)
;;; 50 prime --------------------------------------------------------------------------------
@@ -2888,7 +3021,7 @@
;;; 51 prime --------------------------------------------------------------------------------
#(51 10.5841327092253 #(0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1)
- 9.241748 #(0.000000 0.597767 1.567140 0.816714 0.272564 0.014939 1.263145 1.382885 0.775204 0.173566 -0.094487 1.601157 0.688795 -0.057843 1.749119 0.576673 1.132725 0.841816 0.990910 1.111694 0.004821 1.898333 0.304100 0.880934 0.674921 0.779804 0.335843 1.306445 0.599248 0.468882 0.441959 1.729004 0.562770 0.387045 1.004607 0.454938 0.208715 0.461630 0.803049 0.293646 1.242080 1.247516 1.781230 1.745897 1.808800 1.190649 1.072564 0.686754 0.282184 -0.181598 0.432579)
+ 9.237356 #(0.000000 0.596984 1.567457 0.817412 0.273220 0.015491 1.263280 1.382889 0.775862 0.174564 -0.093846 1.601513 0.688261 -0.057282 1.750049 0.577290 1.131755 0.840826 0.990288 1.112107 0.003954 1.897377 0.303400 0.880265 0.674155 0.779382 0.335933 1.305644 0.598652 0.468699 0.442767 1.728632 0.563560 0.386847 1.004741 0.454936 0.207759 0.461770 0.802672 0.293732 1.241227 1.248091 1.781450 1.746411 1.807884 1.190759 1.073510 0.685967 0.282975 -0.181238 0.432292)
)
;;; 52 prime --------------------------------------------------------------------------------
@@ -2896,7 +3029,7 @@
10.737469673157 #(0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1)
10.64324760437 #(0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0)
- 9.476240 #(0.000000 1.912443 0.481069 0.926411 0.608943 1.355318 0.781599 0.150906 0.342169 0.304881 1.804487 1.827067 -0.068142 1.921103 0.711814 0.327842 1.075103 1.754669 0.247087 0.101360 0.493497 1.260785 0.427578 0.904899 0.930448 0.748485 0.932006 0.765480 1.401520 0.681352 0.275796 -0.115681 0.036426 0.243331 1.418778 0.366224 1.157519 0.972959 1.452109 -0.063271 1.506479 0.439876 0.665361 0.217540 0.518229 -0.084772 1.606062 0.820380 1.516799 1.425782 0.916299 0.503064)
+ 9.406825 #(0.000000 0.425395 0.129546 0.390589 1.748778 1.792295 1.799217 0.695632 1.410156 0.843576 0.308371 -0.039802 1.132079 1.655686 0.011574 0.254508 1.384781 0.343863 1.325286 -0.087255 1.093023 0.498167 -0.029716 1.358161 0.290792 1.304323 0.015261 0.361209 0.855513 0.072920 0.627466 0.724337 1.060090 1.390017 0.757525 1.701023 -0.024828 1.725989 0.933084 1.668229 1.694294 0.863468 0.679597 1.006213 0.257742 1.258667 0.449926 1.474965 0.819494 0.702506 1.159339 1.100962)
)
;;; 53 prime --------------------------------------------------------------------------------
@@ -2907,7 +3040,7 @@
10.848851203918 #(0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0)
10.678050692694 #(0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0)
- 9.553901 #(0.000000 1.255453 0.596370 0.397505 0.897091 0.894618 1.533679 1.315653 0.300273 1.237189 0.799075 0.522966 0.244177 1.245038 0.203797 0.973109 0.831291 1.780108 0.468674 1.065789 -0.094533 1.361292 1.458242 1.268657 0.894306 1.270204 1.250091 0.761194 1.522830 0.526777 0.277092 1.178660 0.363200 1.657345 1.122622 1.260743 1.353247 0.236854 0.502137 1.189782 1.881416 1.051227 -0.178627 1.533293 0.479679 0.936759 0.820303 0.218779 0.909867 1.093202 1.616079 0.347978 0.621332)
+ 9.536314 #(0.000000 0.733019 1.297172 0.298105 0.255310 -0.014752 0.906442 1.778799 1.351058 1.680839 1.766455 0.387231 1.470846 -0.072390 0.476809 1.759910 0.772776 0.542663 0.812935 1.811136 0.881672 0.203184 0.702794 -0.174551 1.534362 0.589602 1.205973 1.569253 1.331136 1.042778 0.879999 0.748704 1.527492 0.513824 0.467506 0.865203 0.839993 0.755695 1.671766 1.837162 0.692026 1.479028 0.827822 1.820530 -0.007848 1.286558 1.165607 1.034351 1.263634 0.629003 1.347564 0.922116 1.570030)
)
;;; 54 prime --------------------------------------------------------------------------------
@@ -2916,14 +3049,14 @@
10.779137611389 #(0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1)
10.582709312439 #(0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1)
- 9.616211 #(0.000000 0.229808 1.285966 -0.045294 1.901945 1.525950 1.410422 1.890401 0.170428 1.060694 0.534604 0.020198 0.793411 1.129992 1.215656 1.050252 0.608926 1.571113 1.369781 1.480083 0.845515 1.332343 0.629059 0.770863 0.266328 0.138298 1.593664 1.212739 1.671214 1.832241 0.193781 0.971415 -0.038789 1.458286 1.093415 0.016108 0.290130 0.385754 0.774424 1.288651 0.226233 1.330738 0.023334 0.125862 1.029564 1.610365 0.936973 1.170101 1.468501 0.358137 1.255026 1.293544 1.834364 0.745354)
+ 9.531302 #(0.000000 1.229471 1.659223 1.798969 1.100323 1.157869 0.486468 1.376328 1.119235 1.590297 1.641407 0.372270 1.383812 0.453505 0.585423 1.711738 1.334013 0.716078 0.153736 0.198933 -0.041066 0.046186 1.466573 0.825573 0.797934 1.608472 0.310209 0.395721 1.082663 0.079288 -0.035061 1.436243 1.511099 1.345551 0.081016 0.993720 1.569901 0.055705 0.521700 1.622867 1.841635 0.394885 1.172818 1.659733 0.921715 1.307135 0.915170 1.649843 1.881854 0.156151 1.039486 1.666159 0.065657 0.324643)
)
;;; 55 prime --------------------------------------------------------------------------------
#(55 11.142364777492 #(0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1)
10.806410031758 #(0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0)
- 9.851464 #(0.000000 1.355491 -0.227414 0.612760 0.114410 0.578698 0.707202 0.290935 1.957168 1.112662 0.944441 0.590501 0.173520 1.443858 1.055069 1.198613 0.374811 0.564696 1.851022 0.677422 1.582481 0.984925 0.076344 1.923049 0.618954 1.805965 0.363956 0.826202 0.955046 1.392444 1.131386 1.424739 -0.112592 1.531917 1.901478 1.434912 -0.214804 -0.056517 1.443756 0.778655 1.099659 1.331203 1.754389 0.925832 0.451317 -0.058737 1.017123 1.136576 0.550776 0.517102 0.058928 0.101890 1.212516 -0.210692 1.390048)
+ 9.677582 #(0.000000 0.966378 1.061823 0.069776 0.746773 0.727710 1.081946 1.321911 0.475138 0.635305 1.429423 0.037292 0.823485 1.650824 1.673354 1.216659 1.390492 1.984930 1.329970 1.026006 0.604482 0.903847 0.482977 -0.065064 1.395216 1.369533 -1.950129 0.475736 0.121382 1.423926 -0.302339 1.277906 1.335248 1.375843 1.144968 0.624759 0.113584 0.633271 1.263102 0.450420 1.422859 0.721534 0.282898 0.081974 1.673958 0.182738 1.205738 1.829125 0.403452 1.693005 1.747037 1.907089 1.860545 0.134393 -0.116157)
)
;;; 56 prime --------------------------------------------------------------------------------
@@ -2931,7 +3064,7 @@
11.143131256104 #(0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1)
10.976176261902 #(0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1)
- 9.919309 #(0.000000 1.837599 0.439590 0.338633 0.115017 1.767322 0.758633 1.939927 1.859959 1.885893 1.236175 -0.081422 1.946528 0.434250 0.101718 0.559883 0.197003 0.793046 1.272600 1.385933 0.107680 1.640519 0.460657 0.809262 0.010603 0.296315 0.244872 1.369817 1.346045 0.365155 0.510129 0.333788 1.729749 0.898222 0.625784 0.340502 1.713413 0.895971 0.988409 0.755198 -0.081433 1.619600 0.678620 0.294451 1.385462 0.579895 0.401545 1.640788 0.392029 1.610255 0.766162 0.887764 1.760834 0.375995 1.476393 0.724328)
+ 9.737768 #(0.000000 0.099478 0.761517 1.632514 1.179546 0.388220 1.723313 0.372389 1.559917 -0.046537 0.482939 1.315597 1.502241 1.430009 1.696496 1.013067 -0.067203 1.335131 1.992651 1.959070 1.844027 0.401384 0.232549 0.446470 0.505530 1.602830 -0.155027 0.231565 0.574106 0.657337 1.522492 1.676753 -0.016056 1.616263 0.280431 0.616470 1.050547 0.726361 -0.099815 -0.238209 1.463922 0.700017 0.027582 0.272913 1.421820 1.688938 1.020016 0.343137 0.817272 -0.089013 0.023211 0.597580 1.502229 1.415306 1.598746 1.312283)
)
;;; 57 prime --------------------------------------------------------------------------------
@@ -2939,7 +3072,7 @@
11.352762647901 #(0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1)
11.247724533081 #(0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1)
- 10.016996 #(0.000000 0.069847 1.685579 1.469725 0.064436 1.774269 0.352462 0.819348 1.254672 1.778417 1.536555 0.680879 0.274329 0.028588 0.977325 1.523343 1.109187 -0.099061 1.224527 1.757707 1.289118 1.187096 0.742147 0.767317 1.201430 -0.117853 1.635844 0.746663 1.473753 0.889644 0.418922 1.942821 0.231158 0.354599 -0.062994 1.453763 1.839682 1.337025 0.006713 1.760082 0.523633 0.730999 0.947624 0.466589 1.252628 0.833211 1.651076 0.824630 0.964286 1.189584 1.265260 1.052324 0.485998 1.480644 0.243602 1.523478 0.972148)
+ 10.013414 #(0.000000 0.070593 1.685968 1.470323 0.064867 1.775133 0.352864 0.818446 1.255482 1.778065 1.536541 0.681506 0.274019 0.028598 0.977835 1.524185 1.109948 -0.099244 1.225349 1.758324 1.288159 1.186197 0.742421 0.766833 1.201917 -0.118823 1.635319 0.746550 1.473070 0.889748 0.418394 1.943330 0.230369 0.354601 -0.063973 1.453511 1.839275 1.337540 0.007384 1.759215 0.522800 0.731007 0.946932 0.465899 1.252535 0.834061 1.650958 0.823935 0.963968 1.189827 1.265240 1.051354 0.486709 1.480534 0.243553 1.523455 0.972163)
)
;;; 58 prime --------------------------------------------------------------------------------
@@ -2955,7 +3088,7 @@
11.523194313049 #(0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1)
11.34253692627 #(0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1)
- 10.289210 #(0.000000 -0.268830 1.055198 1.412601 0.716407 -0.052616 1.767953 0.708250 0.319333 0.198787 0.435869 1.285708 0.219726 1.567288 1.633518 0.800771 0.743762 0.693435 1.744356 1.178207 1.522257 1.065342 0.809212 1.908308 0.368780 -0.070971 1.625599 1.728231 1.648532 -0.177915 0.587354 1.285835 1.168696 0.075730 1.639996 0.792398 1.388587 1.871257 1.735141 0.830939 0.796005 1.949402 -0.129956 1.581464 1.482430 0.070638 1.144468 0.255519 0.587776 0.333784 1.652406 1.357927 0.581154 1.589531 0.994141 1.133255 1.634195 0.620839 0.923376)
+ 10.002733 #(0.000000 1.245089 1.372842 0.430614 0.901919 0.248085 0.201814 1.710789 1.952925 0.079402 1.346254 0.043826 1.372258 1.213616 0.929709 0.899490 1.293285 -0.162664 1.502748 1.709298 -0.063540 1.586097 0.576030 1.695137 0.799196 0.946402 0.143235 1.451842 1.910664 0.775622 0.988860 1.280780 0.479927 1.247345 1.227140 -0.039096 0.329028 0.939698 1.503168 1.577495 0.497918 0.065007 0.971427 1.066561 0.594296 1.085722 1.721032 0.433890 0.511299 1.786553 0.999271 1.959328 0.462702 1.650943 0.069846 -0.106768 1.913608 0.325282 0.928528)
)
;;; 60 prime --------------------------------------------------------------------------------
@@ -2963,7 +3096,7 @@
11.579921722412 #(0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0)
11.512454032898 #(0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0)
- 10.151136 #(0.000000 1.474893 1.614190 1.049854 -0.005822 1.416428 0.099486 1.366845 1.167877 0.913419 0.175629 1.644499 1.266650 0.432873 0.005192 0.819857 1.468778 0.379508 1.697629 0.179917 0.976967 0.301578 0.720899 0.928680 1.143795 1.896146 0.546587 0.741270 1.679514 0.817042 0.580788 1.171051 1.659214 1.507852 1.095264 1.791484 0.188338 0.480338 1.708811 0.515930 0.053804 0.659027 0.850091 -0.203704 -0.040695 1.235221 1.851032 1.380655 -0.040153 0.432087 1.387615 1.696615 1.991281 0.542176 1.895417 0.956134 0.062852 1.678375 0.142266 0.856869)
+ 10.060146 #(0.000000 1.474658 1.618338 1.044594 -0.023569 1.406104 0.098504 1.374919 1.160774 0.910892 0.164669 1.629326 1.262027 0.450737 0.012808 0.825361 1.463301 0.376393 1.693547 0.191629 0.971995 0.310852 0.725214 0.912997 1.132916 1.895966 0.554860 0.741515 1.700569 0.813858 0.565937 1.160718 1.657536 1.516713 1.104594 1.787687 0.184907 0.465506 1.716966 0.523801 0.053934 0.677590 0.858130 -0.210256 -0.039584 1.240598 1.842287 1.372591 -0.033173 0.439503 1.362428 1.686436 0.006866 0.544357 1.889275 0.951955 0.050394 1.678928 0.155296 0.856658)
)
;;; 61 prime --------------------------------------------------------------------------------
@@ -2971,7 +3104,7 @@
11.915099143982 #(0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0)
11.850807189941 #(0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1)
- 10.449900 #(0.000000 1.663668 0.767735 -0.170271 1.264555 0.503179 0.569963 -0.001733 -0.073501 1.534344 -0.191628 1.579815 0.273530 1.847659 0.380868 1.282607 0.248823 1.088526 0.780675 0.953711 1.107087 0.544986 1.845956 1.811063 1.704506 1.276085 1.594054 1.205453 1.318679 0.278724 1.548189 0.878278 0.107918 -0.000791 0.863651 1.610220 1.913014 0.839113 -0.147614 0.377891 0.827965 1.742314 0.014043 0.027975 0.393110 1.425509 1.452969 0.648405 1.686950 0.572178 1.725686 0.946674 1.293044 1.580361 1.917992 0.471742 0.984661 0.050384 1.267229 0.857109 1.199663)
+ 10.388943 #(0.000000 0.541522 1.479961 1.270889 1.601052 1.254421 0.290322 1.100511 1.236330 1.121862 0.428323 0.845128 -0.130092 0.756720 1.761757 1.063185 0.611357 -0.047531 0.158706 0.843399 1.446186 0.780243 0.105639 1.078747 0.741983 0.307934 0.141818 1.743054 0.503696 1.379072 1.603968 0.715679 0.026896 0.178619 1.259249 1.051762 1.218213 0.263539 1.094658 0.561074 1.880856 0.061627 0.793225 0.600439 1.675155 0.902978 0.838890 1.074161 -0.035565 1.182771 0.616116 1.406810 1.364748 1.701839 1.753556 0.327558 0.434365 0.007694 0.939390 1.562495 0.503163)
)
;;; 62 prime --------------------------------------------------------------------------------
@@ -2979,7 +3112,7 @@
11.929849152918 #(0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0)
11.709966659546 #(0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0)
- 10.421709 #(0.000000 1.931173 0.647563 0.276487 0.605306 1.130255 0.270665 0.276188 1.942619 1.018269 1.082937 0.151360 1.305773 1.381609 0.877857 1.247962 0.757526 -0.211873 1.202465 0.060779 1.540142 1.351197 1.337546 1.122783 -0.272759 0.776858 1.405279 0.188305 1.185087 0.834758 1.090294 0.633878 -0.110244 0.182470 0.239170 1.102267 1.022308 -0.054562 0.171899 1.789733 0.179529 1.692483 -0.114303 0.615127 0.998872 1.155883 1.191682 -0.140535 1.939437 1.191522 0.139097 0.090985 1.794478 0.020109 0.833453 0.658631 1.574553 1.723376 1.257615 1.079630 0.497153 1.097855)
+ 10.409433 #(0.000000 0.230098 0.289970 0.179625 1.790951 -0.002840 1.031985 0.445756 1.801088 0.181518 0.091348 0.476487 0.975418 1.216309 0.977849 1.275892 0.558013 0.058639 0.390507 0.750334 0.363253 1.374209 -0.424944 0.341873 1.575985 -0.219166 0.619364 1.749057 0.460713 1.544856 0.824020 0.172588 1.075117 0.123007 0.166924 0.145926 1.647128 0.735158 1.142038 1.256308 0.206559 1.610483 1.093472 0.690759 1.247737 1.661280 0.949387 0.683832 0.119474 0.777071 0.565198 0.283464 1.924095 0.575342 0.375976 0.062971 0.692904 1.321348 0.616029 1.236790 1.782899 0.065597)
)
;;; 63 prime --------------------------------------------------------------------------------
@@ -2987,21 +3120,21 @@
12.000000000004 #(0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0)
11.975765228271 #(0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0)
- 10.720923 #(0.000000 0.587790 0.900027 -0.124218 1.799335 0.145811 0.841305 0.280848 1.190774 1.131860 1.832626 1.838726 0.088629 0.849916 0.712539 0.170175 1.841556 1.657713 1.120851 1.185942 0.239236 0.341130 0.544220 0.054519 -0.109421 1.028407 0.373191 0.318309 1.523022 1.299257 1.196805 1.601440 0.810340 0.579638 0.984606 0.865263 0.972252 1.478677 0.795186 1.639278 0.775332 0.512743 0.276341 0.652233 1.578464 1.764171 0.776803 1.590724 0.970233 0.241998 1.055428 1.022562 0.461843 0.808651 1.230419 1.226751 1.044264 1.264388 0.948206 1.860806 1.722255 0.469705 1.775237)
+ 10.494065 #(0.000000 -0.094134 -0.141971 0.276973 1.549582 0.146799 1.159650 0.615760 1.191684 0.478403 0.790831 0.093381 0.128503 1.945506 -0.005628 1.191587 0.372918 1.232968 0.916029 0.807324 1.647655 1.474748 1.279018 1.305718 1.694804 0.360342 0.484577 0.788854 0.655408 1.749809 -0.181911 1.894982 0.785921 0.685882 1.535002 0.960234 0.496049 1.403472 1.594512 0.738600 0.819941 0.808601 0.370150 1.799150 0.776514 0.582977 1.226294 0.345108 -0.042789 0.351345 0.440943 1.814915 0.546848 1.630902 0.163205 1.588859 0.173763 0.475285 0.784229 0.163690 0.297470 0.961991 0.523692)
)
;;; 64 prime --------------------------------------------------------------------------------
#(64 12.176999092102 #(0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1)
11.932915769505 #(0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1)
- 10.713852 #(0.000000 1.438157 1.064845 1.585006 1.592516 -0.052914 1.391070 0.899177 -0.082803 0.531225 1.373430 1.152834 1.129264 1.240099 0.818977 1.816650 -0.098124 0.385202 1.574487 1.195343 0.722066 1.997936 1.598192 0.046636 0.270482 1.476604 1.235143 1.978130 0.863335 1.287268 -0.159823 1.114796 -0.281514 1.344120 0.519715 1.754293 0.432007 1.927982 0.414810 1.149386 -0.006260 0.976682 0.885566 0.515063 0.254185 0.754695 0.789549 1.561253 0.877854 -0.420978 0.332374 1.480749 0.593100 0.702879 0.658336 0.126530 1.071532 1.324398 0.278854 1.856409 1.775562 1.898303 1.319219 0.069110)
+ 10.673618 #(0.000000 -0.057577 0.222106 1.573141 0.252274 0.595495 0.936458 1.040417 0.425979 1.823968 1.432886 0.563698 0.918604 1.296447 0.374043 0.855095 1.004527 0.356896 1.934601 0.180877 1.811696 0.445648 0.602606 1.466940 0.177111 0.730811 1.728271 0.543893 1.431300 1.303712 0.222585 0.859995 0.388267 1.177649 0.459404 0.249801 0.483989 1.477859 1.146169 1.162067 1.475720 1.672371 0.380635 0.596058 1.133714 1.577332 0.270931 0.009256 0.211376 1.386397 0.628160 0.657631 -0.177469 1.371378 0.901150 0.868587 0.814998 1.273990 1.479235 1.013479 0.547621 0.741249 0.281855 0.398198)
)
;;; 65 prime --------------------------------------------------------------------------------
#(65 12.496994018555 #(0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0)
12.264873504639 #(0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0)
- 10.778927 #(0.000000 -0.045825 0.602689 1.685618 1.032142 -0.087448 -0.268734 1.671474 0.897127 0.299684 1.024742 0.847252 0.830785 0.472716 -0.185819 1.748994 1.078889 0.824507 -0.193317 0.039576 0.086512 1.060460 0.656370 1.061696 -0.099072 0.075800 0.140144 1.251518 0.431813 0.424516 0.629569 1.576245 0.308912 0.813512 1.664455 1.195354 1.199058 0.394540 1.391306 0.468434 0.424112 1.755799 0.698940 0.005186 1.504669 -0.197082 0.285576 -0.252770 -0.053890 1.894174 1.806080 1.325061 1.411608 1.549751 1.358417 1.522929 -0.040608 0.550957 -0.022230 0.287773 0.182304 0.142998 1.029182 1.067111 1.738582)
+ 10.735011 #(0.000000 1.237889 -0.077296 -0.052305 0.359502 0.223006 0.595568 1.727253 1.967160 1.499685 1.069585 1.655809 1.434316 0.488626 0.083246 1.268928 0.730301 0.101375 0.893596 0.135562 0.203287 0.343190 1.405877 1.234959 1.083914 1.000159 0.849109 1.703685 1.939439 0.025575 1.252341 1.104601 0.627441 1.911121 1.818600 0.114026 0.526887 0.785890 1.147754 0.829276 1.148268 1.181288 0.188256 1.267042 -0.023050 1.415204 0.225620 0.164214 0.135255 0.925324 0.054171 0.019124 1.521376 1.280007 1.745556 -0.029653 1.486393 0.303975 -0.035053 1.013741 0.102426 1.276278 1.503593 1.763801 0.225695)
)
;;; 66 prime --------------------------------------------------------------------------------
@@ -3010,7 +3143,7 @@
12.347700119019 #(0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0)
12.090668678284 #(0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0)
- 10.933775 #(0.000000 1.049766 0.059182 0.996755 1.597931 1.520949 1.775678 0.554903 1.152889 1.057049 1.714245 1.684062 0.356825 0.777916 0.342226 0.041888 0.821466 -0.095468 0.152925 0.739467 0.705532 1.655188 1.438134 1.726704 0.064864 1.357084 0.452763 1.427312 0.562298 1.069270 1.150509 1.648629 1.863324 1.082459 0.153857 0.813026 1.464831 -0.232914 -0.019548 0.548268 1.216837 0.089849 0.641588 0.360305 1.512391 0.746651 1.026571 1.651297 -0.155964 0.351274 1.861449 1.874195 1.905952 0.262320 1.624314 0.463548 1.411427 0.842395 1.059592 0.279649 0.596904 1.774533 1.571919 0.748448 0.977230 0.554006)
+ 10.852029 #(0.000000 0.036871 0.455889 1.423386 0.169164 0.354546 1.026437 0.882978 0.324852 0.177810 0.552193 1.185454 1.368604 0.156241 1.219999 1.877782 1.632390 1.219609 -0.215349 -0.038672 1.876473 1.131029 0.265270 0.389196 0.810392 0.702510 1.767053 0.253824 0.647346 0.109669 0.351247 0.129948 0.481348 0.966668 0.702556 -0.039900 0.300658 0.700001 1.095465 1.449991 0.747583 1.911436 1.272300 0.995322 0.867365 1.712469 0.758911 1.562381 -0.037969 0.985815 0.464261 1.914649 1.161824 0.577639 1.270582 1.247167 1.137595 0.313913 0.642949 0.096531 0.617650 0.210266 1.403526 0.445812 0.151006 0.392696)
)
;;; 67 prime --------------------------------------------------------------------------------
@@ -3034,7 +3167,7 @@
12.336643218994 #(0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1)
12.29846572876 #(0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0)
- 11.318294 #(0.000000 1.831065 1.873199 0.943477 1.434381 1.160328 1.073663 0.867686 1.016615 0.118326 1.901445 0.078357 0.630254 0.769260 0.853130 0.110085 1.839953 1.744737 1.218922 0.156734 0.226184 1.025726 0.234897 0.182767 0.888515 0.219528 0.523318 0.516427 0.219735 0.949123 1.209801 0.392547 1.885500 0.002110 0.777873 -0.054666 0.920035 0.288337 1.251237 0.943263 1.577952 1.509311 0.722303 1.306658 1.455317 1.048643 0.822975 0.379041 0.510600 1.318972 1.391363 0.782539 1.058994 0.131118 1.228464 0.201327 -0.237220 1.222533 0.682631 1.371404 -0.046671 1.650133 1.512293 0.496593 0.240984 1.030372 0.704468 0.972908 1.357426)
+ 11.054718 #(0.000000 1.765666 1.324417 1.323351 1.247655 0.306508 1.750724 1.613297 0.754242 0.572438 1.797535 1.366383 1.138261 0.783459 0.263251 0.392254 0.128141 0.023200 1.466763 1.050804 1.851144 0.402350 0.705348 0.287991 0.380139 0.766781 1.919322 -0.162484 1.807886 1.678337 0.609106 1.756596 1.118838 1.608586 0.524152 0.941639 1.011369 1.457368 1.641616 1.163849 1.708854 1.756253 1.369604 -0.103329 0.756317 0.588026 0.735076 -0.050143 0.011937 0.772701 1.456304 1.069092 0.292325 1.020942 1.314619 1.141221 1.852232 1.079011 0.750843 1.040669 1.155902 0.494107 1.723371 -0.073023 0.880459 0.324565 1.302412 1.289403 0.806454)
)
;;; 70 prime --------------------------------------------------------------------------------
@@ -3044,7 +3177,7 @@
12.669577598572 #(0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0)
12.665026664734 #(0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0)
- 11.429725 #(0.000000 0.738545 0.476578 1.130368 1.673049 1.047571 0.055084 1.636922 0.439903 0.625845 1.478636 0.026300 1.670083 0.702021 1.899275 0.225081 1.171749 0.834227 1.671304 0.164583 0.923742 0.106484 0.489991 -0.083888 0.671593 1.899980 1.453448 1.287401 0.362623 0.922950 0.961624 1.753769 1.545512 0.497120 0.367428 0.196148 1.444288 1.182998 0.546507 0.360701 1.411544 1.168272 0.737588 -0.038526 0.911975 0.761972 0.497377 0.013470 0.380586 0.224828 -0.028419 0.971066 0.156401 1.277485 1.043711 1.501732 0.837633 1.609997 1.614559 1.004085 1.361150 1.356459 1.104675 1.349688 0.143967 0.982633 0.010544 0.293619 0.282559 1.070386)
+ 11.147948 #(0.000000 0.919104 0.037724 0.031324 0.425088 1.088754 0.239817 1.518037 1.024607 1.561517 0.814568 1.169406 0.975549 0.676123 0.339172 0.112474 -0.060178 0.615982 0.787403 0.514161 1.205362 1.604068 1.012404 1.958451 1.882861 1.753448 1.728750 0.841905 0.938249 1.849485 1.385354 0.340038 0.028994 0.560800 0.084089 1.945412 1.161739 -0.101622 0.564484 1.780618 1.598925 0.413051 0.389471 0.732544 1.482046 1.382082 1.539268 1.550320 1.274381 1.607228 0.267792 1.458751 -0.044328 0.278989 1.141002 -0.076109 1.482534 0.688274 1.322847 0.827949 0.316842 0.931885 1.649833 0.714699 0.107358 0.994888 0.235134 0.824490 0.817106 0.239631)
)
;;; 71 prime --------------------------------------------------------------------------------
@@ -3054,7 +3187,7 @@
12.702159881592 #(0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0)
12.609085083008 #(0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0)
- 11.595883 #(0.000000 0.052838 1.945177 1.457009 1.082032 0.662794 1.715012 1.867859 1.468544 1.673210 0.643987 1.365669 0.256891 0.725050 1.144760 -0.310830 0.082974 0.121386 -0.071846 1.144647 1.047882 1.630074 1.860303 -0.085222 0.533027 0.875603 0.503797 0.857801 0.363228 1.331991 1.723257 1.861408 0.541866 0.313830 0.227266 1.484683 0.622766 0.575528 1.341063 1.577424 1.250698 0.890346 0.862712 0.710764 1.345140 1.675624 0.240573 1.694403 -0.051193 1.724169 0.250872 0.128871 1.474234 1.039539 -0.058533 0.604247 0.248959 1.925010 0.810551 0.996727 1.382396 1.674723 1.134826 -0.074500 1.150429 0.574760 0.639556 1.585665 0.100354 1.402292 1.450577)
+ 11.197084 #(0.000000 0.921777 0.803106 0.976406 1.655030 1.047155 0.651814 1.015011 0.518239 0.823709 0.754271 0.790346 1.685284 0.575068 0.597368 0.416408 1.059341 1.184219 1.281398 1.533665 0.288981 0.307776 0.759029 0.640264 0.624490 1.486853 -0.006654 0.311699 0.054591 1.180218 0.867402 1.297030 1.006233 -0.046307 0.385240 1.750109 1.582049 0.896283 0.074937 0.580170 1.173266 0.273290 1.444714 0.704280 0.869780 1.749498 1.272218 0.208969 1.600481 1.019087 0.873073 0.197331 1.064324 -0.046231 1.350340 0.148469 1.177875 1.153157 0.282987 0.229407 1.780839 1.022097 1.547095 1.551043 0.319702 0.051807 0.260779 0.840496 0.737410 1.407947 1.329629)
)
;;; 72 prime --------------------------------------------------------------------------------
@@ -3063,7 +3196,7 @@
12.841200828552 #(0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0)
12.708446502686 #(0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1)
- 11.648954 #(0.000000 0.964962 1.108483 0.656407 1.322069 1.030919 0.807646 0.517128 1.701430 0.089679 1.362638 0.394783 0.089511 0.368011 1.630629 1.983670 0.539726 0.976974 0.722009 1.198416 1.082666 0.714333 0.993923 0.767305 1.560120 1.713325 0.687672 1.086913 0.819010 0.123511 1.199864 1.348075 1.437482 0.856807 0.760610 1.715384 0.542356 0.949382 0.893209 0.702048 -0.205376 -0.003130 -0.049511 0.818640 0.550760 1.351514 1.225955 1.659373 1.809437 0.647319 1.110209 0.950608 0.846139 0.894536 0.428207 0.370195 1.200125 1.714711 0.764289 1.055249 0.856423 0.542963 1.629127 1.035794 0.374733 1.328365 -0.001685 -0.015006 0.720182 1.715515 0.457737 0.705060)
+ 11.385956 #(0.000000 1.439211 0.920139 -0.153593 1.571592 0.954301 1.315076 0.900111 1.424065 1.369177 0.050625 0.015829 1.490353 0.034671 1.624391 1.349497 1.754751 0.383867 1.816884 1.047934 -0.068697 1.677593 1.053796 0.117311 0.584931 0.358596 1.411806 0.149367 0.571223 0.116831 0.408866 1.555361 1.552011 -0.034879 1.767138 1.048975 1.258095 0.107345 1.360719 1.322760 1.388883 -0.071045 1.011737 0.586720 0.960025 0.032890 1.370937 0.541331 0.924721 1.890763 0.666441 1.113794 0.156897 1.613821 0.902996 0.764846 1.631910 0.588153 0.705848 0.833879 0.136099 0.845036 1.252271 0.009702 1.342614 1.288340 1.836111 0.249118 0.250872 0.903792 0.967095 0.138909)
)
;;; 73 prime --------------------------------------------------------------------------------
@@ -3072,7 +3205,7 @@
12.986406962349 #(0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0)
12.879818916321 #(0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0)
- 11.677317 #(0.000000 1.242671 1.238814 0.004793 0.074984 0.748331 0.226753 0.375418 0.751388 0.174909 1.334725 1.271536 0.669525 1.058367 0.747535 0.569786 -0.192343 0.733591 0.128035 1.744054 1.827767 -0.010903 1.768018 1.282477 1.123368 1.863096 0.371004 1.186539 0.314982 -0.109020 0.843343 1.408518 1.419173 -0.012743 0.147667 1.638265 0.453907 1.617941 1.650026 0.534779 0.257508 1.605528 0.406187 0.192328 -0.184212 0.656807 1.264112 -0.122160 0.166977 0.445227 0.575278 0.788770 0.213350 0.091854 0.417967 1.346861 0.241812 1.052139 -0.006002 1.224480 0.053961 1.645720 1.250639 1.169441 1.151241 0.388963 1.707981 0.187114 0.599763 0.801452 0.687003 0.932682 1.579382)
+ 11.493125 #(0.000000 0.439315 0.356936 0.776510 1.347662 0.438381 0.928680 1.611610 1.374620 0.450836 0.387244 0.445669 1.319613 0.513356 0.406465 0.475466 1.554463 0.329902 0.248819 0.821569 0.323982 1.558539 1.172668 1.453303 1.342606 0.247592 0.051842 0.277267 1.688762 1.045279 1.213687 1.643748 1.259954 1.341985 1.568253 1.430961 0.345807 0.135985 0.572326 0.188072 0.676675 0.227571 0.050017 0.324958 1.109062 0.921730 1.693115 0.517354 1.242015 1.367220 0.445310 1.266987 0.958078 0.256094 0.212324 0.008743 0.859233 1.849317 0.555985 0.980671 1.459136 0.490957 1.866452 0.821408 1.520462 0.482524 1.696826 0.688069 1.627010 0.331076 0.434880 0.290712 1.616732)
)
;;; 74 prime --------------------------------------------------------------------------------
@@ -3081,7 +3214,7 @@
13.261976242065 #(0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1)
13.115156173706 #(0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1)
- 11.673327 #(0.000000 1.485516 1.376372 1.486449 1.792938 0.015283 0.689739 -0.015630 0.767824 -0.152154 0.660463 0.115423 1.647418 1.262257 0.053750 0.005794 0.117694 1.343675 1.450767 0.915876 1.671489 1.058368 0.018222 1.083700 0.334018 -0.179069 0.685295 0.595372 1.889898 0.657805 0.132822 0.174461 0.720455 0.298015 0.960932 1.805671 0.987095 0.099306 0.645799 1.086807 1.300358 0.554316 0.820894 1.134772 1.411846 1.037724 1.015746 1.351899 0.871191 0.686384 0.344809 0.455854 0.171219 -0.238573 0.581971 -0.036148 0.501983 0.813457 -0.110066 0.991593 0.404738 0.695266 0.228967 0.785615 1.841652 1.534828 0.537744 1.589515 0.080321 1.067305 0.180690 1.491134 1.468233 0.568539)
+ 11.443736 #(0.000000 0.201885 1.333326 0.603095 0.578767 0.130204 0.191641 0.136166 0.653894 1.550201 0.706822 1.101887 0.095307 1.066697 1.027871 0.938154 0.218263 0.900120 -0.190876 1.626843 0.208532 1.014584 1.056604 1.553413 1.877574 1.089119 -0.014944 1.533405 0.120350 1.165768 1.011018 0.183558 0.042240 -0.162242 -0.123745 -0.161580 0.608125 0.241638 1.106281 0.086915 0.162983 0.026879 -0.163794 1.669623 1.364255 1.224403 1.894724 1.620440 0.169072 0.636928 0.560332 0.971167 1.333957 1.623440 0.894032 1.830589 1.858596 1.945880 -0.100401 1.203505 0.464950 0.057006 1.607379 1.602395 0.555269 0.711132 1.060480 -0.029557 1.132639 1.065748 -0.060569 0.985362 -0.037670 0.407240)
)
;;; 75 prime --------------------------------------------------------------------------------
@@ -3090,14 +3223,14 @@
13.357945520561 #(0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1)
13.254356384277 #(0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1)
- 11.733916 #(0.000000 0.384120 0.938901 1.398377 1.315636 1.085350 1.468132 -0.032197 0.968587 1.789228 0.753550 1.439083 1.909062 1.100133 0.107944 1.263193 0.753584 1.159351 1.383770 1.244460 0.540835 1.347263 0.392138 1.661632 1.728284 0.288580 1.230242 0.421683 1.640814 1.315583 0.101779 1.831280 0.614890 0.951582 0.947838 0.858321 1.124768 1.761336 1.285167 1.580660 1.714944 1.415429 1.278720 1.444388 1.582125 0.215367 0.732455 0.883535 1.610049 1.755623 1.723939 0.556643 0.351394 0.560165 1.888835 0.704498 0.697368 0.224801 1.095593 0.993338 0.267639 -0.135685 1.818474 1.108782 0.922431 0.366318 1.851230 1.729390 0.921898 0.908508 1.825897 0.137813 1.069687 1.970698 1.410706)
+ 11.728000 #(0.000000 0.383924 0.939684 1.398658 1.315656 1.085476 1.468342 -0.031614 0.968527 1.789035 0.752646 1.438814 1.909203 1.099384 0.107701 1.264361 0.752504 1.159465 1.383128 1.244046 0.540534 1.347105 0.393006 1.661857 1.729299 0.287533 1.231157 0.421791 1.639646 1.316516 0.102690 1.831347 0.615463 0.952210 0.947666 0.858785 1.125000 1.760338 1.286161 1.580119 1.714896 1.415563 1.280011 1.445095 1.581563 0.215701 0.733583 0.884897 1.610623 1.756881 1.723495 0.555903 0.352030 0.561040 1.887744 0.704656 0.696831 0.224996 1.094943 0.993238 0.267595 -0.134090 1.820154 1.109173 0.921732 0.366973 1.852033 1.729636 0.922165 0.907854 1.826107 0.138812 1.069656 1.971171 1.410570)
)
;;; 76 prime --------------------------------------------------------------------------------
#(76 13.691219362758 #(0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0)
13.288178191792 #(0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1)
- 11.948346 #(0.000000 0.982512 0.288069 0.054571 0.103872 -0.441520 0.851692 1.876637 0.393168 0.132927 0.965018 0.175563 1.417855 1.831956 0.281931 1.364813 1.205186 1.498806 0.725251 1.107734 0.128664 1.391778 -0.622506 0.187393 1.388161 1.093077 0.688871 -0.118100 1.879716 0.430193 1.406996 0.737952 0.077949 0.922104 0.629002 0.367756 1.377356 0.436701 1.070289 1.143366 1.227655 0.153334 0.383214 0.473842 1.558364 1.430900 0.607556 0.777002 0.234251 0.879869 0.320328 0.494715 1.491680 1.422357 -0.027988 0.185382 1.593537 0.573142 0.815647 0.617634 0.799265 0.806271 0.439616 0.114870 0.123322 0.895195 0.885941 0.834337 0.666013 1.774271 0.659899 1.604383 1.388305 -0.067391 1.646535 0.928969)
+ 11.762659 #(0.000000 1.241245 1.006060 0.985803 1.809568 0.342105 1.281257 1.227385 0.782502 0.201905 1.013797 0.807064 0.956523 1.600986 0.660026 1.321784 0.303326 -0.198863 0.719017 0.490687 0.413561 0.622729 1.786598 0.200578 0.965267 1.610463 1.158126 0.000796 0.702751 1.785917 0.457551 -0.080520 0.475297 1.058316 1.748290 0.512774 0.807335 1.787572 -0.072934 0.195125 0.417809 0.094304 1.650143 0.817618 1.821075 1.045974 0.637980 -0.006370 0.763076 1.551829 1.128327 0.256835 0.385472 0.126696 0.963545 1.102578 1.166071 0.353331 0.711152 1.320488 0.579616 0.650514 1.660158 1.348924 -0.026985 0.937692 1.272395 1.898232 0.539398 0.194517 0.594443 0.362370 -0.000917 1.703207 0.563395 0.681486)
)
;;; 77 prime --------------------------------------------------------------------------------
@@ -3106,7 +3239,7 @@
13.330450043717 #(0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1)
13.158900260925 #(0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1)
- 12.103758 #(0.000000 1.253467 1.155608 0.141662 1.970760 0.533075 1.440065 1.505659 1.680236 0.172110 -0.017897 1.626869 0.434603 1.455057 1.521146 0.104563 1.077364 0.053513 1.333896 0.102052 0.513500 0.013484 0.821956 1.176132 0.327265 0.165176 0.366107 0.146012 0.511928 0.621015 0.646781 1.863149 1.350416 0.238167 -0.020670 1.067104 1.029592 0.425347 0.180736 1.653170 0.886134 1.655492 0.967426 0.552284 0.011875 0.259543 0.030456 0.310894 0.498496 1.218659 0.509171 1.209234 0.430671 0.974427 1.752245 -0.050830 0.054356 1.187046 1.743693 0.054206 1.568915 1.247138 1.129276 0.011299 0.774176 1.012651 0.959932 0.294041 0.736931 1.046098 1.535239 0.573729 0.866322 0.735496 0.590278 1.481309 0.304578)
+ 12.038213 #(0.000000 1.164102 0.777013 1.777228 0.070721 1.579642 1.725670 0.531456 0.893822 0.559048 0.751473 1.297352 1.737775 -0.040229 0.158304 0.034380 1.321608 0.429821 0.386548 0.230888 1.434630 0.496011 1.332843 1.014005 0.321157 1.237568 1.061154 0.543568 1.086050 1.859380 0.739641 0.170987 0.520057 0.353395 0.509481 1.060017 0.322294 0.024761 0.967997 0.988712 -0.057842 0.099501 0.284068 1.860476 0.373629 1.463024 0.266264 1.766830 0.573871 0.621007 0.108252 1.642721 0.652324 0.087763 1.776821 1.239997 1.217666 0.703504 0.838988 1.799559 0.799615 0.435354 0.529789 0.617232 1.549056 1.313127 0.083805 1.151085 1.124037 0.326922 1.641779 0.799665 1.293781 1.251728 -0.092840 1.649911 0.055928)
)
;;; 78 prime --------------------------------------------------------------------------------
@@ -3114,7 +3247,7 @@
13.683882347187 #(0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1)
13.498236182018 #(0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1)
- 12.187685 #(0.000000 0.053182 1.056327 0.555004 1.472286 0.768431 1.630475 0.661722 1.092957 0.514931 1.320949 1.226599 -0.093121 1.722703 1.078425 0.750497 1.476383 -0.122181 1.203106 1.335923 0.335659 0.594750 -0.145440 1.714951 -0.294450 1.919431 1.920028 1.034779 -0.092251 0.015119 1.623106 0.066676 0.907417 0.857552 0.936893 0.224279 0.423213 0.496857 1.479927 1.761555 -0.083534 -0.181767 0.004017 0.268485 1.634965 0.887095 0.191221 0.350575 0.819958 0.989316 -0.394308 1.911333 0.650015 0.169504 1.179058 0.571136 0.342041 1.658459 0.082670 -0.016724 0.395601 1.226833 1.166535 1.802273 1.916920 0.115831 0.712546 1.716959 -0.041984 1.496666 0.165773 1.355898 1.912657 1.451841 0.768630 1.831022 1.367450 1.389663)
+ 12.167904 #(0.000000 1.349086 1.466799 1.482905 1.673416 1.874387 0.876741 1.542053 0.215354 0.370896 0.869154 1.385439 1.742862 1.085758 0.890729 0.148544 1.947977 1.209572 1.561203 1.469867 0.915185 0.984799 0.427811 1.793791 1.867744 0.385490 1.688676 0.754678 0.065514 0.083069 1.071965 -0.026629 0.006581 0.298885 1.022927 -0.043287 1.533409 1.294806 0.426841 1.120561 0.823180 0.659518 1.725671 1.585220 -0.181484 0.168095 -0.256838 1.517826 0.125018 0.550511 1.377766 0.022366 0.945340 0.494055 1.303955 0.045211 0.078052 0.178119 -0.147185 1.331147 0.675892 -0.052728 0.868700 0.500694 -0.242652 1.571492 0.361320 0.980704 1.111211 -0.330155 0.919681 1.033002 1.462062 1.410123 0.574463 1.876684 1.170530 1.387325)
)
;;; 79 prime --------------------------------------------------------------------------------
@@ -3122,7 +3255,7 @@
13.77695274353 #(0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0)
13.178678233398 #(0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1)
- 12.331539 #(0.000000 -0.193842 0.191704 1.471500 -0.043455 1.473335 0.631184 1.736868 0.221137 1.261286 0.483159 0.906986 1.055446 1.106745 0.022998 1.777190 0.181936 0.548761 1.553921 1.554091 1.950580 1.035680 1.453936 1.371717 0.579958 1.156294 -0.022353 0.931765 0.779782 1.155250 1.562478 1.131378 0.410550 0.989995 0.183461 0.653002 -0.054340 0.833844 1.410390 0.763233 0.133013 1.366216 1.032995 1.160137 1.224836 0.679790 0.534270 1.225364 1.743951 1.604497 1.483945 1.212833 0.200990 1.490076 1.548458 1.562157 0.364342 0.608279 0.289470 -0.398531 0.530223 0.806864 0.160693 0.602417 1.110979 1.266342 -1.882744 1.517303 0.128969 1.085250 0.309031 1.406990 0.860586 1.697002 1.034220 1.144302 1.100913 0.891720 0.385242)
+ 12.173032 #(0.000000 1.220065 1.448811 1.174773 0.369197 0.999425 0.745804 1.137984 0.593381 1.688448 1.727263 0.941600 0.643963 1.723009 1.808885 0.394233 1.664121 0.121420 0.673612 1.139241 1.831603 1.359170 0.571671 0.282443 1.122387 1.138228 1.823755 0.308193 0.313097 0.548342 0.985869 1.260469 0.401300 0.908536 1.586182 1.561505 1.503624 0.396532 1.347328 -0.028059 1.502800 1.162855 1.859181 -0.013072 1.432497 0.746999 0.958059 0.536146 0.059785 0.945358 1.445104 1.793115 0.408982 0.059561 0.008824 0.417090 1.129802 0.993219 -0.152126 -0.044476 0.006971 1.404072 0.176467 1.464462 0.037564 0.821375 1.803549 0.504847 1.419290 1.364066 1.863904 1.802809 1.482631 1.604507 1.231962 1.624894 1.580454 1.357188 1.041914)
)
;;; 80 prime --------------------------------------------------------------------------------
@@ -3131,7 +3264,7 @@
13.563344594765 #(0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0)
13.547472953796 #(0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 0 1 0 1)
- 12.377463 #(0.000000 0.262716 -0.012636 0.734414 1.447275 0.800551 1.416003 1.688862 1.270912 1.588625 0.691956 1.445697 1.388187 0.849332 1.858702 1.681284 1.252675 1.554785 0.614336 0.566632 0.997912 1.631524 0.271869 0.456125 1.858134 1.108784 1.396567 0.571795 0.585083 1.699722 1.697447 0.393112 1.216494 1.893008 0.581410 1.346734 1.133498 0.679568 1.564944 0.521165 0.021641 0.342565 0.005428 1.671167 1.974929 0.655257 1.259377 1.206077 0.564589 1.353920 1.875582 0.112414 0.260437 1.897733 0.257297 0.464170 0.428251 1.371187 1.248698 0.209174 0.187682 0.027671 1.578910 1.020174 0.522147 1.644856 1.410320 0.702405 0.975678 1.237179 0.792284 1.872193 0.353596 0.413634 1.197650 1.135681 1.897566 0.154751 0.302510 1.680950)
+ 12.296392 #(0.000000 1.939959 0.049623 0.255753 0.079399 1.237444 0.647814 0.445544 0.403711 0.444110 1.386240 0.757661 1.499300 1.590910 0.021143 0.085778 -0.034399 0.461941 1.140821 1.747770 0.513821 1.531461 0.741277 1.172891 1.272241 0.879042 0.432243 0.842558 0.360162 -0.002595 1.835137 0.512597 1.173958 1.572691 0.018244 1.784936 0.483366 1.326265 0.309137 1.799585 0.357368 -0.095181 0.421123 1.281503 1.461775 0.878057 0.152427 1.098597 0.707162 1.392345 0.965457 0.841749 0.233308 0.993627 0.504905 1.036415 0.645531 0.296587 0.623400 1.833109 1.832488 1.247369 1.008767 0.670384 1.265091 0.376295 0.610707 0.186262 1.224258 0.143839 1.202972 0.702563 1.539182 0.956270 1.344320 1.408538 1.239195 1.775287 1.269060 1.683801)
)
;;; 81 prime --------------------------------------------------------------------------------
@@ -3139,21 +3272,21 @@
14.253742218018 #(0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1)
13.652944564819 #(0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1)
- 12.542343 #(0.000000 1.774984 -0.226656 0.131012 0.234502 1.385824 0.370627 1.524305 1.233772 1.041204 0.938196 1.166208 0.031938 1.095290 1.401795 1.837840 1.589538 0.153270 0.887930 1.297221 0.798880 -0.158002 1.701828 1.719345 0.263877 -0.090523 1.062557 1.428046 0.288738 1.928772 0.165916 0.887631 0.898353 0.940230 1.586988 1.971390 -0.183469 0.027524 1.386297 1.799041 1.484237 1.489169 0.184533 1.247170 1.243326 0.856801 0.696788 0.697593 0.193733 1.152911 1.190989 0.499331 1.622914 0.600196 0.703353 1.459268 0.011161 0.006916 0.302728 1.671501 1.548254 0.880868 1.174223 1.197293 1.776579 0.391728 -0.061743 0.656694 0.325956 1.413355 0.533391 0.261039 0.566648 0.993410 -0.262349 1.377061 0.523703 0.871598 0.122405 -0.088853 0.782424)
+ 12.282995 #(0.000000 0.039290 1.098363 0.170384 0.043454 1.360312 0.171640 0.240234 0.521966 0.501077 0.198061 0.347496 0.877054 0.375755 0.668647 1.225438 0.438671 0.411649 0.598455 1.766860 -0.042728 1.351208 1.384675 1.635652 1.578360 0.885270 1.535012 0.017317 1.689569 1.543520 1.201144 0.607056 0.108257 0.629689 1.080246 1.022676 -0.157183 0.280042 1.743230 -0.010914 1.564319 0.995055 1.069668 1.864242 1.577254 1.302895 1.380372 0.028831 0.886487 0.926505 1.525751 1.929779 0.017004 0.498464 -0.087960 0.535410 -0.155571 0.635710 0.738849 0.633557 1.851746 0.175414 1.200109 1.385225 0.080502 0.830721 0.862127 1.275617 -0.196626 1.429126 0.496857 0.604193 1.020987 1.579963 0.346706 0.456857 0.587438 1.199958 0.141841 1.277771 0.465120)
)
;;; 82 prime --------------------------------------------------------------------------------
#(82 14.492313651671 #(0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0)
14.126787045134 #(0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0)
- 12.591391 #(0.000000 1.627390 0.913738 0.943508 0.835210 1.450864 0.886759 1.579804 1.099328 0.641691 0.089262 0.664227 1.186028 1.337035 -0.187423 0.793901 1.348356 0.647570 -1.689111 0.850392 0.762904 1.411008 1.633210 1.444591 1.128302 1.428055 0.913249 1.739042 1.642889 -1.822914 1.585742 0.682209 0.183725 0.622553 1.007643 1.897646 0.861109 1.402110 1.401380 0.453257 1.075721 1.478592 -0.045040 1.432549 1.266742 1.154464 0.335952 1.465034 1.142131 0.544715 0.489845 1.437905 0.403124 1.285371 1.284030 0.005120 0.036564 -1.757235 1.087548 0.891082 1.504214 0.926476 1.683729 1.069936 0.358934 0.140520 1.801074 -0.395762 1.501144 0.562022 0.598730 0.422822 1.740674 1.217900 0.106332 1.203636 1.328152 0.899694 1.186044 0.965356 1.381352 -0.013062)
+ 12.248508 #(0.000000 1.184614 -0.140262 1.658526 0.124873 1.367391 0.380481 1.732116 0.867899 -0.017336 1.076150 0.444376 1.572537 0.202201 0.224039 1.408218 1.283020 0.915252 0.286159 0.224109 1.793574 0.275656 1.510746 1.867911 0.220531 1.152592 0.380951 1.153960 1.895317 0.328068 1.983850 1.871605 0.611849 0.478040 1.445928 0.031079 1.103793 0.138290 0.125236 0.231943 0.387489 1.188359 0.433773 1.537111 1.511525 0.342010 1.630312 0.439409 0.624688 0.550396 0.026462 0.171311 0.463845 1.962597 0.157334 0.397015 1.189434 1.405199 1.325258 -0.034359 0.993057 1.596429 1.713167 -0.101772 0.691276 1.368396 1.730224 1.282771 0.506696 0.229349 0.913958 1.210949 0.762866 1.598390 0.478846 1.207150 0.828317 0.209451 -0.095396 0.613066 0.679687 0.096406)
)
;;; 83 prime --------------------------------------------------------------------------------
#(83 14.249828726851 #(0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1)
14.019070339131 #(0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1)
- 12.644867 #(0.000000 0.757130 0.721319 0.099567 -0.130280 0.293352 0.340601 1.903233 1.321306 1.294949 1.311923 1.006340 0.430601 0.778728 1.435429 1.112666 0.024098 1.408998 1.113447 0.994500 -0.022944 1.392666 0.306706 1.958359 0.673637 1.388892 0.475219 0.780752 0.494102 1.540576 0.717984 1.045550 1.253359 0.360609 1.019488 0.240784 0.200141 0.371605 0.721732 0.516514 0.588864 1.006376 1.877693 0.210434 1.562195 0.341007 0.803497 0.041209 1.068655 1.194920 0.266808 0.807022 1.792436 1.467404 0.605783 0.283439 0.930207 0.481750 0.229500 1.476369 0.988353 1.356245 0.469994 0.912459 1.802822 1.001582 1.517520 -0.106496 0.935013 0.002176 0.560084 1.877486 0.088490 1.106049 1.864446 0.325752 1.665923 1.007206 0.765972 0.059123 1.388681 0.610473 1.018947)
+ 12.526927 #(0.000000 0.480105 1.333298 0.728069 0.819784 1.770291 1.354905 0.159051 1.441141 1.755054 1.071844 1.726233 1.531243 1.510189 0.338333 1.817512 1.805371 1.526981 0.687681 0.614640 0.088649 1.699608 0.845983 1.519562 0.350203 0.571506 0.179678 0.524900 0.919248 1.182199 0.013978 1.723366 0.140720 1.704215 0.767025 1.603706 0.681964 1.823072 0.805414 1.369569 1.705369 0.844021 0.926624 0.010876 1.195922 0.558989 1.398543 0.531605 1.577453 0.857053 0.496758 0.219821 0.171544 0.806227 1.566898 1.745277 1.026983 1.416867 1.689478 0.393685 -0.071388 0.650989 0.666808 0.033332 1.868124 0.401936 0.621755 1.594924 1.561550 0.436431 1.769422 0.835995 0.642730 0.445266 1.945024 1.457345 0.126514 1.477984 1.450404 0.160739 0.552261 1.388070 0.255595)
)
;;; 84 prime --------------------------------------------------------------------------------
@@ -3170,7 +3303,7 @@
14.400919537796 #(0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1)
14.253310943921 #(0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1)
- 12.789493 #(0.000000 1.628167 1.266075 0.910490 1.116508 1.090089 0.611825 -0.067559 0.657610 0.018127 1.294830 1.009221 0.201322 1.354013 0.747765 -0.038305 0.786106 0.260387 1.066285 1.571578 1.416654 0.616232 1.252221 0.944390 1.111040 0.620936 1.888346 0.574619 1.634484 1.248752 0.180444 1.283486 0.237187 0.354345 -0.065347 1.941295 1.509698 1.204108 0.638034 0.955586 0.527992 -0.028486 0.346426 1.612096 0.483775 0.409112 0.124979 1.528048 1.642935 0.554095 1.294863 0.279881 1.492889 1.341753 0.541845 1.394987 1.209846 0.565774 -0.028152 1.699918 0.018741 0.250903 0.657122 0.418252 1.884125 1.787723 0.100785 1.668754 1.543536 1.905444 1.152677 1.823751 0.516496 0.862745 0.102537 1.481411 1.531578 0.092411 0.422089 0.080983 0.618785 -0.057932 0.310939 0.275468 0.487482)
+ 12.580818 #(0.000000 0.156669 0.223302 1.777139 0.484350 1.605580 1.023542 1.165289 1.152207 1.683624 0.424814 1.701466 0.838200 0.891056 0.995070 -0.106403 1.511315 1.502622 1.390342 1.303415 1.653097 0.725118 0.309627 1.265662 -0.094423 0.121502 0.077632 1.017653 1.173052 1.399328 0.679623 0.238940 0.596971 1.940969 1.182853 1.126000 0.848287 1.043508 0.961193 1.534927 0.697152 0.039806 0.547268 1.513401 0.052979 1.779816 0.099190 1.411342 0.676171 1.601352 1.025934 0.845984 0.098180 0.882146 -0.113798 0.878815 0.172760 1.221088 1.697600 1.728977 1.538977 -0.422900 1.645322 1.418083 1.603549 -0.197222 0.740448 1.697358 1.310641 1.162196 1.931082 0.790876 1.041178 -0.111035 1.676025 0.325037 -0.093705 0.674538 0.523497 0.350901 1.176416 1.457796 0.727103 -0.042765 -0.081880)
)
;;; 86 prime --------------------------------------------------------------------------------
@@ -3178,7 +3311,7 @@
14.394402956102 #(0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1)
14.017106967247 #(0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1)
- 12.812844 #(0.000000 0.350376 1.080109 0.217106 1.598564 1.278911 1.620938 1.900475 0.627300 0.887863 0.321798 -0.011512 0.509941 1.766874 0.288915 0.981388 0.930544 1.220910 0.511165 0.175129 0.844227 0.514286 -0.117427 0.038782 0.759053 -0.437895 -0.026306 1.855439 0.476930 0.047329 0.121380 1.199632 1.360965 0.275297 1.401054 1.201381 0.546207 1.610642 0.978577 -0.160311 0.599425 1.763020 0.224141 0.510246 1.138746 1.655099 1.345744 0.764633 1.600651 1.855870 1.874604 1.184664 0.795886 0.481621 1.112387 1.083540 1.427618 0.410403 1.027200 1.464616 0.223196 0.480845 0.818181 1.433495 0.130204 0.747306 -0.009996 0.716449 0.017465 0.924298 1.479327 0.717613 0.619469 1.098676 0.895133 0.764567 0.781896 1.109882 1.163681 1.852158 1.368764 1.559458 1.368056 1.139942 1.001577 0.826075)
+ 12.374880 #(0.000000 1.215138 0.798798 1.657095 1.022979 0.971176 1.139675 0.960215 1.763704 0.641087 0.299716 0.717744 1.204160 0.213846 0.576319 0.311589 0.516364 1.203327 0.870523 0.489062 0.792033 0.312833 0.067330 1.643917 0.169539 1.649629 0.231686 1.899402 0.492362 1.288249 1.775938 0.304778 1.662075 0.302367 0.179717 1.659436 0.988245 1.157541 0.561345 0.020423 1.489570 1.569139 1.789421 1.650809 1.021867 0.618313 0.505690 0.051902 0.968868 0.987815 0.304767 1.764845 1.148402 0.703036 1.858224 0.768883 0.830609 1.661237 1.394735 0.768770 1.850958 0.612315 1.121275 0.767844 1.633089 1.634359 0.116320 0.413084 0.098248 0.224031 1.003720 1.685135 0.033212 1.352408 0.653333 1.614739 1.763891 0.493538 1.542759 0.712894 0.731267 0.273693 1.236853 1.068828 1.892635 1.355860)
)
;;; 87 prime --------------------------------------------------------------------------------
@@ -3186,7 +3319,7 @@
14.519235937355 #(0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0)
13.981919502482 #(0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0)
- 13.091440 #(0.000000 0.651009 0.345931 1.164513 1.115900 1.321374 1.274281 0.749066 -0.360132 0.914756 -0.162719 0.143075 1.032815 1.441036 1.632097 1.098188 0.280445 1.695749 0.109836 1.541351 -0.364874 0.182184 0.416632 1.075510 1.315819 1.861474 1.796768 1.302109 0.780626 1.215898 0.352314 0.757719 1.364679 0.528291 0.060724 -0.110473 0.996442 1.334669 0.769492 0.726021 1.769741 0.539071 0.931414 0.890981 0.388920 1.340537 0.582996 0.331349 -0.169630 -0.074950 0.581169 0.208483 0.021610 -0.185202 0.996462 1.724357 1.510717 1.168227 0.366011 1.811674 1.281881 0.690228 0.663401 1.270211 1.678780 1.709021 1.332051 1.167900 0.181683 1.903155 1.398079 0.014599 1.824900 1.736523 0.111318 0.634124 0.529609 -0.054278 1.782454 0.749076 1.570306 1.131096 0.423405 1.572573 0.195725 1.324335 1.961243)
+ 12.830246 #(0.000000 0.512608 1.182356 1.271013 0.001828 1.687587 1.150670 1.508071 1.615757 0.641632 0.093017 1.348542 0.045302 0.215915 0.452494 0.949417 0.255292 0.222130 1.702042 1.772470 -0.108026 0.339827 0.688478 1.449066 0.943031 1.805287 0.776939 -0.062794 1.079055 0.190949 1.032483 0.103021 1.562375 0.851401 1.389370 0.430222 0.836487 1.806214 0.498339 1.221306 1.284313 0.258335 0.283667 1.131241 0.555445 1.705219 1.143725 0.672277 1.395658 0.716229 1.700328 0.581874 1.571143 1.538443 0.276202 1.867254 1.043116 1.904830 0.633196 1.488083 0.366185 1.260925 1.531810 1.850185 0.399226 1.161990 1.548832 0.947428 1.294927 -0.107964 0.505734 1.615092 1.314612 0.941029 1.707996 1.531926 0.902044 0.447085 1.821520 0.347599 0.741752 1.464708 1.620619 1.265647 1.594767 1.765935 1.653599)
)
;;; 88 prime --------------------------------------------------------------------------------
@@ -3196,7 +3329,7 @@
14.837036132812 #(0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0)
14.822916620445 #(0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0)
- 13.234777 #(0.000000 0.078403 0.919240 1.042809 1.619094 1.852870 1.033708 1.437202 1.570198 1.162301 0.943820 0.246402 0.692410 0.490268 1.679662 -0.094853 0.746064 0.571222 0.577486 1.629825 1.409069 1.396134 0.020629 0.156710 0.022619 0.807257 -0.074456 0.931721 1.495553 0.857639 0.547247 0.739651 0.499169 1.310882 0.339142 1.798542 1.485909 0.260009 1.215910 0.800709 0.367631 1.363096 0.350449 0.866356 0.515290 0.484970 0.360304 0.371566 1.340366 1.072956 1.240714 0.718206 0.003893 0.784342 0.810563 0.878921 0.859459 1.484978 1.567614 1.869170 1.437568 1.286686 1.063635 0.645912 1.677352 1.959811 0.722128 1.293710 1.162994 0.489015 1.707939 1.008409 0.524850 1.510751 0.761940 1.043865 1.004620 0.082445 0.111145 0.875420 -0.056512 0.988204 0.278837 0.783318 0.853852 1.663590 0.955696 1.023755)
+ 13.061547 #(0.000000 0.881911 0.603313 1.855497 0.369091 0.307557 0.608993 0.974127 0.585407 0.451893 1.447374 0.832509 1.534060 1.472524 1.198304 0.899722 0.211902 0.591473 0.472100 0.421654 0.459357 1.265558 1.067817 0.814053 0.439311 1.573945 -0.273257 0.079297 0.926082 1.651610 0.772087 0.109289 0.606424 0.428425 0.878763 0.189833 1.283767 0.608386 1.492253 0.150230 0.559824 0.990017 0.553437 0.246331 1.985109 1.583552 1.768127 1.531881 1.634613 1.153242 1.725409 0.916846 1.684771 0.323660 1.278431 1.794002 0.757027 1.181572 0.530775 0.006476 1.028714 0.904722 0.724770 0.302368 1.736708 0.421512 1.768152 1.698319 1.300724 0.239941 0.734725 0.793169 1.049155 -0.331777 1.869040 0.545327 1.027839 0.979091 1.743471 0.678009 1.610183 1.583484 1.225192 0.603649 0.899512 0.352839 1.299620 0.685222)
)
;;; 89 prime --------------------------------------------------------------------------------
@@ -3211,7 +3344,7 @@
14.914762472218 #(0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1)
14.831111851861 #(0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1)
- 13.371369 #(0.000000 0.970184 0.571223 0.484697 0.808580 0.146786 1.481241 1.637476 0.913585 0.680942 0.294360 0.977789 1.828950 1.701701 1.417387 0.339357 1.182697 0.420224 0.673690 0.339590 1.191541 1.056167 1.153781 0.778648 0.742940 1.727436 0.892749 0.175938 1.987475 0.593212 0.459812 0.571497 1.623328 1.441299 0.424970 1.910032 1.088130 1.926759 -0.015658 0.778259 0.583404 0.098099 1.062842 -0.083433 1.075407 -0.210423 1.576160 -0.252066 1.291519 0.601576 0.750418 -0.242271 1.706619 0.152346 1.764668 0.084002 0.582235 1.223742 1.301709 0.831500 0.416164 -0.141365 0.692897 1.601757 1.099410 0.194456 1.149727 0.872975 0.051495 1.614060 1.492918 0.443228 0.714802 0.255272 0.122111 1.400000 0.125965 1.051806 0.430021 0.531740 0.546876 0.282947 0.257158 1.285665 0.647477 1.847162 1.984465 1.333339 0.752697 1.161196)
+ 13.162857 #(0.000000 0.396435 1.693711 1.085133 1.212885 0.406261 0.333655 0.670033 0.656176 0.250835 0.493487 -0.013745 0.151044 0.917960 1.704835 1.154840 1.463578 1.618328 0.396488 1.874698 0.190051 1.733709 -0.123548 0.610448 1.485884 1.200156 0.574448 0.144903 0.142185 0.511664 1.646563 1.801856 0.257563 1.426319 -0.016926 -0.283413 1.107482 1.505059 1.518832 0.438108 -0.008538 1.866218 0.959287 0.981861 0.217725 1.060791 0.100059 0.613065 0.605526 0.946504 -0.217629 0.316020 1.468017 0.352394 1.624964 1.137433 1.374493 0.033002 0.801959 1.277408 1.553725 1.400978 0.636741 0.108001 1.064543 1.712569 0.299712 1.580555 1.049159 1.305944 0.998682 0.009358 1.474572 0.295422 0.381046 1.397743 0.390474 1.696179 0.363677 0.970514 0.835908 1.050257 -0.034975 -0.209010 1.561102 0.605212 0.605404 -0.155232 1.145004 0.907171)
)
;;; 91 prime --------------------------------------------------------------------------------
@@ -3219,7 +3352,7 @@
14.775403022766 #(0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0)
14.702056847646 #(0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0)
- 13.262501 #(0.000000 1.837753 0.937265 0.268110 1.713573 1.183221 1.897661 1.323569 0.215327 1.114920 -0.065427 0.897766 1.574488 1.429697 0.071472 1.356920 0.783685 0.216030 1.763149 0.475096 0.493511 0.808187 1.123960 1.347491 0.756053 -0.012901 0.290938 1.921441 0.963668 1.150924 0.770920 0.329002 0.030601 0.031437 1.049788 0.894018 0.108017 1.171283 0.327291 0.722665 1.775494 0.326148 0.652951 0.896086 1.504242 0.924665 1.504863 0.395904 0.787633 1.165899 1.140020 -0.116702 1.069694 1.361090 0.538278 0.404374 1.565458 1.895493 1.759145 0.406036 1.282590 1.471297 1.552015 0.302154 0.738359 1.266241 0.539915 1.009232 1.283589 1.384902 0.284168 1.410811 1.147008 0.640120 0.054764 0.785305 1.416479 0.942252 0.202652 -0.102174 1.528795 1.592171 1.761066 0.064309 1.813959 0.142670 0.128244 -0.046479 1.652243 1.436357 1.126184)
+ 13.011708 #(0.000000 1.654368 0.721386 0.881770 1.678631 1.246287 1.954370 1.117524 1.049359 1.821860 1.159273 1.330212 0.956121 1.669731 1.779165 0.928912 1.052879 1.396846 1.799666 -0.026073 1.770363 1.334860 1.622629 0.627669 0.872398 0.555572 1.745054 1.417163 1.622532 1.287768 0.790772 0.228944 0.261481 0.691794 0.367932 1.296541 1.794633 1.774801 0.649458 0.639680 -0.308420 0.064811 0.573057 0.663668 0.794098 0.087575 1.575774 1.174741 0.022096 0.804518 0.861807 0.528511 0.602634 -1.666337 0.907502 1.350409 0.491259 0.568720 1.447149 1.473819 0.485750 0.415904 1.768634 0.066881 -0.112940 1.447901 1.242759 1.665913 0.721532 1.434181 0.373125 1.664076 0.600200 0.773137 0.451721 1.134488 1.416125 0.850300 1.586521 0.622542 0.007845 1.112759 1.957516 0.307926 0.437152 0.594373 0.735481 0.879954 1.305285 -0.014146 0.342071)
)
;;; 92 prime --------------------------------------------------------------------------------
@@ -3228,7 +3361,7 @@
14.939027786255 #(0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0)
14.556435035882 #(0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0)
- 13.117328 #(0.000000 1.244324 1.312260 1.339848 1.672745 1.246598 0.381591 0.186252 1.441525 0.493286 1.669031 0.474912 1.027945 0.998953 1.478314 0.215365 0.533277 -0.450783 -0.011408 0.294891 1.690675 0.480374 0.308771 1.224192 1.689629 0.862081 -0.347204 0.944073 1.400387 0.501625 0.693995 0.783721 0.993110 1.737430 1.134550 1.812857 0.110104 1.078020 0.819222 1.358745 0.489462 0.199809 0.544701 0.164967 1.455326 1.055888 0.895053 1.804617 0.710223 1.080271 1.756378 0.906271 1.564811 1.712492 1.264197 0.172782 1.187938 0.104486 0.147520 0.644247 0.300570 1.131779 1.257308 1.414364 0.942673 1.256135 0.152111 1.439435 1.111078 1.553559 0.649871 1.679833 1.099617 -0.028693 1.512561 1.317931 0.867777 1.726587 0.969888 1.924846 -0.222534 1.264266 1.340023 1.486541 0.549763 0.687920 0.667912 0.653486 0.186366 0.982305 0.643322 1.122331)
+ 13.108861 #(0.000000 1.243007 1.313229 1.337865 1.673540 1.246884 0.381330 0.187843 1.442544 0.494854 1.668805 0.476930 1.028540 1.000909 1.477318 0.214706 0.532786 -0.452166 -0.013047 0.296030 1.689737 0.478125 0.309996 1.224731 1.690498 0.863358 -0.346338 0.944734 1.398653 0.501859 0.694954 0.783014 0.990800 1.738620 1.133773 1.813483 0.108703 1.077017 0.818476 1.358584 0.490943 0.199982 0.543310 0.164343 1.455859 1.056150 0.895266 1.807315 0.710778 1.081712 1.755515 0.904613 1.565441 1.714224 1.266019 0.172876 1.188097 0.104573 0.149325 0.644330 0.300365 1.132474 1.258322 1.414984 0.943533 1.256939 0.152799 1.439012 1.108868 1.552931 0.650864 1.678979 1.098795 -0.027826 1.513947 1.318686 0.867762 1.726108 0.968690 1.924834 -0.224070 1.264622 1.341739 1.486837 0.552136 0.686208 0.669058 0.654809 0.186404 0.981938 0.645983 1.122993)
)
;;; 93 prime --------------------------------------------------------------------------------
@@ -3236,7 +3369,7 @@
15.072628413546 #(0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1)
14.994668960571 #(0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1)
- 13.338548 #(0.000000 0.280916 1.374624 0.143450 1.253530 -0.039385 0.185001 1.276221 1.045344 1.430224 -0.348036 0.045347 1.686753 0.003937 1.866244 0.000148 0.141851 1.769078 -0.035353 1.192290 1.469562 1.328312 0.612013 1.124356 0.755122 1.740697 0.063807 0.524581 0.861976 0.246526 1.769078 1.334432 0.465244 1.902367 1.619122 1.287837 0.882415 -0.040733 1.879918 1.743561 0.927337 1.125359 0.020741 0.525299 1.714695 0.420103 1.090810 -0.188426 0.467282 1.566813 0.521351 0.229430 1.123469 1.412190 1.064615 1.198187 1.302881 0.195311 0.355867 0.315416 0.805626 0.438464 0.849833 0.378148 0.385450 0.715042 1.350930 1.231390 1.247093 0.653942 1.820135 1.721052 0.398994 -0.098755 0.345776 0.526476 0.263785 0.705204 0.164284 1.486983 0.087854 1.062426 1.665734 0.445508 0.295801 0.020226 1.531062 0.601656 0.062725 1.189892 1.513781 0.184843 1.409363)
+ 13.255689 #(0.000000 0.278457 1.365323 0.140772 1.254488 -0.040257 0.182176 1.282214 1.035884 1.432861 -0.353305 0.043904 1.686231 -0.003789 1.857757 0.002206 0.146246 1.761838 -0.028980 1.189273 1.470954 1.322506 0.609882 1.117913 0.761215 1.736370 0.069246 0.525778 0.854129 0.241248 1.769645 1.337125 0.469777 1.908976 1.619864 1.287504 0.889268 -0.042134 1.881959 1.760449 0.932485 1.132573 0.025868 0.517288 1.722017 0.419654 1.093305 -0.188263 0.473912 1.561557 0.525112 0.227822 1.123952 1.410791 1.075436 1.202958 1.299787 0.198821 0.353545 0.320915 0.809575 0.439111 0.852596 0.385230 0.391816 0.715616 1.363489 1.235724 1.245973 0.651216 1.830463 1.728765 0.411332 -0.105063 0.348554 0.531055 0.253865 0.709039 0.158738 1.478896 0.088669 1.059939 1.672423 0.446590 0.309151 0.016987 1.533981 0.599850 0.054159 1.197912 1.508946 0.175459 1.407454)
)
;;; 94 prime --------------------------------------------------------------------------------
@@ -3244,7 +3377,7 @@
15.438541412354 #(0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0)
14.811392756555 #(0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0)
- 13.533576 #(0.000000 1.755867 0.992934 0.469487 0.955210 0.216767 1.667164 0.997878 0.763644 0.321139 0.583552 0.949056 1.096148 0.521771 0.826474 1.790886 0.847404 0.920989 0.511727 1.381687 0.766807 1.216887 1.581933 0.349292 0.990579 1.098086 0.207099 0.571614 1.633379 1.365731 1.692950 1.060318 1.624678 1.545123 0.295767 1.955177 0.838442 0.309013 1.395272 0.978207 0.723716 0.821047 1.699053 1.667670 1.812385 1.142914 1.783344 0.439038 1.338741 0.732776 0.611807 1.777762 0.006629 1.184428 0.156917 1.395766 0.737620 1.354248 1.585375 0.401540 1.441064 0.623681 0.669481 1.681961 1.969794 0.642766 1.503559 1.899088 1.072109 1.821063 1.688307 1.712691 1.194827 0.769129 1.647717 1.647566 1.112469 1.186923 1.022515 0.956733 0.859265 1.575934 1.595823 1.304543 0.395934 -0.408787 1.169652 1.507580 0.272462 0.593160 0.589662 1.287797 0.902819 1.122827)
+ 13.366475 #(0.000000 0.415672 0.980875 0.544104 0.617230 0.246685 0.118415 1.536736 1.351230 0.900185 0.214328 -0.143707 0.578337 1.484379 0.521506 1.169376 0.797046 1.067955 1.002244 0.182614 0.006376 0.388371 1.441817 1.361397 1.526017 0.002044 0.079310 1.106067 1.470817 1.732767 0.461361 1.762313 0.684868 1.178351 0.545476 1.744247 -0.130302 0.826492 1.660158 0.621414 0.703556 1.095813 0.166153 0.287580 1.503991 1.656354 1.625364 1.263878 1.446928 0.003016 0.854038 0.921272 0.074817 0.572251 0.694519 1.399481 1.631237 1.286538 1.289871 0.909119 1.661463 1.258851 0.130576 0.023982 1.516513 0.605428 0.810103 0.491157 0.610558 0.309308 1.730523 0.438840 0.914750 0.738130 1.032205 0.154829 0.523697 0.741402 1.527563 0.442547 1.191142 0.960503 1.791222 0.246914 0.413698 1.125839 1.307812 0.681498 0.271053 1.074021 0.020652 1.060996 0.719962 1.276626)
)
;;; 95 prime --------------------------------------------------------------------------------
@@ -3252,7 +3385,7 @@
15.613794808095 #(0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0)
15.240 #(0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1)
- 13.728977 #(0.000000 1.483272 1.426765 0.096439 1.065022 0.126776 1.002264 -0.081334 1.375604 1.401963 1.660549 0.142978 1.328029 1.816689 1.194616 0.474120 0.138723 0.032149 0.701591 0.947357 1.889811 0.777367 1.353335 1.903274 0.352999 0.793874 0.115766 1.365279 1.011116 1.027889 1.596147 -0.019572 0.861090 0.492359 1.750342 0.950183 0.671236 0.319537 1.452415 1.016673 1.169588 0.124638 0.854846 1.949921 1.388007 0.645190 0.615912 1.475541 0.402991 0.693813 1.489180 0.079037 0.261927 -0.039107 0.158174 1.291977 1.348372 0.338589 0.198770 0.276921 0.585074 0.357806 0.524361 1.690223 1.754893 0.431532 1.746785 0.369725 1.051733 1.274289 1.408783 0.217310 1.020495 0.970238 1.721258 0.371553 1.172733 0.028253 0.590859 0.417705 1.399837 0.229012 1.556979 1.523641 1.272790 1.323401 0.551519 0.202318 0.512004 1.355288 0.417777 1.189753 0.182562 1.924779 1.308978)
+ 13.661656 #(0.000000 0.489810 0.973068 0.354385 1.260128 1.496597 1.666508 1.491678 1.317221 0.279717 1.214898 -0.198746 1.054618 1.052564 0.881472 1.014637 0.872287 1.625973 1.700397 1.499853 1.097055 0.341863 1.214765 0.090743 0.279420 0.844161 0.228862 0.573339 1.110434 0.357945 0.057446 0.319392 0.519489 0.753751 0.763178 0.317479 1.207890 1.000407 0.629691 0.218212 1.466417 1.781086 1.698598 0.576384 0.408704 0.190930 1.432595 0.228098 0.424466 1.614069 0.481908 0.196452 0.147134 1.112816 1.610358 0.113060 0.871803 0.830741 0.797736 1.416616 0.863706 0.641875 0.573968 0.214155 1.242294 0.391358 1.917176 1.762177 -0.000126 0.596757 -0.200600 0.447195 1.488220 1.184619 1.753360 1.444159 0.486385 0.114316 0.001301 1.920103 0.423652 0.842335 0.564436 1.939101 0.415956 1.376373 0.556022 1.183370 0.241504 0.981332 0.098572 0.450962 -0.211538 1.681984 0.861212)
)
;;; 96 prime --------------------------------------------------------------------------------
@@ -3261,7 +3394,7 @@
15.281 #(0 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0)
15.135 #(0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0)
- 13.581247 #(0.000000 1.145320 1.283166 1.399413 1.729164 0.011274 1.332208 1.741830 0.796555 0.884602 0.326374 0.898087 0.232072 0.672377 0.039875 1.147249 1.290820 0.948400 0.156088 0.424167 0.215355 1.274894 1.835552 0.554659 1.170970 0.974744 0.232009 0.672106 1.032764 0.523741 0.107410 0.994429 1.095542 1.559264 -0.127056 0.456986 1.252210 1.339658 0.643160 1.494258 0.237410 -0.101596 0.216987 0.881112 1.778474 1.151404 0.528166 0.141641 -0.000499 0.880863 1.801934 -0.126042 0.470523 0.183269 1.909107 0.077466 0.352673 1.598552 1.429129 1.444914 1.008690 0.837440 1.144712 1.019827 1.220995 1.755922 1.134559 1.095770 1.226986 1.470768 -0.024496 0.731281 1.413201 1.471448 0.665702 1.864418 1.184060 1.022990 0.666941 1.336667 0.109823 1.489188 0.654723 1.491443 1.337847 1.764427 1.311680 0.798790 0.049146 -0.123237 1.409070 1.390977 1.971392 1.190407 0.233509 0.732569)
+ 13.575838 #(0.000000 1.145330 1.283097 1.400139 1.729045 0.012208 1.330905 1.741431 0.796723 0.884322 0.325701 0.898093 0.231415 0.671880 0.040621 1.147776 1.291615 0.949435 0.155940 0.424073 0.215066 1.274053 1.834780 0.554023 1.172005 0.974705 0.232960 0.672401 1.033221 0.523220 0.107260 0.993639 1.096335 1.560096 -0.127448 0.456769 1.252358 1.340327 0.642230 1.494159 0.237626 -0.101811 0.217127 0.880690 1.777590 1.150203 0.528805 0.143253 0.000616 0.880618 1.801429 -0.125188 0.470157 0.181805 1.908756 0.077441 0.352566 1.599502 1.429175 1.444514 1.008276 0.836817 1.144794 1.018507 1.220951 1.754763 1.134452 1.094757 1.228623 1.470155 -0.024643 0.730873 1.412848 1.471091 0.666358 1.863641 1.183968 1.023419 0.666301 1.335020 0.109482 1.488491 0.655494 1.492357 1.337993 1.763330 1.311209 0.800288 0.049105 -0.123256 1.409361 1.390902 1.970788 1.190384 0.232873 0.733629)
)
;;; 97 prime --------------------------------------------------------------------------------
@@ -3270,7 +3403,7 @@
15.685384750366 #(0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1)
15.404807595571 #(0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1)
- 13.734965 #(0.000000 1.204889 0.162096 0.470308 0.226189 0.935731 0.148360 0.358831 1.939844 0.667207 1.141180 0.502512 0.533984 0.648264 1.735702 1.204247 1.620499 0.335033 1.446957 1.578287 0.603998 1.099918 0.200560 0.176955 0.816363 0.785865 0.476186 1.477527 0.536112 1.445587 1.106550 0.778230 0.995234 -0.017120 1.659820 1.736901 1.465499 1.513823 0.306713 1.280856 1.548116 -0.233508 0.349975 0.104748 0.836257 1.049235 1.798525 1.842904 0.595316 0.569454 0.390603 0.427280 1.295103 0.429541 -0.001929 -0.019605 -0.073115 1.168911 1.405882 0.861903 1.822687 0.542069 1.775117 1.341579 0.576768 1.610768 0.118074 0.314081 0.983884 0.388844 0.516047 -0.025692 1.495687 0.932109 -0.001910 1.614884 0.716566 0.176150 0.035776 0.321803 1.246369 -0.120230 0.438325 1.557920 0.094238 1.337871 1.526280 0.554217 1.683611 0.880535 0.943176 -0.171584 0.343571 1.392444 0.879759 0.835219 0.979073)
+ 13.730655 #(0.000000 1.203347 0.161575 0.469484 0.224844 0.934601 0.148052 0.360374 1.939348 0.666887 1.142595 0.502115 0.533157 0.647743 1.734199 1.205084 1.620600 0.336202 1.447985 1.579412 0.603460 1.100355 0.200033 0.176444 0.816195 0.785842 0.476905 1.477281 0.535310 1.444910 1.106936 0.778256 0.994907 -0.016944 1.659609 1.735742 1.465796 1.514923 0.306639 1.281728 1.549419 -0.234050 0.350835 0.103811 0.837468 1.049704 1.799403 1.842979 0.595462 0.568705 0.390400 0.427182 1.295829 0.429277 -0.003135 -0.021056 -0.073191 1.169237 1.405015 0.862539 1.821944 0.542235 1.775283 1.340384 0.577464 1.610675 0.117059 0.312897 0.983533 0.387686 0.516142 -0.024508 1.496101 0.932388 -0.002428 1.615141 0.718034 0.175179 0.037242 0.321396 1.246330 -0.121332 0.437009 1.558439 0.095040 1.337900 1.527898 0.554959 1.683314 0.880538 0.943179 -0.171692 0.343130 1.392987 0.880277 0.836090 0.978610)
)
;;; 98 prime --------------------------------------------------------------------------------
@@ -3278,14 +3411,14 @@
15.695913722267 #(0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0)
15.435913738557 #(0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0)
- 14.006824 #(0.000000 1.414999 1.771441 1.186763 1.563298 0.314046 0.628481 1.553765 1.188685 0.056545 0.616970 1.217906 1.956600 0.413319 0.186648 1.171875 1.738203 0.920689 0.922420 0.909808 0.732907 0.950992 0.775534 0.199097 0.706649 0.720314 1.106813 0.181384 0.636241 1.305619 1.379035 0.579320 0.499481 1.677865 0.315916 1.102307 1.420845 1.690977 1.003600 0.670749 -0.278084 1.392592 1.174426 0.238334 1.023828 0.412352 -0.141515 0.396494 0.147253 1.010057 1.781111 1.268431 1.078368 0.756820 1.064555 1.907604 1.443130 1.774763 1.167762 -0.070337 0.361417 0.159009 1.017486 1.089196 0.888376 1.231398 0.887987 1.783992 0.666547 0.476151 1.440824 0.290251 1.312038 1.837357 1.178620 0.430556 0.418554 -0.079114 1.759877 0.058174 0.918778 1.373939 1.523803 0.474225 0.512600 1.642070 0.459705 1.170161 1.501890 0.443912 1.679706 0.222420 0.072330 1.376361 -0.039666 1.731863 0.801464 0.749177)
+ 13.883886 #(0.000000 0.711553 0.383242 1.889647 1.021709 1.265956 1.616776 1.213531 0.449991 0.533561 1.376197 1.296256 0.489223 0.118703 1.522078 1.095180 1.573754 -0.043781 0.702122 1.033748 0.385411 1.362147 0.026329 1.885701 0.680260 0.632397 1.751357 0.301125 0.804308 1.665805 0.264397 1.501955 1.251078 1.092354 1.954638 1.297341 0.826306 1.524071 0.643720 1.851482 1.217229 1.400471 0.770414 1.715410 1.538540 0.650710 0.606973 0.392989 0.182684 1.290943 1.654879 1.541518 0.558493 1.445226 0.051826 0.470140 0.835188 0.768752 0.657422 0.449927 1.402967 0.329165 1.579877 0.263200 1.865396 0.763565 0.916539 1.632604 1.526440 1.206136 0.627538 0.335091 0.976925 1.027395 0.095088 0.031759 -0.269495 1.186832 1.547667 0.551210 1.637871 1.922825 -0.007929 0.052965 1.801425 1.212017 1.448339 1.921517 1.879043 1.198692 1.738549 1.356749 1.336618 1.885300 -0.128505 0.509078 -0.166663 0.709593)
)
;;; 99 prime --------------------------------------------------------------------------------
#(99 16.0734 #(0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0)
15.391923904419 #(0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0)
- 14.111692 #(0.000000 0.764028 0.617875 0.791469 1.362368 1.635799 0.466179 0.726724 1.570723 1.127219 1.446017 0.685874 1.158136 0.698645 1.410183 1.506228 1.687986 1.595696 1.546129 0.233992 1.860877 1.595070 1.257392 0.479897 0.541478 0.657864 1.470403 1.371178 0.114283 1.792589 0.190280 0.727010 0.287629 0.141243 1.221045 1.379290 0.448680 0.233697 0.001744 1.582800 0.560528 1.678726 0.612644 0.411984 1.553577 1.725717 1.405164 1.654259 1.179457 1.667800 1.737280 1.163388 0.801867 0.940688 0.501726 1.884230 0.424858 1.323639 1.175572 0.844193 0.724387 0.616208 1.233484 0.218357 0.904253 0.278560 1.829580 1.876609 1.418031 0.945082 1.015253 0.590676 1.034923 0.349400 0.259879 0.984631 0.452670 0.451282 0.385872 1.855931 0.088947 0.324879 1.277596 0.374589 1.768571 0.485775 0.617747 -0.043123 0.493626 -0.254312 1.200576 0.657850 0.535288 0.039959 0.468992 0.971351 -0.032720 0.961649 1.152984)
+ 14.050489 #(0.000000 1.543611 0.703528 0.638617 1.747527 1.564330 0.416799 0.037985 1.138913 0.674920 1.117145 0.388682 0.662956 0.819577 0.785832 1.442802 0.584814 1.277872 1.708438 1.525178 1.187341 0.758232 1.216045 1.092326 0.848085 1.872216 0.046116 0.763932 1.225666 1.043579 1.243981 1.585858 0.333864 -0.014773 0.730490 0.833676 0.928831 0.964802 0.882589 1.013880 0.029785 1.539395 0.667681 0.803389 1.440473 1.524327 1.231740 0.734152 0.500589 -0.011928 1.654107 0.655443 0.448475 1.123634 0.811348 -0.059232 1.043667 0.509839 0.948532 0.016886 0.471424 0.352704 0.919433 0.628870 1.938645 1.820540 0.405728 -0.279208 -0.220560 0.539771 1.635668 0.251563 1.089842 0.758244 1.070885 0.079250 1.248630 1.077488 1.553214 0.895319 0.084428 0.349554 1.287461 0.441767 0.389266 1.127237 0.063844 0.562887 0.606369 -0.040592 1.163200 1.771625 0.486698 1.568648 0.833843 1.626126 0.861851 0.460495 1.338529)
)
;;; 100 prime --------------------------------------------------------------------------------
@@ -3293,7 +3426,7 @@
15.909478013087 #(0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0)
15.637986183167 #(0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1)
- 14.172360 #(0.000000 1.243439 1.387684 1.468811 1.586531 0.495888 1.457719 0.936714 1.066948 0.607227 0.266710 1.541131 1.237198 0.880602 0.405867 1.609504 0.531480 -0.153451 1.196166 -0.024780 1.156949 0.513697 0.348871 0.758540 0.490950 -0.257131 0.039119 0.317975 1.412433 0.595192 0.767155 1.175904 -0.033690 1.435135 1.289511 1.983193 1.238146 1.373270 1.269121 0.239454 0.272951 0.304776 0.351704 1.094236 1.410566 1.048496 -0.032163 0.884386 1.221583 0.207458 1.453069 1.486947 0.711773 -0.077997 0.691747 1.013945 0.912570 1.881937 1.765122 1.135452 1.652507 1.960782 -0.205285 1.326895 1.627057 1.114479 1.838895 1.151494 0.635060 1.031002 0.114782 1.607880 0.260440 1.586398 1.213156 1.885509 1.038458 1.247980 -0.066117 0.065941 1.440235 0.670451 1.166307 0.589852 1.144469 1.562319 0.529078 0.797418 1.592123 1.836673 1.056287 0.954559 1.864412 1.730311 0.598016 0.574252 0.701828 0.218735 1.479079 1.273831)
+ 14.002412 #(0.000000 1.256653 1.362663 1.473590 1.595231 0.485974 1.448948 0.924036 1.062715 0.605104 0.257844 1.534823 1.246404 0.890429 0.409500 1.596825 0.512990 -0.169593 1.201596 -0.005623 1.150620 0.512530 0.347794 0.750875 0.507617 -0.276273 0.044508 0.316696 1.409930 0.587875 0.787904 1.181345 -0.022933 1.434672 1.289880 1.997947 1.228887 1.382534 1.248094 0.222017 0.238285 0.299695 0.368945 1.085299 1.439469 1.039329 -0.015874 0.893404 1.224791 0.206816 1.464403 1.515182 0.724083 -0.090915 0.679300 1.035196 0.901503 1.886587 1.776616 1.158610 1.650218 1.976942 -0.207631 1.323427 1.635211 1.127411 1.827732 1.166524 0.615822 1.047210 0.121697 1.632859 0.277622 1.584058 1.245159 1.888559 1.032659 1.238024 -0.081194 0.048707 1.426913 0.669027 1.161202 0.600583 1.157255 1.557904 0.513885 0.790276 1.589115 1.834860 1.038888 0.961422 1.863344 1.716525 0.609230 0.559110 0.684747 0.207299 1.487019 1.281561)
)
;;; 101 prime --------------------------------------------------------------------------------
@@ -3302,21 +3435,21 @@
;15.594883219789 #(0 1/2 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0)
15.735968313601 #(0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1)
- 14.179111 #(0.000000 -0.043911 0.321557 0.553464 1.135998 0.705432 0.674318 0.585117 1.455887 0.145206 -0.042336 0.880925 1.814223 1.722134 0.809874 0.179307 0.745274 0.609035 0.404867 1.002229 0.890668 0.136933 0.622906 1.919840 1.697168 1.402357 0.515927 0.199785 0.460565 1.407276 0.776980 1.252503 1.528334 0.254869 0.179333 1.448231 1.332669 -0.003640 0.304287 0.165547 0.456393 0.470015 0.353615 0.059315 0.647300 -0.011421 1.750843 0.880311 0.091664 1.773897 1.682458 1.004672 1.547569 1.320764 1.222895 1.652813 0.130021 1.826703 0.604142 1.210417 1.590950 1.837201 1.488016 0.295326 0.513611 -0.086839 0.369867 1.089183 -0.141041 0.207014 0.864827 1.518433 0.732680 0.545172 0.861609 1.332164 0.404898 0.174125 0.650268 0.345187 -0.011947 0.712487 1.802776 0.073906 0.368396 0.186322 0.986992 0.425941 1.588661 1.627971 0.902115 1.330361 1.388473 -0.166795 1.191139 0.311443 0.350614 1.483248 0.485989 0.750178 1.124070)
+ 14.040569 #(0.000000 0.577519 1.854665 1.532685 0.979289 0.058238 0.459093 1.545420 0.295336 0.107775 0.452294 1.370090 0.435708 1.922843 1.198961 1.463686 -0.136343 1.539762 0.571081 1.161864 0.683643 1.274928 0.224229 1.301314 1.924628 0.156612 0.402509 0.748066 -0.220815 0.119993 1.902660 1.441187 1.057216 1.105630 0.585295 1.054712 0.910817 0.127937 0.528500 0.092093 1.704506 0.190195 1.310130 0.984829 0.501491 0.553195 0.261279 1.465992 1.406337 1.040087 0.507322 1.642878 0.197535 1.389268 -0.076053 0.875653 0.197439 0.079126 0.587253 1.001471 0.848286 0.056704 1.184465 0.046151 0.633770 -0.002533 0.773212 -0.025300 0.917608 1.038205 1.362525 -0.085360 1.222037 0.074895 1.567619 0.827945 1.005208 1.280542 0.696962 1.471737 0.775768 0.221926 0.495267 1.190052 0.542810 0.840307 0.223592 0.398466 1.084527 0.640099 0.399987 0.362636 0.847244 0.312265 0.040691 0.198833 1.121826 1.121318 0.090500 0.414293 0.773925)
)
;;; 102 prime --------------------------------------------------------------------------------
#(102 16.342473246951 #(0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1)
15.374809992584 #(0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1)
- 14.523527 #(0.000000 0.240431 0.509811 0.387886 1.003900 0.375527 0.785818 0.723477 1.573305 0.958524 -0.172437 1.253958 0.369322 1.668547 0.055316 0.182440 1.525350 1.623073 1.153424 1.370743 0.152890 1.368860 0.508013 0.219848 0.279027 1.256107 1.710011 -0.172815 -0.251876 0.725285 1.443402 0.556347 0.002574 0.702143 0.293273 0.532609 1.787179 0.353919 0.663736 1.610737 0.850179 -0.036793 1.871249 1.075564 1.389535 1.894580 1.212917 0.435825 0.610140 0.342711 1.716427 0.480279 0.465301 -0.085584 0.287602 0.695486 1.231956 1.290421 0.221427 0.287781 0.874011 0.466765 0.181741 0.362360 -0.148196 0.216310 1.786514 0.960521 0.308966 0.309758 0.922538 1.353203 0.842859 1.466594 0.385246 0.896370 1.711073 0.752017 1.544828 0.271389 1.735100 1.750534 1.868449 0.508991 1.887510 1.416437 1.371635 0.943746 0.294417 0.678976 1.233786 1.695497 0.808309 0.343930 0.329079 1.307681 1.191227 0.450846 1.160024 1.669053 1.120297 0.870039)
+ 14.250669 #(0.000000 0.352114 1.341167 0.052218 0.429463 1.570346 0.308311 0.661694 0.894451 1.451013 1.622148 0.030847 1.739372 -0.114487 0.358586 1.173849 1.481796 0.171998 0.559143 1.284007 1.052596 1.949163 1.565518 -1.767913 1.290270 1.167943 0.823382 1.679270 0.011878 1.769068 1.245713 1.387335 0.749592 1.527214 0.346528 1.131487 0.837218 0.193640 0.321548 0.811837 0.570646 0.310673 1.517668 0.805792 1.366652 1.516603 1.488734 0.635922 0.509674 0.860491 1.255465 1.502731 1.565634 1.240160 0.261902 1.740528 1.005637 1.696061 1.551236 1.019221 1.353626 1.006277 1.643199 1.231794 1.660500 1.035823 1.472483 0.029209 0.976929 0.756754 0.521466 1.675260 0.410999 1.344006 0.751637 1.434600 1.380715 0.300090 -0.108673 1.545738 -1.998411 0.522495 0.810557 0.503050 1.714972 0.561814 0.695936 0.517631 0.315910 1.377112 0.830965 1.499712 1.893622 1.351348 1.265617 0.059428 1.237684 0.347352 1.370718 0.703584 -0.118165 1.955200)
)
;;; 103 prime --------------------------------------------------------------------------------
#(103 16.7018587939366 #(0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1)
16.296298498866 #(0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1)
- 14.788474 #(0.000000 0.627107 0.240881 0.135022 0.415692 1.847302 0.822273 1.370656 1.790347 0.038307 1.191124 0.509985 -0.076964 0.740478 1.657309 0.446786 1.820455 0.535662 0.250949 0.542433 0.202798 0.317275 0.988889 0.529065 0.978084 0.784004 0.887137 0.180790 0.641177 0.715586 1.000547 1.668718 0.832013 1.155534 0.601386 1.844004 1.204427 1.823430 1.204916 1.238708 0.134724 0.507295 0.722334 0.952499 1.671875 1.624718 0.701487 1.057515 0.313079 0.808699 1.861685 0.792575 1.433708 1.031838 0.930425 1.880884 1.504997 1.653398 0.283129 1.780290 0.446422 -0.055122 1.384231 1.002593 -0.052967 0.672282 0.352566 0.705178 1.673571 1.323086 0.708344 1.622178 0.052522 0.497668 0.742369 0.271715 1.290877 0.254154 1.492086 -0.089742 1.950552 -0.163240 1.552381 0.882353 1.332204 1.450212 0.820114 0.917735 1.278518 1.089556 1.766424 1.527401 0.362559 1.377832 0.995966 0.088695 0.736594 0.493001 0.767653 1.087606 0.800117 0.242972 0.481475)
+ 14.383287 #(0.000000 0.274113 0.455502 0.288605 0.721951 0.489416 1.540926 1.535320 0.609731 1.596000 0.518007 0.673139 0.321993 0.056009 0.054017 1.629766 0.781607 0.063356 1.613268 0.184331 0.969015 1.161798 -0.066849 0.500322 0.911137 0.139916 0.889463 0.157680 1.380937 1.376678 1.299693 0.559134 0.098556 1.415706 0.529740 1.097133 0.426216 0.191880 1.870999 0.634119 0.039605 1.601204 1.840561 0.630651 0.051374 1.076807 0.292162 0.865778 0.115292 0.746020 0.514438 0.609818 0.810281 1.827987 1.640469 1.234046 1.317550 1.733160 0.262902 1.948992 0.882541 0.051331 0.618536 0.375497 1.372014 1.457061 0.225147 0.812012 1.333823 0.272105 1.008858 -0.144457 1.804408 1.587420 0.579213 1.324303 1.607022 0.566371 1.044276 0.784119 1.697600 1.412274 0.863758 0.605471 1.130970 0.786327 1.176125 0.925864 0.264273 0.483798 1.588133 1.821063 0.827443 1.645570 0.570427 1.299910 0.246216 1.241572 1.603559 1.193118 0.595268 0.354542 0.938643)
)
;;; 104 prime --------------------------------------------------------------------------------
@@ -3324,21 +3457,21 @@
16.473171464163 #(0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0)
15.919013023376 #(0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1)
- 14.975360 #(0.000000 0.169454 0.906170 1.056665 0.689448 0.285123 -0.270427 0.450610 1.341251 0.668541 1.231194 0.367363 0.192402 0.858950 0.155748 0.412675 1.469161 0.624793 0.740371 0.471435 1.021758 0.892514 0.826814 0.242372 1.735606 1.516631 1.739944 1.142263 0.581956 0.179404 1.340689 1.497007 1.139401 1.673609 1.876985 1.233857 0.924814 0.587546 1.576500 1.859967 1.836673 0.363100 0.127576 1.068611 0.610226 0.440723 0.604058 -0.219449 1.084410 0.004782 1.690755 1.267027 1.208823 1.164023 1.544270 0.359560 1.005364 0.064515 0.874701 1.166509 1.871898 0.801801 1.570719 1.190342 1.866786 0.166354 0.595559 0.695908 0.051858 0.030049 0.898019 0.302409 -0.315083 0.538996 1.074397 1.041552 1.444051 1.589538 0.171221 1.027470 1.713552 0.205358 0.763294 0.466970 0.123605 0.686577 1.100231 0.131250 0.346099 0.360244 0.286976 1.438559 0.017161 0.418835 0.178995 0.765027 1.293639 0.372848 1.809727 0.228238 0.274930 1.560759 1.211758 0.893107)
+ 14.462217 #(0.000000 0.184400 0.972027 -0.048262 -0.248377 1.606238 0.174924 1.287636 1.284493 1.082602 1.185148 0.255799 1.920926 1.486063 0.824238 1.328093 1.140014 1.023849 0.936295 0.331171 0.050842 1.796791 0.373754 0.190720 0.772968 0.902032 0.509311 1.263609 0.452655 0.805215 0.666940 0.166230 0.731936 1.590929 1.353127 1.388409 1.467989 1.302840 0.627828 1.381944 0.814561 0.804380 1.586160 0.727511 0.507465 1.417281 1.015315 1.232031 1.638009 0.148593 1.820997 1.759071 1.530642 0.846638 1.002321 0.721357 1.808852 0.341237 1.880623 1.304292 -0.115041 0.289553 1.276707 1.309295 1.529269 -0.138142 1.692720 1.360704 1.122564 -0.065364 1.484409 0.170222 0.839982 0.311316 0.801065 1.444322 1.819209 -0.243262 0.128617 1.421854 1.382445 0.858273 0.282217 0.626784 1.415687 1.542699 0.231439 1.362841 1.074055 1.107052 0.015933 0.342519 0.750708 0.127843 0.226976 1.241446 0.330320 0.744411 1.295498 0.844922 1.419834 0.768152 1.276729 -0.049282)
)
;;; 105 prime --------------------------------------------------------------------------------
#(105 17.115185731735 #(0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1)
16.038356734428 #(0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0)
- 15.159021 #(0.000000 -0.020998 1.597443 0.106386 0.975525 1.601365 1.447346 1.033248 1.524506 0.569367 1.018507 0.811567 1.202003 0.639250 1.090872 0.336546 0.068801 0.439235 -0.035588 0.837874 1.672431 1.609115 1.194052 1.535715 0.855477 1.692036 0.471426 -0.107245 0.075137 0.117202 1.854814 0.667969 1.872890 0.705611 0.957169 0.874710 1.214051 1.330431 0.171786 0.629550 1.229489 1.337239 1.187845 0.508801 1.669243 0.079031 1.478875 0.552290 0.126040 1.389156 0.072191 0.353026 0.795017 1.075014 0.393591 0.901631 -0.052222 0.304081 1.681389 0.973482 0.283111 0.557910 -0.072598 1.163122 1.845746 1.204776 0.436146 1.364548 0.758691 0.859218 0.245396 0.456582 1.579575 1.083187 1.329819 1.317829 1.818753 0.263995 1.251428 -0.057377 1.768649 1.434572 0.602769 0.764229 0.671651 -0.008953 1.577452 0.761455 0.391607 0.327081 0.502069 0.233135 0.472186 0.468969 1.161986 1.037334 0.625763 1.423502 0.491173 0.324325 0.643547 -0.014978 0.613029 1.016077 1.458000)
+ 14.657216 #(0.000000 -0.054397 0.349988 0.145882 0.194170 1.393811 0.646673 0.600485 1.941490 0.894229 0.317075 1.684176 0.685834 0.565385 1.733713 1.728532 1.374410 0.098123 1.607632 0.126007 1.063972 -0.116978 1.491203 1.149374 1.312246 0.222419 1.483802 1.371247 1.183769 1.574035 1.784911 1.288159 0.258398 0.085051 0.685680 1.438958 1.236322 1.561677 0.813326 1.177967 0.417050 0.091699 -0.017069 0.348013 1.453533 1.697068 1.517496 0.312183 -0.056139 0.435878 1.278716 1.280872 0.054718 0.746397 1.538366 -0.130378 1.446856 1.778208 0.681314 0.753731 1.778505 0.382849 0.197429 1.612970 1.060421 0.773380 -0.009813 0.079701 1.003943 1.901776 0.906726 1.422433 1.337479 -0.064470 1.146166 0.051160 1.811129 0.669278 1.521856 0.436891 0.650410 0.800210 1.100606 0.508123 1.468055 1.781080 1.135368 1.487805 1.487236 1.717072 1.267043 -0.080995 0.001501 1.112392 1.412994 0.030544 1.009569 1.792692 0.454764 0.984145 0.094418 1.823057 0.525108 1.343336 1.786438)
)
;;; 106 prime --------------------------------------------------------------------------------
#(106 16.130035426315 #(0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1)
15.730461834714 #(0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1)
- 15.168177 #(0.000000 0.033637 1.250401 -0.200995 0.225782 0.641187 1.987586 0.240224 0.037054 -0.493517 0.343805 0.591753 0.860632 1.897520 0.805762 1.758805 0.612392 1.790493 0.642814 0.549438 0.153812 0.030109 1.026942 0.982858 -0.098143 1.482227 0.867513 1.632139 0.531275 0.421432 1.331261 0.417939 0.329775 -0.075678 0.934914 1.496599 0.002103 0.156127 1.229187 0.458712 1.611577 -0.086851 0.324278 0.660617 0.988787 0.931575 0.295853 1.301899 0.736845 0.518587 -0.429479 0.381509 0.196569 0.706676 0.803629 0.685463 1.129352 1.760785 0.884871 0.230781 1.098212 0.782047 -0.137299 -0.379509 1.008306 0.550796 1.005996 1.225658 1.516441 0.736070 0.573438 -0.133089 1.555052 1.385760 1.434804 1.363174 0.297945 1.248307 1.491466 0.091109 1.522863 0.193179 1.163040 0.072511 0.766933 1.703627 0.030276 0.924889 0.229147 1.507748 1.568033 1.762495 1.641875 0.858544 1.512547 0.946695 0.898985 1.332145 0.528166 1.494725 0.593254 1.642299 1.071366 0.671376 0.261614 0.763188)
+ 14.944502 #(0.000000 1.169392 1.738346 0.897998 -0.217852 0.891170 1.978395 1.616453 0.650906 0.489028 0.508928 0.493082 1.316951 1.695542 0.608260 1.429901 1.194552 0.073153 0.887378 1.373922 0.381129 1.790930 1.276194 -0.281908 0.966837 1.474760 1.112905 0.704143 1.895059 1.126070 1.499359 1.771187 0.453435 -0.014418 0.736670 0.982455 1.267892 1.387205 0.485341 1.257456 1.168797 0.683391 1.208540 1.428338 1.386055 0.172356 0.656914 0.094944 0.902503 0.308308 1.057301 0.970831 -0.162448 1.022627 1.184882 1.191743 1.359175 0.411340 0.344508 0.089800 0.302741 1.044382 0.555010 1.576562 0.648596 0.759112 1.187341 0.808403 1.067683 0.560074 1.213902 1.171248 0.485293 0.205967 1.751688 0.702270 0.282706 1.789403 0.388659 0.390708 1.908486 0.042838 1.223403 0.448965 1.279556 1.388818 0.927209 1.582044 0.864213 0.788213 -0.216894 0.233466 0.964438 1.746323 1.757220 1.813237 1.058857 1.187035 0.225932 0.508278 -0.136316 0.388853 1.244545 0.927794 0.812504 1.016927)
)
;;; 107 prime --------------------------------------------------------------------------------
@@ -3347,7 +3480,7 @@
16.264743804932 #(0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1)
16.197 #(0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1)
- 15.294758 #(0.000000 1.155699 0.122450 0.246627 0.299092 0.577631 1.313862 0.243159 0.249547 0.642124 0.508390 -0.100374 0.007124 1.306036 0.186594 0.342948 0.281146 0.769499 0.654638 0.217908 1.782013 0.217327 0.950555 0.136917 0.176363 1.068327 1.192806 0.900482 0.138172 1.285963 0.026032 0.590903 0.601986 0.686673 1.753259 1.674783 1.372199 0.720867 1.169280 1.526785 1.453473 0.292462 0.780677 1.635574 0.374375 1.570786 1.313548 0.659671 1.929513 0.668099 1.668908 1.869276 1.083159 0.528273 1.868200 0.322656 1.319245 0.539052 1.464511 0.742821 1.280201 0.141452 1.654170 1.024975 0.901541 1.240608 0.206815 1.483899 1.395330 0.480766 0.369547 -0.090568 0.708595 0.283605 1.742854 0.936423 1.033093 1.525152 1.395853 0.802930 1.168193 0.666675 0.740629 1.149523 0.744420 0.900673 1.917674 0.911270 1.492975 0.054640 0.622054 0.193899 1.558272 1.650472 0.371253 0.137720 0.677522 1.076340 0.148738 1.621982 0.889792 1.016084 1.250482 0.934376 1.423291 1.687613 0.432613)
+ 14.958616 #(0.000000 0.337986 0.477712 1.211400 0.785512 1.657813 0.986578 1.935139 1.679015 0.143901 1.596992 1.424040 1.493126 0.793579 0.102430 0.526283 0.463608 0.746070 0.482547 0.007884 1.186392 0.946593 0.560579 1.018459 1.861677 0.646023 0.208743 1.426481 0.232236 1.640846 0.371364 0.864584 0.131291 1.008067 1.189038 0.201290 1.232363 0.908669 1.253570 1.039907 0.008447 1.280250 1.447172 1.157568 1.177416 0.761037 1.518089 1.951140 1.429724 1.287925 1.509981 1.691649 0.838196 0.448372 1.513719 0.633955 0.248084 1.334542 0.691716 1.164290 0.829138 0.488328 0.409631 0.538342 1.218657 1.375471 0.531847 0.749572 1.936940 0.157373 0.609888 0.441501 1.889711 0.902065 0.308197 0.523541 0.822547 0.401420 1.070065 1.374783 0.779035 1.646786 0.058496 0.671411 0.290739 0.536407 1.491618 0.709528 1.559973 0.474103 1.761148 1.561393 1.240461 0.863159 0.257175 1.331302 0.909821 0.449817 0.121944 0.262198 0.609158 1.519706 1.234266 1.299789 0.639872 0.089115 1.120832)
)
;;; 108 prime --------------------------------------------------------------------------------
@@ -3355,7 +3488,7 @@
16.666560972988 #(0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1)
16.517358779907 #(0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1)
- 15.275662 #(0.000000 -0.279153 0.934389 1.218922 0.255511 -0.395507 0.696267 1.188436 0.580348 1.306800 0.756696 1.430274 1.953512 0.424990 0.232560 1.174780 1.145645 0.524055 1.692952 0.402627 1.595711 0.277924 0.061599 1.001925 0.504430 0.329632 0.226697 1.138562 0.332643 0.363148 1.619029 0.086949 0.986598 0.471522 1.280067 0.398307 0.525340 1.611700 0.301668 0.263251 1.283502 0.570649 1.511564 -0.577751 1.127501 1.465190 1.104918 0.757870 1.040293 0.135284 0.704806 1.305500 0.226440 1.353375 -0.136000 1.085796 0.188233 1.352212 0.038463 0.040472 0.035845 0.182019 0.050209 -0.236399 0.671183 0.927333 1.145630 -0.329840 1.730551 1.669899 -0.036857 1.165761 0.455947 1.554290 0.250880 0.577076 0.410145 1.569907 0.793587 0.932142 0.819146 0.899821 1.666315 -0.144550 1.257088 0.216720 0.489273 1.301564 1.038412 -0.235074 1.292824 0.512419 1.672611 0.003848 0.099882 1.234525 0.675845 -0.079617 1.328839 1.037907 0.065965 0.388820 0.870290 1.701950 1.145368 0.504193 1.694748 1.136036)
+ 15.180521 #(0.000000 0.457934 0.599783 1.248402 0.112347 1.639837 -0.102195 1.474807 1.168267 1.710383 -0.006259 0.242452 1.187052 0.730301 1.889138 0.203929 1.641633 1.752785 1.259166 0.729222 0.828398 0.936209 0.502962 1.051672 1.807966 1.642769 0.296286 0.222098 1.753644 1.801383 0.521068 0.959473 0.145960 0.315863 1.124936 0.672429 0.759957 1.119953 0.042335 0.354182 0.517415 1.009907 0.871789 -0.174704 0.734397 0.217667 0.526413 1.896713 0.614394 1.802450 0.644597 1.809650 1.750481 -0.039151 1.370288 0.102512 0.735305 1.407392 0.762382 1.356424 0.748672 0.468831 0.585614 0.521789 0.473449 0.349680 1.835075 1.358711 1.980958 0.532559 0.849908 0.736276 1.769653 0.770769 0.389697 1.576033 1.696338 0.094944 0.050586 0.661995 1.126783 0.922675 0.113700 1.949682 1.517431 0.213238 0.916183 0.204529 0.332564 0.692845 1.513266 0.544444 0.603773 1.440661 1.241760 0.591563 1.168323 1.553477 0.439811 1.781240 1.512166 1.633565 0.029458 0.108337 1.765873 0.015011 -0.375904 1.693666)
)
;;; 109 prime --------------------------------------------------------------------------------
@@ -3364,7 +3497,7 @@
16.93954489715 #(0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 0)
16.726722717285 #(0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1)
- 15.202587 #(0.000000 0.973117 0.295771 0.125321 0.883154 0.147256 0.854278 0.870604 0.389979 1.402068 1.743678 1.535182 0.161883 -0.026729 1.378492 0.100947 1.373588 0.806230 -0.100849 1.298923 -0.122657 0.096046 0.456049 -0.038068 0.092692 0.829204 0.058096 0.790334 1.499418 1.564846 0.265961 0.523903 1.802864 1.218162 1.883258 1.318523 0.226465 1.858001 -0.173303 1.819604 1.388745 1.610023 0.925214 0.371433 1.194631 1.416956 0.884705 1.473818 1.629335 1.126631 0.157677 -0.210820 0.164869 1.669793 1.527145 -0.193600 1.274257 1.367976 0.274033 0.030795 -0.080950 1.490750 1.172552 1.002705 0.723159 0.561556 1.793674 0.306638 0.091065 0.187775 0.830363 1.767217 1.815866 0.777478 1.562977 0.345404 0.195144 1.935636 0.968827 1.907804 0.229090 1.625199 -0.111436 1.212928 1.233768 0.987125 0.479000 0.481461 0.329348 0.833713 1.421193 1.061418 1.557602 0.821555 0.315936 1.058113 1.344014 0.039319 0.695523 1.811116 1.111943 -0.045384 0.388257 1.431717 0.460022 0.690494 1.787760 1.354980 1.286438)
+ 15.116144 #(0.000000 1.328016 -0.014627 0.828407 0.709438 0.969604 0.109411 0.142268 0.859426 0.627723 0.396900 1.013543 1.334113 0.236951 1.647469 1.634103 1.549699 1.067291 1.870779 0.321965 0.150511 0.825968 0.056071 1.436713 0.729978 1.258597 0.062181 1.642067 0.539325 0.877875 0.929857 1.673575 0.850272 0.048450 1.415204 0.984104 1.372867 0.744318 0.952336 1.171745 1.592504 1.471107 0.774946 0.443030 1.382441 -0.036507 1.641521 0.271323 1.002206 0.045524 1.690616 0.259979 1.362590 0.709027 0.884184 0.354633 0.680805 0.767728 0.894958 0.994852 0.799216 1.592644 0.831434 1.544499 0.482599 0.746455 1.586021 0.899663 1.447670 1.233610 -0.040682 0.865859 0.103649 0.355520 1.146127 0.724734 0.506231 1.425053 0.422570 1.600967 1.060961 1.446829 0.510052 0.432553 0.391261 0.170982 -0.006976 0.862684 1.653057 0.431448 0.548333 0.340300 0.707395 0.164920 1.538667 1.848902 0.322015 0.570827 1.713248 1.475702 0.482897 0.253137 1.151403 1.319560 1.159692 0.893035 0.741349 1.156324 0.289482)
)
;;; 110 prime --------------------------------------------------------------------------------
@@ -3372,7 +3505,7 @@
16.799713998439 #(0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1)
16.455888332339 #(0 1 1 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1)
- 15.228940 #(0.000000 0.329149 0.192338 1.010433 1.446076 1.063077 -0.161720 1.152816 0.354503 0.105698 1.475760 1.341998 -0.573529 -0.030026 0.228800 0.942676 1.075307 -0.006559 1.659496 1.504735 0.038904 1.579185 0.004390 0.263615 0.388856 0.843550 1.505590 0.571582 1.652552 0.706327 1.367156 0.369952 1.274741 1.407863 0.534258 0.336254 0.399496 1.163981 0.608939 0.869370 -0.078045 0.771542 1.799996 1.472632 -0.384300 1.397263 0.230598 0.614522 1.711458 1.374479 0.194919 1.496058 0.534565 0.309948 0.012542 1.482354 1.318868 1.397929 0.591478 1.546076 1.102006 1.516509 0.845748 0.910710 1.824547 0.859015 0.954629 0.981638 0.025662 0.497866 1.812746 0.198132 0.435920 -0.017330 0.527294 1.609142 0.276496 0.711014 0.930673 0.912239 0.188188 0.775100 1.146166 1.332602 1.456567 1.279172 0.871757 1.414586 0.943447 0.490401 0.806817 -0.115054 1.091302 0.419201 0.484386 1.038904 1.605826 0.662584 1.620235 1.631443 0.953598 0.700479 0.949855 0.827743 -0.285828 0.719592 0.334275 -0.078779 1.064005 0.468672)
+ 14.980759 #(0.000000 1.074658 0.558515 1.431492 0.124283 0.999871 0.898426 1.004570 0.212835 0.143491 1.143601 0.035967 1.840367 0.436672 1.689510 0.381235 0.208193 0.731691 0.736159 0.834986 0.214302 0.770594 1.634162 1.246341 1.826200 1.253052 -0.091297 1.430864 1.362764 0.251470 0.496236 0.996690 0.004878 1.036245 1.547249 0.415263 0.066712 1.538365 0.315252 1.733144 1.703466 0.133748 1.121058 0.528822 0.464264 1.423505 0.329785 1.930708 1.581624 0.260657 1.813709 0.742775 0.256403 0.066489 1.703301 -0.029923 1.923895 1.662992 0.607315 1.668943 0.890710 1.456032 0.602640 1.318994 -0.011734 0.447459 0.635899 1.124241 -0.190853 0.398089 1.872772 -0.047321 0.660653 1.582452 -0.015802 1.748130 1.794795 0.738009 -0.071885 1.494138 1.823640 1.360336 0.932554 0.965180 0.133207 1.613385 1.795499 1.364325 1.440466 0.351398 0.785493 -0.054565 1.664085 0.738618 0.598879 1.785923 0.329069 1.161282 0.060081 0.530158 1.214843 0.062132 0.137141 0.557432 0.773011 0.523626 0.574780 0.419416 1.634577 0.277152)
)
;;; 111 prime --------------------------------------------------------------------------------
@@ -3380,14 +3513,14 @@
16.781625747681 #(0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0)
16.664649284782 #(0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0)
- 15.348000 #(0.000000 -0.096718 0.022237 0.203419 1.568792 1.275133 1.761423 0.591954 0.549624 1.089879 0.798235 0.252565 0.974027 0.964527 0.671346 0.181498 1.010625 0.198841 0.665349 0.453802 0.022998 0.117615 0.613148 1.824972 0.717114 0.579378 0.194909 1.911289 1.536114 0.291595 1.881720 0.597076 0.351037 0.497028 0.801618 1.776541 1.206983 0.240456 0.208480 1.207676 1.307985 1.020507 1.454670 0.482449 1.188727 0.354640 1.310556 0.581397 -0.173180 1.664687 0.449701 0.661122 1.436449 1.057326 1.291426 1.728711 0.268554 0.710548 0.032894 0.320881 0.614017 0.187109 0.741353 1.607872 1.071085 -0.046097 0.000243 0.803725 1.055653 0.267709 0.102466 0.299931 0.946237 1.452177 1.299700 1.505669 1.210160 1.515406 0.491537 0.687806 0.676406 0.406274 1.415546 1.812339 0.458876 -0.139217 0.672084 0.352723 0.581546 1.371118 0.905111 0.158269 1.085810 1.086718 1.753055 1.080265 1.304719 0.740099 0.254269 -0.066441 0.228923 1.611890 0.611450 0.782881 1.677491 0.207893 1.510936 0.581874 0.856487 1.464795 1.863895)
+ 15.054705 #(0.000000 0.578685 0.557626 0.746450 0.063028 1.312245 1.766595 1.172698 1.103627 0.536003 0.156959 0.304994 0.389296 1.196726 1.353208 1.295828 1.029931 0.061429 1.562851 1.241156 0.962517 1.740969 1.299690 0.363847 1.230622 0.081437 0.845321 0.553664 1.329890 1.442816 1.028141 1.047638 1.480709 0.929060 1.759690 0.510110 1.594238 0.680022 0.185411 1.860248 1.587071 0.825619 1.017484 1.720305 0.198529 0.811696 0.730775 1.369628 1.077710 1.882172 1.101499 0.010236 1.694600 1.153854 0.111429 0.655979 -0.049195 0.289695 1.725975 1.540496 0.049098 0.279285 0.548947 1.690742 1.153691 1.664177 1.847190 1.785625 1.562258 1.065804 0.787996 1.342498 1.221859 1.044568 1.500081 1.070830 0.213940 0.317656 0.513489 0.062776 -0.206974 1.734764 0.769968 0.886449 0.980647 0.077593 0.225418 1.289988 1.091715 1.465501 1.405988 -0.108775 0.257833 -0.159404 1.163136 -0.185515 1.520237 0.121392 -0.057595 0.251556 1.424747 1.449772 0.464053 1.556426 0.940025 0.387016 1.497174 -0.040642 -0.059096 0.487283 1.094120)
)
;;; 112 prime --------------------------------------------------------------------------------
#(112 17.423562009124 #(0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1)
16.699782299357 #(0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1)
- 15.587542 #(0.000000 1.142199 0.345069 1.302657 0.983112 0.507772 0.354933 0.784158 0.514034 -0.033567 1.346208 0.772307 1.758133 -0.071548 0.774919 0.854603 1.323837 0.477126 0.370467 0.357422 1.708152 1.417234 1.507986 1.611625 0.483037 0.731195 0.539844 1.618672 0.129709 1.688483 1.097700 0.671151 0.810831 0.438047 1.162436 0.407534 0.876129 0.553562 1.271708 0.993673 0.281166 1.567276 0.938810 1.030422 1.275754 0.673123 1.278083 0.937463 1.867414 0.526686 1.198015 0.146682 0.220796 1.783208 1.788638 0.571716 0.057123 1.657318 -0.200941 0.084835 0.073933 -0.174221 -0.096370 0.730957 1.118400 1.173432 0.145403 0.917183 0.317772 1.386818 1.814873 0.472624 -0.036252 1.119731 1.229377 0.854806 1.558462 1.132511 0.246848 0.010802 -0.014805 0.333641 0.248056 1.223889 1.363006 -0.006469 0.250188 1.006409 1.411776 0.163998 1.228668 0.601695 1.345060 0.693466 0.117832 0.173798 0.185602 0.874310 0.995368 0.482313 0.893480 0.010408 1.853635 0.404700 0.433593 1.175665 0.970765 0.549520 1.590475 -0.029600 1.522637 1.647612)
+ 15.171359 #(0.000000 0.798075 1.971462 1.259537 1.736889 0.670779 1.134856 1.399236 0.680027 1.787254 1.105021 0.825728 1.298940 0.789463 0.953843 1.879588 0.190123 0.821768 0.063042 0.555030 0.431962 1.369096 1.187450 1.630275 0.611728 1.645597 1.400001 -0.172347 0.727514 0.032883 1.438442 1.993478 0.093679 1.438227 1.257037 0.616949 1.530462 0.817580 0.324952 1.757868 0.203575 0.095964 1.820093 0.620078 0.377845 0.214922 1.724242 0.989581 0.550491 0.162223 0.176956 0.347918 0.011331 0.407396 0.860244 1.783836 0.571202 1.134287 0.099378 0.042409 0.733995 1.774680 0.894040 1.301463 1.204736 0.582725 1.819564 1.427863 0.667528 1.772841 0.266419 1.319488 1.265617 1.841596 0.451958 0.765653 1.731058 1.823860 0.221559 1.393686 0.016466 0.543130 0.489841 0.890299 0.647839 0.259554 1.728028 1.144429 0.780829 1.272715 1.859561 1.446827 0.100769 1.455384 0.990409 0.749307 0.037353 1.294274 0.452558 1.965083 1.109858 0.690276 0.383572 0.659613 0.732265 0.928432 0.219208 0.513810 0.571681 1.109913 0.049343 0.368714)
)
;;; 113 prime --------------------------------------------------------------------------------
@@ -3395,7 +3528,7 @@
16.785 #(0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1)
16.203890830538 #(0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1)
- 15.654573 #(0.000000 0.785797 1.219098 1.887288 1.187822 0.415815 0.050126 -0.010630 1.442407 1.444352 1.727776 0.559469 0.464166 1.229784 0.034913 1.545711 0.691897 1.711374 0.441057 1.568367 0.314400 1.575316 0.569921 0.338578 0.639169 0.953684 0.565482 0.000903 0.865152 1.728381 1.629508 0.110495 1.447807 1.312534 0.671226 1.007293 1.215617 0.577791 1.102364 1.737268 0.026456 1.363450 1.189285 1.247864 1.121640 1.352676 0.490779 0.435660 0.429195 1.598409 1.527558 0.738748 1.148658 0.011223 0.410332 0.776684 0.477686 1.555861 0.467921 0.790100 0.716882 0.559009 1.722419 1.532747 0.696959 1.095017 0.255106 0.470166 1.180529 -0.052621 0.904291 1.163253 0.884689 1.023847 1.195386 1.667711 0.266663 0.298197 1.263042 1.497716 0.802529 -0.036742 1.480115 0.607934 1.176471 1.613396 1.421270 1.267226 1.261049 0.453879 0.699542 0.541545 0.945791 1.869066 0.379134 0.063880 1.872225 0.108719 0.044258 0.991845 0.126652 0.373634 1.386889 0.029071 -0.077456 0.298533 1.722202 1.410892 1.110760 0.429503 0.773171 0.426058 0.848636)
+ 15.337225 #(0.000000 0.864150 -0.172558 1.245379 1.674741 1.001316 1.437066 0.911506 1.371983 1.568049 0.731175 1.971175 0.562102 0.330611 1.104006 0.669788 0.998529 0.954483 0.278373 0.230295 0.962272 1.646800 1.366438 0.288808 0.590820 0.856132 1.717218 0.397290 0.748055 1.090875 0.523038 0.446742 0.026602 0.984134 1.749308 1.722589 0.006658 1.523626 1.824689 0.198404 0.643461 1.297679 0.443034 1.448218 1.198721 1.477431 1.315092 0.050041 1.497895 0.545256 0.442790 1.023949 0.378410 1.376055 1.256708 -0.069249 1.333711 0.047500 1.506527 1.495877 0.074300 -0.052613 0.010136 1.730840 1.152860 0.019325 0.316115 0.703733 -0.085791 1.097304 0.470978 0.700730 1.725261 0.759434 0.302870 0.498110 1.667029 0.489031 0.362819 0.014482 0.930550 1.044740 1.611492 1.347268 0.230762 1.858074 0.962192 1.307552 0.701538 0.055702 0.103068 0.614480 0.233971 1.173062 0.126823 0.871267 1.260234 0.371840 1.408120 1.811438 1.719108 1.100434 1.153357 0.745052 0.639232 1.748453 1.582982 1.815493 0.670912 1.291438 1.196836 0.981011 0.143228)
)
;;; 114 prime --------------------------------------------------------------------------------
@@ -3403,7 +3536,7 @@
16.771720224491 #(0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1)
16.442732865586 #(0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1)
- 15.550453 #(0.000000 0.463579 0.479816 1.878651 1.299684 1.901759 1.850771 1.413146 0.666445 0.740963 0.305175 0.969776 0.901775 0.161835 0.801129 1.396498 0.359675 1.552034 1.772530 -0.005782 0.119558 1.499452 0.109716 1.009830 0.253123 1.001806 0.161434 -0.160433 1.151837 0.078771 1.062011 0.315209 0.176863 1.106806 1.679293 0.946728 0.985187 1.594127 0.276600 1.158122 0.937534 1.175709 -1.952678 0.607017 0.810705 1.341030 1.604031 0.448851 0.634839 0.113184 0.079709 1.355469 0.094716 1.564434 1.121315 0.914951 1.941675 1.866304 1.372721 -0.114013 1.220555 1.637172 0.630906 1.783930 0.833999 0.736605 1.570562 0.536330 0.639686 1.636535 0.848111 -0.088244 0.287453 0.644258 0.482622 1.635112 0.655921 1.300265 1.584185 0.396625 0.169216 1.630204 0.611302 -0.130951 0.107623 1.691545 0.678885 0.296425 1.679199 -0.150633 0.085199 1.706049 0.635992 0.061465 1.591310 0.376851 0.201926 1.655096 1.224080 1.566255 0.730055 0.280588 0.109341 0.223646 0.379360 1.640608 0.942773 1.856256 0.941696 0.089407 0.986101 1.136647 0.916916 1.001918)
+ 15.537487 #(0.000000 0.936889 0.684097 1.105723 0.000250 1.819562 1.170091 1.363833 1.365766 1.486205 1.936103 1.492912 0.983640 1.371991 0.269244 1.589801 0.103334 0.775574 1.932796 1.065270 1.347950 0.384990 1.722829 1.360617 1.383032 0.613065 0.175992 1.147591 -0.030480 0.657432 1.129572 1.423347 1.785839 0.042460 1.665452 0.402111 0.427015 1.282059 1.756301 0.555168 1.012125 1.578579 0.256972 0.609904 0.312734 0.590124 1.774867 0.284862 1.778551 0.417729 0.900199 0.664439 0.326624 0.402307 1.802235 1.759287 1.824592 1.208526 1.752649 1.838857 1.769643 1.458148 1.901352 1.547256 1.322491 0.634401 0.015913 1.684595 1.290365 0.832900 1.335029 1.298636 1.919512 0.244527 0.573986 1.199367 1.009586 0.405812 0.097204 0.315285 1.352165 -0.015903 0.059175 1.700763 0.984837 0.177024 1.261793 0.810986 0.875549 1.559991 1.433805 1.313082 1.325885 1.834561 0.280884 0.428642 0.158126 -0.036767 1.741094 1.036001 0.875289 0.523676 1.857346 1.106200 1.447863 0.867338 0.013292 0.032613 1.877741 1.223274 1.001294 0.016376 0.407580 0.403090)
)
;;; 115 prime --------------------------------------------------------------------------------
@@ -3411,14 +3544,14 @@
17.152 #(0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0)
16.774665887963 #(0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 0)
- 15.820894 #(0.000000 1.199310 1.627870 1.824321 0.639496 1.530628 1.065251 1.534541 0.196156 -0.016306 1.870351 0.069993 0.579686 0.145137 1.154586 0.129493 0.728436 1.097021 1.396998 0.292249 0.365998 1.455213 0.744112 -0.058707 0.867390 1.481279 -0.137636 1.079819 -0.068072 0.943230 0.579830 0.162867 0.277961 1.513462 0.560954 1.016416 0.859928 1.656407 0.766353 1.007433 0.538007 0.933813 0.194088 0.583507 -0.279429 0.628854 0.972106 0.071556 0.812351 1.107434 0.899609 0.863815 0.752491 1.520883 0.680926 1.410694 1.788904 0.160478 0.776467 0.443394 0.826996 1.405416 1.618001 1.007333 0.487658 0.553273 1.551677 -0.266337 1.064026 0.490091 0.775747 0.934229 -0.399728 0.389240 -0.103508 1.928613 0.932886 -0.105431 -0.010445 0.628530 0.044474 0.367533 1.096117 1.308498 0.478868 1.199216 -0.205708 0.850421 0.047991 1.158554 0.700466 0.444448 0.427204 1.037348 1.660507 0.182286 1.915021 1.684683 0.410620 0.675236 -0.051183 0.894911 -0.167662 0.889534 1.069442 0.211541 1.577504 1.403419 1.362161 1.443241 1.587785 0.682901 0.720584 0.810642 0.596439)
+ 15.624996 #(0.000000 1.607357 0.425725 1.180669 0.495196 0.712555 0.313989 1.449283 0.519943 0.780319 0.563382 1.296213 1.417620 0.457758 0.239662 0.230743 -0.068438 1.006194 0.790361 1.320667 0.448100 1.037362 0.751270 0.052337 0.818375 0.578682 1.197520 1.438624 0.105874 1.496955 0.625355 0.457386 1.739703 -0.117861 0.544479 1.413376 0.307261 1.707576 -0.367413 0.793062 1.513751 -0.023205 1.602116 0.051026 0.580853 0.452484 1.597962 1.147144 0.058854 1.579037 1.448815 0.524016 -0.147703 0.993866 0.898685 1.344169 0.197431 1.637509 -0.158808 1.611189 1.606372 1.346677 1.185704 1.745715 0.395962 0.483746 1.376960 1.120169 -0.100695 0.120374 0.206245 1.431827 1.115991 0.408373 0.279257 1.586921 1.423808 0.927202 1.893914 0.615098 0.053564 1.480650 0.896847 1.862066 0.781215 1.324037 0.678799 1.526626 1.364655 0.376030 1.522809 0.457841 1.001175 1.878283 0.888654 0.740616 1.736581 1.513407 1.065272 0.164152 1.278842 0.219350 0.279374 1.285670 -0.077495 0.393145 1.228553 1.404471 1.597226 1.669660 1.232782 1.095371 0.237859 0.148431 0.452849)
)
;;; 116 prime --------------------------------------------------------------------------------
#(116 17.885190963745 #(0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0)
16.812931137234 #(0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0)
- 15.347903 #(0.000000 0.924023 1.188544 0.874291 1.815961 1.194953 0.122252 1.217914 0.378921 1.685819 0.088566 0.547935 0.469648 0.008210 1.309574 1.119203 1.951325 0.578312 1.518006 0.468063 -0.126986 1.905338 0.025538 0.655892 1.675489 1.187123 1.094968 0.764549 0.893903 1.374914 0.693117 0.862349 0.092456 1.406324 1.821176 0.575062 0.348832 0.154342 0.303706 -0.097962 0.793635 1.197903 -0.079809 -0.229445 0.293101 1.025603 0.771059 0.743925 0.344987 0.956186 0.294584 0.256872 0.344631 1.824438 1.782905 0.513274 0.087056 1.281990 0.023231 0.158985 0.453919 0.236146 0.668502 0.947857 1.777355 0.194331 0.582340 0.845132 0.994125 0.528129 0.879514 1.732080 0.566914 -0.201866 0.882570 0.439311 1.864718 0.256630 1.158059 0.765194 0.175424 0.736974 1.622066 1.766634 0.981059 1.312275 1.464521 -0.071794 1.375542 1.647139 0.096967 0.624118 1.191289 1.685357 1.491582 1.434691 0.625717 0.461364 1.520130 -0.062472 0.829508 0.360182 0.532591 0.383260 1.428597 1.392550 1.017686 1.812632 0.835884 1.677998 1.030091 1.468055 1.133454 1.003827 0.329066 0.828619)
+ 15.294297 #(0.000000 0.925737 1.195052 0.868753 1.809581 1.192950 0.122553 1.220830 0.385967 1.685589 0.087666 0.550961 0.466848 0.007783 1.312388 1.114482 1.951577 0.574275 1.526373 0.466124 -0.132577 1.903724 0.022636 0.658431 1.671670 1.186016 1.095405 0.769057 0.892430 1.376833 0.691211 0.858780 0.095599 1.413726 1.822190 0.581995 0.357977 0.152812 0.301047 -0.102950 0.788026 1.190875 -0.080147 -0.229267 0.282790 1.029666 0.766811 0.739748 0.339141 0.955329 0.299674 0.257893 0.340582 1.820788 1.780301 0.511319 0.085730 1.275898 0.026657 0.163816 0.451545 0.237668 0.672787 0.947505 1.775585 0.193458 0.585845 0.848353 0.994962 0.530335 0.875659 1.731635 0.563087 -0.200936 0.889716 0.442023 1.866390 0.253016 1.157266 0.767990 0.176381 0.734098 1.622499 1.761016 0.977767 1.315569 1.460504 -0.065133 1.372712 1.640736 0.092968 0.628641 1.193839 1.687685 1.489631 1.436551 0.631279 0.467094 1.520443 -0.064168 0.821864 0.351131 0.536415 0.381941 1.428682 1.391344 1.019628 1.815050 0.831257 1.683593 1.023446 1.464197 1.137368 1.011197 0.321917 0.831363)
)
;;; 117 prime --------------------------------------------------------------------------------
@@ -3456,14 +3589,14 @@
#(121 18.236074758398 #(0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0)
17.782977183017 #(0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0)
- 16.057934 #(0.000000 0.007842 1.595539 0.496015 0.933481 -0.187025 0.590042 0.984492 0.936196 0.422554 0.359964 1.853221 0.080113 1.229136 1.248756 0.221555 0.131953 0.241930 0.483983 1.401188 0.074692 0.141952 0.284889 0.064072 1.230802 0.866411 1.608613 0.382713 0.133891 1.096492 0.375481 1.539247 0.394803 1.461178 0.208575 0.968408 1.515672 1.431009 0.765071 0.462707 1.309063 0.354191 0.330400 0.811065 0.734065 0.086830 -0.207325 1.552240 0.487530 1.049540 0.208255 0.152935 0.454956 0.245751 0.199813 1.234481 0.335295 0.329596 0.816153 1.397041 0.150740 0.091628 1.847578 1.542925 0.274675 1.498332 0.405572 1.661787 0.133405 0.722356 1.799280 0.090328 0.598621 0.727781 0.423081 1.719630 1.699669 1.711076 1.109854 1.106623 1.401808 1.559432 1.436148 0.663349 0.958569 0.315232 1.031212 1.558236 0.576703 0.874235 0.068577 1.611304 1.853101 0.375507 1.556741 0.648282 0.823046 1.140979 1.312034 0.013090 1.136027 1.366664 1.219892 0.149150 0.268319 1.078342 0.717200 1.728454 0.518166 0.081216 1.844860 0.713694 0.605907 0.813290 -0.005348 0.624396 0.185476 0.040484 -0.087487 0.540754 0.572026)
+ 15.834916 #(0.000000 -0.188723 1.723753 -0.076363 0.162587 1.494996 1.794310 -0.266546 0.141463 0.278534 1.190355 1.627551 1.207380 0.268694 0.474028 0.044433 0.407072 0.212567 0.973297 -0.148422 0.441302 1.363800 1.013548 0.732070 0.391281 0.165408 1.670688 -0.104313 -0.055373 1.919338 1.179545 1.261103 0.179484 1.151983 1.023612 0.770442 1.397636 0.582184 0.466890 0.494325 0.611822 1.373206 0.418645 0.961530 0.368040 0.100673 1.640785 0.975829 -0.146636 1.614211 0.208117 1.442179 1.228929 1.360131 0.069001 0.581716 1.526170 0.056776 1.115531 0.802358 1.274970 0.863932 0.712000 1.684820 1.233992 1.521972 0.475371 0.557632 -0.392401 0.651428 1.097037 1.309999 1.928616 0.964896 0.941815 0.062477 1.910184 1.539093 0.682794 0.032368 1.540435 0.338071 -0.107497 1.526458 0.739229 1.820749 0.175265 0.579971 1.590250 1.499062 0.483652 1.219566 0.217070 0.324569 1.899459 1.305092 1.972316 1.164726 1.868917 0.722799 0.952638 0.901563 0.906748 0.753410 1.131607 1.037184 -0.253399 0.304788 0.566333 0.616091 1.655472 1.167698 0.374262 1.066554 1.711184 -0.105584 0.988918 0.422633 0.053041 1.119729 0.285551)
)
;;; 122 prime --------------------------------------------------------------------------------
#(122 18.225525517344 #(0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1)
17.876078447724 #(0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1)
- 16.228458 #(0.000000 1.116121 1.083863 0.419990 0.384829 1.392760 -0.078812 1.738490 0.980010 0.647878 0.057227 1.541615 0.189324 0.731274 1.184799 0.199320 1.692878 1.441220 0.341435 0.636001 0.662679 1.308865 -0.084995 0.047595 1.450847 0.590959 1.445889 0.636101 1.189379 1.577656 0.370867 -0.244748 1.311951 0.820203 0.814587 0.355803 0.194339 0.405840 1.760178 -0.141434 1.722379 0.901340 0.513931 1.065849 0.048115 0.414169 0.319795 0.572815 0.653564 0.271933 1.381062 1.529789 1.115500 0.085940 0.026533 1.271505 1.758964 0.917031 1.593340 1.377934 0.274161 -0.048006 1.570653 -0.074543 0.773736 1.725453 0.345582 1.602659 0.141262 0.850509 0.111857 1.071163 -0.142289 0.044446 1.354188 1.141903 1.190526 1.685512 0.970784 0.751142 0.470885 0.872197 0.581700 0.761208 0.436671 0.857022 1.378965 1.004448 1.157934 1.337905 1.274911 0.675874 0.741056 0.706080 1.250640 -0.281556 1.436089 0.808955 1.365383 1.282327 1.905140 0.784416 1.317256 1.316322 0.028537 -0.039518 0.309204 0.756128 1.260257 1.530017 0.268577 1.549161 1.252603 1.308248 1.582908 1.186579 0.276562 1.239393 0.306009 1.627137 0.976584 0.339914)
+ 16.110175 #(0.000000 0.739913 1.759066 1.414661 1.859805 0.933762 0.510068 1.733964 1.832155 1.811801 0.937309 0.414948 -0.125435 1.290454 1.754236 0.196315 0.042044 1.551814 0.839833 1.103492 1.188948 1.241769 0.197163 0.511137 1.376334 0.408423 0.041947 0.385291 0.360449 1.826586 1.134483 0.165476 1.900248 1.779084 0.314491 0.444525 -0.144001 1.472862 1.787770 0.809808 1.017174 1.044162 1.848231 1.512736 -0.005292 0.766249 0.246216 0.789889 1.660234 1.580294 0.862515 0.027975 0.873035 1.174493 0.179567 0.399714 1.960021 0.853991 0.151738 0.502200 0.042096 0.538085 0.430398 1.531834 1.249793 1.365106 0.674615 1.163889 0.272057 1.735597 1.316998 -0.021269 1.281189 1.523630 0.309495 0.210671 1.559666 1.675746 1.418255 0.373279 1.435529 0.744316 0.840413 1.222034 1.605678 0.409322 1.073002 0.227914 1.061596 0.087219 1.111396 1.548869 0.751438 0.051051 1.608956 -0.061276 -0.008539 0.852834 0.141824 0.185519 1.543497 -0.111022 0.737785 0.355094 1.117817 0.024387 0.378004 0.018383 1.611511 1.434960 1.887157 1.388164 0.175834 1.758681 0.933941 0.943943 1.384182 0.084684 1.470454 -0.018233 1.000932 1.936683)
)
;;; 123 prime --------------------------------------------------------------------------------
@@ -3471,14 +3604,14 @@
17.389867782593 #(0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0)
17.273 #(0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0)
- 16.338688 #(0.000000 1.344624 1.776488 0.848909 1.033699 1.353077 -0.085902 0.465032 -0.108482 0.434081 0.789233 1.974348 0.533926 1.208299 1.284018 1.014139 1.679239 1.736377 1.688312 1.295505 1.502833 0.928449 0.369489 0.230983 1.032492 0.351266 1.364222 1.604586 -0.012905 -0.052884 0.821443 1.124965 1.978715 1.524095 1.453687 1.727074 1.245090 0.164878 0.211048 0.829038 0.044611 0.297481 1.742737 0.029655 1.629439 0.256054 0.113738 1.186355 0.976822 0.447207 0.616498 1.707521 1.305445 1.084949 0.863803 -0.071793 0.713766 1.797860 1.518776 1.118885 0.402048 1.895684 1.409194 0.135561 1.615502 0.195338 1.212803 0.063959 0.901086 0.268436 0.817668 -0.150845 0.804715 0.948032 0.061684 -0.092882 0.347177 1.294696 1.108114 1.566857 1.432081 0.142798 0.605515 0.048771 0.901941 0.447706 1.450508 1.778133 0.581915 0.707572 1.750523 -0.155388 1.126277 0.486244 1.154273 0.055334 1.140304 1.177541 0.189031 1.273241 0.456102 0.425579 1.010547 0.224755 1.704361 0.370779 1.510253 1.530671 0.051902 0.339520 0.448336 1.558730 0.343048 0.248549 1.689321 1.166576 0.898909 0.718757 0.462664 0.271434 1.835657 0.427334 0.883092)
+ 15.778914 #(0.000000 0.143393 0.625686 1.046023 0.983153 0.345414 0.293857 0.276893 1.833120 0.273819 1.821385 0.432462 -0.005834 1.381753 0.881643 1.557216 1.461346 0.919317 0.454980 0.664472 -0.298618 1.851108 1.466794 0.098840 -0.051074 0.850957 1.327537 1.539835 0.086282 1.496838 1.801280 0.555017 0.568385 0.872000 1.681517 1.763478 0.180660 0.629340 0.797931 0.778757 -0.187533 0.759345 1.199888 0.284611 0.141605 -0.002210 1.168471 1.062111 1.559800 1.036659 1.685210 1.719794 1.456550 1.242269 0.111521 0.413090 1.165964 1.023835 0.828500 1.152078 1.399356 0.650501 0.565478 0.189566 1.449207 0.444013 0.692121 1.413890 1.127772 0.496319 0.689893 0.210498 -0.076756 0.973437 -0.017560 1.150851 0.558786 1.566386 0.107192 0.385208 0.533924 0.439602 -0.027270 0.700165 1.360916 1.652077 1.481235 0.449713 -0.270927 0.835607 0.417327 -0.059020 0.613090 -0.087247 0.497676 1.049266 0.510587 0.986574 0.753750 -0.007878 0.119285 0.912181 0.418924 0.612131 1.148823 0.547751 1.366719 0.889045 0.765255 0.431083 1.090456 1.680331 0.458851 0.971383 1.580777 1.603075 1.780190 0.813231 0.000192 1.772592 1.394595 0.106656 0.558795)
)
;;; 124 prime --------------------------------------------------------------------------------
#(124 18.115 #(0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1)
17.868420183527 #(0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1)
- 16.285511 #(0.000000 1.233906 1.773164 0.087299 0.486931 1.130833 -0.164163 0.506071 1.751222 0.110351 0.656928 0.208535 1.134643 -0.092067 1.164018 1.566763 1.423347 1.519069 1.539862 1.560539 1.752003 0.020105 0.854873 1.620623 1.474701 0.691757 0.250466 0.856333 0.660119 1.536667 -0.001122 0.078728 1.735732 1.814673 0.718679 0.324470 0.318067 0.774637 1.590654 0.528723 0.233764 0.856301 0.582645 0.369147 1.553163 0.961631 0.761817 0.308228 0.207398 0.853064 1.551007 1.604248 0.269943 0.923494 0.156809 1.152337 0.652752 0.890433 0.070386 -0.099671 0.803242 1.672091 -0.260083 0.207636 1.222709 0.369894 1.117211 1.582916 1.174321 -0.243946 1.880694 0.421268 1.440908 1.697927 0.104714 -0.084323 1.368958 0.365740 0.172334 1.148347 1.818864 1.602605 0.867187 0.573441 1.414022 -0.082766 1.615675 1.392304 1.278329 0.734993 0.165470 0.595395 1.249673 1.473751 1.374553 1.593809 0.397490 0.981672 0.521929 0.853092 0.325620 0.530584 1.723234 1.692741 1.180237 0.345084 1.657571 1.529352 1.511865 0.117598 0.148251 0.221646 1.716162 0.386206 -0.084811 -0.285090 0.864157 1.467747 0.138802 1.126955 0.648718 0.951171 -0.013891 1.556798)
+ 16.248013 #(0.000000 1.183478 1.165286 1.194537 1.254858 1.914402 1.240889 1.337220 0.518067 0.177783 0.550001 1.289669 0.227441 0.868230 1.469966 1.508808 0.703752 0.095615 1.746686 0.880977 1.449995 0.901398 0.442461 0.041131 1.661442 0.821047 -0.064241 0.472637 -0.031321 1.085981 1.755397 0.510339 1.177040 0.833320 0.845356 1.333189 -0.009126 1.207082 0.053241 0.328393 0.838858 1.096696 0.980977 1.488972 0.814342 1.022844 0.491243 0.551951 1.217471 0.167677 1.103674 1.011021 1.717206 1.233127 0.198588 0.189839 1.026254 0.620320 1.396449 -0.018982 1.457314 1.238323 1.070434 1.029226 -0.013190 1.646398 0.627365 0.339846 1.571247 0.588281 0.458744 1.227427 1.584696 0.096863 0.590996 0.705266 0.829331 0.537353 0.487431 0.105659 0.662702 1.502185 0.444713 1.504702 1.677933 1.040280 0.692865 1.204129 0.281987 1.651336 1.737573 1.300235 1.791236 1.837990 1.000877 1.675102 -0.005443 1.942229 1.097918 1.101847 0.864715 1.250295 1.256383 0.200765 1.384973 -0.026084 1.477566 0.832600 0.837363 0.348510 0.933261 1.527613 1.667400 1.907945 1.878247 -0.024442 0.181248 0.728757 1.859303 1.099926 1.135491 1.575083 1.036300 1.293347)
)
;;; 125 prime --------------------------------------------------------------------------------
@@ -3492,14 +3625,14 @@
#(126 19.269804000854 #(0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1)
18.284595039843 #(0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1)
- 16.546221 #(0.000000 0.069008 1.218564 1.239500 -0.193780 1.690098 0.991077 0.360815 0.403099 1.573196 0.310784 0.229099 0.181965 0.328122 -0.295209 1.159341 1.265627 0.368302 0.189888 0.198084 1.886986 1.342972 -0.063732 1.887429 0.143309 1.027277 1.557322 1.969104 -0.093892 1.780293 -0.285468 1.234409 1.586887 0.135024 0.982462 1.318737 1.257138 0.882235 1.918521 0.168810 1.638886 0.693721 0.959921 0.989672 1.127466 1.066482 1.417558 0.326320 -0.209270 0.309368 1.832140 0.202282 0.754307 1.497928 0.410988 -0.172769 1.146932 1.311766 0.671942 1.275403 -0.291732 1.752506 1.392120 0.793099 0.490044 0.847582 0.291306 1.735890 0.773125 0.014755 1.286993 1.076458 1.405470 1.587985 0.487062 1.156311 0.474172 0.087081 1.143644 1.704988 0.620319 1.972573 0.093382 1.290133 1.438312 1.213976 1.704540 1.819727 -0.005248 1.706529 0.310338 1.503124 1.425320 0.323799 1.531155 0.860504 0.911075 1.978870 0.719735 0.976216 0.862413 1.762074 0.828976 0.144737 1.184647 1.751859 0.155283 1.037558 1.761350 1.423772 0.906588 1.016809 0.859711 -0.320839 0.146011 1.136900 1.198316 -0.024275 0.403160 1.178224 0.071207 1.294903 1.747779 1.619528 0.364878 0.449638)
+ 16.485692 #(0.000000 1.393132 0.659679 0.714266 1.494788 0.331111 0.897049 1.314783 1.545624 1.556795 -0.077574 1.186629 0.072557 1.374590 -0.138031 1.538299 0.712726 -0.003998 0.490566 0.381861 0.872047 1.438657 0.084432 -0.258220 -0.077354 1.597934 1.736544 1.726227 0.474701 1.273917 -0.005659 1.699119 1.008666 1.379120 1.578428 0.142870 0.908296 0.556522 1.210060 1.628610 0.787641 1.540629 1.425205 1.559130 0.612495 1.232357 1.269357 0.546352 1.177556 1.745878 0.293296 1.043206 0.547645 0.115824 1.423495 0.207326 0.441822 0.587489 0.470953 0.737873 1.083623 0.284950 0.744700 0.810274 0.980162 0.078648 0.078978 1.256579 1.343657 0.819402 0.467126 1.574219 0.962766 0.542487 1.121350 0.866569 1.432939 0.724543 -0.158329 0.172920 0.822336 1.592824 1.287641 1.474720 0.297028 0.294866 1.256418 0.977065 0.832776 1.547442 0.851721 -0.206008 0.718651 1.548248 1.210027 1.506412 0.423156 0.501510 0.111527 0.489364 0.396455 1.265011 1.039315 1.025070 0.204807 0.113462 1.368658 0.104283 0.954973 -0.024402 1.477056 1.015433 1.647333 0.940652 0.915809 1.853310 1.146304 0.051861 -0.060644 1.350415 0.525284 0.507359 1.422151 0.412076 0.746518 0.285484)
)
;;; 127 prime --------------------------------------------------------------------------------
#(127 19.129140790802 #(0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1)
18.198689419357 #(0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1)
- 16.478196 #(0.000000 1.152915 0.265500 0.083581 1.636480 0.211379 1.572378 1.755543 0.527896 0.948709 0.056914 0.231550 1.696044 0.970318 1.546498 1.050568 0.431931 1.460257 1.654454 -0.049080 0.393008 1.352974 0.533636 1.250456 1.612450 0.085292 0.293842 1.684251 0.292646 0.827826 0.195574 -0.059271 0.120254 1.919305 0.912341 1.010474 1.258657 0.364145 1.580265 0.316125 -0.009091 0.757614 1.218469 1.483838 0.664188 0.688655 1.185338 0.443256 0.670627 1.783683 0.723376 0.886716 1.169473 1.124505 0.020856 0.183240 0.196230 1.910701 1.427802 1.096821 1.549273 1.293151 1.187263 0.336815 1.385811 1.141138 1.909107 -0.002429 0.558803 0.829286 0.297108 1.873958 0.895005 1.465925 -0.070308 0.989509 1.536106 0.122706 0.827401 0.073036 0.217584 0.307358 1.450901 1.002198 1.579081 1.455550 0.204655 1.747314 0.695693 1.351086 1.292082 0.423856 0.974974 1.815815 1.858797 0.869738 0.690819 0.352662 0.101503 0.597626 0.225468 1.791289 1.801094 1.561076 1.530445 1.660268 0.027417 0.537270 1.894552 0.552073 1.544190 0.422250 1.077095 0.840646 -0.205704 1.782410 0.962986 1.651334 1.566790 1.379847 0.489347 1.390300 1.148606 0.024447 0.601311 0.708170 1.732816)
+ 16.448822 #(0.000000 -0.085807 0.199128 0.603426 0.615563 1.637749 1.823469 1.149809 1.823015 0.286527 0.617283 1.285138 -0.208128 0.639036 0.970194 0.729409 1.761844 1.117109 -0.033116 0.888131 0.968198 0.177748 1.131738 0.928416 0.936088 0.356108 0.715902 1.162235 0.774103 1.177701 0.059329 1.253967 0.928039 1.746834 0.511413 0.830103 1.726781 0.942226 1.477853 -0.156272 1.095142 1.912050 0.551004 0.359334 1.869519 0.846075 1.789696 0.347764 0.241707 1.330781 1.203328 1.136424 1.132458 0.771348 1.282194 1.902402 0.701018 0.926506 0.321435 0.770291 0.619623 1.904974 0.977039 0.969889 0.381082 1.862110 0.060195 0.037664 -0.248669 1.859257 0.582180 1.638986 -0.004135 0.904732 0.759121 1.067398 1.567847 1.416833 0.592303 0.427558 1.056939 0.189879 1.209556 0.238312 1.214601 1.468346 1.340213 0.637994 0.330494 1.648640 0.946122 1.917861 1.276412 1.256282 1.213879 0.791801 0.318273 0.666450 1.229100 0.861678 0.178641 0.252289 0.813985 0.053018 1.386558 0.542505 0.349693 1.662396 1.863561 0.880529 0.977013 0.574184 1.518813 1.422817 0.809957 1.845103 0.905411 0.313274 0.483433 0.024847 0.211145 0.414022 1.099694 0.953172 0.846953 1.316404 0.960041)
)
;;; 128 prime --------------------------------------------------------------------------------
@@ -3511,12 +3644,15 @@
)
;;; 256 prime --------------------------------------------------------------------------------
-#(256 29.631 #(0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1)
- 27.740 #(0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1)
+#(256 27.740 #(0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1)
+
+ 25.843001 #(0.000000 1.178038 1.117189 1.700610 0.373627 1.883314 -0.150547 0.860152 1.699759 1.867276 1.133410 1.716145 1.170242 0.182940 0.967532 0.457512 1.079364 0.116068 0.106098 1.675713 0.477979 1.231493 1.322168 0.773630 1.832518 0.122290 0.180043 0.374294 0.611999 0.136932 1.013493 1.069379 1.182024 1.271294 0.642791 0.064959 0.049470 0.651081 0.559311 0.184537 0.000503 0.129980 1.636299 1.256733 1.544750 0.480981 0.250788 1.359926 1.216141 1.356184 1.946364 1.494233 0.738472 0.827066 1.640705 1.325401 0.094653 0.385835 0.932570 0.164616 0.551291 0.920921 0.187855 0.260769 0.461846 0.576571 1.464881 0.394875 1.469418 0.272246 0.425404 -0.045832 0.006251 0.190055 1.868581 0.690811 0.668857 0.346545 0.925141 0.629594 1.924916 0.291366 1.592154 0.447276 0.034691 1.030569 0.839899 0.485328 1.019363 1.791729 0.399597 1.310415 1.419525 1.909343 1.793887 0.372161 1.094536 0.769475 0.788559 1.190624 0.945126 0.882786 0.486002 1.852362 1.678052 0.866828 1.280024 1.820688 0.887248 1.227680 1.485570 0.504170 0.327568 0.198858 0.514803 0.338014 0.440694 0.872123 0.756056 1.458178 0.159454 1.067780 1.339173 0.756970 0.626382 0.176670 1.354873 1.713861 1.938450 1.803226 0.323061 0.536758 1.035309 1.264381 0.790183 1.977782 1.637094 1.831537 0.209445 0.547617 1.969417 1.918172 0.036260 1.958659 0.161282 0.339607 1.714624 -0.127708 0.080179 0.935938 1.379987 0.270026 0.612112 1.274936 1.771797 1.480656 0.249371 1.380316 0.497560 0.668029 0.601339 1.011243 0.545874 1.245228 0.700674 1.734601 0.080283 0.977900 0.441339 1.088476 1.109845 1.241483 0.158156 1.602341 1.488712 1.445422 0.224891 1.321069 0.812233 0.964559 1.429410 0.478888 1.314822 0.389337 1.003252 1.023065 0.655446 0.760771 0.319297 0.379367 1.880123 0.155238 0.521165 1.981861 0.486168 1.323709 0.478243 0.363112 1.563352 1.025353 0.028002 0.480878 0.182820 0.357272 0.875406 0.053447 1.511773 0.051995 1.096864 0.785911 0.251409 0.813921 -0.000189 1.606620 1.070229 1.474625 0.860413 0.515696 1.807586 1.238635 1.016453 0.101229 0.899740 0.208146 1.773833 0.176027 1.738141 0.792134 1.786116 1.268742 0.468739 1.116445 0.094303 0.245584 -0.111445 1.055331 1.383319 0.083561 0.463871 0.402689 1.805901 0.206440 0.734373 1.104562 0.405058 1.813865 1.447477 0.923352 1.806075 0.348988 0.517833 1.863118 0.503597 1.683658 1.162414 0.900302)
)
;;; 512 prime --------------------------------------------------------------------------------
#(512 43.486 #(0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1)
+
+ 41.664769 #(0.000000 1.116415 1.727298 0.845891 0.743450 0.409202 0.797033 0.974598 0.559751 0.291961 0.645471 1.090836 1.833210 1.136266 0.329328 1.750236 0.440321 -1.952179 0.067573 0.402867 0.127828 0.691992 0.722342 1.820882 1.324509 0.847627 0.479095 0.117532 1.509949 0.916106 0.505440 0.796584 0.338013 1.381993 1.214452 1.652605 1.633028 1.574092 0.200810 0.234340 -0.240723 -0.077124 0.482644 0.659074 1.668870 0.882982 -0.057775 1.287674 0.937889 1.827207 0.129452 1.090954 0.749828 1.359523 0.989511 1.332818 1.797414 0.437723 1.661275 0.290286 1.244825 0.877897 0.735063 1.777192 1.969025 1.896974 0.638657 0.763141 0.953914 -0.018972 1.071882 1.008524 0.311248 1.000132 0.483793 1.724509 0.129575 0.150087 1.010540 -0.093854 0.219565 0.431317 1.379087 0.803405 1.157079 0.926306 1.683735 1.842410 1.353077 0.559427 0.949846 1.101620 1.585497 0.752886 0.287023 0.415081 0.932815 1.731880 0.942771 0.121294 -0.002243 0.861783 0.905251 1.085791 0.105007 1.023331 0.221461 0.106715 0.029230 0.031392 1.440041 0.620348 0.734416 0.445250 0.855766 0.721974 0.822495 0.230247 0.048048 0.160125 0.755071 -0.157046 -0.084547 1.789339 0.738432 1.110753 1.400342 0.496814 0.441771 0.564855 0.811974 1.278133 1.918944 0.840614 1.795074 0.312545 0.044731 0.729901 0.868555 1.447952 1.770333 1.945017 0.865667 0.629236 0.842274 0.312879 1.060148 0.685356 0.477133 1.554039 1.738854 0.840468 1.782986 0.059777 0.361173 0.716745 0.805091 0.478910 0.751920 0.585336 1.094954 0.573916 1.196788 0.159706 1.979046 0.348955 1.016763 1.884102 1.817396 0.572600 0.236996 0.782688 1.151521 0.741278 0.474252 0.652664 0.199708 1.319269 -0.164699 1.458273 0.952285 1.741011 -0.119322 1.667507 0.149015 0.828216 1.212947 1.116625 0.960420 0.942747 0.147079 1.498908 0.477162 0.411915 1.792633 0.173615 1.580758 0.613328 1.109866 1.674147 0.655838 0.879292 1.740881 1.729977 1.349969 -0.015945 1.923054 1.581284 0.295284 1.289973 0.980779 0.189864 0.677986 1.331696 1.815310 1.234108 0.302104 0.321976 0.206846 0.567751 0.707940 0.738282 1.524650 0.595391 0.979606 0.666615 1.577245 -0.149659 0.474452 1.536368 1.601539 -0.080450 1.372093 0.492351 1.011743 0.055465 0.938579 0.098380 1.662254 1.146717 1.360680 1.794074 1.775343 1.495121 0.149575 0.319388 -0.171593 1.447699 1.674851 0.627599 0.776469 0.082189 0.505297 1.233899 1.527908 0.903555 1.378047 0.349659 0.969825 0.814736 1.846169 0.693337 0.618949 1.845432 1.378273 1.576222 0.081248 -0.093980 0.049453 1.076139 0.452869 1.721563 0.956031 0.509262 0.178007 0.260436 1.072918 0.420694 0.346588 0.581816 0.456884 0.802054 0.611930 0.110853 -0.018739 1.192373 1.827696 0.454131 0.892618 -0.119411 1.097231 0.516296 1.803486 1.557219 1.545517 0.884332 1.982311 1.953719 1.101558 0.022766 0.570410 1.847161 0.938052 0.462649 1.487668 1.922760 0.413304 1.668114 1.332979 0.260993 0.904563 0.452562 1.262068 1.322472 1.096381 0.827466 0.760844 1.823164 0.020697 1.702714 0.182933 0.413546 1.446066 1.756945 0.107099 1.892260 0.010258 1.312962 1.471008 1.033249 0.676901 0.044523 0.666409 1.723222 1.138159 0.400468 1.185590 0.453713 1.891236 1.522601 1.282240 0.447682 0.611310 1.240469 0.566160 1.744808 1.503289 0.204644 1.529084 1.144316 1.625171 1.207387 1.988021 0.472365 1.116547 -0.045885 -0.095751 1.214416 1.419215 1.482974 0.122830 1.224230 0.922843 0.866912 0.307032 0.744944 1.733186 0.983044 0.495746 0.421215 0.262346 0.815944 0.934353 1.620903 1.742861 1.193700 0.926201 0.335356 0.024179 0.707200 1.595915 0.476730 0.247552 1.657494 0.973946 0.160943 0.364081 0.405133 0.547675 1.020600 0.290755 1.914942 1.257354 0.452866 0.820262 0.773843 1.159114 0.108984 0.334173 1.043272 1.515026 0.819697 1.216991 1.596458 0.146743 1.862421 0.059147 0.331449 1.207966 1.755858 0.676951 0.807017 0.839546 0.926561 0.983399 1.254920 -0.240448 0.535379 0.524654 0.769935 0.837520 0.051843 0.027950 0.448780 0.977510 0.549107 1.372371 1.334191 1.459189 1.506794 0.270853 1.956779 1.613253 0.183880 1.504147 0.262755 1.023139 1.275822 0.017478 0.545033 0.699188 1.802312 1.763013 0.892781 1.620214 1.689582 0.077500 1.869673 0.180962 1.503231 1.674696 0.898227 1.350157 1.075897 1.627051 0.542085 1.171162 1.728735 0.887778 0.896217 1.966287 0.195863 1.207252 1.403478 0.401138 1.593448 0.077627 1.195586 0.095598 0.901884 1.885477 1.175329 0.421783 0.683983 1.168508 1.628233 1.075717 -0.035539 0.288342 1.441688 1.695034 0.244264 1.785767 1.517414 0.426283 0.378334 1.690406 0.910870 0.586972 1.003830 1.449864 1.597673 1.357741 0.435022 0.025420 1.169044 0.088912 1.609824 1.734809 0.563727 1.702053 1.706575 1.682204 1.491978 0.624473 0.471243 0.347616 1.411704 1.002050 0.329841 -0.110942 1.861702)
)
;;; 1024 prime --------------------------------------------------------------------------------
@@ -3690,6 +3826,8 @@
4.098933 #(0.000000 1.064573 1.002412 0.758783 0.562663 0.489006 0.720164 1.124184 1.179525 0.554249 1.917231 1.120737 -0.014393 0.478996)
4.098145 #(0.000000 1.929164 -0.010969 0.226671 0.421687 0.490908 0.253400 1.847703 1.785923 0.405487 1.039797 -0.170604 0.960326 0.465294)
4.098085 #(0.000000 0.927965 0.986737 1.222368 1.417978 1.485804 1.245975 0.840927 0.775976 1.394042 0.027462 0.814776 1.945099 1.450413)
+
+ 4.097747 #(0.000000 0.927497 0.986240 1.222647 1.417439 1.485272 1.245695 0.840056 0.775783 1.393795 0.027626 0.815063 1.945062 1.449403)
)
;;; 15 even --------------------------------------------------------------------------------
@@ -3712,6 +3850,9 @@
4.353701 #(0.000000 0.561831 0.989050 1.195832 1.557580 0.017410 0.685599 1.728228 0.371692 0.005402 0.173541 0.126093 1.783105 1.542090 0.769507 0.225043)
4.328579 #(0.000000 -0.050344 1.847492 1.547825 1.358460 0.943178 0.995171 1.405548 1.304846 1.241639 0.001478 0.213619 1.127944 0.266623 1.638359 0.274327)
4.327240 #(0.000000 0.955918 0.860292 0.568310 0.386497 -0.025631 0.034017 0.451672 0.356585 0.302382 1.070108 1.288665 0.209235 1.352882 0.732831 1.373569)
+
+ 4.327048 #(0.000000 0.956205 0.859536 0.567699 0.386584 -0.025732 0.033650 0.451266 0.357226 0.301560 1.070519 1.288474 0.208531 1.353018 0.732948 1.373096)
+ 4.326872 #(0.000000 0.955614 0.859979 0.567169 0.385493 -0.026738 0.033152 0.450270 0.355426 0.300069 1.068503 1.286708 0.206676 1.350539 0.730076 1.370356)
)
;;; 17 even --------------------------------------------------------------------------------
@@ -3722,6 +3863,9 @@
4.494270 #(0.000000 1.690932 1.377703 -0.129164 -0.024726 0.145784 0.623192 0.601419 1.696617 1.062285 0.338962 0.425431 0.203410 -0.198553 0.017368 0.919786 1.663170)
4.492148 #(0.000000 1.455463 1.016973 1.283695 1.263839 1.209517 1.482261 1.230970 0.098209 1.342845 0.364270 0.321411 -0.041987 1.226617 1.352117 0.009228 0.581250)
+
+ 4.491411 #(0.000000 1.455772 1.016990 1.284311 1.263092 1.209220 1.481223 1.231822 0.098197 1.342689 0.365145 0.322141 -0.042679 1.227674 1.352783 0.010272 0.581419)
+ 4.479510 #(0.000000 1.466836 1.017287 1.287212 1.239798 1.196077 1.475713 1.252884 0.088143 1.339107 0.374990 0.334947 -0.053319 1.236824 1.357721 0.013234 0.581999)
)
;;; 18 even --------------------------------------------------------------------------------
@@ -3732,6 +3876,8 @@
4.589734 #(0.000000 0.128904 0.791112 1.176829 1.319456 -0.047760 0.250141 1.390995 0.366355 1.103698 0.393661 -0.024093 1.112970 0.986605 0.815414 0.987317 0.858855 0.551348)
4.580164 #(0.000000 0.088065 1.683756 0.348660 0.864971 1.361146 1.224199 0.124257 0.574705 0.001082 1.664767 0.723022 1.280851 0.880081 1.007566 1.375306 1.095774 0.962641)
4.571590 #(0.000000 1.013908 0.576382 1.182751 1.623620 0.037627 -0.106587 0.719802 1.088671 0.493611 0.074480 1.074406 1.594362 1.108843 1.196764 1.498638 1.161057 0.996486)
+
+ 4.570825 #(0.000000 1.014207 0.576401 1.182722 1.623809 0.037366 -0.106276 0.719945 1.088940 0.493703 0.074031 1.074477 1.595481 1.109120 1.197779 1.498819 1.161324 0.997523)
)
;;; 19 even --------------------------------------------------------------------------------
@@ -3739,7 +3885,8 @@
5.4619059562683 #(0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0)
4.760423 #(0.000000 0.078500 -0.009665 0.445299 0.326637 1.124753 0.889843 1.345388 1.144621 0.990641 0.735224 1.219841 0.734403 1.676249 0.197585 1.008479 1.250738 0.438525 0.297651)
- 4.757139 #(0.000000 1.214006 0.678504 0.449406 1.346196 1.244571 0.132857 -0.153768 -0.067017 0.441701 1.164930 1.197985 0.674298 0.874921 0.559609 1.197737 0.377744 0.952868 0.897698)
+ 4.755923 #(0.000000 1.213601 0.678762 0.449947 1.346835 1.245401 0.132189 -0.154359 -0.066893 0.442509 1.163773 1.197774 0.674247 0.874256 0.559473 1.197410 0.377246 0.953845 0.897498)
+ 4.747536 #(0.000000 1.217706 0.673412 0.449616 1.339090 1.249452 0.119748 -0.159813 -0.067080 0.446567 1.155275 1.187059 0.684859 0.863274 0.563311 1.197365 0.360905 0.957607 0.891096)
)
;;; 20 even --------------------------------------------------------------------------------
@@ -3763,7 +3910,9 @@
5.9259635937391 #(0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0)
5.8572781078687 #(0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0)
- 5.090596 #(0.000000 -1.562875 1.785894 0.848251 0.986102 0.742147 1.397789 0.150292 1.184844 1.027544 1.306378 1.527711 -1.828996 1.415806 0.019120 0.012875 1.295393 1.185484 0.960699 1.342350 1.336502 0.568299)
+ 5.089246 #(0.000000 -1.563578 1.786275 0.848304 0.986180 0.742233 1.397582 0.150456 1.184136 1.027004 1.307086 1.526999 -1.829642 1.416258 0.019299 0.013748 1.296009 1.186108 0.959554 1.342244 1.336484 0.567533)
+ 5.086539 #(0.000000 -1.558600 1.792808 0.865415 0.986030 0.744442 1.393694 0.150878 1.201323 1.019045 1.304174 1.526136 -1.823124 1.418647 0.013143 0.008502 1.300949 1.177590 0.956163 1.348968 1.333978 0.560568)
+ 5.082899 #(0.000000 -1.557650 1.794784 0.867917 0.987668 0.744180 1.392438 0.153867 1.204047 1.020121 1.303836 1.523350 -1.818745 1.421097 0.012589 0.008813 1.302993 1.174472 0.955160 1.351046 1.335045 0.562128)
)
;;; 23 even --------------------------------------------------------------------------------
@@ -3772,6 +3921,7 @@
5.9208135892745 #(0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0)
5.209616 #(0.000000 0.536241 0.640351 0.401969 -0.144171 1.094640 0.634335 0.931880 1.319439 0.841599 0.634189 1.035522 0.686655 -0.149110 0.408260 1.445706 1.827094 0.431514 0.263936 0.624587 0.308901 1.318237 1.567945)
+ 5.183125 #(0.000000 0.515237 0.616505 0.388174 -0.154053 1.077504 0.634030 0.919474 1.333578 0.858192 0.639743 1.047413 0.669722 -0.134050 0.416610 1.462551 1.793352 0.450968 0.256518 0.611308 0.305992 1.305852 1.588671)
)
;;; 24 even --------------------------------------------------------------------------------
@@ -3781,6 +3931,7 @@
6.0318420391191 #(0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0)
5.345459 #(0.000000 -0.095698 0.168373 0.696544 1.668124 0.213154 0.677142 -0.007245 1.780336 1.499106 0.004136 0.062231 0.031703 0.195401 1.948340 -0.765186 1.124915 0.247067 0.880131 0.374913 1.072400 0.550437 1.729077 1.781477)
+ 5.327954 #(0.000000 -0.085435 0.161969 0.687997 1.676104 0.230398 0.683475 -0.020602 1.783801 1.499648 -0.011720 0.043501 0.046906 0.202461 1.952448 -0.745464 1.120001 0.263114 0.870467 0.369905 1.077557 0.550898 1.736080 1.789818)
)
;;; 25 even --------------------------------------------------------------------------------
@@ -3789,7 +3940,8 @@
6.152729668872 #(0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0)
6.1513186981755 #(0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1)
- 5.462491 #(0.000000 1.331816 1.289492 1.263228 1.303609 1.064324 1.398712 0.390474 0.601270 1.449621 0.323142 1.027016 1.355717 1.546717 1.475178 0.313305 1.554508 0.846161 -0.305485 0.084439 0.041361 0.154335 1.351836 0.892663 0.510955)
+ 5.460646 #(0.000000 1.331634 1.290211 1.263589 1.302441 1.064237 1.397977 0.390913 0.600857 1.449497 0.322631 1.027030 1.355214 1.547798 1.473494 0.314062 1.554652 0.847231 -0.306332 0.084000 0.041043 0.155049 1.350806 0.892133 0.510904)
+ 5.456300 #(0.000000 1.342872 1.289981 1.264009 1.292967 1.063194 1.393690 0.399460 0.602263 1.460963 0.329798 1.029888 1.358471 1.551238 1.465772 0.325043 1.545032 0.860443 -0.309625 0.086051 0.033264 0.158302 1.351322 0.881552 0.506991)
)
;;; 26 even --------------------------------------------------------------------------------
@@ -3798,7 +3950,8 @@
6.2899344518232 #(0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1)
6.2899344518232 #(0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0)
- 5.576417 #(0.000000 1.452929 0.788737 1.198249 1.689042 0.693857 0.958739 0.147434 0.697703 1.042112 0.296148 1.727122 0.523124 -0.005676 0.346527 -0.236828 1.185310 1.177647 -0.039418 0.172251 0.276407 -0.132191 1.807710 0.320239 -1.716686 0.705977)
+ 5.574334 #(0.000000 1.452636 0.789265 1.198306 1.689712 0.694380 0.958593 0.147600 0.697263 1.042774 0.296938 1.727146 0.522657 -0.006099 0.346399 -0.237343 1.184734 1.176892 -0.039585 0.171492 0.276853 -0.132046 1.806205 0.321513 -1.716091 0.707320)
+ 5.546277 #(0.000000 1.441802 0.771659 1.202928 1.691855 0.708249 0.975195 0.157129 0.687671 1.048536 0.321024 1.733871 0.518331 -0.022894 0.357028 -0.231751 1.166176 1.172707 -0.050306 0.177247 0.272994 -0.110337 1.792647 0.332540 -1.705792 0.701656)
)
;;; 27 even --------------------------------------------------------------------------------
@@ -3806,7 +3959,8 @@
6.243681443715 #(0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1)
6.2409835764044 #(0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1)
- 5.704881 #(0.000000 1.905386 1.138563 1.583575 1.180100 1.431855 1.508047 0.943642 1.396947 1.039152 0.942000 0.492708 0.347354 1.638261 1.286461 1.425255 0.165156 1.524946 0.468150 1.286262 1.543171 -0.144728 0.090055 1.237189 0.286571 0.327945 0.823389)
+ 5.703891 #(0.000000 1.905303 1.138643 1.584089 1.180062 1.432269 1.508615 0.944552 1.396299 1.038280 0.941028 0.492897 0.347887 1.637711 1.286513 1.424777 0.165539 1.525065 0.468230 1.286669 1.543975 -0.144617 0.089958 1.237094 0.285752 0.328343 0.823211)
+ 5.690387 #(0.000000 1.903048 1.139994 1.590800 1.180000 1.435173 1.511010 0.946136 1.395622 1.034333 0.926651 0.493738 0.346551 1.621790 1.282972 1.425869 0.157710 1.513441 0.474924 1.288896 1.561138 -0.134639 0.079645 1.241290 0.286319 0.336575 0.832549)
)
;;; 28 even --------------------------------------------------------------------------------
@@ -3814,7 +3968,8 @@
6.6145820617676 #(0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0)
6.5361909866333 #(0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1)
- 5.800257 #(0.000000 1.451557 1.407626 0.749378 1.326538 1.464446 1.504961 1.761908 0.992035 0.609415 0.569751 1.272477 1.423179 0.137698 0.809986 1.240200 0.540306 1.831595 -0.143575 1.373424 -0.135072 1.722438 0.159504 1.245747 0.791067 0.269818 0.859284 0.086356)
+ 5.797015 #(0.000000 1.452186 1.408714 0.750826 1.327090 1.463869 1.506751 1.762893 0.991509 0.610286 0.569539 1.273403 1.424239 0.137182 0.810929 1.241810 0.539536 1.831368 -0.144630 1.374162 -0.136518 1.724313 0.157996 1.246577 0.789824 0.268797 0.857731 0.085757)
+ 5.764549 #(0.000000 1.443387 1.410830 0.756935 1.329597 1.465220 1.508490 1.780908 0.986543 0.621663 0.589546 1.261201 1.419039 0.147261 0.821874 1.246816 0.530749 1.827513 -0.142596 1.366399 -0.155184 1.742593 0.146553 1.251790 0.775801 0.261260 0.829229 0.099947)
)
;;; 29 even --------------------------------------------------------------------------------
@@ -3822,7 +3977,8 @@
6.7148699760437 #(0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0)
6.6767044067383 #(0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1)
- 5.916285 #(0.000000 0.228138 0.094882 1.818491 0.582076 0.569511 1.476307 1.428551 1.759947 1.824598 0.464088 0.363246 1.679883 1.452215 0.960118 0.917823 0.876262 1.234849 1.226566 0.156420 1.394696 1.320244 1.868815 0.939377 1.773746 1.319839 -0.204545 0.821699 1.378838)
+ 5.838203 #(0.000000 1.745402 1.804305 1.163042 0.685944 0.707680 0.547490 1.961430 0.212734 1.392639 1.431945 1.123472 1.734312 1.732126 0.415628 0.805522 0.341757 1.113181 0.961607 0.928945 0.366626 0.901477 0.922976 0.167906 0.984873 0.565829 1.296589 1.589668 0.440285)
+ 5.806619 #(0.000000 1.765877 1.813555 1.153431 0.677522 0.688767 0.531086 1.971058 0.207237 1.392319 1.447194 1.103757 1.739956 1.708261 0.408369 0.816283 0.358739 1.107332 0.955815 0.936241 0.389149 0.892843 0.929610 0.173320 0.977815 0.581084 1.284603 1.592644 0.429639)
)
;;; 30 even --------------------------------------------------------------------------------
@@ -3831,7 +3987,8 @@
6.799307346344 #(0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0)
6.6998701095581 #(0 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0)
- 6.015111 #(0.000000 0.519171 0.144102 0.940813 0.883939 1.411695 1.578259 -1.967965 1.456049 1.121939 1.367321 1.834341 0.751918 1.618089 0.641202 0.828170 0.338354 0.134218 0.027713 1.781981 0.178860 0.762142 0.529533 1.462906 0.520524 0.168313 1.888904 1.770583 0.642387 0.275955)
+ 5.989517 #(0.000000 1.031597 1.280312 1.382343 -0.090570 -0.011363 0.236769 0.141832 0.331207 0.867148 1.449854 0.551169 0.557087 1.212316 0.047944 0.004465 1.908196 1.842534 1.400809 1.960585 1.629066 1.034527 0.344661 1.544924 1.678666 1.049630 0.156310 0.781187 -0.028221 1.820263)
+ 5.966239 #(0.000000 1.027533 1.285236 1.372321 -0.092501 -0.010841 0.257181 0.156562 0.335621 0.884022 1.444251 0.541226 0.563607 1.221593 0.042271 0.000921 1.907909 1.845962 1.395073 1.953732 1.623037 1.032830 0.326098 1.534351 1.672127 1.033933 0.133825 0.773427 -0.012180 1.818016)
)
;;; 31 even --------------------------------------------------------------------------------
@@ -3841,9 +3998,8 @@
6.8986349105835 #(0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0)
6.8660564422607 #(0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0)
- 6.136361 #(0.000000 1.112607 0.799466 0.581437 0.482743 0.327109 1.734655 1.404549 0.469510 1.648769 1.663220 1.328608 1.090577 1.776435 1.198428 1.191841 1.792767 0.960295 0.881314 1.519222 1.130880 1.540687 1.803956 0.024923 0.159711 0.873570 1.336419 0.399142 1.559089 0.753059 1.291918)
-
- 6.1343254727696 #(0.0 1.1114582861709 0.79821588499453 0.58104198490874 0.48211091419933 0.32638332140388 1.73272265196 1.4029792995812 0.46756226526876 1.6464880437548 1.6629240366467 1.3275075005825 1.0883669823613 1.7751065755037 1.1961903453779 1.1902571286467 1.7909751571371 0.9594041226747 0.87883833679626 1.5162757416496 1.1288640201363 1.5381684333467 1.8003222843231 0.022772964383489 0.15827427536576 0.87127664317329 1.3336772224315 0.39658844899828 1.5557605673397 0.75008637266338 1.2904530527654)
+ 6.063667 #(0.000000 1.364903 1.316632 1.173082 1.104923 1.138518 1.537222 1.298458 1.536898 1.248918 1.398961 0.349123 0.121161 0.013180 1.559739 0.286556 1.194686 0.798167 0.081528 1.332662 0.954014 0.084998 0.414512 1.824056 0.345875 0.668464 1.295362 1.561849 1.373623 0.214668 0.827950)
+ 6.043580 #(0.000000 1.352234 1.326989 1.180576 1.094308 1.124433 1.532159 1.302628 1.549283 1.239874 1.403884 0.347882 0.122459 -0.006165 1.560306 0.285973 1.199329 0.799429 0.084691 1.316452 0.948009 0.082126 0.401463 1.839913 0.362736 0.671645 1.301708 1.564351 1.362176 0.222042 0.833015)
)
;;; 32 even --------------------------------------------------------------------------------
@@ -3853,7 +4009,8 @@
7.003 #(0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1)
6.9974670410156 #(0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0)
- 6.234734 #(0.000000 0.801567 0.052225 0.028887 0.559022 0.216260 0.063303 0.783462 1.614586 -0.011994 1.779271 1.727014 1.927223 0.420958 1.283690 0.952938 1.644431 -0.219201 0.500115 0.521609 -0.148351 0.283716 -0.007988 0.521048 1.809968 1.040221 0.912871 0.748302 0.574198 1.842931 1.069236 1.515912)
+ 6.176196 #(0.000000 0.239935 1.809061 0.288056 1.103061 0.978792 1.139143 1.885977 0.173859 1.551831 0.395339 1.105441 0.484532 1.429036 1.539186 1.672434 0.870076 1.851164 -0.218537 1.857900 0.310060 0.707773 0.077288 1.704470 0.609527 -0.015510 1.691932 1.125391 1.470916 1.605797 0.885652 1.158500)
+ 6.141997 #(0.000000 0.241591 1.814998 0.308120 1.113804 0.964500 1.131933 1.878048 0.172046 1.544610 0.400637 1.106928 0.472941 1.409577 1.529068 1.673063 0.861723 1.844186 -0.238383 1.853195 0.303309 0.721149 0.072715 1.703712 0.618072 -0.023597 1.719416 1.135197 1.460037 1.621181 0.892460 1.144898)
)
;;; 33 even --------------------------------------------------------------------------------
@@ -3863,7 +4020,8 @@
7.0670447349548 #(0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0)
6.978609085083 #(0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0)
- 6.402906 #(0.000000 0.172348 0.349001 1.096504 0.640545 0.025595 0.043240 0.143606 0.207488 0.657050 0.519487 1.631546 -0.060544 0.568279 0.288172 0.352908 1.685485 0.884029 0.833080 1.336118 1.260850 0.578953 1.415116 1.165942 1.428785 0.695592 0.163274 0.405834 0.367343 1.545898 0.298795 1.205289 1.400018)
+ 6.283207 #(0.000000 1.678089 1.096801 0.575335 -0.039615 1.102954 1.096777 0.400195 1.159738 0.160093 0.103767 0.965194 0.151537 0.931958 0.184332 1.608128 1.873948 1.736558 1.478811 1.247626 0.825332 1.054280 -0.183007 1.311247 1.585925 1.842302 1.794837 1.300799 1.562422 0.021128 0.100493 0.684748 1.062694)
+ 6.259732 #(0.000000 1.674387 1.093299 0.580339 -0.030636 1.106925 1.106520 0.394711 1.159928 0.173454 0.110534 0.972770 0.146014 0.929453 0.178717 1.621502 1.867902 1.724190 1.479911 1.230847 0.826275 1.066293 -0.197618 1.306235 1.588947 1.848513 1.791777 1.286214 1.562705 0.038208 0.098995 0.692447 1.079488)
)
;;; 34 even --------------------------------------------------------------------------------
@@ -3876,7 +4034,7 @@
7.2649097442627 #(0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0)
7.2615523338318 #(0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0)
- 6.439620 #(0.000000 0.036983 0.183099 0.489676 0.695848 0.951655 1.165805 1.789661 0.132449 0.885896 1.454865 0.039547 1.027042 1.703607 1.480914 1.462909 -0.181089 0.040467 -0.099784 1.505802 0.105425 1.231154 0.481971 1.376315 1.515373 1.299370 1.199483 0.749915 0.183046 1.680457 0.494785 -0.047311 -0.038518 1.338826)
+ 6.412360 #(0.000000 0.025248 0.189605 0.493795 0.703167 0.961049 1.154655 1.801071 0.130997 0.894406 1.450458 0.042272 1.020827 1.704478 1.480189 1.477230 -0.195971 0.032136 -0.114096 1.499523 0.110755 1.234670 0.494291 1.385071 1.505382 1.282258 1.184252 0.745346 0.185958 1.693156 0.502543 -0.049028 -0.043916 1.335434)
)
;;; 35 even --------------------------------------------------------------------------------
@@ -3889,7 +4047,7 @@
7.3109955787659 #(0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0)
7.2921919822693 #(0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0)
- 6.647468 #(0.000000 0.412304 1.661987 0.967630 0.187520 1.127399 0.918762 1.706031 0.793832 1.075475 1.630124 1.116276 0.697130 1.211379 1.482940 0.929909 0.981325 1.557948 1.278683 1.256851 0.314185 -0.107397 1.745237 0.332449 0.828027 0.613725 0.782437 1.671934 1.752327 0.058762 1.041736 1.509216 1.268384 1.409826 0.610091)
+ 6.481761 #(0.000000 1.520207 1.822212 1.561041 0.825520 1.491016 1.466813 1.625489 1.271526 1.054115 1.426022 0.490306 1.455011 0.979909 -0.033193 0.077309 0.330056 0.602860 1.380000 0.483223 -0.060864 0.196600 0.950124 0.494538 0.686774 1.615626 1.562262 1.035678 1.495984 1.388827 0.639594 0.440462 0.011961 0.487944 1.182067)
)
;;; 36 even --------------------------------------------------------------------------------
@@ -3902,7 +4060,7 @@
7.4214091300964 #(0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0)
7.3326554298401 #(0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0)
- 6.741387 #(0.000000 1.020421 0.749654 -0.079775 0.172597 0.493954 1.408855 0.883740 -0.034686 0.129100 0.535786 1.332822 0.945555 0.212472 0.047003 0.094597 1.881279 -0.211945 1.123637 1.393875 -0.461182 1.376151 0.439570 1.103055 1.883122 1.142869 0.731825 1.425623 -0.079745 1.315412 1.458259 -0.175697 0.079235 1.696893 0.396638 0.216116)
+ 6.569778 #(0.000000 0.979254 0.866187 0.700687 1.744189 0.119414 1.598256 0.690821 0.720880 0.567036 0.446131 1.485352 0.599553 0.020906 0.240447 -0.010951 1.137670 0.243611 0.620877 1.364271 0.434369 0.647707 0.188311 -0.119504 0.365318 0.001593 -0.017943 0.664955 0.586138 1.285034 1.129231 0.132751 1.001367 1.149581 1.266954 1.579299)
)
;;; 37 even --------------------------------------------------------------------------------
@@ -3915,7 +4073,7 @@
7.5687103271484 #(0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0)
7.4919209480286 #(0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0)
- 6.817545 #(0.000000 0.696845 0.488705 1.465101 1.328229 0.829502 1.283968 -0.166178 0.813979 1.641779 1.601092 1.668087 0.770817 1.737374 0.384356 0.284380 0.218454 1.498482 1.535319 1.551314 1.129772 1.426033 0.111484 0.566061 0.628609 0.903476 1.022044 0.138386 0.415691 -0.063452 1.005909 0.735928 0.094410 0.417188 0.170520 1.094689 0.514682)
+ 6.711283 #(0.000000 1.308323 1.719493 0.161364 0.298182 1.460936 0.577499 1.053310 1.080234 1.617709 0.213612 1.371631 0.931472 -0.103692 0.459554 0.482692 0.900168 1.249521 0.810950 0.424370 0.179102 0.749815 1.769559 0.741998 1.182666 0.108164 0.206323 -0.059495 0.468738 0.200837 1.529688 1.062246 0.766010 0.628564 0.344011 0.972080 0.669263)
)
;;; 38 even --------------------------------------------------------------------------------
@@ -3927,7 +4085,7 @@
7.735631942749 #(0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0)
7.669114112854 #(0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0)
- 6.970834 #(0.000000 1.502859 0.242594 0.010585 1.577751 0.102211 0.534044 0.006374 0.092793 0.050848 1.319645 0.834046 0.224551 0.838674 1.222450 1.849513 1.164531 1.420773 1.549204 0.839572 0.334900 0.813200 0.630507 0.812456 0.640740 1.585154 1.516459 1.768089 0.657661 1.075095 1.063221 1.329262 0.229651 1.112478 0.878342 0.836545 -0.028731 1.174440)
+ 6.749404 #(0.000000 -0.004519 1.975505 0.077819 0.673766 0.538539 0.110731 -0.181820 1.764590 0.598106 0.408031 -0.026880 1.453105 1.751446 0.110222 0.118051 0.800879 0.664321 -0.109898 0.876563 0.952575 1.332952 0.810033 1.582437 0.179053 0.582981 1.240032 0.496190 0.130511 0.582691 1.780691 0.191938 1.602801 0.762519 1.188263 0.837212 0.667559 0.920435)
)
;;; 39 even --------------------------------------------------------------------------------
@@ -3936,7 +4094,7 @@
8.0486888885498 #(0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0)
8.0062685830938 #(0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0)
- 6.959998 #(0.000000 0.314774 0.239606 1.111172 1.146816 0.652812 0.126488 0.728465 1.228869 0.140235 0.052408 -0.049634 1.655038 1.469802 1.863878 1.630161 0.988659 0.863299 0.084743 0.824045 0.615672 0.042194 0.852561 1.105288 0.976708 0.316968 0.670086 1.078055 1.608521 0.913404 -0.141236 0.467559 0.397294 0.893823 0.848255 1.250524 1.443041 0.815101 1.667303)
+ 6.813564 #(0.000000 0.959332 0.334694 0.453757 1.787157 1.496909 0.296330 1.485442 0.326157 0.307369 1.622773 0.414223 0.673689 0.692906 0.380344 1.094307 0.628020 0.500954 1.751544 0.235690 -0.146453 0.297571 -0.052653 -0.135989 0.508222 0.941403 -0.121294 1.303117 0.741319 1.183321 0.042521 0.526286 0.424248 1.258288 1.289956 1.416972 1.435932 0.628939 0.590865)
)
;;; 40 even --------------------------------------------------------------------------------
@@ -3944,35 +4102,35 @@
8.0884717473459 #(0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1)
8.0304555793911 #(0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 1)
- 7.083446 #(0.000000 -0.157658 1.825983 0.410977 0.704199 0.493590 0.925761 1.251925 1.007298 0.447884 -0.025619 0.213918 0.357901 1.601688 0.351238 1.575040 1.670352 0.925446 0.805400 1.018482 0.672744 1.832861 1.595847 0.674930 1.268937 0.946197 1.492869 0.438790 1.832910 1.059966 1.080202 1.887174 0.191066 0.775674 -0.018051 0.171564 0.071524 0.780939 -0.009774 0.323047)
+ 7.024022 #(0.000000 1.335776 1.067641 0.988236 0.660080 0.174379 1.849595 0.765594 1.778337 0.372601 1.298909 1.237014 0.171061 1.316464 1.650050 0.910839 0.165015 0.916868 1.774038 0.438059 1.169890 0.924925 1.982890 1.686557 1.561499 1.765166 0.090401 0.246854 0.831400 1.391714 1.330583 0.777426 0.616771 1.010512 0.909790 1.361934 1.017190 0.741990 1.441905 0.694346)
)
;;; 41 even --------------------------------------------------------------------------------
#(41 8.3439186011904 #(0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1)
8.2169809341431 #(0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0)
- 7.136549 #(0.000000 0.163504 0.412110 0.089913 0.623012 -0.218471 0.234685 -0.187768 -0.078997 1.469178 1.319405 1.167651 1.121516 0.252299 0.194340 -0.212116 -0.232639 1.241890 -0.166603 0.285653 1.684113 0.660652 0.628682 0.892781 1.475726 -0.685288 1.468412 0.285208 1.741217 1.481315 0.624003 -0.260244 1.303925 0.467244 1.406726 1.733611 0.020668 0.593819 1.689409 1.533695 0.148604)
+ 7.073889 #(0.000000 0.163652 0.421805 0.094256 0.604464 -0.215496 0.256713 -0.206120 -0.083433 1.495584 1.327742 1.171710 1.116398 0.243965 0.176501 -0.217268 -0.263315 1.252715 -0.167662 0.269980 1.683934 0.663494 0.637135 0.915820 1.464488 -0.687835 1.480726 0.309415 1.726657 1.459870 0.607853 -0.264632 1.295540 0.476503 1.387760 1.751793 0.033256 0.605447 1.678643 1.524832 0.153431)
)
;;; 42 even --------------------------------------------------------------------------------
#(42 8.3791161021838 #(0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1)
8.3605623245239 #(0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1)
- 7.306675 #(0.000000 0.721555 1.210248 0.520710 0.334236 0.685974 0.392836 1.512325 0.718683 1.728453 0.907713 1.229614 1.725122 0.786876 0.098786 0.150671 1.801045 1.906026 1.185179 1.363158 0.056236 0.375624 1.545454 -0.139864 -0.109789 0.051831 0.450128 0.206147 1.203227 1.794747 1.406437 1.426322 1.028049 0.321940 1.146074 1.265704 0.593734 0.166545 1.624188 0.324601 0.432784 0.312460)
+ 7.195059 #(0.000000 1.846612 0.517922 -0.013799 -1.848900 0.585089 1.757576 0.465557 0.145753 1.211552 1.015608 1.792065 1.627977 1.499969 0.450073 1.206853 0.110856 1.397495 0.898617 0.786978 -0.144889 1.148458 1.586701 1.885957 0.241185 0.476605 1.751060 1.518294 1.803355 0.358521 1.800100 0.015106 0.268015 1.199413 0.756884 0.769405 0.296606 -0.021548 0.375908 1.872348 1.430707 1.447781)
)
;;; 43 even --------------------------------------------------------------------------------
#(43 8.4720001220703 #(0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0)
8.3471550144283 #(0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0)
- 7.374040 #(0.000000 0.920348 1.548039 0.570919 0.796721 0.042616 1.286453 1.357648 1.542011 0.714192 0.988702 1.374771 0.751358 1.581261 1.293290 1.395960 0.306717 0.681556 0.275285 0.681463 0.684371 0.017885 0.086077 0.080690 0.289881 0.107736 0.698786 1.080166 0.750659 0.258838 0.589240 1.391645 1.038091 0.088041 1.832470 0.532731 1.884870 1.033420 0.863121 0.466786 0.322599 1.043374 0.750945)
+ 7.245842 #(0.000000 0.763000 0.320126 0.154359 1.553977 1.171421 1.676069 1.551662 1.690059 1.686830 0.536225 0.474995 0.900884 0.660195 0.619062 0.356876 1.267614 0.332983 1.210466 0.046411 1.189371 0.352066 1.214579 1.208511 0.319299 1.571068 1.698235 1.659543 1.375150 1.069856 1.309104 0.365372 0.497878 1.324851 1.248970 1.186066 -0.154754 0.797979 0.879863 1.589033 0.817141 1.019522 1.650885)
)
;;; 44 even --------------------------------------------------------------------------------
#(44 8.6881771087646 #(0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0)
8.4271850585938 #(0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1)
- 7.425696 #(0.000000 1.385635 1.123277 1.152360 1.822366 1.843750 1.775282 1.404721 0.528465 -0.026958 -0.071770 1.826573 -0.058725 0.794109 1.631616 0.227047 1.675173 0.283837 0.478214 0.524075 0.969806 1.331348 1.841656 1.277111 -0.110196 1.685643 1.669252 1.013526 0.020181 1.013152 0.669883 1.489727 -0.218502 0.611018 1.006976 1.448311 1.191195 0.900471 0.396566 0.546246 1.782949 0.337774 0.491012 1.397133)
+ 7.383103 #(0.000000 1.392778 1.116907 1.163749 1.827409 1.840636 1.765722 1.400481 0.542530 -0.041712 -0.080468 1.836760 -0.078893 0.813883 1.643984 0.221264 1.680282 0.286628 0.484472 0.516843 0.984039 1.311924 1.835105 1.266991 -0.113180 1.681374 1.684192 1.024605 0.001476 1.017692 0.672026 1.503682 -0.210654 0.612670 1.017518 1.457237 1.186766 0.897314 0.413971 0.549225 1.789868 0.344790 0.502198 1.409416)
)
;;; 45 even --------------------------------------------------------------------------------
@@ -3980,14 +4138,14 @@
8.6457691192627 #(0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0)
8.6353975051189 #(0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1)
- 7.603923 #(0.000000 1.362383 1.457978 0.347018 0.893014 0.377196 1.860309 0.671756 1.751827 1.526010 1.863321 1.711699 1.277824 0.593298 0.256275 0.384302 1.861246 1.444207 1.580810 1.736284 -0.086498 0.351759 0.175025 1.464111 1.216744 0.820173 0.422617 0.857129 1.063265 0.877063 1.772951 0.874642 1.726213 1.451460 1.545361 0.233973 1.500552 1.725246 0.809644 1.622731 0.879002 1.367314 1.611970 0.396501 1.042698)
+ 7.303861 #(0.000000 0.252336 1.219796 0.897766 -0.116149 0.227305 1.280251 1.037970 1.703750 1.611424 1.039029 0.584547 1.687902 0.611923 0.336734 1.084400 1.940950 0.530526 0.505516 1.089165 0.230553 1.800499 1.732979 0.090177 1.437594 1.049713 1.491152 0.365947 0.906503 0.165666 0.784877 1.600815 1.486010 1.329354 1.968920 0.195457 1.832815 -0.054078 0.697783 0.638499 0.153835 0.002512 1.868303 -0.014000 0.429297)
)
;;; 46 even --------------------------------------------------------------------------------
#(46 8.9617748144774 #(0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1)
8.7916784286499 #(0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0)
- 7.656637 #(0.000000 0.915752 -0.238059 0.297316 0.045582 0.075505 0.798450 1.315202 1.416327 1.495341 1.011878 1.035757 0.230106 0.351660 1.151392 0.195263 0.683862 0.371179 1.203321 0.708032 0.170417 0.441963 -0.031361 1.108473 1.831056 -0.171422 -0.122511 -0.021799 0.359447 0.355599 0.128427 0.675688 0.000310 1.859063 0.800604 0.439912 0.061769 1.110905 0.838220 1.470462 0.712324 0.390141 0.350081 1.396705 1.757313 0.850546)
+ 7.584968 #(0.000000 1.171648 0.465468 0.131303 1.594718 0.706318 1.718863 1.146819 0.018792 0.638644 0.910087 1.741872 0.428032 0.728768 0.023219 0.190392 1.064181 0.955397 0.263288 1.604434 0.784962 1.105780 1.086559 1.109392 0.757745 -0.156366 0.703324 1.917555 1.467012 1.548344 1.687152 0.184098 0.583572 0.961866 0.890935 0.802539 0.827849 1.290283 0.446458 1.680213 0.400808 0.800817 0.644214 0.715226 0.235801 0.153353)
)
;;; 47 even --------------------------------------------------------------------------------
@@ -3995,42 +4153,42 @@
8.8477687835693 #(0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0)
8.7835607528687 #(0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1)
- 7.817569 #(0.000000 0.573788 -0.252101 0.464697 1.554731 0.705513 1.303311 1.167099 1.853727 1.032874 1.104611 1.160399 0.667803 -0.040562 0.308255 0.648806 1.179556 0.328212 0.344011 0.388242 0.779466 1.054529 0.901249 0.775493 0.235679 0.707259 1.066074 0.043968 0.903454 1.845977 -0.069353 0.078652 0.362190 1.392001 1.180328 0.843634 0.254043 1.401493 1.721802 0.362551 0.085634 1.292946 1.104980 0.478166 0.822830 0.358159 0.111695)
+ 7.625618 #(0.000000 -0.112543 0.162193 0.262936 0.309787 0.399515 0.838951 1.318637 0.309050 0.951291 0.659018 0.515026 0.357237 0.617682 0.429201 0.617868 0.107587 0.858643 1.101438 1.560790 1.678463 1.331341 1.387467 0.658619 0.018866 0.971195 0.055851 0.053110 1.495335 0.454723 1.247481 0.773775 0.481962 1.858786 -0.068326 1.177672 1.932601 1.317601 0.273394 1.974284 0.600145 1.230350 0.863034 0.080503 0.079490 0.839700 1.188593)
)
;;; 48 even --------------------------------------------------------------------------------
#(48 9.12184715271 #(0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1)
8.9965600967407 #(0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1)
- 7.844565 #(0.000000 1.842151 0.454377 1.064326 -0.051524 1.551695 0.742960 0.829584 1.991243 0.857302 0.308386 1.368984 1.772959 1.626519 0.382566 0.363395 1.115750 0.622218 1.388924 0.997118 1.795299 -0.043965 1.439446 0.928901 0.538707 0.730789 0.281995 -0.144004 0.454298 0.837049 1.906884 1.082442 0.527515 1.172729 1.240405 1.117835 1.294407 0.178115 0.777384 1.493289 0.123343 1.650847 1.863776 0.970923 1.058400 1.755695 1.463124 1.472188)
+ 7.636493 #(0.000000 0.028693 1.120467 1.158093 0.800024 0.446569 -0.066437 0.856174 0.735463 1.673584 0.346476 1.437859 0.349869 1.139578 1.791293 0.696810 1.421492 0.977552 1.117023 1.209765 1.442202 -0.060332 1.797833 0.233016 0.529967 0.537268 1.496349 0.490346 0.064054 1.941166 1.629953 1.119736 1.426821 1.199171 0.869994 0.068331 1.351621 1.392131 1.658897 0.920213 1.222607 1.464715 1.718834 0.780016 1.387535 0.919845 0.283132 1.489192)
)
;;; 49 even --------------------------------------------------------------------------------
#(49 9.2634744644165 #(0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1)
9.1650037765503 #(0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0)
- 7.882299 #(0.000000 0.901919 0.728837 0.921050 1.473682 1.550622 -0.063361 1.504243 -0.033128 0.467005 0.315966 0.301998 1.154563 -0.082780 0.694260 0.299654 0.711124 1.350503 1.902346 0.738759 1.351271 1.208965 1.743834 -0.029430 -0.195194 1.344593 1.254330 1.444246 1.483538 1.304452 0.837496 0.498612 0.641648 -0.330402 1.941445 -0.193768 1.098157 1.888018 0.556238 1.614437 1.235507 0.062359 0.036000 1.428920 0.386052 -0.322049 0.755579 0.099302 1.691084)
+ 7.829193 #(0.000000 0.323049 1.344704 0.798140 0.157147 1.681485 -0.094967 1.706010 0.562203 0.795721 0.039658 0.149670 0.832958 0.197130 0.128765 1.143458 0.513852 0.134752 0.037092 1.908488 0.726689 0.689394 0.580238 0.503605 1.350245 1.712415 1.734253 0.612999 0.566517 0.051481 0.774173 0.669055 1.617094 0.146313 1.764191 1.210644 1.186600 1.383638 1.509287 0.545472 1.614480 0.915450 1.487259 0.188305 0.712809 0.635300 0.865093 0.418211 0.884324)
)
;;; 50 even --------------------------------------------------------------------------------
#(50 9.348 #(0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0) ; symmetric??
9.1582123370176 #(0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1)
- 8.070402 #(0.000000 -0.037043 1.384919 0.130137 0.692921 1.760284 -0.076784 0.570877 0.681080 1.331924 0.467369 0.865832 1.906830 0.659102 1.108906 0.578894 0.061342 -0.123514 0.488789 1.737603 0.118769 0.241546 1.493060 0.369055 1.783608 1.500001 1.375803 1.030628 0.856454 0.645203 1.728534 1.469985 0.310829 0.297950 1.287832 0.096271 0.128335 0.994617 0.651208 0.870368 0.591350 1.134760 0.414915 1.633024 0.408047 0.548177 0.700784 1.154081 0.861451 1.052323)
+ 8.061391 #(0.000000 0.848304 1.906034 0.717235 1.654989 0.350862 1.908758 1.834522 1.523890 0.651926 1.325704 0.581829 1.432577 0.897105 0.351652 0.085225 1.945629 0.205834 1.536529 1.627626 0.751888 1.902257 0.518694 0.527289 0.555603 0.878856 0.220241 1.096010 1.173082 1.194996 0.265333 -0.008645 1.106310 1.518132 1.781944 0.661768 1.030936 1.632841 1.470993 1.679277 1.723896 0.934398 1.041183 0.889820 1.879142 1.121251 1.025588 0.471632 0.840736 1.408733)
)
;;; 51 even --------------------------------------------------------------------------------
#(51 9.5728101730347 #(0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0)
9.3615226745605 #(0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0)
- 8.165599 #(0.000000 0.150449 1.678315 1.837073 1.058190 0.069620 1.854029 -0.085925 0.296531 0.065539 0.912823 0.376253 0.291324 0.552685 0.104763 1.286270 1.176845 0.357095 -0.010247 1.757762 0.771685 -0.074803 0.732355 0.322783 0.749588 0.297477 0.846165 1.483390 0.016876 1.038606 1.018345 0.460287 0.430144 0.071319 1.039890 0.302421 0.954389 1.071287 -0.204520 0.470027 0.269482 0.230862 -0.078725 0.263147 1.429161 1.382858 1.783419 -0.238026 0.438793 0.929999 1.050524)
+ 8.073326 #(0.000000 1.714786 1.798056 0.010691 1.628607 0.763600 0.325637 1.588806 1.808657 1.240021 1.045091 0.169750 1.796417 0.628005 0.108291 0.700744 1.649641 0.896541 1.858034 1.628342 1.661313 1.143416 -0.005342 0.327043 0.477585 1.985806 0.132230 1.480987 0.454969 0.348094 0.815328 0.921275 0.535471 1.387692 1.940044 0.580772 1.520592 0.713211 0.170291 0.240523 1.232963 -0.053338 0.428998 0.883901 1.907781 1.807735 1.804520 0.110542 1.598981 1.571369 1.584535)
)
;;; 52 even --------------------------------------------------------------------------------
#(52 9.5426025390625 #(0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0)
9.449512348335 #(0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1)
- 8.111004 #(0.000000 0.170305 0.822603 0.130127 0.512896 0.841795 0.376489 0.011355 0.847300 0.936006 1.156255 0.987872 1.211713 0.784290 0.624050 1.061879 -0.249306 0.299827 1.295222 0.810826 0.427507 0.404934 0.988875 1.482900 0.063205 1.333504 0.606447 1.152679 1.238328 0.381083 0.398907 1.927930 0.512866 0.301872 0.655779 0.287853 1.557443 1.785672 1.458093 0.427878 0.262660 0.772341 1.092535 1.891299 0.965340 -0.227448 1.133311 1.865723 -0.199990 1.602626 0.901735 0.548317)
+ 8.109037 #(0.000000 0.170617 0.822424 0.130317 0.512278 0.840838 0.376654 0.011826 0.847974 0.935719 1.156767 0.988491 1.212358 0.784165 0.623846 1.062101 -0.248448 0.299809 1.294866 0.811364 0.428281 0.405353 0.989549 1.482814 0.063462 1.333062 0.607212 1.151768 1.238361 0.381364 0.398903 1.927224 0.513150 0.301272 0.655721 0.286962 1.558011 1.785096 1.458107 0.428869 0.261909 0.771439 1.093062 1.890735 0.964966 -0.227288 1.132497 1.865413 -0.199040 1.603372 0.902418 0.549278)
)
;;; 53 even --------------------------------------------------------------------------------
@@ -4038,7 +4196,8 @@
9.627 #(0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0)
9.6159172058105 #(0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0)
- 8.334545 #(0.000000 -0.305400 0.740765 0.287395 0.873027 0.468182 0.260124 0.968856 0.229411 -0.249164 1.343578 0.952434 0.410062 0.885949 1.827901 0.816594 1.035436 1.236563 1.426333 -0.209475 1.214346 1.694548 1.012873 0.267865 0.674922 0.220202 1.343584 1.220222 0.611850 -0.023784 1.199097 -0.202353 -0.092194 1.677878 1.255225 1.310376 1.424006 0.535248 0.622346 0.812914 0.905808 0.987279 1.161438 1.773040 0.576958 0.934832 0.569922 1.586781 1.432108 0.832137 1.061297 1.872432 0.555691)
+ 8.332771 #(0.000000 -0.305777 0.739546 0.287019 0.873776 0.467647 0.260092 0.969699 0.230130 -0.248312 1.342773 0.953339 0.409543 0.886181 1.828162 0.815530 1.034243 1.236759 1.424969 -0.208771 1.213666 1.694961 1.013513 0.268408 0.675155 0.218350 1.343058 1.220034 0.612003 -0.024036 1.199102 -0.202108 -0.092385 1.678334 1.255389 1.310958 1.425594 0.535192 0.621180 0.813753 0.904557 0.988200 1.161547 1.771646 0.578148 0.935050 0.569713 1.586532 1.430758 0.831829 1.061309 1.872314 0.553903)
+ 8.331454 #(0.000000 0.064790 1.743038 0.428336 1.687525 0.916084 0.380682 0.672389 0.529534 1.402731 1.197784 0.869630 0.061996 1.517820 1.770614 0.701028 1.626810 1.046495 0.186990 0.439124 1.175071 0.998009 1.713491 1.407134 1.067634 0.719966 0.856284 1.945520 1.543390 0.459036 0.968057 1.043910 1.961608 0.707099 0.431358 0.323317 0.618539 0.687174 1.087599 1.684455 1.012081 1.338550 0.326942 0.826668 1.253275 0.986097 0.866217 1.911671 0.158840 0.189353 1.716267 0.227691 1.700951)
)
;;; 54 even --------------------------------------------------------------------------------
@@ -4046,7 +4205,7 @@
9.748743057251 #(0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0)
9.5190944671631 #(0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1)
- 8.477405 #(0.000000 -0.042413 0.666814 1.933388 1.118289 1.340056 1.018145 1.491527 0.763768 1.240442 0.688337 0.239330 1.798997 1.709296 -0.146157 1.516568 0.030925 -0.052103 1.454992 1.289325 0.018997 0.683736 0.110487 -0.121422 0.652680 0.786685 0.069488 0.447636 0.495264 1.485969 1.829008 0.387600 0.284162 1.576684 1.026147 0.364746 0.136014 0.774186 1.768544 0.244484 1.567261 1.586185 0.652665 1.724380 0.272898 -0.127917 1.613841 -0.012823 0.907740 1.045916 1.018123 1.512328 1.702665 1.789300)
+ 8.327978 #(0.000000 0.703874 -0.045870 1.083105 0.910562 1.709224 0.752320 0.676636 1.727253 0.406956 0.628051 1.254106 0.915000 0.708380 1.350179 0.575837 0.060701 0.472172 0.431638 0.694804 0.056847 1.096627 0.958901 0.033520 0.304289 0.129086 1.839141 0.689720 0.412664 0.458828 1.793123 0.732060 0.641059 0.959950 1.216262 0.606686 1.445547 1.622833 1.050078 1.577327 0.465586 1.312214 0.490961 1.693592 0.139730 0.536821 0.865761 -0.223218 1.775855 -0.039697 0.105137 1.384381 1.367487 1.056359)
)
;;; 55 even --------------------------------------------------------------------------------
@@ -4055,7 +4214,7 @@
9.7848987579346 #(0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1)
9.6719217300415 #(0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1)
- 8.579515 #(0.000000 0.357991 0.103543 0.115982 1.377762 1.708827 1.561820 0.239386 1.229160 1.529983 1.604507 0.090243 1.554945 1.380327 0.061732 -0.050422 1.586327 1.389924 0.962057 0.985132 0.614670 1.815895 0.692578 1.823293 -0.177579 1.194143 1.425118 1.069211 1.790543 1.037879 1.689572 0.010126 1.121974 0.946858 0.491549 1.342691 0.912213 1.592462 -0.072729 1.778729 0.086419 0.146501 1.048392 1.826880 0.388772 0.875685 0.351520 0.604473 0.902940 1.695029 1.091606 0.228158 0.359473 0.719811 1.487805)
+ 8.400332 #(0.000000 0.937858 1.424299 1.491234 0.356603 0.269499 0.823051 0.140834 0.007093 1.384539 0.065171 1.179829 1.337847 0.888934 1.516583 1.086639 1.832964 0.655763 0.957739 1.447852 0.442425 -0.100624 0.763023 0.186395 1.123797 0.469482 0.964293 0.031109 0.553730 1.734865 -0.071253 1.370148 1.434247 1.615143 1.497915 -0.004439 0.269417 1.275776 1.240784 1.654731 1.538640 1.530128 -0.023186 1.869831 0.173455 0.365378 0.066757 1.669686 1.143525 0.981925 0.440908 1.891475 1.167343 1.224747 0.392931)
)
;;; 56 even --------------------------------------------------------------------------------
@@ -4064,7 +4223,7 @@
9.7536716461182 #(0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 1)
9.6809562784664 #(0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1)
- 8.536917 #(0.000000 1.022563 1.841728 0.203028 0.865499 0.668303 1.447549 1.596201 1.581759 1.464369 -0.041008 -0.215794 0.860384 0.473738 0.983349 0.110841 1.271064 1.273275 0.808226 0.690107 1.339016 1.752444 0.129094 1.659301 0.162804 1.136267 0.120475 1.579251 0.715758 1.357831 -0.029961 1.436065 1.124218 0.893816 1.136719 1.044699 0.840164 0.148670 0.670692 -0.198375 -0.588067 1.520607 0.193948 1.566439 0.336299 0.335506 1.322294 0.211070 0.355325 0.212226 0.306025 0.236445 1.882560 1.509747 0.348090 0.413993)
+ 8.534566 #(0.000000 1.023637 1.841901 0.204847 0.864860 0.668152 1.448235 1.595993 1.580660 1.464363 -0.040249 -0.216737 0.861056 0.474876 0.984599 0.110801 1.271443 1.273671 0.808331 0.690558 1.339079 1.752478 0.129002 1.657791 0.162633 1.137301 0.120533 1.578698 0.715771 1.357045 -0.030250 1.436148 1.123135 0.894313 1.136318 1.045472 0.841413 0.148653 0.671546 -0.198802 -0.587694 1.520026 0.192928 1.566202 0.335810 0.335233 1.321356 0.211571 0.356337 0.213403 0.306397 0.236633 1.881376 1.509611 0.348572 0.414192)
)
;;; 57 even --------------------------------------------------------------------------------
@@ -4073,7 +4232,7 @@
9.9813938140869 #(0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1)
9.8992366790771 #(0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1)
- 8.591297 #(0.000000 1.191999 0.062051 1.232516 0.255936 0.512309 0.474803 -0.395722 0.443393 0.236505 0.772744 1.155421 0.291749 0.857387 -0.119558 0.651837 0.717626 1.105069 0.738518 -0.324455 0.316139 0.601350 1.083443 -0.345519 1.073998 1.298256 1.427270 1.827651 0.881553 0.545485 0.971493 1.830274 -0.342727 -0.137824 0.267013 1.467821 0.250409 0.345069 0.243447 1.396971 1.257819 0.749178 1.637841 -0.259185 1.593301 1.416170 1.156198 0.348410 1.009779 0.636225 0.222414 1.031401 0.325159 1.617037 1.397471 0.730982 0.466837)
+ 8.589773 #(0.000000 1.192233 0.062666 1.232903 0.255751 0.512244 0.475405 -0.396189 0.442650 0.236608 0.772144 1.154621 0.291588 0.857937 -0.119936 0.651013 0.717262 1.105353 0.738624 -0.325387 0.316363 0.600888 1.083040 -0.345384 1.073017 1.297319 1.427236 1.827233 0.881528 0.545348 0.971873 1.830310 -0.343130 -0.138251 0.267902 1.467697 0.250609 0.345727 0.244285 1.396066 1.257166 0.749805 1.638413 -0.258778 1.592715 1.415608 1.156040 0.348672 1.009987 0.636528 0.221787 1.030873 0.325749 1.616093 1.396484 0.731107 0.466853)
)
;;; 58 even --------------------------------------------------------------------------------
@@ -4082,7 +4241,7 @@
10.040289878845 #(0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1)
9.8761510848999 #(0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1)
- 8.713882 #(0.000000 -0.011979 1.342337 1.549598 0.255055 0.087420 1.470440 -0.011545 0.457764 0.731177 0.775869 0.412236 0.026570 0.946251 0.277344 1.179460 1.414582 0.312437 0.019675 1.409301 1.107140 -0.015602 1.246008 1.219435 1.165724 0.945926 0.182820 1.798700 1.276888 0.723191 1.755067 0.500844 0.010973 0.435821 0.114097 0.785774 1.070476 0.924452 -0.159245 0.529326 0.072857 1.970173 0.610990 0.843319 1.050732 0.099693 0.402957 0.695010 0.559188 0.429711 0.243525 -0.060735 0.797223 1.676511 0.801741 1.190636 0.107080 0.444554)
+ 8.680769 #(0.000000 1.072860 0.888272 0.238811 0.653446 0.734395 0.285852 1.155997 1.301025 1.773537 1.855956 1.051796 0.968510 0.891291 0.485483 0.311266 1.304957 1.249805 0.833314 1.762856 -0.015674 0.736950 1.126879 0.793573 1.622535 1.359978 -0.173029 1.130324 1.107187 0.421488 1.271359 0.424863 0.028853 1.580675 1.564845 0.235468 1.119196 1.504389 1.821411 1.807431 1.113468 1.153896 0.824568 0.957990 0.751188 0.995731 1.393700 1.514969 0.784317 1.458312 0.519023 1.807112 0.893783 0.481136 1.760666 0.590839 1.096607 0.219833)
)
;;; 59 even --------------------------------------------------------------------------------
@@ -4091,14 +4250,14 @@
10.237511634827 #(0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1)
10.094394683838 #(0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1)
- 8.830578 #(0.000000 1.657209 1.583311 0.253969 1.826023 0.657133 1.326427 -0.016471 0.647067 0.154978 0.348096 -0.030938 0.794754 1.165811 1.219591 1.502426 1.605947 1.571159 0.613707 0.830007 1.803390 -0.094429 1.944573 1.713497 1.745772 -0.072797 1.475658 0.887356 0.437553 -0.201190 1.640893 -0.049410 0.156878 1.204143 1.841027 0.233385 0.333176 0.339987 1.309363 1.278221 1.387647 0.827406 1.637733 0.254874 0.787101 1.448459 0.799976 0.562163 1.056952 0.605214 1.113631 0.553360 -0.210800 0.638240 0.104012 0.035329 1.734131 0.978652 1.905256)
+ 8.761160 #(0.000000 1.447450 1.831638 1.068973 1.475970 0.999993 0.876392 -0.018362 0.644470 -0.128263 -0.133208 0.429039 1.088233 1.688951 0.035797 0.934646 1.786964 0.273442 1.238805 1.241924 1.128607 1.239139 0.390859 -0.098309 0.489073 0.773215 1.462341 1.529492 1.346421 1.299375 1.307151 -0.004017 0.224966 1.184348 1.108914 -0.038815 1.759128 1.714367 1.265375 1.192778 1.843013 1.075410 0.577470 0.267854 1.082396 1.068038 1.113663 0.015267 0.715436 1.679959 1.029183 1.926759 0.327619 -0.031990 0.486925 0.155627 0.605977 0.761897 0.294949)
)
;;; 60 even --------------------------------------------------------------------------------
#(60 10.491376876831 #(0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0)
10.333255371943 #(0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0)
- 8.951579 #(0.000000 0.258127 0.498957 1.601559 0.186639 1.402964 0.225795 1.687872 0.522607 1.523085 1.729178 1.460843 1.702207 1.371207 0.027516 0.221113 1.531754 0.676097 0.875251 1.085921 1.204329 1.815088 0.135091 1.206594 0.496845 0.287390 0.655038 1.435072 0.866118 1.186833 1.843603 0.708055 0.838775 1.674708 0.946350 0.201836 0.721802 0.304115 0.144076 0.579124 1.362869 1.534721 1.564307 0.362471 0.899013 1.010922 0.514055 0.129358 0.226010 0.223300 0.489111 0.583572 -0.176319 0.630159 0.737825 0.870085 0.419835 1.527359 1.432146 0.937528)
+ 8.863258 #(0.000000 0.262284 1.115915 0.211010 1.512339 0.190060 0.195810 0.057777 0.645564 1.361862 0.226343 0.181464 0.506628 0.321688 0.440203 1.931823 0.192351 0.786794 1.324633 1.686187 -0.166603 0.367010 0.060778 1.126723 1.270445 0.012980 1.422982 1.267378 1.616845 0.868158 0.320208 1.308888 0.231182 0.268964 1.060086 0.565479 0.702980 1.819983 0.876078 1.690157 1.846356 0.149193 -0.025394 1.546608 1.258724 0.257609 0.243886 1.639194 0.615079 0.626207 0.896033 0.091991 0.662157 -1.860274 1.473984 -0.306246 1.413731 1.094226 0.372908 0.308593)
)
;;; 61 even --------------------------------------------------------------------------------
@@ -4107,7 +4266,7 @@
10.209 #(0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0)
10.120587847566 #(0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1)
- 9.017807 #(0.000000 0.730168 0.570694 1.772995 0.415796 0.809373 1.263186 0.921056 1.365645 1.227946 1.576042 -0.060171 1.904047 1.268766 0.297958 0.767092 1.903738 1.685274 0.906301 0.579911 -0.014389 1.389993 -0.126828 0.389874 1.085057 0.829285 0.099497 1.335175 0.738355 1.543573 0.060550 0.806198 1.185590 1.315695 0.178879 0.309289 0.139634 1.850497 1.045820 1.201016 1.520488 0.780593 1.342440 0.450864 1.182107 0.074788 1.336124 0.343778 0.013661 1.658187 0.038062 -0.039598 0.340092 1.055908 1.601800 1.917235 1.864307 1.823702 1.888942 1.562764 1.509635)
+ 8.941648 #(0.000000 1.186832 -0.103925 -0.245138 1.607497 1.102256 0.078017 -0.085760 1.589414 0.995331 0.513407 0.334309 0.316700 1.793579 1.099795 1.709646 0.081588 0.832926 1.335472 0.416473 0.434693 0.198333 0.859054 1.719419 0.038083 1.304196 0.122505 0.865023 0.317087 0.993102 0.257738 1.544496 1.447870 1.171668 0.222514 -0.146285 0.199252 0.072409 0.497503 1.239355 1.427700 0.167108 0.164700 1.147382 0.285313 1.297914 1.232196 0.231920 0.583284 0.289512 0.515254 0.310609 1.165751 0.412956 1.749929 1.797357 0.150681 1.704325 1.570898 1.629358 0.118543)
)
;;; 62 even --------------------------------------------------------------------------------
@@ -4115,7 +4274,7 @@
10.501984943687 #(0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1)
10.318392753601 #(0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1)
- 9.062413 #(0.000000 0.613372 0.050889 0.485603 0.049883 -0.055754 0.225636 -0.021102 1.847923 1.579836 1.477710 0.772683 1.061912 -0.248592 0.576995 1.863775 1.431335 0.894007 1.924769 1.301942 0.427446 1.094879 0.543505 0.901866 0.240086 0.822331 0.992426 -0.322198 0.895285 1.416434 0.797138 1.296409 0.680476 1.881151 1.596218 0.749390 0.856237 0.485520 0.070539 0.122396 0.959652 1.496711 0.362293 0.547219 1.145474 0.325482 0.505509 0.635217 0.727344 1.080413 1.254117 1.468451 0.348285 -0.121072 0.484283 0.530932 1.155162 1.456049 0.792859 0.660698 0.061921 1.508262)
+ 9.059195 #(0.000000 0.613104 0.050124 0.485665 0.048815 -0.055963 0.225331 -0.020835 1.848095 1.580120 1.477292 0.774210 1.061948 -0.249723 0.577003 1.863830 1.431032 0.894357 1.924718 1.302439 0.428785 1.093116 0.543830 0.902139 0.238757 0.822688 0.992472 -0.322520 0.896632 1.415835 0.796532 1.295997 0.680129 1.882417 1.596330 0.750056 0.856079 0.485605 0.070121 0.122325 0.958152 1.497519 0.362755 0.547778 1.145775 0.325693 0.504673 0.636053 0.726885 1.081630 1.254650 1.468511 0.348105 -0.121688 0.484408 0.530263 1.153408 1.456512 0.792291 0.661790 0.062458 1.508137)
)
;;; 63 even --------------------------------------------------------------------------------
@@ -4124,7 +4283,7 @@
10.562 #(0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0)
10.45694065094 #(0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0)
- 9.195414 #(0.000000 0.821194 0.760053 0.766865 0.063035 0.089692 -0.060461 0.471332 1.500767 -0.067563 1.756397 1.799901 0.741454 0.503066 1.133919 1.380256 0.549910 1.544793 1.851906 1.461812 0.959643 0.589554 0.748704 0.018492 -0.019784 1.250898 1.039983 0.002675 0.910714 -0.162049 0.183368 1.144016 -0.019339 1.390862 1.722979 1.771176 0.727486 1.637122 1.696286 -0.015958 0.282905 1.264971 1.222915 0.789042 1.040432 1.820759 0.922080 1.815109 1.201626 0.080602 1.537344 1.593627 1.633652 1.447331 1.511333 1.778746 0.195129 0.811729 0.593655 1.618896 0.557805 0.317340 1.806084)
+ 9.146322 #(0.000000 1.260653 0.495821 1.565425 -0.034815 1.595215 -0.110213 0.317428 0.602347 1.611730 -0.106084 1.408417 1.797326 0.002729 0.097532 0.152521 1.496997 1.630977 0.421415 0.278701 -0.058497 0.391330 1.009308 1.705103 1.214572 0.946148 0.443786 1.420417 -0.000218 1.717745 1.344525 0.947962 1.771032 0.193775 0.684462 0.355972 1.493181 1.725437 0.431727 0.763898 1.716457 1.397971 0.315205 1.664888 0.284014 0.131738 1.254268 1.837779 1.352726 1.355620 1.719024 1.311615 1.184524 0.727627 0.380843 0.630737 0.956331 0.683452 1.770865 1.337097 1.756188 1.248295 1.867866)
)
;;; 64 even --------------------------------------------------------------------------------
@@ -4132,7 +4291,7 @@
10.532917976379 #(0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1)
10.487 #(0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1)
- 9.199080 #(0.000000 1.353306 0.025099 1.576827 1.408535 -0.134826 0.677666 0.968457 0.660410 0.397806 -0.022773 0.674152 -0.081863 -0.014795 0.398203 0.002048 -0.216669 0.971140 0.863195 1.204761 1.060762 -0.238996 1.138075 0.574478 0.001707 0.526044 1.440665 0.730161 0.542241 1.055335 1.691255 1.318089 -0.111867 1.098800 0.332591 0.348634 1.612745 1.400680 1.996027 0.060730 0.270812 1.077178 0.390347 1.259143 1.290285 0.656826 0.932645 1.012843 1.872475 1.001452 1.105806 0.778604 1.167749 0.181111 0.381685 0.559553 1.053935 1.424182 0.646211 0.877022 0.317136 1.059063 0.588279 0.308157)
+ 9.183306 #(0.000000 0.960773 1.387037 1.860143 1.807675 0.342388 0.442314 0.378641 1.718756 0.111924 1.649035 0.933666 1.589281 0.956105 0.705575 0.164351 0.571557 1.051206 1.157542 1.529278 -0.186012 0.910690 1.736753 0.662422 0.717289 1.660748 1.383682 1.893587 0.438369 0.904480 0.150947 1.274172 0.670990 0.938984 1.952338 1.761793 0.643026 1.311278 0.095707 1.936806 -0.149301 0.404418 0.173210 1.321409 0.722082 0.659783 1.342634 0.869239 1.111880 0.418881 0.960653 0.642249 -0.025509 0.421290 1.098679 0.696133 0.577478 1.190171 0.285967 1.312806 1.019398 0.899136 0.605475 0.551502)
)
;;; 65 even --------------------------------------------------------------------------------
@@ -4140,13 +4299,13 @@
10.842938423157 #(0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0)
10.593795776367 #(0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0)
- 9.301177 #(0.000000 0.127254 0.700286 1.804288 0.973216 1.551758 0.866794 0.708199 1.270758 0.422066 0.084965 1.055035 0.724073 1.643038 0.477143 1.103213 1.233602 0.806334 1.405303 0.804522 0.795910 1.202502 -0.186693 0.011245 0.294744 1.715546 1.558163 1.322598 0.460354 0.029738 0.616633 0.600627 -0.118372 1.610963 0.737222 0.236199 0.980712 1.847805 1.965834 0.085757 1.678956 1.764948 0.772660 1.713419 0.260321 1.743186 0.218609 0.626678 0.740527 1.500803 1.220616 1.147303 1.866645 -0.083863 0.842339 0.517096 0.408587 0.364287 -0.065988 1.320473 1.756627 0.288156 -0.023632 1.743920 1.914773)
+ 9.269099 #(0.000000 1.521014 0.030274 1.447375 0.481194 -0.103142 0.333042 0.515048 0.766335 1.205694 1.617283 0.203031 0.406562 0.560296 1.931331 1.388660 0.558731 0.719009 1.186104 0.019315 0.567180 0.334727 -0.031160 1.805253 1.093445 0.571790 0.648420 0.864092 0.466921 0.905698 0.752571 1.681538 0.540204 1.582970 1.641754 1.287764 1.975587 0.831626 1.243228 0.648557 0.705542 -0.069890 -0.020696 0.861807 0.542617 1.949169 -0.079326 0.476140 -0.233285 1.668946 0.358512 1.633633 1.815535 0.999660 0.780365 1.188003 1.352647 1.602281 1.757204 1.379097 1.022619 0.134115 1.248959 -0.086016 1.545001)
)
;;; 66 even --------------------------------------------------------------------------------
#(66 10.77367179842 #(0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0)
- 9.413782 #(0.000000 1.176329 0.303732 1.554788 0.243879 0.918320 1.212365 0.491360 1.020361 0.937578 1.085371 1.627575 -0.119475 -0.147125 0.975125 1.150122 0.799224 0.356072 1.562477 0.990897 1.562235 1.837091 1.111456 0.827954 1.575923 1.984200 1.562537 1.921312 0.470199 0.747197 0.409957 1.965085 1.605046 1.435257 0.165744 1.275717 1.400923 1.845720 0.335028 0.868594 0.096127 0.571543 0.142906 1.515372 1.537590 0.501072 0.369999 0.890201 1.487387 0.933002 0.328239 1.616146 0.259352 1.664741 -0.049930 -0.225532 -0.062926 0.234496 1.427354 -0.194489 1.632048 1.074403 0.027225 1.161591 1.381534 0.630277)
+ 9.380135 #(0.000000 1.014179 0.522691 1.602843 1.284784 1.402101 1.262686 1.755437 0.337742 0.051583 0.402397 0.273748 0.936171 0.512603 1.607992 0.018372 1.248053 1.098880 0.880657 1.525665 0.376629 1.449960 0.719680 0.603014 -0.239848 1.263814 1.603687 0.672157 0.302944 1.448728 0.368089 1.811299 1.819707 1.854605 1.716681 1.717427 1.506437 0.444652 0.802632 0.783933 0.990100 0.630975 1.746749 0.875615 0.885810 0.777435 0.867933 0.097112 1.630664 1.275816 1.081947 1.715704 0.950280 0.371433 0.550956 1.065928 1.600415 0.477266 1.124510 1.473855 1.697441 0.735638 1.218460 1.072265 1.170584 1.522780)
)
;;; 67 even --------------------------------------------------------------------------------
@@ -4154,14 +4313,14 @@
11.240343093872 #(0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0)
10.668939590454 #(0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0)
- 9.462717 #(0.000000 0.426141 1.620777 1.013381 1.202829 -0.031769 0.884046 0.687170 0.861964 1.757315 0.900226 1.400284 0.666863 0.154119 0.409977 0.018728 1.925531 -0.054892 1.483189 1.358185 0.223165 0.232134 1.147814 1.405283 0.801572 -0.000309 1.006282 0.055864 0.802532 0.826988 -0.016650 0.397263 1.185743 -0.228149 1.392284 1.102826 1.493626 -0.127583 0.015297 0.097009 0.556788 0.536051 0.740710 0.330069 1.534767 1.626548 0.354265 0.294937 1.531439 1.099050 0.148236 0.312443 0.450674 0.539007 1.894912 0.204237 0.547422 0.175281 0.823096 1.094232 0.414033 0.797674 0.227558 -0.045093 0.960788 1.893487 1.318462)
+ 9.334192 #(0.000000 0.368552 0.386526 1.781223 1.388843 1.362090 0.346034 1.149326 0.636198 0.704715 1.433700 1.166218 0.320173 -0.128155 0.093285 0.161474 0.537789 1.549624 0.751253 1.453469 0.546314 1.253910 1.069653 0.803146 1.054343 1.812512 0.147176 0.336943 0.829952 0.678057 0.839038 0.220975 0.114273 0.864432 0.769942 0.344669 -0.071276 0.769076 0.355858 1.167914 -0.079007 0.717090 1.323907 0.254048 0.573355 0.397638 0.586852 0.019367 1.256105 1.137105 1.059084 0.516760 1.463555 1.202794 0.466984 1.349540 0.533707 1.320298 1.219996 -1.824382 0.308082 1.055688 1.774825 -0.020808 0.297327 1.800711 -0.077466)
)
;;; 68 even --------------------------------------------------------------------------------
#(68 11.328473091125 #(0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0)
10.834321813096 #(0 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 1 0)
- 9.657757 #(0.000000 1.941806 0.518760 1.398001 0.644797 1.387564 0.042293 0.259187 1.774877 0.823127 -0.547585 -0.090066 1.249836 1.636394 1.397227 -0.246854 0.959065 1.139405 0.400736 0.375979 0.596049 1.240151 1.543627 0.578092 0.548406 1.564826 1.185574 1.122082 0.471241 0.959219 1.717850 1.789825 -0.263611 1.816496 1.736408 0.788550 0.505342 0.885642 0.876489 0.376041 1.268157 1.264893 0.509237 0.106872 -0.049165 0.757677 0.762800 0.077718 1.231000 0.105005 1.543003 0.616690 1.331415 1.312558 0.740761 1.463645 -0.035612 0.118563 0.843377 -0.181722 1.333241 1.421445 1.521691 1.945991 1.808635 -0.363957 1.379108 1.599934)
+ 9.655313 #(0.000000 1.941633 0.518610 1.398591 0.644514 1.387692 0.043178 0.259339 1.774161 0.821861 -0.547691 -0.090076 1.249411 1.636456 1.397059 -0.248392 0.958360 1.140734 0.401098 0.375793 0.596545 1.240361 1.543355 0.578056 0.547768 1.565797 1.185852 1.122052 0.471310 0.960201 1.717865 1.789868 -0.262495 1.815955 1.736953 0.789552 0.504824 0.885981 0.876282 0.376065 1.268158 1.264028 0.509113 0.106449 -0.049845 0.759337 0.763291 0.076126 1.230817 0.105504 1.543213 0.616153 1.332275 1.311651 0.740800 1.463251 -0.036843 0.119879 0.843013 -0.181701 1.332111 1.421865 1.520233 1.946163 1.809645 -0.362733 1.377925 1.600119)
)
;;; 69 even --------------------------------------------------------------------------------
@@ -4169,7 +4328,7 @@
11.237507249543 #(0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 0 0)
11.164121627808 #(0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0)
- 9.717322 #(0.000000 0.919872 1.423299 1.002917 1.224273 0.043716 1.296104 1.871487 1.274056 1.741208 0.919095 0.828812 0.876481 -0.287598 1.642357 -0.042000 1.736288 1.804904 0.137569 0.693479 0.575729 0.097521 1.742520 1.083052 0.088530 1.790066 0.614815 0.602401 1.650898 0.116303 -0.347859 1.767160 1.287000 1.518970 1.109989 1.138808 1.336010 1.033706 0.192369 1.121221 0.162525 0.487888 0.314154 1.182022 1.488858 1.471523 0.824924 1.150684 1.134915 1.657651 -0.213207 1.753701 1.200737 1.014489 0.117363 1.553096 0.352864 1.141092 0.747245 0.445814 0.876338 1.791824 1.713686 0.856636 0.119592 0.291281 0.952715 1.552716 0.343644)
+ 9.493533 #(0.000000 0.796063 0.938102 0.939895 1.369534 1.627903 1.058413 1.264945 1.286987 0.085368 0.597980 1.077100 0.407570 0.854414 1.018898 0.907941 0.342887 0.335922 1.219358 0.060354 1.903241 1.740265 1.716471 0.185226 0.009659 1.743647 1.515410 0.295112 0.717355 0.472058 0.388693 1.104075 0.040101 1.532367 0.844740 0.546684 1.474039 1.237846 1.015077 1.093879 0.503332 1.826832 0.199281 1.582101 1.356315 1.167481 1.656332 1.352567 1.024737 0.198771 0.832820 1.203717 1.176932 1.427648 1.135779 0.329781 1.134805 1.527856 0.108184 0.710059 1.390451 1.468996 1.245661 1.786719 0.618254 1.713548 1.018885 1.715955 0.912921)
)
;;; 70 even --------------------------------------------------------------------------------
@@ -4177,7 +4336,7 @@
11.405939102173 #(0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1)
11.188811302185 #(0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1)
- 9.905090 #(0.000000 1.287888 0.793857 0.899361 0.206488 -0.021091 1.398743 -0.062494 0.836159 0.338251 1.735063 1.620285 0.507565 1.215048 0.323746 1.591181 0.089485 1.634814 1.480585 1.097541 1.201445 0.138594 1.853291 0.204749 0.510124 1.665908 1.180324 1.806154 0.848073 0.378986 0.410019 0.044478 0.015036 1.879597 0.355444 1.779026 0.306668 0.813711 1.213574 1.639917 1.153434 1.178977 0.289025 1.708843 1.293463 0.381424 -0.070038 1.384845 0.035799 0.822314 0.885188 0.819973 1.078340 1.356872 1.717647 0.875792 0.028914 1.171480 1.574303 0.830302 1.115917 1.561787 0.146263 1.233985 0.598344 0.207916 0.191355 0.637851 0.919859 -0.013755)
+ 9.729815 #(0.000000 1.187674 0.007668 0.591115 0.280738 0.703145 0.848453 0.975264 1.348918 0.080132 1.137577 1.450660 0.646481 0.586921 1.135636 0.136684 1.044368 0.439673 0.933141 1.466120 0.465815 1.115152 0.314407 1.708765 0.679850 0.589495 0.614441 0.294199 1.442947 1.342781 1.236282 1.710991 1.071518 0.412932 0.951994 -0.021057 1.033997 1.519125 1.509408 0.813064 1.091901 0.611010 0.672823 0.318901 0.070819 0.153267 0.358159 0.410568 0.567500 -0.100301 1.562861 1.125548 0.317419 0.992531 1.400733 1.539746 0.048670 0.211366 0.444465 0.307988 0.037761 1.779315 0.703043 0.136869 1.224713 0.928194 0.164279 0.940652 1.228104 1.881909)
)
;;; 71 even --------------------------------------------------------------------------------
@@ -4185,9 +4344,7 @@
11.28450554254 #(0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0)
11.146488189697 #(0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0)
- 9.994231 #(0.000000 -0.264051 1.388279 1.463039 0.597213 0.086158 0.610613 1.241627 0.623024 0.968805 1.002896 0.707906 1.907655 0.154988 0.281776 1.525902 0.845288 0.884180 0.053402 1.135161 1.836532 0.337984 0.261865 0.535299 1.624060 1.342604 1.010773 0.575211 1.627805 -0.110289 0.468567 1.571651 -0.140135 0.764228 0.675935 1.222494 1.129100 0.485995 0.734753 1.004158 0.392564 0.157212 0.040681 -0.159614 1.318302 0.672431 0.312674 0.585468 0.584061 0.967862 0.419249 0.741809 0.733661 0.607887 1.036248 0.217865 -0.154050 0.734544 0.812595 1.263069 0.859662 1.447112 -0.070714 0.214700 1.032578 1.726026 0.462391 -0.121356 1.460195 0.446184 1.667878)
-
- 9.9686928877438 #(0.0 0.10629401408451 0.65988002816901 1.5275540422535 0.97343705633803 1.5709430704225 0.12794708450704 1.4996900985915 0.23254611267606 0.55283212676056 0.90604114084507 1.9712461549296 0.91154416901408 1.7674501830986 0.6199161971831 0.90823921126761 0.94826522535211 0.77128523943662 1.5355412535211 1.1433372676056 0.069167281690141 0.41915829577465 1.6443193098592 0.25888532394366 1.4565863380282 0.78443435211268 0.92831536619718 1.4913903802817 1.1085323943662 1.4954934084507 1.1889034225352 1.6518924366197 0.67988745070423 1.7380754647887 1.2680244788732 0.17714449295775 1.2575795070423 0.77646252112676 0.096418535211268 1.5401955492958 0.020492563380282 1.8279035774648 0.5225375915493 1.0020096056338 1.4331266197183 1.4016056338028 1.1273916478873 1.1421586619718 1.1163616760563 1.3504366901408 0.54904770422535 0.66002771830986 1.3200337323944 1.4101237464789 0.39201576056338 1.4326067746479 0.61631278873239 0.5068768028169 1.8290568169014 1.6427158309859 1.0740648450704 0.51060485915493 0.24604587323944 0.74411588732394 0.74583990140845 1.982100915493 0.081292929577464 1.857206943662 1.4049519577465 1.265598971831 0.46485298591549)
+ 9.521784 #(0.000000 0.149876 0.668787 1.502876 0.957175 1.555537 0.107725 1.538576 0.227752 0.544910 0.924127 1.988854 0.896563 1.749259 0.586797 0.884101 0.957571 0.770989 1.571572 1.147518 0.067720 0.414360 1.667689 0.234552 1.471792 0.826400 0.955036 1.475295 1.131742 1.462020 1.195046 1.651336 0.711164 1.714450 1.296704 0.178052 1.266292 0.782550 0.111382 1.595989 0.016097 1.848981 0.512479 0.997038 1.413308 1.375081 1.124465 1.124501 1.131526 1.336184 0.557339 0.658540 1.325950 1.390720 0.405055 1.432173 0.624530 0.485586 1.827783 1.645677 1.076506 0.519522 0.267900 0.726975 0.733835 1.998426 0.075489 1.855722 1.413742 1.284579 0.460141)
)
;;; 72 even --------------------------------------------------------------------------------
@@ -4195,7 +4352,7 @@
11.490025520325 #(0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1)
11.323646371629 #(0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0)
- 9.936732 #(0.000000 -0.020674 -0.241429 -0.006487 1.386200 0.521331 0.586049 0.493584 0.503900 1.707008 1.273799 -0.100000 1.512010 1.945325 1.427089 1.277062 1.710529 1.600741 1.440584 1.128959 0.813347 0.946849 0.494579 1.674618 1.016600 1.652994 1.895188 0.090439 -0.016967 1.595353 0.784038 1.557192 1.582529 1.535939 1.746008 0.104914 -0.120392 1.407590 1.946165 0.601904 0.378306 1.469137 -0.320706 0.628497 0.569915 1.257603 0.095304 0.881505 1.018831 0.744209 0.852124 1.387086 0.427465 1.821401 1.381302 1.311671 0.445129 -0.248215 0.935347 0.714600 0.356990 0.284505 0.795897 1.510956 0.144599 1.509082 0.505440 0.626112 1.078522 0.690427 1.501550 0.095873)
+ 9.927306 #(0.000000 0.539760 0.995556 0.661574 1.486090 1.617678 1.856183 1.769657 1.699662 0.306992 -0.270017 0.992379 0.871567 0.087261 0.507897 0.635610 1.783522 1.644924 -0.152893 1.459736 -0.096708 0.602067 1.567440 0.722469 1.049108 0.100271 1.598981 1.541651 -0.049538 1.778708 1.763685 1.048735 1.144507 1.782321 0.145848 1.655600 1.806661 0.581376 0.461474 1.450753 0.836851 1.694341 1.634062 1.185455 1.142416 1.043152 0.388746 1.086654 0.884727 1.762161 0.846749 0.978239 0.477803 0.775176 1.630129 1.795939 0.420014 0.757645 1.272694 1.725621 1.782894 -0.002112 1.140320 0.118946 1.649468 1.115404 1.370550 0.663270 0.229568 1.232177 0.117679 1.213021)
)
;;; 73 even --------------------------------------------------------------------------------
@@ -4203,7 +4360,7 @@
11.567651928526 #(0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0)
11.416394233704 #(0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0)
- 10.000317 #(0.000000 0.296691 0.017375 0.120098 -0.054262 -0.021119 0.436417 0.121194 0.177751 1.708408 0.858203 0.089530 -0.064702 1.193430 0.938198 0.982702 0.309285 0.747075 1.278804 0.731961 0.838385 1.165928 0.668142 0.117025 0.053832 1.047582 0.914241 0.385627 1.800150 0.443326 1.081537 1.008155 0.882681 1.751734 0.230411 0.961060 0.408719 1.510454 0.451534 0.180511 1.347251 1.972300 0.611135 1.437089 1.647221 0.745389 -0.067847 1.892748 0.081321 1.134419 1.420517 1.739085 1.674364 0.122694 -0.095145 0.617986 0.690432 -0.172649 1.161459 1.807614 -0.175818 -0.202152 1.643653 0.262282 1.097383 0.525418 1.057085 0.484749 1.819915 0.519483 1.269322 -0.212939 1.094459)
+ 9.964655 #(0.000000 0.467394 0.780869 1.119676 1.525017 0.186136 -0.114294 1.683631 0.465735 0.091207 -1.963924 0.876782 1.103475 0.472079 0.365315 1.480096 1.311028 1.992139 0.309149 0.820907 1.058253 0.144963 1.934243 0.678025 1.081963 0.558483 1.166841 1.734092 1.427126 1.325415 1.491061 -0.123280 1.577140 -0.141256 1.709808 1.301362 1.255198 1.547302 0.591334 1.744750 0.867555 0.680104 0.962924 1.225569 0.568729 1.727093 1.133320 1.146370 1.013263 0.427037 1.330843 0.243245 -0.092674 0.684362 1.518794 1.489672 1.285054 0.888282 0.718744 -0.107015 0.723436 1.011923 -0.145502 0.760366 1.644019 0.049394 -0.406990 0.620745 1.617776 1.546934 1.626053 1.193696 0.870216)
)
;;; 74 even --------------------------------------------------------------------------------
@@ -4211,7 +4368,7 @@
11.749699425492 #(0 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1)
11.47264289856 #(0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 1)
- 9.954789 #(0.000000 1.652924 1.791366 0.363663 1.701897 -0.081337 1.293156 0.649825 0.073968 1.488090 -0.138858 1.882469 0.758136 1.508568 1.684861 0.116490 0.108754 -0.115629 0.887814 0.153582 0.818880 1.156550 0.976829 0.282406 0.252252 0.309638 1.354119 1.537294 -0.036679 -0.126673 0.160471 1.688344 0.085137 1.703197 1.381033 -0.024541 0.135240 1.796028 0.850542 1.885347 1.030876 1.468491 1.599146 0.923916 -0.000789 0.712356 1.507455 1.048270 0.758265 0.549628 1.496137 -0.080473 1.490571 -0.056864 0.373742 0.645158 0.966648 1.716745 0.380720 1.156055 1.644278 1.216549 0.748195 1.843745 0.736176 0.682505 0.436571 1.255821 0.037779 1.833364 1.630546 1.322384 1.131158 1.584672)
+ 9.951470 #(0.000000 1.653540 1.792207 0.365209 1.702196 -0.081288 1.292797 0.648691 0.074669 1.487701 -0.139067 1.881903 0.759373 1.508138 1.684891 0.115826 0.108569 -0.115053 0.889190 0.154219 0.818914 1.157589 0.975278 0.283067 0.252957 0.310633 1.354847 1.536626 -0.037044 -0.126618 0.161358 1.687507 0.084928 1.704298 1.380353 -0.024000 0.135212 1.795345 0.850533 1.886274 1.030988 1.468697 1.599874 0.924503 0.000561 0.712560 1.508541 1.047771 0.757231 0.549151 1.495041 -0.080428 1.490913 -0.058016 0.372430 0.645258 0.966694 1.716247 0.379653 1.155248 1.642455 1.217269 0.747716 1.844052 0.736265 0.684155 0.436877 1.255792 0.037410 1.833063 1.630578 1.321663 1.131168 1.583537)
)
;;; 75 even --------------------------------------------------------------------------------
@@ -4220,14 +4377,14 @@
11.599789619446 #(0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1)
11.479255355845 #(0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1)
- 10.022507 #(0.000000 1.317650 1.732864 1.974137 0.282010 1.345406 -0.045669 0.437124 0.658512 1.012346 0.111208 0.663660 0.812991 0.159534 1.322054 0.240558 0.968561 1.788568 0.286182 0.346847 0.253464 1.163040 0.604382 1.529297 1.572064 1.377733 1.696591 0.000450 0.746112 0.510092 1.366384 1.542367 0.077324 -0.022217 1.351006 1.718318 0.854983 1.172394 0.432926 0.760765 1.097829 0.335735 0.704236 -0.009227 0.125576 0.213954 0.600841 0.108035 0.076079 1.174521 0.756679 0.570794 0.596701 1.361168 0.866335 0.630899 0.087450 1.032242 0.509806 1.158435 0.314336 1.008474 0.634593 0.111742 1.871483 1.745672 0.608314 1.191844 0.680943 0.145625 1.906580 0.294153 1.293356 0.968027 1.119315)
+ 9.857519 #(0.000000 1.316377 1.733766 1.979705 0.281173 1.330210 -0.058534 0.463912 0.663475 1.016723 0.107387 0.672078 0.800181 0.178188 1.334144 0.233851 0.974434 1.793884 0.273923 0.333767 0.274670 1.148295 0.635673 1.516304 1.573244 1.387853 1.715811 0.012739 0.728387 0.501780 1.377316 1.522039 0.075538 -0.050182 1.364915 1.735014 0.848763 1.141919 0.455360 0.781062 1.096519 0.343346 0.697117 -0.002332 0.124120 0.197403 0.591401 0.122820 0.083902 1.179844 0.759804 0.588640 0.584659 1.363052 0.855884 0.630459 0.084907 1.022440 0.513467 1.178778 0.293437 1.014089 0.621831 0.108932 1.852675 1.768110 0.607985 1.176478 0.694816 0.122041 1.903764 0.298165 1.288861 0.976071 1.131938)
)
;;; 76 even --------------------------------------------------------------------------------
#(76 11.890932162956 #(0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1)
11.477294510597 #(0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1)
- 10.139577 #(0.000000 1.500264 -0.011804 0.155444 1.045801 0.830835 1.732144 1.497559 -0.085276 0.642794 1.046518 1.337439 0.882727 1.372175 0.299599 1.115151 0.047234 1.969863 0.549815 1.376316 1.264752 0.025787 1.200498 0.212780 0.329091 1.578974 1.503702 0.658003 1.122946 0.729289 1.408013 1.895389 1.704555 1.163164 1.831632 0.313743 1.685452 0.066076 1.620988 0.078818 0.641403 1.550565 1.316806 0.746745 1.480667 0.251846 1.655770 0.392560 1.878328 1.879640 1.576102 0.264589 0.936984 1.684293 0.384764 0.278206 0.582669 0.083681 1.839635 1.157857 1.671610 1.408530 0.639791 1.428533 1.302259 0.943884 1.212153 0.906248 1.137751 1.054376 1.301814 0.232067 1.763363 1.567349 0.676571 0.295567)
+ 10.137292 #(0.000000 1.499933 -0.012481 0.156688 1.046334 0.830857 1.733665 1.498161 -0.085575 0.642531 1.046018 1.336924 0.882594 1.372985 0.298668 1.113657 0.047283 1.970143 0.548879 1.376679 1.264846 0.025424 1.200568 0.213191 0.328941 1.580188 1.503291 0.657777 1.124057 0.728464 1.406793 1.895013 1.704985 1.163898 1.831527 0.312985 1.686406 0.065301 1.622515 0.079317 0.642787 1.551209 1.317622 0.748117 1.480860 0.251145 1.655486 0.391689 1.879556 1.879823 1.576564 0.264389 0.937803 1.683990 0.384118 0.278765 0.583196 0.084035 1.839623 1.157509 1.671247 1.409613 0.640850 1.429016 1.303805 0.944638 1.212010 0.906741 1.137905 1.054941 1.302396 0.233516 1.761748 1.568247 0.677178 0.295346)
)
;;; 77 even --------------------------------------------------------------------------------
@@ -4235,20 +4392,20 @@
11.875939332637 #(0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1)
11.594018936157 #(0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1)
- 10.220655 #(0.000000 0.800039 0.919798 1.909259 0.488040 1.188965 1.325377 1.002899 0.085238 1.357087 0.314848 0.177151 1.656595 1.152938 0.144841 1.372538 0.407551 0.829603 1.694981 0.324608 0.498879 1.540041 0.092864 0.852706 0.184361 1.303090 -1.832274 -0.033092 1.343606 1.025290 0.854395 0.570892 1.904419 1.719331 0.603857 1.483745 -0.030752 0.515256 1.355611 1.515564 1.417546 1.666802 0.755685 0.493254 1.137231 1.656721 1.213195 0.620675 1.228118 1.655659 1.307335 0.692609 0.270710 1.232361 0.578411 1.323415 0.413326 1.475404 0.178769 0.747778 0.929192 0.759697 0.641711 0.285709 1.240332 0.830679 1.059957 1.585221 1.456623 1.570859 1.650241 1.919146 1.124335 0.908555 1.234898 1.228110 1.069724)
+ 10.112364 #(0.000000 0.729556 0.211835 1.614221 0.116450 1.721151 0.941175 0.622136 1.535789 0.946560 0.236460 -0.091982 0.158372 0.017957 1.180982 1.183777 1.532430 0.490226 0.824944 1.185071 1.296236 0.986568 0.472703 0.009962 1.186739 1.141751 0.971016 -0.057234 1.911449 1.396908 1.580449 1.804522 0.657850 1.520218 0.371161 0.471971 1.712136 1.412303 1.393022 1.994688 1.844489 1.804379 1.914054 1.822955 1.240667 -0.022461 1.155932 1.052523 1.182022 1.655193 1.192218 -0.100412 0.376866 1.416802 0.218232 1.919277 0.954924 1.070724 1.630777 0.160028 1.027928 0.453464 0.853671 1.160053 1.338401 1.018703 1.816234 1.192941 0.498394 0.959341 1.809699 1.338212 0.552806 1.585835 0.058673 0.304538 0.159172)
)
;;; 78 even --------------------------------------------------------------------------------
#(78 11.940728787203 #(0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0)
- 10.408310 #(0.000000 -0.130834 0.660581 1.279551 1.157811 1.351953 1.049005 1.409901 1.422268 1.194136 1.100380 1.221398 1.392029 -0.024583 1.001314 1.218199 1.522817 -0.001084 0.173269 0.225456 1.041966 0.099171 1.625305 0.984629 0.016023 1.631357 1.845557 0.573662 0.681764 0.751811 1.156974 1.496148 0.150550 -0.012376 1.469885 0.395095 0.102148 0.928091 1.572182 0.915740 0.794436 0.471304 0.773547 -0.061481 0.878280 1.649368 1.638815 0.459057 0.039707 1.332455 0.997487 0.679566 -1.899707 0.490334 1.580732 0.930833 1.002944 1.273962 0.293100 1.048290 0.672058 0.192594 1.873299 1.164287 1.518608 0.485940 0.961876 0.366270 0.087055 0.579998 1.622786 0.399630 1.232314 0.725794 1.447889 1.835671 1.622032 1.383947)
+ 10.242791 #(0.000000 0.739621 1.847987 0.379643 0.419721 1.173544 1.070574 1.157474 0.321967 1.155166 0.418347 1.081070 0.994264 0.511589 1.208329 1.421195 1.078823 1.270879 0.734368 1.617327 0.483475 1.787314 0.875438 0.761878 0.838889 1.031240 1.840532 1.396129 1.189822 0.424421 1.022570 0.467375 0.647547 -0.154952 1.229926 0.665127 0.286051 0.279655 0.339346 -0.038743 0.838733 1.530462 1.209079 1.385833 -0.094939 1.069535 0.522599 1.927649 1.524102 0.945855 0.417429 0.319937 0.540331 0.858537 0.469905 0.697362 1.637439 1.310235 -0.242589 0.790328 1.753148 1.643035 0.925374 1.365231 0.010880 0.696633 1.104992 0.255370 1.679227 0.238628 0.423295 1.081916 1.543283 0.375559 0.677881 0.748935 0.499554 0.884901)
)
;;; 79 even --------------------------------------------------------------------------------
#(79 12.421415328979 #(0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1)
11.878196632448 #(0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1)
- 10.470274 #(0.000000 0.082117 0.468282 0.779447 0.943166 0.019551 0.952200 0.213163 1.078119 0.075993 1.679696 1.524619 0.981781 1.874050 -0.126820 -0.130058 1.125153 1.097385 1.843443 1.344359 0.325730 0.256664 0.563280 0.319791 0.290417 1.755248 1.027049 -0.141485 -0.349357 0.784111 1.108592 -0.030075 0.126391 -0.026725 1.261927 0.235467 1.192501 1.043143 1.289539 1.755243 1.134625 1.546545 1.819644 1.404054 1.059785 0.988002 1.513609 0.259542 0.135381 0.182472 1.854788 1.760417 0.602864 0.524913 0.036728 1.054582 1.161659 1.437011 0.278961 0.151779 0.212958 0.143448 1.051122 1.819633 0.375798 0.566676 1.822121 0.306500 0.805326 0.236068 0.262984 1.395077 0.439835 1.834392 1.502103 0.119336 1.004984 0.603270 1.077420)
+ 10.347496 #(0.000000 0.257264 -0.105997 1.725915 1.358491 0.297485 0.503299 0.153580 0.879852 0.374628 1.365364 1.057729 0.490462 0.821542 1.651339 0.084733 1.207301 -0.190378 1.315802 0.805204 0.874974 1.666571 1.295835 0.843015 1.234390 1.321282 1.167321 1.622732 -0.066591 0.535349 1.341087 1.755634 0.724585 1.665600 0.598131 0.407090 1.680117 0.798575 0.024566 -0.221892 0.249898 1.351241 0.785111 0.081269 0.325874 0.190035 0.030022 0.201906 -0.246148 1.496545 0.553879 0.460513 1.774456 1.162167 0.140847 0.653369 1.216062 1.608658 1.539123 0.887497 0.315797 0.182453 0.022676 1.834405 0.151124 0.186595 0.902340 -0.256756 1.301462 1.596725 0.502582 1.734725 0.413969 0.359717 0.638679 1.211355 1.577017 -0.036129 1.699121)
)
;;; 80 even --------------------------------------------------------------------------------
@@ -4257,7 +4414,7 @@
12.095606803894 #(0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0)
11.989325523376 #(0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0)
- 10.552074 #(0.000000 1.705067 0.615143 1.990800 0.129994 1.817583 1.774203 1.878433 0.362715 0.328175 0.896337 0.072692 0.611229 1.696175 0.801413 0.324143 0.720734 1.067482 1.206045 1.015437 -0.172899 0.310277 0.533370 0.692013 0.973911 0.586126 1.141643 -0.027456 1.591993 0.462127 1.399307 1.102516 -0.216211 1.244990 0.413931 1.556745 0.932089 0.831469 0.526013 0.210556 1.335445 1.681030 1.560042 1.538953 1.223107 0.388872 1.016557 0.366306 1.403991 1.437730 0.702350 0.880831 1.464381 1.610356 0.798496 0.419314 0.204650 0.175279 0.312211 1.661379 1.585470 0.448609 1.147645 1.870520 0.486592 1.174449 0.618913 0.122714 1.464185 0.649243 0.862998 1.662665 0.061789 0.046711 0.924331 1.458975 0.452618 0.526794 0.307072 0.731831)
+ 10.471341 #(0.000000 1.693155 0.601283 1.990237 0.133013 1.829045 1.776567 1.880757 0.356549 0.334952 0.891643 0.073965 0.603054 1.718295 0.794152 0.325355 0.704454 1.070969 1.201114 0.998252 -0.168378 0.294740 0.542763 0.679338 0.968501 0.582081 1.141193 -0.038128 1.597592 0.463772 1.413910 1.113620 -0.214058 1.267868 0.402866 1.576213 0.942393 0.828449 0.508268 0.187091 1.322166 1.678016 1.553500 1.536615 1.249382 0.379564 1.026064 0.371751 1.394164 1.432031 0.703915 0.884674 1.475725 1.614002 0.811092 0.425800 0.209492 0.192185 0.321862 1.658534 1.573035 0.437980 1.145628 1.889956 0.491955 1.154944 0.614300 0.115870 1.445521 0.645424 0.859825 1.666633 0.070947 0.047026 0.929506 1.459013 0.443693 0.523553 0.299992 0.717337)
)
;;; 81 even --------------------------------------------------------------------------------
@@ -4265,7 +4422,7 @@
12.039585160315 #(0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0)
11.979215621948 #(0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0)
- 10.648719 #(0.000000 0.535614 0.293799 -0.169260 0.505670 0.513456 0.533175 0.386405 1.163134 0.657066 1.509851 0.065004 1.185754 0.942552 0.204160 0.606202 0.105167 0.932068 1.095756 0.582230 1.663798 1.413998 1.509413 1.088413 0.477744 1.102444 -0.274436 1.216616 0.979868 1.423930 0.774492 0.043980 1.293714 -0.291691 1.484188 0.630299 0.402050 0.578011 0.517916 -0.016648 -0.021892 0.374618 0.816713 0.812075 0.926184 0.959660 0.572246 0.168363 0.899428 0.159679 1.839077 0.317706 0.020132 0.040387 0.965381 1.371222 0.022564 1.273391 1.290178 0.231757 0.155946 1.114146 0.877409 1.328602 0.141686 0.595123 1.805865 -0.025989 0.203712 0.550093 1.216269 0.529152 -0.083401 0.067607 0.430277 1.926519 0.954184 1.626784 0.127876 1.206193 1.539440)
+ 10.483407 #(0.000000 1.249735 0.975362 0.847899 0.832344 0.584652 1.400950 -1.674642 -0.002795 0.390213 1.376490 0.344145 0.413785 1.015170 0.348647 0.224753 0.300042 0.551451 1.455512 0.783687 -0.100780 0.702703 1.640788 1.961127 0.203959 1.087080 0.148682 -0.091618 0.887847 1.112133 0.552997 0.736071 1.367509 0.154553 0.092463 -0.069298 0.359713 0.262743 0.280177 0.522087 0.341483 0.657474 0.421663 0.783343 0.705212 0.008373 0.028581 1.253406 0.947610 0.287392 1.482933 1.738094 1.320925 1.500397 1.170691 0.953341 1.558566 0.292192 1.779328 1.902955 0.812712 0.859902 1.104675 1.563681 1.320567 0.210420 0.047452 1.331520 1.032625 1.379164 0.624244 -0.000099 1.002111 1.518627 0.134789 0.794150 0.343312 0.927380 0.982119 -0.084411 0.290972)
)
;;; 82 even --------------------------------------------------------------------------------
@@ -4273,14 +4430,14 @@
12.071621513807 #(0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0)
11.74796962738 #(0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0)
- 10.723295 #(0.000000 1.096076 1.773061 0.605927 1.261658 1.006218 1.789069 0.046778 1.761482 0.140070 0.523950 1.089538 0.773541 0.800395 0.783798 1.186021 1.570870 0.680016 1.218776 1.535809 1.777354 0.094295 1.019288 1.237678 0.892733 1.464296 0.096382 1.431308 0.030242 1.675863 1.765245 0.405037 0.601005 1.575431 1.646990 -0.179973 0.112257 0.211194 0.349102 1.483428 0.034209 1.722080 1.726434 1.453336 -0.088982 1.306726 0.162174 1.102173 0.542962 0.761262 1.029239 0.455206 1.736390 0.111817 0.908231 1.709079 1.626803 1.066065 -0.116582 1.629998 0.191944 1.848760 1.109326 1.576774 0.692818 0.675044 -0.075955 0.878355 1.932189 1.266597 1.020236 1.353281 -0.042222 1.172303 0.956860 0.546854 0.108348 1.620763 0.992262 0.747389 0.899849 0.327323)
+ 10.636249 #(0.000000 0.178167 0.508082 0.580272 1.358957 1.278001 0.680411 0.844379 1.564224 1.384206 0.134447 1.139202 1.297433 0.028093 -0.140108 1.671616 0.920090 0.207198 0.147767 1.339948 0.448042 0.774770 1.751329 0.582191 0.691964 1.392089 0.753619 -0.133769 0.787461 0.110452 0.550568 0.043473 0.851443 1.296026 1.241980 0.961869 1.135570 0.322052 0.035102 1.384991 1.599678 0.464918 0.124153 0.055952 1.558316 1.113953 1.496483 1.140310 1.397947 1.544218 0.156043 0.574478 0.966105 0.458326 1.426433 0.062717 0.067664 0.482151 0.817060 0.191713 0.168088 0.234727 0.545713 0.302763 1.538024 1.962391 0.027763 0.872598 0.417650 0.341383 1.508407 -0.066617 1.565949 0.456540 0.287109 0.308435 0.426920 0.462178 1.663535 -0.192076 0.966426 1.732063)
)
;;; 83 even --------------------------------------------------------------------------------
#(83 12.587569236755 #(0 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1)
11.931811297539 #(0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1)
- 10.692399 #(0.000000 1.798447 0.813230 1.081098 1.839344 0.136465 1.344664 -0.043135 0.580542 0.813733 1.490538 1.193383 0.723879 0.753506 1.216993 1.128985 1.625986 0.327520 1.370560 0.788825 -0.176608 0.829569 0.937953 -0.140442 0.614286 0.829814 1.463611 1.106460 0.476476 0.571294 1.147974 0.456621 0.962568 0.662851 1.126493 1.498314 1.058314 1.836189 1.074401 1.294540 1.019979 0.422074 0.373111 0.780792 0.037825 0.465579 0.583268 0.370907 1.708841 1.574656 1.371879 0.690157 1.496044 1.111832 1.570583 0.043142 -0.235056 1.513356 0.779242 1.470950 0.830295 1.281596 1.603429 0.306342 0.135032 1.830598 0.660057 1.063354 0.218502 0.728921 0.155177 1.802666 0.019586 1.010185 0.425294 1.038017 0.749766 1.929104 0.593375 1.624362 0.887279 0.746141 1.770022)
+ 10.545310 #(0.000000 1.790258 0.818527 1.084568 1.838072 0.108875 1.346785 -0.051002 0.588635 0.792328 1.507466 1.179398 0.713964 0.739008 1.228367 1.120856 1.638453 0.321793 1.385752 0.797773 -0.193159 0.834269 0.918506 -0.133632 0.624955 0.816624 1.461448 1.106339 0.470858 0.582350 1.131742 0.461453 0.962420 0.662409 1.128744 1.506674 1.054718 1.845998 1.083392 1.298494 1.013169 0.424402 0.402304 0.772949 0.037710 0.450698 0.553710 0.370166 1.708903 1.565251 1.370939 0.709332 1.524864 1.126752 1.577595 0.027167 -0.197123 1.533881 0.782587 1.449308 0.844907 1.290377 1.595278 0.304770 0.122121 1.847861 0.632643 1.047541 0.231883 0.745611 0.151712 1.798421 0.023380 1.002933 0.439925 1.021700 0.740527 1.965988 0.609665 1.593003 0.906504 0.749868 1.765247)
)
;;; 84 even --------------------------------------------------------------------------------
@@ -4288,7 +4445,7 @@
12.50866273996 #(0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1)
12.426499838032 #(0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0)
- 10.825363 #(0.000000 0.090773 0.342303 0.776704 1.061978 1.722138 1.278965 1.627478 0.136533 0.330744 0.789630 1.018947 0.668314 -0.130485 0.282145 1.617487 0.129617 0.534033 1.094565 1.502226 0.677244 0.804259 0.849921 0.226855 0.128520 1.839419 1.307497 1.446148 0.048093 0.754825 0.094006 0.906949 0.488235 0.159185 -0.005365 1.052505 0.223458 1.174290 0.433189 0.771180 1.498919 1.433177 1.431472 -0.000541 1.533816 0.042784 0.917309 0.212919 0.440557 0.767775 1.299619 -0.031513 0.163144 0.688715 0.527657 -0.193719 1.078881 0.721479 0.509505 0.795070 1.093044 0.467642 0.979796 1.077033 0.600208 1.073658 0.435284 1.685193 -0.184486 0.724926 0.893527 0.228710 1.834584 -0.269048 1.472813 1.399435 1.303875 1.651068 0.633639 1.447868 0.894907 -0.168145 1.160987 1.091355)
+ 10.672081 #(0.000000 0.077441 0.336805 0.777645 1.047873 1.712927 1.265391 1.639762 0.129977 0.311983 0.778355 1.037800 0.654559 -0.132671 0.285404 1.615382 0.136057 0.542155 1.084197 1.497378 0.684998 0.782706 0.843204 0.224128 0.127037 1.826277 1.307179 1.473674 0.044325 0.772209 0.076725 0.921166 0.504000 0.153706 -0.026779 1.062767 0.227646 1.156360 0.434067 0.781935 1.482260 1.440116 1.436341 0.023213 1.550406 0.034158 0.895016 0.189431 0.441260 0.751332 1.302693 -0.034792 0.165021 0.700045 0.535022 -0.187408 1.096812 0.748687 0.501849 0.814929 1.103606 0.472533 0.983337 1.075186 0.609759 1.057020 0.433318 1.701318 -0.176399 0.718399 0.888609 0.212666 1.827058 -0.263615 1.486469 1.402240 1.321304 1.623239 0.655476 1.447252 0.873726 -0.192516 1.175888 1.045263)
)
;;; 85 even --------------------------------------------------------------------------------
@@ -4296,14 +4453,14 @@
12.624737923152 #(0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1)
12.270205061432 #(0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1)
- 10.991940 #(0.000000 1.295685 -0.176260 1.248410 0.888983 1.729759 0.348844 1.005131 1.483624 1.358800 -0.217249 0.023563 1.989016 0.806079 0.712788 1.656002 1.003253 0.087816 1.018796 1.121829 0.616507 0.274108 1.683502 0.945398 1.146678 1.551563 1.159005 1.768251 1.230713 1.483155 0.778138 0.110346 1.909843 1.127537 1.534548 -0.142299 0.842280 0.186539 0.400826 0.578642 0.890702 0.697973 0.990028 -0.052494 1.445208 0.912378 -0.120412 0.660171 1.834981 0.345972 0.605850 1.777869 -0.119330 -0.052111 0.417221 1.589631 1.408960 1.666806 0.656233 1.764868 0.299667 -0.171382 1.158985 1.048331 1.377706 0.730187 0.212823 0.453851 0.782435 0.414719 0.835434 0.923984 0.581945 0.028009 0.038063 1.368115 1.425751 0.114317 0.977716 0.906871 0.313526 0.692724 0.513739 0.984337 0.648661)
+ 10.872428 #(0.000000 0.234336 1.618876 0.394370 0.375902 1.431031 1.713138 0.053022 1.172185 0.213155 0.147133 1.593839 0.435553 1.755758 -0.029128 0.062014 1.406473 1.150967 0.382692 0.908412 -0.255689 0.784448 1.578574 0.961131 1.197330 0.069677 1.336307 1.336836 1.658711 1.195189 0.567029 0.382869 1.297633 0.455222 1.646552 0.149756 1.759744 0.282552 0.763387 1.268508 1.356273 1.752980 1.407422 1.581304 0.692463 1.240332 1.254418 0.307672 1.373696 1.248991 0.580182 1.002335 0.065291 0.113467 0.551202 0.307617 1.901544 1.435696 1.199847 1.823257 0.473148 1.121887 0.651433 -0.137993 0.076183 0.795427 0.741877 1.674168 0.756093 0.724343 0.592862 1.563330 1.465412 0.016959 0.949692 0.338661 1.361101 0.324479 0.715091 0.577019 0.363283 0.980449 1.139204 1.217047 1.278923)
)
;;; 86 even --------------------------------------------------------------------------------
#(86 13.114136440046 #(0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0)
12.791990425787 #(0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0)
- 11.093548 #(0.000000 1.442543 0.640974 1.590286 1.364690 1.061871 1.098198 0.683644 1.072397 1.304261 0.610487 1.792324 0.523007 1.767326 1.561195 0.620827 1.861169 0.449268 0.057469 -0.001554 0.766904 0.468660 0.945239 0.758750 1.291217 0.691434 0.313505 0.333056 1.491988 1.640939 1.536914 0.342858 1.144455 1.650842 0.906703 -0.103468 1.397238 0.911319 1.254981 0.058794 1.016351 1.175956 0.230214 0.134327 -0.186135 -0.055272 0.404414 1.453405 0.532038 0.041441 1.448478 0.483750 0.558083 -0.287445 1.538503 0.291219 1.638457 0.600053 0.662198 0.795256 1.242590 1.838067 0.361458 1.182359 0.127222 0.028983 0.260274 0.612666 1.115236 0.952322 0.882120 0.158196 0.309783 1.961320 -0.174214 1.901085 0.981005 0.059166 0.213613 0.122462 0.734299 0.964142 0.498988 0.578042 -0.139034 0.363703)
+ 10.884106 #(0.000000 -0.147631 0.796882 0.337635 1.428067 1.185697 -0.165977 0.860475 1.014419 0.910797 1.104827 0.549224 1.660283 1.424507 1.293725 0.145548 0.134128 1.210370 0.245762 1.414108 1.144867 1.388665 1.159918 0.548130 1.657812 0.523701 1.515391 1.120809 1.139704 0.170245 0.696491 0.890635 1.693949 1.741590 1.811794 0.600361 1.380193 0.352524 0.288545 0.330851 1.453425 0.856395 0.541037 -0.112174 0.201572 0.499449 1.446800 0.422281 1.482845 -0.056943 1.534048 1.405300 1.350935 1.491209 1.575834 0.045841 0.861401 1.515785 1.915873 0.825207 0.207358 1.910300 0.158099 0.790908 0.108454 1.048819 0.315139 1.577085 1.629624 1.173968 1.255142 0.009802 0.523071 -0.080523 0.345781 0.640184 1.470535 1.603090 1.189519 0.466765 0.883563 1.134034 0.781354 1.629362 -0.046386 1.864515)
)
;;; 87 even --------------------------------------------------------------------------------
@@ -4312,7 +4469,7 @@
12.669403362513 #(0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1)
12.625063286678 #(0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0)
- 11.128296 #(0.000000 0.148168 0.899113 0.667308 1.119334 1.609345 0.305608 0.553123 1.000263 1.482291 1.732735 -0.358049 0.515447 1.867017 0.907968 1.223823 0.572825 0.867007 0.954633 0.508337 1.118536 -0.069356 0.735669 0.057845 0.323070 1.619323 1.309058 1.295956 0.345392 0.996968 0.593589 0.232801 1.032529 0.879365 0.571380 1.482832 0.863846 1.091610 1.261461 0.856926 0.776809 1.580747 1.349966 1.475565 0.426541 0.133686 1.123982 -0.035044 1.413501 1.667482 1.471305 1.273162 0.535719 0.574053 0.177795 1.956649 1.008399 0.945968 0.212019 1.033384 1.902224 0.840183 0.880940 0.433419 1.601191 0.746675 0.388915 1.728390 0.462508 0.748899 1.156345 0.198011 0.381141 0.625084 1.803037 -0.214688 1.671041 1.576305 0.174417 -0.047833 0.606682 1.331637 1.080476 1.431440 1.472445 1.147424 1.858611)
+ 11.064437 #(0.000000 0.943193 1.132742 -0.085024 0.438797 0.605867 1.753159 1.621647 1.174651 -0.041577 1.749442 0.370465 -0.037216 1.840155 0.345860 0.265743 1.787610 0.695626 0.698636 0.493601 0.857157 1.433491 1.930966 1.801188 1.215652 1.721790 0.582893 0.225837 0.050992 1.828494 0.939361 1.028991 1.654645 1.652246 0.056285 -0.004269 1.963981 0.895813 -0.187163 0.213615 0.305223 1.690724 0.659305 1.084012 0.735225 1.810907 0.722807 -0.030667 0.879695 1.351318 1.659353 1.229292 1.032504 1.651402 0.504135 1.828246 0.716439 1.533248 0.911342 1.742146 1.673285 0.718414 1.787778 0.860612 0.955301 0.278473 1.659992 1.891071 0.496654 1.149247 1.532620 1.183722 0.796537 0.204415 -0.081565 0.306829 0.122803 0.269536 0.040046 1.842755 1.726714 1.702320 1.379387 1.853348 1.841322 1.235435 0.948149)
)
;;; 88 even --------------------------------------------------------------------------------
@@ -4321,7 +4478,7 @@
12.675436588537 #(0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0)
12.661032846106 #(0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1)
- 11.170817 #(0.000000 1.470186 1.696110 0.139297 0.563567 1.443445 1.248329 1.690986 1.731668 0.231098 1.112740 1.712066 0.100393 0.780773 1.525172 0.683726 1.293833 0.346745 1.884246 -0.077440 1.308148 0.460717 0.133023 1.408623 0.346793 -1.851566 0.777294 0.916419 0.856472 1.862550 1.716709 1.548239 0.108240 0.136389 0.405951 1.843196 0.943097 0.636657 1.149730 1.272986 0.857647 1.728733 1.819727 0.933767 0.548215 1.451819 1.416426 1.257739 1.190572 0.789779 1.388068 0.787558 0.755352 0.262481 0.834721 1.842678 1.692859 0.230311 1.239756 1.493315 1.293694 1.009214 0.213272 0.748384 1.644836 1.194819 1.213534 1.643405 0.882291 0.461528 0.644505 0.099199 1.719241 0.293798 1.371813 0.404591 0.100228 0.656040 0.997163 0.014760 0.904697 1.281032 1.253678 1.401846 0.552198 1.548033 1.511617 1.213698)
+ 10.982749 #(0.000000 1.416232 0.323161 1.758133 1.767021 1.669225 1.187222 0.704269 0.950156 0.534770 0.809921 0.667129 1.001127 -0.051484 0.632506 1.661582 0.176313 1.770413 -0.080943 -1.856622 0.145941 1.210287 0.185763 1.746688 0.491335 0.364784 1.771849 0.353886 0.264785 0.089974 0.946082 0.056173 1.824160 0.099037 1.329649 0.697134 1.603568 1.928618 0.446696 1.524297 0.879977 0.422633 1.861879 1.613569 0.642757 0.840705 0.830819 -0.101294 1.692372 1.165889 1.523917 1.785506 0.309742 0.857697 0.563477 1.184455 0.420737 0.983432 1.364421 1.736763 0.796728 0.792140 0.306660 1.593170 0.552920 1.812912 -0.036532 1.181793 0.809981 0.492582 1.477215 1.437494 1.856243 0.306281 0.367334 0.774105 0.517645 0.239127 1.635191 0.215726 1.038498 0.721160 0.213665 0.574924 1.654195 0.809698 0.844611 1.243828)
)
;;; 89 even --------------------------------------------------------------------------------
@@ -4330,7 +4487,7 @@
12.707793861614 #(0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1)
12.335865540187 #(0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1)
- 10.883285 #(0.000000 1.190304 1.736450 0.761337 0.616974 1.218011 1.048426 1.582063 1.170358 1.054823 1.832745 0.640720 0.991935 1.574772 0.930174 0.944278 1.858714 1.821874 0.334583 0.490385 1.076092 1.223670 -0.012845 1.515015 0.659342 0.344753 0.360138 0.564681 -0.105988 1.559212 0.578738 0.893787 0.764126 -0.022539 1.520642 1.836815 1.309745 0.947874 0.798932 0.705139 1.507923 0.513983 1.920272 0.967800 0.305353 1.786341 -0.006554 0.168570 0.179282 1.063232 1.501848 0.860452 1.461447 1.241610 1.012158 1.777384 -0.112082 0.802517 0.014016 0.475159 1.727810 0.718402 0.105854 0.403203 1.037397 0.174928 0.624056 1.782341 0.366920 0.319759 0.481489 1.696680 0.231649 0.624838 0.487664 1.272036 0.658351 0.564576 0.582112 0.074256 1.495198 1.451459 0.467429 0.530351 1.455902 1.036652 0.551459 0.537467 0.153987)
+ 10.879155 #(0.000000 1.189690 1.737077 0.761828 0.617912 1.218011 1.047737 1.582403 1.170897 1.054751 1.832262 0.641398 0.991498 1.574646 0.930382 0.943609 1.858109 1.821533 0.335332 0.489873 1.075664 1.224051 -0.012662 1.514654 0.660197 0.345738 0.359912 0.563718 -0.105205 1.558435 0.578729 0.893911 0.764520 -0.022623 1.520780 1.837180 1.309551 0.948329 0.798736 0.706051 1.507254 0.514482 1.920592 0.968354 0.305179 1.786125 -0.007130 0.168950 0.180248 1.064226 1.501158 0.860044 1.460562 1.241240 1.011403 1.777292 -0.112591 0.802324 0.014972 0.476153 1.728124 0.718331 0.105815 0.403565 1.037023 0.174096 0.623096 1.782507 0.367373 0.320446 0.480517 1.697023 0.230676 0.625395 0.486784 1.272561 0.658076 0.564859 0.581989 0.074429 1.494629 1.451352 0.466544 0.529713 1.454909 1.036178 0.551332 0.537112 0.154538)
)
;;; 90 even --------------------------------------------------------------------------------
@@ -4339,7 +4496,7 @@
12.779235839844 #(0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0)
12.716424196959 #(0 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0)
- 11.137889 #(0.000000 1.169100 0.191754 0.641213 1.613085 0.709645 0.711201 1.194654 1.582029 0.273314 0.143666 -0.101878 0.333356 0.433827 1.601553 0.847261 1.274405 0.877606 1.095479 1.290433 1.466355 -0.056901 0.299620 0.118336 1.403978 0.403956 -0.555212 0.763591 1.145464 1.669247 1.475925 -0.339543 0.109834 -0.004381 1.017753 1.839747 1.133518 0.281223 1.581232 0.398529 0.699327 0.381501 -0.083205 1.126921 0.135497 1.559485 1.711608 1.458374 1.868277 1.064133 1.332763 1.414407 1.969641 -0.020842 1.282317 1.298605 0.820848 0.416331 0.188483 1.336933 1.236644 1.145609 1.320544 1.246362 0.565883 1.822867 0.251725 1.579631 0.001699 1.129898 1.731977 1.829800 0.473680 0.609763 0.554912 0.474416 -0.250595 0.654303 0.233254 0.068007 0.843460 1.830410 0.660591 0.737317 1.717728 1.983830 0.071898 1.083796 0.974234 0.170464)
+ 11.133646 #(0.000000 1.168885 0.192379 0.641820 1.613861 0.710425 0.710852 1.194705 1.582515 0.272891 0.144160 -0.101668 0.332668 0.434429 1.600866 0.847220 1.274347 0.878363 1.094691 1.290298 1.467150 -0.057723 0.300169 0.118047 1.403550 0.404894 -0.555506 0.764273 1.145070 1.670145 1.476686 -0.339631 0.110804 -0.003511 1.017260 1.839823 1.132773 0.281523 1.581469 0.398233 0.699309 0.381151 -0.082455 1.127842 0.135058 1.560144 1.711622 1.458664 1.869033 1.064820 1.332671 1.413851 1.969220 -0.021525 1.281818 1.297812 0.820400 0.416738 0.187772 1.336807 1.236928 1.145386 1.320385 1.245713 0.566174 1.822588 0.252002 1.579472 0.002697 1.130431 1.731009 1.830550 0.473545 0.609993 0.555237 0.474942 -0.251026 0.654962 0.234045 0.067094 0.842647 1.829596 0.660285 0.736874 1.718031 1.983971 0.071071 1.084768 0.974233 0.169674)
)
;;; 91 even --------------------------------------------------------------------------------
@@ -4347,14 +4504,14 @@
13.263186228373 #(0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1)
12.853587071592 #(0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0)
- 11.427479 #(0.000000 1.228746 1.523859 1.733791 0.589805 0.046742 0.391972 1.478210 0.870343 0.229477 1.541019 1.915952 0.917737 1.842210 1.545940 0.261021 1.107269 1.765472 1.309746 1.676027 0.894899 1.570622 0.822870 0.885364 0.130812 1.202391 0.590722 0.691911 0.478297 0.733366 0.876543 0.711963 1.944440 1.939562 1.311460 1.049687 1.520218 0.615733 0.223774 0.182680 1.094831 1.442548 0.995979 0.616159 0.420607 0.809101 0.801420 0.178023 0.369749 0.791916 1.328744 1.581810 1.634673 1.764522 1.580944 1.038150 0.997762 1.572257 0.442113 0.049893 1.475201 0.112507 1.423302 0.980794 1.614483 1.545343 0.340093 1.072956 0.947510 0.544490 1.250656 0.538418 0.785861 1.832734 0.912930 0.803325 0.679951 1.501400 1.601978 0.985528 1.019241 1.442825 0.104951 1.814060 1.008747 0.603711 0.908579 1.200251 1.177255 -0.197398 1.656062)
+ 11.347997 #(0.000000 -0.126053 1.516321 0.137211 1.178803 0.871363 1.238270 0.018148 0.213232 1.052088 0.700930 0.438347 1.799679 0.137211 1.041348 1.907167 0.341661 1.957369 0.410479 0.570175 1.342675 1.961312 0.868547 1.120726 1.688848 1.756017 0.805852 0.776891 1.262120 1.036274 1.004241 0.144560 0.414210 0.680477 1.297869 0.355131 0.429440 1.642776 1.416012 1.525855 1.540700 0.049281 1.703596 0.701303 1.670208 0.313365 -0.050230 0.075781 0.150242 1.795202 0.935986 0.792976 0.531170 0.811845 1.775645 1.101867 0.069724 1.408008 1.087177 1.339758 1.600782 1.198985 0.699948 0.425961 0.801045 0.565369 0.533254 1.361169 0.187048 1.072189 0.581456 0.366786 -0.009518 0.647777 0.502912 0.907605 1.014578 0.562053 0.840670 0.973511 1.919646 0.196609 1.449084 0.528878 0.601166 0.378240 1.034232 1.417865 1.928682 1.033900 0.608757)
)
;;; 92 even --------------------------------------------------------------------------------
#(92 13.355320111641 #(0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 0)
12.754180011349 #(0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0)
- 11.525936 #(0.000000 0.676754 1.230931 1.720925 1.764323 -0.182014 0.126188 0.095512 -0.238670 0.898043 1.190784 1.773358 1.763223 0.695684 1.818203 0.896701 1.354632 0.941464 1.433169 0.644171 1.342794 1.661162 1.355377 0.938274 1.498048 -0.036823 0.782936 0.376388 0.084493 1.430315 0.169969 0.526055 0.149704 -0.001394 1.768770 -0.284997 0.442726 0.955886 0.987450 1.084841 0.945719 0.791214 0.068740 1.454353 1.678820 0.774936 0.539020 0.665655 0.738389 1.609143 0.809588 -0.113184 0.954352 1.357508 1.456121 0.667501 0.611510 0.577494 0.464618 0.271373 1.558355 0.504565 0.422981 1.266265 0.128926 0.761033 1.076616 0.156059 0.247212 0.425726 1.826777 1.377154 0.133002 0.657102 0.478542 1.580820 1.125900 0.596710 1.409478 1.165606 0.504059 1.848020 1.816515 1.542021 1.755135 0.646736 1.290771 -0.172227 1.220094 0.612473 1.348308 0.999636)
+ 11.420171 #(0.000000 0.815306 -0.022044 1.354800 1.084588 0.918663 0.322861 1.581806 0.966328 1.770247 0.559652 1.565748 1.262231 0.682013 0.420329 1.193222 -0.189590 1.340523 1.358351 0.261408 1.220394 -0.066828 1.293320 1.553944 0.330037 0.660528 1.263342 0.019084 1.747314 -0.364670 1.352666 1.813454 -1.871253 1.088829 0.514939 0.165124 0.056920 0.604350 0.839878 0.350691 1.129185 1.438364 0.056930 0.665941 1.267686 0.443309 1.405432 0.959599 1.161972 1.329546 1.191670 0.361403 1.044739 -0.091533 1.257901 1.391492 1.813850 0.236759 0.163519 0.272339 0.922011 0.769828 1.658358 1.104730 1.032055 1.363011 0.076330 1.765708 0.923257 1.161396 0.654754 1.137485 0.454927 0.323560 0.353595 0.207244 0.531187 -1.889316 1.710812 0.371002 0.794297 1.432281 1.622286 1.908915 1.919139 1.246413 0.240051 -0.007498 0.574039 0.177174 1.764522 0.972986)
)
;;; 93 even --------------------------------------------------------------------------------
@@ -4362,14 +4519,14 @@
13.143995954461 #(0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0)
12.876626968384 #(0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0)
- 11.420933 #(0.000000 0.744894 -0.547344 1.711331 0.559243 0.615250 0.595041 0.338682 0.015220 0.186419 1.020525 0.099336 -0.178283 -0.033045 0.517043 1.652337 0.338265 0.609964 0.052740 1.084201 1.302627 0.735901 0.533868 0.745524 1.672895 1.635365 1.892905 1.719827 -0.165822 1.023434 0.393038 1.624682 1.527830 1.068785 1.212198 0.501096 0.633088 1.594303 1.535468 -0.208594 1.661285 1.684569 0.334699 0.755935 -0.106713 0.001991 0.764599 0.313069 0.961089 1.006824 0.162945 0.328141 1.221334 1.198063 0.448124 1.288734 1.129932 1.291409 0.266845 1.227828 0.093625 1.793309 0.206064 1.560686 1.131946 1.871976 -0.259703 0.837254 1.459769 0.656694 1.368971 1.470258 1.730606 1.243636 0.637774 0.543940 0.721421 1.334120 1.691261 1.129037 -0.078968 1.668142 -0.109444 0.480249 0.144587 0.090021 0.038818 1.675270 1.557628 1.859357 1.613795 0.984957 0.001131)
+ 11.415697 #(0.000000 0.744829 -0.547698 1.711697 0.558425 0.614716 0.595291 0.340186 0.014003 0.185842 1.020391 0.099150 -0.180011 -0.032792 0.515346 1.651970 0.338285 0.610963 0.052785 1.084316 1.303062 0.737153 0.533985 0.745328 1.672434 1.634300 1.892991 1.719808 -0.166978 1.022736 0.393076 1.623837 1.528244 1.069307 1.212631 0.502176 0.633061 1.593525 1.535164 -0.209919 1.662236 1.683938 0.336126 0.756142 -0.106383 0.001852 0.765706 0.313200 0.960258 1.007026 0.163110 0.327093 1.222026 1.197705 0.447415 1.289217 1.130720 1.290563 0.267709 1.228707 0.093465 1.792922 0.206438 1.560500 1.132655 1.873548 -0.258990 0.837446 1.459561 0.656684 1.370173 1.471002 1.730606 1.244940 0.639014 0.543849 0.719961 1.334324 1.691707 1.128393 -0.078585 1.667644 -0.108279 0.479784 0.144868 0.090473 0.040035 1.674890 1.557843 1.860274 1.614559 0.985189 0.000283)
)
;;; 94 even --------------------------------------------------------------------------------
#(94 13.381710407562 #(0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0)
12.991560374803 #(0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1)
- 11.419035 #(0.000000 1.497652 0.292715 0.158023 0.285755 0.194368 0.833375 1.440261 0.774968 0.538239 1.515905 1.263672 1.674620 1.783032 0.337014 0.889715 0.354614 0.104857 1.763716 0.641107 1.930457 0.462737 0.348187 0.666483 0.867025 0.502644 0.404648 0.189546 0.392253 0.666339 1.803017 0.416865 -0.197872 0.415814 1.541064 1.789380 -0.061094 1.199670 0.226242 1.080669 0.401793 1.147700 1.671756 1.524290 0.688851 0.687304 1.091933 0.832454 1.486686 1.082356 1.480064 1.527876 0.947840 0.940304 1.053312 0.124124 0.217811 0.310126 -0.193539 1.295249 0.269226 1.448671 1.041051 1.093118 1.713334 0.808151 0.629153 0.341790 0.563944 1.433587 1.698789 0.666510 0.564374 1.482878 0.719193 1.306373 -0.014818 0.025248 0.879186 1.188739 1.548647 0.921259 1.326853 0.280740 1.609071 1.304180 0.871010 0.279848 1.631724 0.653744 -0.218003 0.148291 0.492006 1.941458)
+ 11.415822 #(0.000000 1.497912 0.291653 0.158099 0.284570 0.194391 0.834012 1.440037 0.774075 0.537734 1.516989 1.264719 1.674986 1.783322 0.338446 0.890416 0.353401 0.105711 1.762626 0.640819 1.932144 0.462523 0.349125 0.667022 0.867923 0.503039 0.405283 0.190438 0.393238 0.666728 1.803118 0.417662 -0.198188 0.416348 1.540912 1.789220 -0.061171 1.199874 0.226999 1.080139 0.400598 1.147355 1.672684 1.525516 0.687774 0.686227 1.091742 0.832229 1.486075 1.083575 1.480031 1.527499 0.947795 0.940984 1.052204 0.124511 0.217389 0.310501 -0.194349 1.294739 0.270067 1.449087 1.042603 1.094288 1.712905 0.808220 0.630032 0.342446 0.562993 1.433319 1.698703 0.666924 0.564552 1.483529 0.719987 1.305679 -0.013829 0.025504 0.878039 1.188307 1.549506 0.920247 1.325948 0.281202 1.609882 1.304676 0.870679 0.281325 1.633001 0.652814 -0.217240 0.148263 0.490707 1.941659)
)
;;; 95 even --------------------------------------------------------------------------------
@@ -4384,14 +4541,14 @@
13.179516746745 #(0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0)
13.077001047978 #(0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1)
- 11.592949 #(0.000000 0.667209 -0.095331 0.557218 1.177723 1.294053 1.240958 0.708497 1.388022 0.007930 0.494476 1.694945 1.246799 0.176500 1.538523 1.047096 0.550797 0.204493 -0.130978 1.563513 -0.484339 1.444126 1.597420 0.540618 1.728631 0.716017 0.996822 0.041903 0.331353 0.426427 0.112457 0.953046 0.811267 0.016260 1.592932 1.991317 1.263871 1.141600 0.773389 0.556795 1.545732 0.352883 0.254909 0.502211 1.716445 1.767807 0.728223 1.546026 0.660647 1.406894 0.597101 1.736340 1.013404 0.318988 0.159271 1.163885 1.161026 1.833817 -0.076906 1.195905 0.935928 1.219794 1.989044 1.919719 1.334424 -0.188325 1.311887 0.912290 1.086172 0.718880 0.876713 1.553387 0.865776 0.972262 1.007398 0.820737 1.694271 0.365730 -0.138716 0.696689 0.639883 0.314918 0.772894 1.402756 -0.475640 0.488460 1.635055 0.940753 0.593805 0.708882 0.927310 0.996660 1.360160 1.051661 1.410601 1.769369)
+ 11.582607 #(0.000000 0.667251 -0.097020 0.557417 1.175984 1.294020 1.241208 0.707624 1.388852 0.006609 0.492998 1.692653 1.247400 0.175793 1.538250 1.048111 0.552779 0.205433 -0.130517 1.562670 -0.482989 1.445186 1.597963 0.541707 1.727331 0.715578 0.996171 0.039970 0.329890 0.426071 0.110246 0.953104 0.810366 0.017388 1.592457 1.990738 1.263814 1.140669 0.773346 0.555969 1.544719 0.352377 0.255483 0.502354 1.715489 1.766862 0.729422 1.548361 0.661578 1.407332 0.598816 1.737157 1.012609 0.321287 0.159101 1.163321 1.160609 1.833401 -0.076478 1.194580 0.936057 1.220809 1.988136 1.920692 1.333670 -0.188761 1.311228 0.914103 1.086723 0.719609 0.874871 1.553277 0.865471 0.972690 1.006760 0.821411 1.695453 0.365040 -0.139325 0.695372 0.640135 0.314232 0.771955 1.403528 -0.475736 0.487726 1.634907 0.940507 0.591904 0.708239 0.925612 0.995328 1.361379 1.052940 1.411655 1.768375)
)
;;; 97 even --------------------------------------------------------------------------------
#(97 13.449318349909 #(0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0)
12.969611395004 #(0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0)
- 11.800908 #(0.000000 1.117451 0.592838 1.152733 1.223636 1.444117 0.650124 0.006565 0.215241 0.299404 1.140066 1.341234 -0.000331 1.289547 0.486096 1.436066 0.400223 0.326116 0.801392 1.775633 0.719736 0.402554 1.118673 1.912186 1.588870 1.206643 0.080470 0.004110 0.270307 1.535242 1.208123 1.057553 1.968079 1.937433 0.486814 1.264616 1.098659 1.369489 1.865547 0.060946 -0.029320 1.835008 1.347762 0.897582 1.435923 0.996928 1.535893 0.210611 0.643429 1.785045 1.550658 0.855804 0.325049 1.678438 1.183573 1.374035 0.103075 1.836199 1.059736 0.543991 1.744621 1.694439 1.962590 -0.011892 0.923350 1.686054 0.935576 0.664626 0.823177 0.484599 0.427988 1.600286 0.984061 0.734999 0.803268 0.820932 0.708418 1.028258 1.514987 0.348240 1.239797 1.500065 1.245378 1.922522 1.813544 1.614915 0.284804 1.117112 -0.034382 1.060107 1.395004 1.140225 1.050756 1.278443 0.551799 0.836064 -0.021829)
+ 11.689133 #(0.000000 0.288152 -0.041431 1.579060 1.308080 0.126439 1.658538 1.247164 1.119564 1.905649 1.074354 0.014561 1.681946 0.119968 1.077747 0.297607 0.116908 1.630559 1.089826 -1.968743 0.583840 1.372762 1.448163 0.357921 0.744043 1.618871 1.363273 1.763797 0.028728 0.265362 0.880766 0.606613 0.786300 0.187518 0.829010 0.635374 1.616681 0.543350 1.661010 1.338785 0.325980 0.857529 1.557299 1.868251 0.055480 1.826671 1.268331 0.044212 -0.080646 1.058861 1.950822 1.730874 0.815066 0.146864 1.126860 1.382614 0.006310 1.883810 -0.019169 1.751549 0.894522 0.435481 0.840195 0.445039 0.297648 1.496604 1.771343 1.102173 1.492845 1.942931 1.638427 0.481671 1.178697 0.497139 1.182041 -0.063081 1.429901 1.397481 0.361780 0.295216 0.486297 1.409739 0.171309 1.637498 1.780926 0.336524 0.933414 1.558224 1.149775 1.169914 0.789876 0.817179 1.459274 0.785094 1.675907 1.094563 0.798428)
)
;;; 98 even --------------------------------------------------------------------------------
@@ -4399,7 +4556,7 @@
13.490633234777 #(0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1)
13.468658765207 #(0 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1)
- 11.841431 #(0.000000 1.834268 0.900897 0.085004 0.857095 1.269765 1.663843 1.207004 0.809186 0.347025 0.299798 0.867927 0.503506 0.986712 0.965198 0.187043 1.634288 0.800936 1.508380 -0.172118 1.512169 1.092946 0.635865 1.351620 -0.169575 0.740121 0.455146 -0.294341 1.740281 -0.051301 0.387438 0.853277 1.121332 1.284106 0.246946 1.128364 0.306040 1.163486 0.731241 1.226837 0.478157 1.045636 0.186939 0.017371 -0.081865 1.650321 0.371437 0.372290 0.945480 1.706833 0.043961 0.618730 1.367608 0.616068 1.841543 1.575047 -1.888865 1.413793 0.508231 0.173393 0.817994 0.988157 1.695018 1.010572 0.952548 0.506370 0.668867 0.446741 0.977358 1.623550 -0.027168 0.748114 1.447357 0.258849 0.561584 0.312955 0.902727 0.297387 0.889817 0.950683 0.771498 1.876890 0.263997 1.004619 0.703654 0.662078 0.356837 0.115096 0.196011 0.435524 0.334418 1.583158 1.434745 1.120095 1.367191 0.523128 0.280021 1.651179)
+ 11.837229 #(0.000000 1.834561 0.900612 0.084730 0.858197 1.271280 1.664592 1.208084 0.808074 0.347778 0.298999 0.868702 0.503256 0.986719 0.963636 0.186959 1.635013 0.801327 1.508666 -0.171364 1.512374 1.092140 0.636473 1.352156 -0.169622 0.741114 0.453999 -0.293238 1.741300 -0.051607 0.386370 0.853371 1.121260 1.284485 0.247758 1.130018 0.307560 1.163323 0.731435 1.227338 0.476963 1.046276 0.188589 0.018608 -0.081633 1.649978 0.372033 0.371073 0.946191 1.706701 0.043438 0.618522 1.366408 0.616434 1.841084 1.573991 -1.888455 1.413189 0.507801 0.173369 0.817400 0.987503 1.693962 1.009896 0.952032 0.506895 0.669292 0.447014 0.977055 1.622180 -0.027150 0.747570 1.447357 0.259615 0.562884 0.312563 0.903930 0.298277 0.889395 0.949112 0.771181 1.876459 0.265260 1.006066 0.702915 0.660991 0.356668 0.115838 0.194598 0.435085 0.334157 1.582574 1.435180 1.120692 1.368873 0.522801 0.279288 1.652455)
)
;;; 99 even --------------------------------------------------------------------------------
@@ -4407,7 +4564,7 @@
13.942 #(0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1)
13.341398779709 #(0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1)
- 11.915698 #(0.000000 1.004777 0.840694 1.182573 0.397930 -0.444455 1.418627 1.848183 1.399204 0.814963 1.682398 1.351615 0.726832 0.411401 0.570456 1.543101 1.295565 0.018987 -0.063936 0.680467 0.620435 0.992162 0.451729 0.863080 0.180726 -0.246028 -0.020408 0.248192 0.098219 0.762398 0.953220 0.561638 1.630056 1.214558 0.404989 1.404685 0.654458 1.440153 1.346151 1.588891 0.773286 0.103200 1.650859 1.996219 0.221108 0.907460 1.495713 -0.089763 1.619218 1.382707 1.143244 0.160115 0.180877 1.856306 0.799880 1.494866 0.011755 0.076950 0.974741 1.384459 1.151828 1.543696 1.523750 1.006864 0.033049 1.563619 1.228605 1.761877 0.141743 0.453510 -0.056350 1.573197 0.624720 1.261525 1.513937 0.670197 -0.026599 1.724402 1.528087 -0.101926 1.128130 -0.131818 0.636531 -0.170264 1.772208 1.554721 -0.158133 -0.159629 0.020322 0.932617 1.697328 0.741224 0.801862 1.399133 0.470466 0.760521 0.798509 0.960653 0.260636)
+ 11.820647 #(0.000000 1.285679 0.177252 -0.016014 0.497060 0.184674 1.824536 0.038271 0.421635 1.354691 -0.155595 0.352830 0.188756 0.584383 0.918084 1.262780 0.659094 1.652571 1.205560 0.815899 1.486605 0.156385 0.205925 0.938917 1.280084 0.230385 1.280249 0.137247 0.973120 0.865023 0.015813 1.097763 1.354729 0.177726 -0.256171 0.619096 1.028015 1.497914 0.103010 1.935761 0.393333 1.732935 1.720883 0.231715 0.530761 0.568998 -0.082246 0.146847 -0.218664 1.501549 -0.094580 0.977707 1.907745 1.600862 1.831827 1.620012 1.338596 0.577320 0.245433 0.303344 1.278937 0.150454 -0.044427 1.632452 0.552822 0.974684 0.834871 0.928076 0.416772 1.400171 1.695021 1.174110 0.348776 1.137430 0.049915 0.835547 0.999472 0.532408 0.661612 1.577344 1.793003 1.564377 1.393709 1.295143 0.081940 1.598880 1.200334 0.508389 0.385394 0.876999 1.034286 0.425485 1.739634 0.704973 1.523508 0.652655 0.237948 1.569550 -0.032754)
)
;;; 100 even --------------------------------------------------------------------------------
@@ -4415,7 +4572,7 @@
13.694382146343 #(0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0)
13.512077331543 #(0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0)
- 11.925546 #(0.000000 1.776886 0.168135 1.692461 1.098731 1.075088 1.102033 0.110208 -0.484445 -0.154643 1.442605 1.064684 0.513511 0.514775 1.450399 1.159375 0.487534 1.046870 0.848272 1.107853 1.166612 1.106470 0.714729 1.369540 -0.521443 -0.799567 0.862107 0.044578 1.343883 1.697653 -0.098468 0.753850 1.047791 0.160622 0.508629 1.622968 0.950027 0.787403 0.696046 1.429013 0.884817 0.832672 1.720664 1.672508 1.322578 0.888149 1.673308 0.705905 1.318123 0.567702 1.813444 1.492301 0.591558 1.556803 0.496769 0.946232 1.674698 0.822632 -0.275750 0.025337 1.633673 -0.860548 -0.046001 0.394543 0.361542 1.707600 1.769530 -0.073360 1.256283 1.862432 0.628247 0.439120 1.099912 1.483289 1.784499 1.952519 0.527282 -0.186266 0.915027 0.526471 0.901754 1.285479 0.427891 1.250055 1.093738 1.304878 1.445351 1.373586 0.638561 0.521789 0.856763 0.652167 0.474420 0.270918 0.221412 -0.405442 1.595770 1.707146 1.247915 -0.191312)
+ 11.818799 #(0.000000 1.780438 0.140937 1.687229 1.096296 1.077280 1.115122 0.119502 -0.485601 -0.142878 1.432856 1.068798 0.504428 0.539041 1.446543 1.150828 0.478983 1.035414 0.831599 1.121092 1.179681 1.121418 0.724286 1.358416 -0.517766 -0.814412 0.864005 0.044721 1.333726 1.684984 -0.099249 0.745081 1.044705 0.170980 0.507797 1.631098 0.954293 0.779236 0.696910 1.420723 0.885428 0.834530 1.714830 1.685955 1.308892 0.872776 1.671217 0.703077 1.313961 0.550241 1.824176 1.483882 0.614826 1.545700 0.494590 0.939413 1.664969 0.826778 -0.289652 0.036626 1.628137 -0.860878 -0.041439 0.401710 0.365682 1.714008 1.762554 -0.080614 1.247910 1.867757 0.621824 0.433280 1.074878 1.479709 1.788607 1.949940 0.528220 -0.196728 0.911346 0.528049 0.904974 1.287119 0.432949 1.250835 1.091665 1.317682 1.451853 1.363996 0.642902 0.526337 0.830805 0.643189 0.460110 0.258781 0.236205 -0.398217 1.599939 1.694559 1.242237 -0.179320)
)
;;; 101 even --------------------------------------------------------------------------------
@@ -4423,7 +4580,7 @@
14.20509180893 #(0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1)
13.916260357992 #(0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1)
- 11.955820 #(0.000000 1.184894 0.393692 0.701904 0.402428 0.846102 1.433139 0.226187 1.819646 0.381482 0.509296 1.886552 1.337284 1.705558 1.096611 0.362379 0.855188 1.497774 0.181403 0.649815 0.384368 0.661028 1.100067 1.070980 1.067807 1.158533 0.564253 0.163829 1.490544 1.716095 -0.133075 0.590309 1.332226 0.259493 0.907692 0.785743 0.767111 1.215905 1.869891 1.656069 0.883371 1.492633 1.427745 1.679474 1.423914 1.505902 0.767474 -0.048763 1.262718 0.855377 0.073840 -0.147242 0.526807 1.653396 1.506356 0.522680 1.528852 0.545430 1.580676 0.465306 0.160375 1.177484 0.370257 0.974975 1.082632 0.625456 1.878766 0.449428 0.625628 0.622920 1.870755 1.758036 1.489271 0.871647 1.360751 -0.008194 1.711222 1.619360 1.636093 1.217992 1.215952 1.819939 0.865170 1.099643 -0.143942 1.690833 0.847644 0.752589 1.766209 1.647672 0.896587 1.590825 0.112575 1.200585 0.699694 0.452400 0.842257 1.327632 1.310361 1.603475 1.122559)
+ 11.839894 #(0.000000 1.194704 0.385391 0.712681 0.403147 0.845100 1.441220 0.208132 1.798249 0.379463 0.511222 1.895870 1.345856 1.726819 1.088004 0.358351 0.853545 1.491800 0.175566 0.657864 0.389160 0.664912 1.113579 1.078650 1.076017 1.164924 0.546388 0.141684 1.482931 1.715115 -0.149747 0.586885 1.350105 0.246263 0.898940 0.793447 0.780962 1.212957 1.875900 1.656490 0.885130 1.503051 1.408221 1.662784 1.410288 1.501403 0.765313 -0.047802 1.260295 0.851021 0.081635 -0.133968 0.516501 1.664350 1.496296 0.529899 1.522520 0.540611 1.589723 0.470521 0.178354 1.163731 0.373894 0.969867 1.094633 0.613429 1.888164 0.451261 0.617786 0.623061 1.872898 1.765870 1.497924 0.888482 1.354581 -0.003863 1.722450 1.619021 1.636916 1.195858 1.221988 1.800043 0.877268 1.102664 -0.156060 1.699654 0.856960 0.758369 1.742919 1.644913 0.901317 1.598031 0.093920 1.199881 0.708612 0.465115 0.846545 1.312391 1.313363 1.586427 1.126992)
)
;;; 102 even --------------------------------------------------------------------------------
@@ -4431,7 +4588,7 @@
13.955191612177 #(0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1)
13.554303556646 #(0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0)
- 12.011517 #(0.000000 0.944401 0.886760 0.082448 1.945477 1.044453 0.436139 0.765216 0.037112 0.030984 1.420048 0.244091 1.283246 0.118929 1.253933 1.608737 0.528544 1.649949 0.964263 1.074448 0.410748 0.501998 0.888644 0.847581 0.960882 0.649226 1.869479 1.824727 0.684861 1.547917 1.212974 -0.025213 0.535736 1.656264 1.200719 1.936124 0.824360 0.064970 1.481134 1.283150 1.774391 1.611161 0.669622 0.077618 0.445944 1.732337 0.065312 0.794680 -0.025540 1.478404 0.307057 0.955516 0.934703 1.840814 0.696496 1.027151 0.619538 -0.107565 1.316057 0.113156 0.977837 0.552569 0.784796 0.536782 0.050832 -0.088218 1.389579 0.372784 0.413030 0.463992 0.926518 1.755842 1.974680 0.021821 0.089025 0.636925 1.088264 0.424363 0.446020 0.796730 1.862777 0.655283 0.649504 0.027827 0.021258 0.279123 0.133719 1.564100 1.027893 0.044519 -0.243589 1.220491 0.050116 0.292230 0.268547 0.635225 0.685988 1.614006 0.645764 1.177363 1.448343 1.323843)
+ 11.876307 #(0.000000 0.954911 0.897658 0.064379 1.933952 1.067160 0.431000 0.787496 0.036198 0.042991 1.425219 0.261830 1.285917 0.097131 1.243963 1.622027 0.531920 1.658178 0.955802 1.059851 0.399770 0.519083 0.891572 0.838705 0.965896 0.648877 1.874581 1.834671 0.676915 1.564245 1.211582 -0.033066 0.520609 1.638395 1.212629 1.935675 0.835768 0.064973 1.508866 1.280331 1.767547 1.597714 0.677381 0.058691 0.445428 1.748515 0.074348 0.798024 -0.012181 1.475197 0.303895 0.971082 0.928727 1.833926 0.679559 1.012189 0.611196 -0.097377 1.304298 0.131688 0.970424 0.572520 0.785284 0.524847 0.033400 -0.094448 1.394035 0.364493 0.417079 0.466898 0.925495 1.760788 1.972514 0.033140 0.086967 0.636765 1.074368 0.420339 0.447867 0.792579 1.868294 0.659717 0.639893 0.012489 0.034883 0.300422 0.122102 1.565376 1.031516 0.035785 -0.252910 1.227900 0.050923 0.310595 0.283041 0.641253 0.685176 1.632599 0.667159 1.165729 1.466279 1.314687)
)
;;; 103 even --------------------------------------------------------------------------------
@@ -4439,7 +4596,7 @@
14.260 #(0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0)
13.923377530893 #(0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0)
- 12.116407 #(0.000000 0.276388 1.915530 0.337557 1.487491 0.951841 0.775122 0.378973 1.190377 -0.050508 0.872142 0.982923 0.441504 0.272736 0.981865 1.419216 0.397605 0.033084 1.531014 0.374041 0.652531 0.312864 1.136347 1.058105 0.427098 0.828778 0.695493 0.468800 0.109488 1.324766 0.229660 1.002190 -0.101688 0.685928 -0.053680 0.542591 0.133855 0.651337 0.804589 -0.119413 1.122419 1.657151 0.542043 1.604402 0.225898 0.360565 1.684094 0.586492 1.468035 1.569970 0.251862 0.941828 0.190138 1.044711 0.531053 1.683549 1.510990 1.766513 0.103654 0.386153 1.053763 1.399132 1.315342 0.199646 1.860628 1.357952 1.455267 1.519518 0.051777 0.516866 0.737436 0.024474 1.267710 0.983484 1.605683 1.070506 1.680956 1.599391 1.365563 0.072270 -0.090921 0.578100 1.368391 0.558334 0.015952 0.268576 0.254943 0.117490 0.262368 0.434678 0.610069 0.875905 1.868481 0.274458 1.722651 1.470589 1.142500 0.951759 1.265094 0.815147 0.531154 0.764887 1.197459)
+ 12.011191 #(0.000000 0.287655 1.905823 0.341084 1.480797 0.978938 0.781985 0.378023 1.191693 -0.063938 0.881335 0.973225 0.437334 0.274334 0.986490 1.411549 0.409327 0.041425 1.521503 0.373192 0.648785 0.307101 1.143053 1.056576 0.423798 0.843790 0.689778 0.472673 0.108371 1.324641 0.233549 0.996026 -0.095312 0.692803 -0.053250 0.519846 0.152916 0.647583 0.809375 -0.120694 1.129490 1.659592 0.533649 1.613327 0.204977 0.367138 1.675652 0.581755 1.487960 1.562574 0.273504 0.926534 0.188004 1.055854 0.513817 1.684850 1.511004 1.774367 0.117483 0.395041 1.058616 1.412461 1.330620 0.193151 1.851793 1.373579 1.450147 1.510063 0.053202 0.515877 0.732069 0.024776 1.252612 0.993121 1.592847 1.081130 1.675926 1.586912 1.349443 0.084278 -0.081381 0.591400 1.367793 0.557810 0.022826 0.276162 0.240229 0.119596 0.266147 0.443873 0.602002 0.883556 1.881155 0.270627 1.732523 1.481896 1.147923 0.955238 1.267695 0.803777 0.540506 0.766623 1.186359)
)
;;; 104 even --------------------------------------------------------------------------------
@@ -4454,7 +4611,7 @@
14.062 #(0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0)
14.023490699521 #(0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0)
- 12.095313 #(0.000000 1.078005 1.183313 1.888753 1.399478 0.156386 0.342043 0.316953 0.006058 1.536325 0.222103 1.037236 0.283110 1.285471 1.197595 -0.133846 1.711168 1.937396 0.797979 0.984637 1.789312 1.111049 0.920920 0.265204 0.378545 0.617366 1.344626 1.148126 0.675718 -0.199735 0.732902 0.464482 0.299482 0.387278 1.543400 1.509392 0.114417 1.572073 1.253741 0.113066 0.259918 1.825387 0.944762 0.257148 1.576593 0.493110 0.474574 0.304345 0.882918 -0.257168 0.107882 0.059381 0.315165 0.664787 0.980538 1.825566 0.651522 1.030892 0.997719 1.438534 0.525576 0.432178 1.392965 0.563514 1.557406 -0.033863 0.933290 1.009948 0.292211 0.576649 0.601208 1.848579 0.364675 0.593583 0.857548 1.056534 0.968935 0.326181 1.261878 0.151060 -0.048584 1.524974 0.142351 0.115007 1.851501 1.484937 1.656608 1.151294 1.781040 1.218485 0.108590 0.551751 0.213004 1.836787 1.776659 0.861244 1.905845 0.193903 -0.233098 -0.023930 1.040142 0.996034 0.587319 1.828466 1.707703)
+ 12.092342 #(0.000000 1.078142 1.184871 1.887960 1.400123 0.157527 0.342646 0.317378 0.006395 1.537309 0.221957 1.036939 0.282622 1.284813 1.197950 -0.135237 1.711634 1.937632 0.797283 0.983284 1.788168 1.111760 0.919676 0.264934 0.378390 0.616942 1.342923 1.148531 0.675857 -0.200664 0.731946 0.464162 0.297786 0.387619 1.541770 1.509752 0.114142 1.571660 1.254437 0.112800 0.260513 1.825156 0.944526 0.256665 1.577890 0.491857 0.474302 0.305250 0.882483 -0.256448 0.108351 0.057998 0.314951 0.664634 0.981025 1.825378 0.650352 1.031813 0.996484 1.438278 0.526359 0.432153 1.391918 0.563546 1.558349 -0.034169 0.934568 1.009380 0.291683 0.577147 0.602738 1.849541 0.365743 0.593776 0.858066 1.055814 0.967977 0.327223 1.261228 0.151237 -0.048430 1.524114 0.142285 0.115065 1.852116 1.485915 1.656670 1.150588 1.780640 1.218538 0.107043 0.551067 0.213669 1.837197 1.777795 0.860568 1.907281 0.193893 -0.232563 -0.023437 1.040086 0.996688 0.587973 1.828004 1.707692)
)
;;; 106 even --------------------------------------------------------------------------------
@@ -4462,14 +4619,14 @@
14.160224278203 #(0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1)
14.077123010357 #(0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1)
- 12.267765 #(0.000000 1.698390 0.254612 0.108899 0.351804 0.420247 0.562343 1.355423 1.501948 0.506864 1.785496 0.807446 -0.065425 1.901242 1.500950 0.670532 1.053807 0.337690 1.793606 -0.020107 1.177940 1.304832 1.104970 0.740599 1.705870 0.926090 0.227707 0.622355 1.454740 1.908131 0.703894 1.734377 0.841842 0.102471 0.180444 1.615016 1.487163 1.093351 0.792876 1.361362 0.749791 0.875598 0.395905 0.237229 0.243807 1.315366 -0.213924 1.553826 1.473128 1.580716 0.766044 0.800451 1.138071 1.849491 0.555100 1.557029 0.929801 1.143866 0.364977 0.712283 1.002768 1.372202 1.205033 0.540986 0.424082 1.341569 1.418144 0.119582 -0.253379 1.673803 1.366383 0.365119 1.485408 -1.978092 -0.074557 1.833068 0.859974 0.686210 1.436384 0.749128 1.691085 1.318265 0.539373 1.445400 1.708545 1.904571 0.642113 0.240221 1.226816 0.863223 0.787323 1.549967 1.428621 0.966216 1.300681 0.782705 1.356248 1.747844 1.071181 1.276575 1.625424 0.344690 0.919853 1.421442 0.355737 -0.196608)
+ 12.260782 #(0.000000 1.699252 0.255052 0.109209 0.352866 0.420181 0.561252 1.356150 1.501855 0.506597 1.784613 0.807779 -0.065510 1.899998 1.500998 0.673007 1.055021 0.335739 1.794309 -0.019932 1.180142 1.304310 1.105320 0.741663 1.706119 0.926501 0.226888 0.621386 1.454196 1.908787 0.704837 1.733269 0.843390 0.100903 0.180551 1.614394 1.486115 1.092570 0.794003 1.360146 0.749929 0.875871 0.396273 0.237797 0.244077 1.314000 -0.213671 1.555040 1.474363 1.582151 0.766234 0.800139 1.138192 1.847813 0.554958 1.557810 0.929989 1.144666 0.366369 0.711942 1.002184 1.372521 1.205081 0.542923 0.424756 1.341481 1.416043 0.120166 -0.250794 1.672994 1.366514 0.367084 1.484552 -1.978566 -0.074060 1.833422 0.859123 0.687411 1.437881 0.748330 1.690602 1.317654 0.539214 1.445899 1.708082 1.903290 0.642870 0.240740 1.224943 0.862508 0.785038 1.549253 1.427782 0.966102 1.299799 0.782749 1.357166 1.747164 1.071716 1.276650 1.624157 0.344224 0.919875 1.420585 0.356626 -0.197145)
)
;;; 107 even --------------------------------------------------------------------------------
#(107 14.355038210217 #(0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1)
13.979104817741 #(0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1)
- 12.497928 #(0.000000 0.059348 0.791215 1.013662 0.548508 -0.024304 1.658828 1.265510 0.694673 -0.027851 0.052871 -0.045797 0.100211 0.503674 0.556113 1.022452 0.202428 1.526895 0.580073 0.379453 0.375246 0.552733 1.741280 1.403715 1.770484 1.856730 1.126635 1.711273 -0.169823 0.589364 0.830253 0.043241 0.820110 -0.074180 0.559152 1.817883 0.165747 0.943456 0.151115 0.179116 0.467174 0.446311 0.062656 0.508353 1.735993 1.166603 0.746598 0.740247 1.688381 1.480217 0.473650 0.152598 0.804590 0.795991 0.640796 1.154738 0.529368 1.716816 0.003927 1.881779 0.819184 1.009631 1.247886 0.468991 1.715667 0.375624 0.614488 1.275094 0.932960 1.696793 0.164768 1.156043 1.629426 1.668674 -0.104935 1.303679 1.892043 0.625762 0.590719 1.771192 0.528259 1.401701 0.612576 0.913669 -0.100375 1.543961 0.953354 0.510920 1.351212 0.841764 0.882163 1.065870 1.537078 1.050117 0.139235 0.375457 0.668785 1.865581 0.194673 0.396378 1.077456 0.193615 0.007724 0.349107 1.558705 0.088180 1.485803)
+ 12.377435 #(0.000000 -0.356365 1.741770 0.654257 0.938877 0.636144 1.628626 1.283506 0.305421 0.414006 0.026884 1.641477 1.326701 0.626536 0.165480 1.012144 1.124173 0.122702 0.102869 0.577780 0.233033 -0.101298 1.162680 1.342329 0.711906 0.797883 0.802744 0.456194 1.126339 0.373048 0.800537 1.255867 1.422500 1.262871 1.642379 1.694628 1.710103 0.486487 0.105228 1.498223 1.527737 1.752080 1.696603 0.581346 1.266353 0.296164 0.671940 0.538677 0.155651 0.765289 0.002624 0.228464 1.267947 1.608669 -0.016400 -0.020618 0.043602 1.843555 1.186040 0.972163 1.745646 0.463974 1.637108 0.391915 1.508977 0.219747 0.124813 1.434177 1.444614 0.006335 -0.020287 0.063572 1.171482 -0.052031 0.997020 1.286227 0.230251 1.752919 0.351566 1.792566 1.718117 1.381606 -0.010333 1.160069 1.208789 -0.093156 0.090887 0.921136 1.326452 1.433518 0.524701 1.400136 0.426933 1.334862 1.102407 1.482327 0.418036 0.424939 1.765694 0.030312 0.237868 0.571033 0.681000 0.274292 0.590946 1.723066 1.512954)
)
;;; 108 even --------------------------------------------------------------------------------
@@ -4478,14 +4635,14 @@
14.247987286758 #(0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1)
14.201394892821 #(0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1)
- 12.579645 #(0.000000 0.705127 -0.190092 1.289304 0.806290 1.299869 0.515665 0.468490 1.202248 1.404544 0.331644 1.258610 1.784388 1.504936 0.059612 0.201407 1.286741 0.145058 1.091398 1.185140 0.705391 1.180358 -0.016479 0.233774 1.774332 1.801609 -0.305338 1.637861 0.381508 0.276444 0.951880 1.327591 0.642822 0.495268 0.471037 1.328470 -0.164127 0.059815 0.135501 0.025733 0.319474 0.276159 0.798438 0.661230 0.284425 1.200502 0.480890 1.217074 0.365243 0.355440 1.056217 1.447200 0.538056 1.428633 0.879160 -0.009284 1.355449 0.331921 0.861561 -0.067562 1.407514 0.182775 1.490889 1.400267 1.194646 1.407472 1.536569 0.990675 0.869435 0.216195 0.741153 1.604946 1.622464 0.893000 1.010054 1.220187 0.158603 0.433983 0.652742 0.964770 0.861305 1.227522 1.119113 0.696877 0.441818 1.950534 1.070430 0.885491 0.398748 -0.137287 1.765785 1.633913 0.362011 -0.178229 0.222321 0.700078 -0.202630 1.159365 0.256463 1.017480 0.567120 0.866274 1.771608 0.955362 0.795279 0.454099 0.880961 0.386254)
+ 12.575614 #(0.000000 0.705913 -0.189863 1.289812 0.805665 1.299437 0.514901 0.468348 1.202685 1.403387 0.332176 1.259041 1.785692 1.506203 0.060262 0.201724 1.287046 0.143530 1.091484 1.184140 0.705185 1.181985 -0.016499 0.235089 1.775175 1.801425 -0.306108 1.638395 0.380925 0.275806 0.952509 1.328298 0.642464 0.496491 0.471712 1.326864 -0.164320 0.059399 0.135164 0.025628 0.320184 0.276924 0.799138 0.661351 0.284412 1.200080 0.481145 1.216291 0.365285 0.355693 1.057082 1.448275 0.539254 1.427694 0.879806 -0.009441 1.355155 0.331674 0.861766 -0.066983 1.407740 0.183724 1.490485 1.400425 1.195059 1.408070 1.536509 0.991234 0.870664 0.216821 0.739487 1.605608 1.623066 0.891911 1.010727 1.220868 0.158671 0.433687 0.651755 0.964120 0.861318 1.227136 1.119209 0.696872 0.440953 1.950827 1.070095 0.885103 0.398516 -0.136342 1.766979 1.632991 0.362688 -0.178463 0.221974 0.700697 -0.203679 1.158840 0.255408 1.016147 0.565750 0.866296 1.771230 0.955576 0.794958 0.453725 0.880485 0.387061)
)
;;; 109 even --------------------------------------------------------------------------------
#(109 14.988188773557 #(0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0)
14.476561866583 #(0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1)
- 12.702397 #(0.000000 1.019615 -0.013251 0.392161 0.243744 0.198414 0.774756 0.211152 0.475857 1.250638 1.418795 0.820682 1.711483 0.992946 0.245462 0.096356 0.837212 1.746677 0.987780 -0.199736 0.681477 0.470909 0.905084 0.901182 0.942603 1.568671 0.292637 1.873861 0.361175 1.586475 1.206706 0.588179 0.936811 1.379213 1.128478 0.169394 0.742799 0.523171 0.899678 1.811322 1.987052 0.026618 -0.197717 1.218503 1.664293 0.519241 -0.180403 0.775500 -0.098226 1.678321 1.274858 0.341962 1.397766 1.556359 1.330438 0.909952 1.482817 -0.088280 -0.204056 0.825703 1.350396 1.008399 0.317057 0.880040 1.559548 1.739080 0.426329 -0.120571 0.748824 0.695603 1.464864 0.212471 0.962982 0.698426 0.516910 0.209742 0.986557 -0.016939 1.104187 0.922056 1.008238 1.332333 1.267949 1.609342 1.824204 1.149876 -0.152886 0.976309 0.975410 0.026741 0.252616 0.576909 0.203892 -0.143847 1.060349 0.225684 0.278314 0.327271 1.466823 1.144847 1.270037 0.380725 1.122690 -0.119282 0.719912 0.141926 0.035820 0.506608 0.757661)
+ 12.660218 #(0.000000 1.451807 1.259946 0.861466 0.459796 0.085386 1.142398 1.872230 0.650002 1.203106 0.845859 0.285130 0.193680 0.773172 1.533754 0.683295 0.648068 0.025894 0.735549 0.531121 0.950654 1.549443 0.865212 0.970046 0.139794 0.139195 0.296028 0.027900 0.353084 0.353405 1.649523 0.944435 0.928249 1.301666 0.293400 0.882481 0.173725 1.737676 1.824878 1.193543 1.016688 1.580251 1.962575 1.878998 0.842009 1.047261 0.449180 0.277571 1.464860 0.488788 1.380789 0.810563 0.864129 0.400304 -0.032901 1.263424 0.810983 1.214362 1.042091 0.009399 0.766807 0.815284 0.824383 0.081271 1.853565 1.169447 1.843181 1.454523 0.129723 1.535307 1.307738 1.155855 0.461230 1.056886 1.355016 0.899575 1.702211 0.205873 0.400610 0.583062 0.836778 1.490536 -0.045281 0.201022 0.165041 1.216918 0.535869 1.718648 1.543255 1.268230 1.777880 1.589170 -0.139876 1.661725 0.614482 1.723156 0.013818 0.390798 0.359498 0.741329 0.545842 1.880235 0.955230 1.139112 1.870240 0.481825 0.827913 0.234060 0.560058)
)
;;; 110 even --------------------------------------------------------------------------------
@@ -4493,7 +4650,7 @@
14.401108392424 #(0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0)
14.141825477743 #(0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0)
- 12.713840 #(0.000000 1.282786 0.631420 1.159460 1.280356 0.578075 0.794081 1.080143 0.664131 1.308129 1.132198 1.491283 0.625083 0.980602 1.325313 1.798677 1.126695 1.550343 0.094376 -0.316848 0.776103 0.358086 1.166516 1.481930 1.529659 0.152586 0.685641 1.835428 0.904410 1.121415 0.978056 0.412551 0.831978 1.391487 1.291311 0.665617 0.587368 1.643729 0.205057 0.994136 0.363549 1.203540 1.796417 1.991806 0.297998 1.857413 1.614762 0.000721 0.298197 0.345665 1.243572 1.219858 0.066013 1.390198 1.041923 0.122759 0.947261 0.535110 0.602534 1.778591 0.358797 0.640042 0.181493 0.132448 1.770256 0.941915 1.859009 0.050024 0.929796 1.094449 0.560658 -0.058440 1.681987 0.347655 1.901793 1.214862 0.305377 1.549541 0.129435 1.927844 1.437868 -0.146051 0.366631 0.105444 0.397940 1.155379 1.293090 1.371821 -0.053290 0.996716 0.048839 1.612289 1.644718 0.775037 0.369217 0.565175 0.262404 0.217135 0.559967 0.147180 0.978394 1.296903 1.039054 0.219848 1.546197 0.509243 0.153322 0.430750 1.431114 0.233687)
+ 12.623836 #(0.000000 1.366317 1.128494 0.500809 1.095552 1.415552 0.279763 1.330724 1.079399 1.868510 1.929926 0.592126 1.718533 1.048685 0.231720 0.589006 1.271011 0.468697 0.008926 0.704476 0.289036 0.290293 0.362707 1.521100 1.304262 1.574411 0.403502 0.679502 0.912196 0.768451 -0.228414 1.165144 -0.002504 0.192891 -0.008333 1.486868 0.521089 1.841885 0.782814 1.135864 0.781862 1.760412 0.845117 1.561555 1.830193 1.728594 0.742328 1.405522 1.236687 1.358773 1.669091 1.583907 1.669160 1.734839 1.772542 0.737573 1.594004 1.362367 1.553450 1.491666 1.921385 0.654218 1.213782 1.624464 1.591433 0.050218 1.193480 0.750234 0.370099 1.464359 0.516885 0.244885 1.452762 1.381716 1.379144 0.089280 0.979482 0.528695 0.407297 0.227080 1.406188 1.606603 1.113373 0.943713 1.950426 1.566786 1.348013 1.522129 0.269965 1.829776 1.480217 0.736791 0.844511 -0.041620 0.852114 -0.216851 0.489534 0.284771 1.968568 0.355390 1.515971 0.154211 0.941086 1.653785 0.474360 1.653068 1.000893 0.578652 0.974586 1.261473)
)
;;; 111 even --------------------------------------------------------------------------------
@@ -4501,14 +4658,14 @@
14.470418444168 #(0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1)
14.043108609984 #(0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1)
- 12.814637 #(0.000000 1.346791 1.328098 0.846009 1.891209 0.184891 0.373857 1.086241 1.501040 1.533539 0.094958 1.630923 0.590607 1.327010 1.058319 1.652516 0.936427 1.117893 0.626830 1.800720 0.618913 0.439924 0.613186 0.666990 0.344555 0.320609 0.110691 1.106209 1.134429 0.413976 1.402392 1.114302 0.080798 1.114289 0.262742 1.395939 0.995856 0.113395 1.726937 1.644974 0.340810 0.275207 1.777936 -0.006432 0.326336 0.941530 1.238171 0.115998 1.000714 1.356283 1.443693 0.383450 0.646637 1.785989 0.810503 1.455920 1.040293 -0.079932 0.307269 1.968384 0.127101 0.645121 1.983397 1.247704 1.219928 0.430926 0.128545 0.015111 1.739774 1.108393 0.580337 0.332745 0.783218 0.253709 0.260517 0.478857 0.436032 0.258054 1.743962 0.540653 0.187444 0.844792 0.695191 1.771001 0.429138 1.435070 0.046512 0.335240 0.178166 0.649218 1.686964 0.767244 1.025447 0.906983 1.638864 0.922085 0.611615 0.144983 1.629128 1.554188 0.079781 0.749049 1.475744 0.344245 0.696338 0.547965 0.670081 1.237294 1.638665 -0.095226 1.814896)
+ 12.812802 #(0.000000 1.347823 1.327493 0.845640 1.890817 0.184423 0.373859 1.084586 1.500910 1.532916 0.096214 1.632191 0.590216 1.327334 1.057966 1.652877 0.936953 1.119842 0.625621 1.799691 0.619050 0.440782 0.612435 0.666288 0.344970 0.320601 0.110419 1.105089 1.134433 0.413366 1.401909 1.114781 0.079650 1.114075 0.262779 1.395675 0.996008 0.113818 1.726331 1.643950 0.341273 0.275652 1.777723 -0.006890 0.325220 0.940786 1.239837 0.117019 1.000877 1.355496 1.442201 0.383194 0.645238 1.784017 0.810577 1.456858 1.039939 -0.079671 0.307319 1.967281 0.127136 0.644388 1.983314 1.247260 1.221295 0.429911 0.129489 0.014948 1.739758 1.109328 0.580506 0.332884 0.783245 0.253511 0.260773 0.479216 0.436580 0.257032 1.745045 0.540456 0.187000 0.844237 0.696145 1.770380 0.428998 1.436437 0.045814 0.333676 0.177764 0.648983 1.687723 0.765861 1.025768 0.906637 1.639333 0.921212 0.611113 0.145004 1.629641 1.553947 0.080119 0.749058 1.477080 0.344325 0.696119 0.546649 0.670112 1.238428 1.640219 -0.095453 1.814269)
)
;;; 112 even --------------------------------------------------------------------------------
#(112 14.939 #(0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0)
14.53456401825 #(0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1)
- 12.897269 #(0.000000 0.399542 1.139555 1.175041 1.494317 1.371394 -0.016637 0.997272 0.362258 1.180854 0.620361 1.474119 0.757392 1.359852 0.242219 0.701529 0.480058 0.287850 0.199118 -0.173159 0.626490 0.480410 0.098550 -0.110802 0.353109 -0.002104 -0.000761 0.504956 0.788124 0.921408 0.046121 1.296043 0.630222 1.146729 0.910167 0.513772 0.913347 1.334884 1.059240 0.960966 1.094664 0.128707 0.182398 1.473360 1.308963 1.270826 0.762025 -0.522717 1.370783 1.817458 0.404597 0.809748 0.330372 0.321850 1.126945 0.375542 0.213937 1.586173 1.117429 0.827934 1.267220 1.763789 1.384874 1.120995 0.200300 0.574155 0.033567 0.255760 0.250100 -0.163931 1.552464 0.501095 1.202302 0.779282 1.151436 0.897005 1.603844 1.661167 0.886111 1.246383 1.704718 0.794303 0.454581 0.365532 1.479131 1.276244 1.382151 -0.052701 1.062259 -0.007911 0.217701 0.927943 0.646390 1.350633 -0.186671 0.907165 0.726548 1.511804 1.152742 0.031122 0.698278 0.751531 0.056758 1.187833 0.289319 0.619428 1.292172 0.841017 1.366734 1.388115 0.112305 0.418447)
+ 12.816717 #(0.000000 0.056023 0.796820 0.591620 1.407761 1.282014 0.838139 0.772972 1.469635 1.265876 0.127893 1.054941 0.928861 0.984236 0.362321 1.206110 1.105243 -0.347207 -0.251520 1.616883 1.291875 0.425399 0.428841 0.546307 1.923564 1.456001 1.012774 0.418963 0.017962 -0.020241 1.812141 1.299220 0.326916 0.772727 1.197175 0.679375 -0.024208 0.672853 1.136947 1.402616 1.035751 1.918494 0.861517 1.680506 1.475977 1.012016 1.116188 0.905765 -0.185977 1.100761 0.294222 1.518699 1.386957 1.202441 0.204052 -0.141471 1.350438 0.616526 1.725905 0.209822 0.136117 1.557710 0.950555 1.193828 0.700482 0.789319 1.805508 1.694813 -0.006474 0.010927 1.707287 1.545228 0.150258 1.827454 0.004575 0.351227 1.444643 1.652867 1.909374 0.932224 1.720972 0.093238 0.225332 0.558343 0.944623 1.730338 0.960300 1.432445 -0.035678 0.320236 1.176509 1.506111 0.698570 1.441872 1.863132 0.889382 -0.418811 1.799124 1.877754 1.043452 0.538272 0.838463 1.159106 0.931993 0.157215 0.764363 0.063011 1.088653 1.493792 1.493539 1.688525 0.855055)
)
;;; 113 even --------------------------------------------------------------------------------
@@ -4516,7 +4673,7 @@
14.840950350147 #(0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1)
14.699631659332 #(0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0)
- 13.026025 #(0.000000 1.120474 1.192179 0.601689 0.005283 0.085642 1.697179 0.940710 0.991617 1.386160 0.427382 0.778961 0.073326 0.655610 0.276384 0.361136 0.827143 0.798915 1.646158 0.411318 0.551062 1.851204 0.560434 -0.269430 1.563605 0.320823 -0.133385 0.390514 1.127971 -0.231760 1.703861 0.836843 0.245089 1.696104 0.264270 1.246829 0.668441 1.311455 1.029943 0.622445 0.286189 0.066734 1.547245 0.043856 0.520579 1.059879 1.098583 1.062852 0.636229 0.517144 1.295936 0.593607 1.472967 1.731403 1.016241 0.613743 0.071809 0.412552 1.012905 1.995084 0.091021 0.236983 1.735281 1.869424 0.619266 0.644961 0.927418 1.357769 1.190803 0.968654 1.478857 1.052596 0.294980 1.105006 1.653752 1.792358 0.026875 1.384025 0.092174 1.091910 0.899058 0.799525 0.440236 1.273116 1.256239 0.759129 0.213617 0.035064 -0.008419 0.416377 0.851198 1.038909 1.441053 1.269760 0.483010 1.237391 0.305772 1.126517 1.538176 0.707358 0.105032 0.722263 1.685333 0.718632 0.576790 0.530936 0.690950 0.098679 1.447717 0.687401 1.605944 1.528181 0.511197)
+ 12.776963 #(0.000000 0.144921 1.561205 0.676320 1.181102 0.704348 0.511862 1.599077 -0.202476 1.119437 1.638282 1.428152 1.002471 1.657285 1.314684 1.783967 0.353410 -0.017131 0.983021 0.732943 0.019783 -0.116011 0.521112 1.772205 1.255345 1.478112 0.443331 0.848766 1.557346 0.240757 0.367223 0.708948 0.596401 1.046314 1.409987 0.746579 0.271064 1.714960 1.382022 1.030703 0.216190 -0.076530 -0.111344 0.860675 0.386736 0.532895 0.451278 0.627761 1.233648 0.019465 1.831831 0.505988 1.747227 0.175513 0.449029 1.405769 1.668457 1.416702 1.341756 0.059844 0.107319 1.564071 0.721627 0.904570 0.098007 1.179248 1.866216 1.395309 0.523065 1.355449 0.511707 0.525611 1.388720 0.096360 1.176396 0.650159 0.653266 0.206594 0.576887 0.145408 0.351491 -0.002384 0.456450 0.660805 0.621857 1.148356 0.414253 0.350720 0.945815 0.106680 1.193207 1.435982 0.089722 0.563084 0.822759 1.250099 0.310291 1.053338 1.774259 1.914313 0.880359 0.734053 1.411179 1.295606 0.254315 0.959122 0.558098 0.012641 1.851239 0.084875 1.828076 1.583186 0.781253)
)
;;; 114 even --------------------------------------------------------------------------------
@@ -4524,21 +4681,21 @@
14.794 #(0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1)
14.492 #(0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1)
- 13.054210 #(0.000000 0.707574 1.664443 0.760623 1.088960 0.243952 1.222835 0.714860 -0.122000 0.981796 1.881844 0.303707 -0.191162 1.866428 1.337574 0.035425 -0.126609 1.113727 1.230948 -0.107225 1.699043 1.213534 1.647603 0.253741 1.867899 1.224133 1.669835 1.858582 1.654272 1.630659 1.198097 0.854848 1.947748 0.719923 0.413729 1.178778 1.477675 1.809728 1.312584 1.582134 1.270191 -0.078443 1.323877 1.611545 0.893825 1.212937 0.665671 1.856809 0.770071 0.989130 0.033769 1.626109 1.565900 0.659427 0.561030 -0.016874 1.607013 1.704827 1.431392 0.075332 0.724510 -0.068198 0.089987 0.602442 0.911452 1.077525 0.558171 1.205512 -0.171209 0.855937 0.636223 0.779944 0.803450 0.991224 -0.028913 0.348732 -0.076927 1.083374 0.851536 1.347800 1.518295 1.745205 -0.027671 0.649465 0.170229 0.179434 1.237086 0.063631 1.177683 0.975559 1.199869 1.326416 -0.287551 1.098956 0.051860 -0.240376 1.149285 0.160424 0.929967 1.518445 0.443101 0.181200 -0.118952 0.341436 0.308223 1.063562 1.098385 0.355123 0.300308 0.554801 -0.113529 1.768326 0.196918 1.140703)
+ 12.978682 #(0.000000 0.131975 0.769954 0.608946 -0.113318 0.769744 0.726968 0.121462 1.520547 1.234432 0.867520 1.941486 0.109225 1.774659 0.589784 -0.008473 1.621972 1.280892 0.257893 0.597058 1.962248 0.319557 0.383620 1.909741 0.102367 0.078636 0.032177 1.034453 0.670535 0.448302 1.251684 1.406994 0.623688 1.536773 1.592248 1.271677 1.463153 1.505307 1.762827 1.353736 1.267740 0.649390 0.600846 1.443145 1.765013 0.074135 1.845580 0.792960 0.941740 0.704920 1.049278 0.983518 0.368560 1.749326 0.857040 0.110315 1.038800 0.251504 -0.208810 0.106186 0.451726 1.464740 0.637459 1.199563 0.159869 1.412223 0.317110 0.885114 1.106583 0.260619 0.362874 1.097398 0.949586 0.973351 1.768745 -0.046061 0.279342 0.494383 0.161687 0.385813 1.746246 1.010912 0.963056 1.413638 0.388957 0.789902 0.732289 1.231747 0.573665 0.679366 1.322494 0.197171 1.157059 0.347734 0.862348 0.970978 1.180287 0.296588 1.115067 1.100244 1.185630 0.844822 0.202126 0.375495 1.722757 0.606029 1.394111 0.694675 1.662865 0.786123 1.750859 1.271864 1.182864 0.010113)
)
;;; 115 even --------------------------------------------------------------------------------
#(115 14.597 #(0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1)
14.568 #(0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1)
- 13.053317 #(0.000000 0.818693 0.962335 0.560548 0.966650 0.595368 0.450233 1.137218 0.709544 0.932211 0.540775 0.123521 1.765194 0.141965 1.594097 0.376379 0.497781 -0.159105 1.803753 1.812401 1.504821 1.799950 1.027568 0.911408 0.613533 0.151443 0.927708 1.299586 0.628390 -0.151154 1.322276 1.272131 0.793990 1.509050 0.451117 0.744526 1.474894 0.479181 1.148879 0.710462 1.447318 0.367261 0.056591 0.884017 0.359411 1.449172 -0.264770 1.618144 0.638816 1.490062 -0.119049 -0.023394 0.601240 1.295347 0.019657 -0.067014 0.500968 1.491699 0.372381 1.011924 0.748091 1.175283 0.709360 0.821068 0.536801 0.141997 1.517600 1.352066 0.422370 0.686701 1.455765 0.315997 0.393415 1.311388 0.348232 1.930660 1.309363 0.782484 0.768188 -0.243594 0.884909 0.882681 1.846768 0.481489 1.175717 1.812156 1.338841 0.023788 1.829403 1.821855 0.071993 0.842779 0.896493 1.806561 -0.061927 0.216820 0.379567 1.589418 0.926431 1.835139 1.837374 -0.138176 -0.123488 1.062869 0.304279 0.265033 0.399239 0.439363 1.091209 1.004760 1.900052 1.456359 -0.177269 0.047388 1.043961)
+ 13.045143 #(0.000000 0.818112 0.963082 0.560386 0.964859 0.595628 0.448476 1.135055 0.709886 0.931602 0.540315 0.125722 1.765607 0.143139 1.592983 0.375635 0.497981 -0.157655 1.803324 1.813461 1.504293 1.801038 1.029827 0.910699 0.614824 0.150969 0.927747 1.299476 0.627597 -0.152048 1.321040 1.269926 0.793374 1.509081 0.451354 0.746597 1.474625 0.479921 1.147684 0.711199 1.446423 0.366788 0.055522 0.883638 0.358049 1.449376 -0.266474 1.618692 0.639073 1.489698 -0.119052 -0.024228 0.601696 1.295293 0.020074 -0.067282 0.499357 1.492906 0.372681 1.013093 0.746426 1.174724 0.708987 0.822775 0.536415 0.141724 1.515428 1.352475 0.422367 0.687934 1.457680 0.316912 0.393102 1.309378 0.348308 1.932361 1.309293 0.782701 0.767502 -0.243424 0.886224 0.882686 1.847445 0.480372 1.175548 1.812339 1.337495 0.023046 1.829139 1.822020 0.072280 0.841809 0.895801 1.806166 -0.063353 0.217613 0.378103 1.589077 0.924147 1.833081 1.836190 -0.139499 -0.124712 1.062184 0.303995 0.267167 0.400549 0.440225 1.092070 1.002366 1.901586 1.456000 -0.177250 0.048003 1.044548)
)
;;; 116 even --------------------------------------------------------------------------------
#(116 15.190026349904 #(0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1)
15.016979484255 #(0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1)
- 13.228277 #(0.000000 0.099788 0.486509 0.796567 1.019567 0.120957 0.708111 1.183709 1.012264 1.016351 0.577977 0.595581 1.032384 0.426861 1.805361 0.175153 1.349328 1.672846 0.631644 1.723275 0.857489 1.851425 1.786606 1.278207 1.186084 1.297280 0.548168 1.236781 0.196697 0.104225 1.638570 1.283724 0.701020 0.789939 1.509917 -0.173721 0.490680 0.301617 -0.072920 0.147657 0.868326 -0.012292 0.576490 1.494349 0.755549 0.954848 -1.834781 1.283587 0.747050 1.349550 0.250426 1.037586 1.020629 1.147580 0.756552 1.770643 0.947327 1.751094 1.788882 0.500158 1.298484 0.904550 0.290727 0.737809 0.357994 0.214652 1.819158 0.807713 0.242668 1.418327 0.855196 -0.033361 1.432823 0.419056 0.645816 1.482564 1.333548 1.530339 1.677925 0.977632 0.475244 1.413700 1.130821 0.847054 0.376443 0.114006 0.124826 1.615507 1.944419 0.301162 0.448793 1.327990 1.725888 1.244561 0.027663 0.107666 0.830679 0.170986 0.257459 0.101162 1.742243 1.843933 0.233105 0.429535 0.354298 0.385357 1.301941 1.350614 1.655688 1.359944 1.515953 1.728832 1.610496 0.036456 0.134517 0.529920)
+ 13.073015 #(0.000000 1.539931 1.546118 0.068018 0.631846 1.519892 1.369364 1.904117 0.378186 1.767460 0.467990 0.629306 1.773192 1.195646 0.340549 1.557411 1.294491 0.497496 0.976454 1.630010 1.238236 1.834868 1.083935 -0.143259 0.035664 1.499716 1.572094 1.169578 -0.035130 1.975756 0.968883 1.997266 1.048206 0.737713 1.026899 1.536443 1.895489 0.298817 1.208198 1.123246 0.796807 0.480289 0.846816 -0.076603 0.623143 0.276497 1.373886 1.104129 1.233668 1.668012 0.650267 0.313185 1.412331 0.175362 -0.066131 0.096026 0.232168 0.738520 1.672487 0.781233 1.047197 1.365895 0.699290 1.800821 1.819052 1.598055 -0.100015 0.358545 0.530644 0.073287 0.976247 1.260310 0.290731 -0.227740 0.587142 0.891617 0.141894 -0.087822 1.428322 1.253683 0.448360 1.627315 1.457962 0.363838 1.150530 1.716748 1.575920 1.745866 1.950921 0.360500 0.598248 0.405441 1.718264 0.152576 1.590572 0.581345 -0.054270 1.856076 0.372284 0.096004 0.480707 0.046410 1.557142 1.531872 1.309610 0.010768 0.635636 1.528529 0.888128 0.950129 1.074597 0.700114 0.516656 1.237222 0.257042 1.214819)
)
;;; 117 even --------------------------------------------------------------------------------
@@ -4546,7 +4703,7 @@
15.070538411179 #(0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0)
14.875072951405 #(0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0)
- 13.248348 #(0.000000 1.304082 1.805391 1.347419 0.526868 1.217573 1.240128 1.301593 1.225295 0.805249 0.454351 1.070154 1.934498 0.628479 1.153518 0.823189 1.691519 -0.137938 0.144876 1.194771 0.738376 1.548869 0.712611 1.115218 1.427119 0.681376 1.394489 1.124213 1.421581 0.434116 0.822329 0.641389 0.428369 1.334126 1.036625 0.209650 0.703094 0.958841 0.040978 1.865848 1.756691 1.276629 0.327503 1.532872 1.314015 1.732540 1.624767 0.933287 0.890328 1.398450 -0.029760 1.369526 1.696952 0.009755 0.658115 0.712216 0.811990 0.505080 1.412780 1.589820 1.460263 1.197643 1.024810 0.956125 0.535455 0.888655 0.280469 0.619324 0.506967 1.946045 0.550627 1.091944 0.975067 0.383631 1.417010 1.393290 1.502115 1.286206 1.573251 0.014629 1.613767 0.408235 0.188341 1.896303 1.098460 0.847237 1.902767 0.175764 1.845154 1.476470 0.915454 0.019299 0.928791 1.152543 0.409262 1.333726 0.966314 1.785686 0.101689 1.662925 0.311377 1.377877 1.848571 0.236444 0.932245 -0.002761 -0.050257 1.540145 0.474079 0.014696 0.384494 1.940440 0.879687 0.388137 1.130587 1.821332 0.975385)
+ 12.993791 #(0.000000 1.857244 0.600672 0.598193 0.603314 1.729749 1.381371 1.479901 0.709634 1.052055 0.469689 0.281811 1.474690 0.737745 1.765800 1.553845 1.401463 1.768462 0.037042 1.321940 0.536671 0.813225 -0.134015 1.484786 0.101734 0.493454 1.194782 0.438475 0.012563 0.639677 0.050503 1.066931 1.576429 1.370970 0.589733 0.707160 0.186321 0.936164 0.775032 0.460623 0.618548 1.903774 0.799839 1.204170 1.624415 1.356474 1.457074 -0.148180 1.491198 0.604121 0.427117 0.678460 0.029201 1.639051 1.731917 -0.021241 0.030310 0.174122 0.682372 0.090774 1.028408 0.202816 0.110174 0.744012 1.445233 1.803283 1.253174 0.291830 1.027631 0.549313 0.187057 0.343626 -0.062496 0.107146 1.826985 0.308080 0.038680 0.173066 1.059485 0.281844 1.900757 1.321515 0.138323 1.399864 0.832251 1.822001 0.652684 1.346458 1.457344 1.002144 1.535180 0.609113 0.549323 0.796362 0.863988 1.037182 1.324229 0.306490 0.481211 1.299097 1.743940 0.232008 0.401297 0.908410 0.019134 0.572614 0.977276 0.758947 0.081057 1.617380 1.375475 0.795251 1.035003 0.260127 1.132033 1.821226 0.420800)
)
;;; 118 even --------------------------------------------------------------------------------
@@ -4554,14 +4711,14 @@
14.841081077183 #(0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1)
14.774983755641 #(0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1)
- 13.180073 #(0.000000 1.418481 1.552064 0.152254 0.490293 0.987281 0.189060 0.069016 0.203203 1.499873 1.914627 1.523187 0.491044 0.582244 0.832712 0.885131 1.917391 1.184954 1.197338 0.075141 0.971457 0.422050 0.577000 0.372351 1.490930 0.063657 0.793082 0.079468 0.106562 0.191872 1.228379 0.124049 -0.186623 0.860084 0.362762 -0.084262 0.912306 0.768439 1.974351 1.474292 0.106351 0.986120 1.278458 0.819808 0.488466 0.092290 0.066290 1.453920 1.562630 -0.050873 0.589089 1.570825 -0.162650 -0.003934 1.266036 1.510305 1.165006 1.132499 1.293861 1.368986 0.222083 0.638089 1.707086 0.781549 0.885431 1.664193 1.530764 0.778888 1.648612 0.688458 1.539060 1.299039 0.938354 1.631977 0.106180 0.158863 1.647600 0.769260 1.916154 0.237229 1.389367 0.606158 1.648933 1.187505 1.239279 0.560025 1.645117 1.180615 1.364201 1.449091 0.052818 1.702096 0.696045 0.816258 0.460170 0.644261 1.417712 0.627516 1.151969 0.045629 -0.030249 1.706590 1.389745 1.561921 0.014732 0.250606 0.621110 0.699394 1.823514 -0.001624 -0.105883 0.096920 0.393463 -0.117401 0.306738 1.522840 0.914813 0.742243)
+ 13.175323 #(0.000000 1.417710 1.551406 0.153828 0.489738 0.986851 0.189614 0.068644 0.203993 1.498119 1.915883 1.523456 0.490531 0.583030 0.831442 0.885118 1.917420 1.184515 1.196049 0.074148 0.971814 0.422403 0.576325 0.371815 1.491724 0.064755 0.793689 0.077907 0.106063 0.191560 1.227365 0.123790 -0.185798 0.859784 0.362861 -0.083959 0.913236 0.767370 1.975676 1.475368 0.105422 0.985731 1.277851 0.818089 0.487357 0.091466 0.066756 1.454835 1.562748 -0.052411 0.589134 1.571185 -0.161613 -0.003722 1.266131 1.510305 1.165113 1.133254 1.292617 1.369676 0.221186 0.637838 1.707091 0.781528 0.885589 1.663037 1.529435 0.779831 1.649686 0.688617 1.537202 1.299553 0.937644 1.631404 0.106354 0.158038 1.646459 0.769968 1.916306 0.237123 1.390210 0.605679 1.648120 1.185688 1.238740 0.559314 1.645546 1.179755 1.364604 1.449046 0.053781 1.701461 0.695697 0.815918 0.460833 0.643876 1.418931 0.627864 1.151357 0.045708 -0.030109 1.706765 1.389628 1.562059 0.013861 0.250204 0.620883 0.697898 1.822762 -0.001605 -0.105874 0.096508 0.392443 -0.117540 0.305893 1.522837 0.914891 0.743187)
)
;;; 119 even --------------------------------------------------------------------------------
#(119 15.519069915733 #(0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1)
14.971 #(0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1)
- 13.417462 #(0.000000 1.544909 0.411149 1.697418 0.107360 0.932258 1.767913 -0.244983 -0.060721 0.643059 1.548686 0.997113 1.728464 0.355623 0.076815 0.753009 1.097245 1.688400 1.038128 1.345069 1.206869 0.577469 0.327288 0.535213 0.348410 -0.259436 0.203709 0.292709 1.686722 0.864729 0.632770 0.805115 1.278194 1.859875 1.073953 1.716589 0.802312 0.788598 1.377922 1.166093 0.829049 0.297719 1.397585 1.069906 1.324939 0.796749 0.787626 0.126157 0.832153 0.337911 0.692063 0.367475 0.105799 1.422736 1.298288 -0.148794 0.116645 1.456712 1.472706 1.084096 0.499422 1.280780 1.283673 0.472690 0.211746 1.496752 0.980830 0.163846 0.249039 1.416075 1.448157 0.653118 1.641272 0.625146 1.407979 0.942820 1.701386 0.674822 1.047210 1.355328 0.496393 0.938550 0.198524 0.580513 1.542608 1.492657 1.567032 1.429481 0.587226 0.306332 -0.134153 0.008203 -0.058487 1.293180 1.072859 0.275458 0.164637 0.728568 1.569632 0.915942 1.089240 0.929179 1.898368 1.592010 0.129315 1.733715 0.414254 0.668818 1.031713 1.088607 1.521338 0.692017 1.820573 0.741548 0.938366 1.562431 0.076635 0.983188 0.997095)
+ 13.307452 #(0.000000 1.496424 1.499603 0.909790 0.451124 0.725265 -0.005345 0.017335 0.081963 0.966319 1.468038 1.312226 1.862333 0.897724 -0.025157 -0.020996 -0.151927 0.325859 0.839538 -0.014343 1.128904 1.364737 1.700222 0.787568 0.621036 1.833049 0.718036 0.793822 0.265045 1.685735 0.993711 0.504788 1.225077 0.318081 0.016549 -0.126707 0.048819 0.566368 0.500697 1.380436 1.668009 0.026720 0.482077 0.398216 1.071911 1.611752 0.960632 1.140316 0.381885 0.593955 1.034285 1.094512 1.888312 1.380843 0.616366 1.548761 0.297643 1.040220 0.279415 -0.060585 -0.032805 1.092185 0.528741 1.063360 0.912704 0.549398 0.800125 1.275543 1.730212 0.973065 0.474356 0.426116 0.571927 1.353335 0.414578 1.633241 1.549171 -0.072403 0.219803 1.435148 0.346574 0.819946 1.036487 0.709586 1.891908 0.312552 0.917182 0.470097 0.179462 1.494354 0.254943 0.252985 0.376386 0.176375 1.076249 0.845192 0.569153 1.252603 0.824939 0.759995 1.851115 0.230140 1.551064 1.366581 1.380766 1.810585 1.151268 0.099809 1.655248 0.991012 1.091287 1.244964 0.473818 0.800121 1.591368 1.514304 1.710628 1.278705 0.349884)
)
;;; 120 even --------------------------------------------------------------------------------
@@ -4569,7 +4726,7 @@
15.350 #(0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0)
15.153992567168 #(0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0)
- 13.482759 #(0.000000 0.569866 0.030526 1.233959 0.297240 -0.269670 0.183291 1.114863 0.880862 0.666733 0.312902 1.693795 0.157471 1.792386 1.325871 1.283049 0.822572 1.166466 1.101853 0.288521 1.896662 0.645535 0.329336 0.663820 0.766167 0.556168 1.102365 0.238678 0.267088 1.886788 1.288173 1.289302 -0.205671 0.007002 -0.069500 0.220126 1.592012 1.416623 1.457593 0.120412 0.591882 0.660275 0.448406 1.057921 0.893327 0.010035 1.227276 1.247652 -0.214472 1.394080 -0.021629 1.620901 0.389933 0.862959 1.267280 0.155273 0.788263 0.928732 0.855362 -0.087537 1.525437 0.090322 0.300217 1.228118 0.171876 0.286240 0.082862 1.612543 1.050870 0.116673 1.588317 0.326508 1.442171 1.725015 0.484616 0.286683 0.375145 0.562977 1.945789 0.420573 1.081042 1.434500 1.021645 0.385225 1.284207 0.735318 0.746782 0.344903 1.049830 0.844254 0.695602 1.384751 1.864428 0.494380 0.779865 1.165917 0.774268 1.275938 0.585756 1.730686 0.188334 0.598964 1.127896 0.329218 0.626881 0.093141 1.628864 1.728769 1.147071 0.240144 0.742679 -0.069321 0.965259 0.634481 0.802806 1.093326 0.465615 0.055016 0.310587 0.994229)
+ 13.124158 #(0.000000 0.547953 0.046683 1.223808 0.287087 -0.275093 0.168020 1.119600 0.913398 0.673233 0.317519 1.677375 0.155002 1.827251 1.328636 1.289517 0.825556 1.170002 1.118040 0.315906 1.921854 0.628112 0.340287 0.647367 0.782948 0.542971 1.109080 0.220169 0.246461 1.886641 1.257076 1.318011 -0.232385 0.012095 -0.081932 0.196776 1.615833 1.390286 1.464601 0.092305 0.586606 0.639259 0.449609 1.071232 0.863690 -0.003934 1.256400 1.265688 -0.237284 1.414773 -0.038640 1.610934 0.361979 0.854476 1.304803 0.161381 0.788161 0.959907 0.834637 -0.098392 1.543953 0.106258 0.296301 1.199521 0.182585 0.288718 0.056573 1.642208 1.040521 0.125013 1.596063 0.315585 1.416039 1.726354 0.476434 0.270144 0.392591 0.593221 1.947982 0.393511 1.077068 1.424545 1.017453 0.393890 1.280350 0.741421 0.760590 0.356389 1.046316 0.858776 0.683258 1.395090 1.871044 0.515412 0.785729 1.133116 0.771994 1.263638 0.628176 1.697075 0.195336 0.574758 1.134866 0.332290 0.639021 0.107243 1.636674 1.717494 1.148656 0.257161 0.716444 -0.068908 0.948318 0.630187 0.802813 1.095008 0.455545 0.009691 0.332455 0.996102)
)
;;; 121 even --------------------------------------------------------------------------------
@@ -4577,9 +4734,7 @@
15.168510014453 #(0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1)
14.652157793709 #(0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1)
- 13.672299 #(0.000000 0.018413 1.466080 0.941272 0.159686 1.346781 0.265869 0.570560 1.208218 -0.121445 0.298416 0.535359 0.735258 1.483194 0.572466 0.647155 1.117314 -0.570732 0.684745 1.781794 1.655325 1.146321 1.382452 0.261776 1.666014 0.801445 1.163964 0.440353 0.186188 0.391004 1.482939 0.977906 0.743351 1.236379 1.296070 0.856224 0.923078 0.681405 1.190266 0.365955 0.541069 0.097042 1.460325 1.838313 1.327348 0.370691 0.829203 0.420847 0.367728 0.213731 -0.079287 0.799799 0.949203 1.174310 0.871049 0.348104 0.871073 0.961214 1.116739 1.408072 -0.141278 1.555824 0.511915 1.064494 1.376040 1.609787 1.493910 1.148787 1.173446 1.111846 1.024447 1.035619 1.438072 1.693020 0.677745 0.090703 0.145866 0.553184 1.721007 0.528787 0.553631 0.092635 1.194269 1.799311 1.343515 0.270167 1.439092 1.171964 0.358761 1.040462 0.559532 0.997994 1.614102 1.227219 0.239378 1.610220 0.218025 0.540458 0.249387 0.449314 1.002900 1.202801 1.873218 0.512293 0.372479 1.643080 0.714700 1.564818 0.248967 0.480976 0.117269 -0.146287 0.661850 1.260952 0.659759 0.602681 1.598466 0.965847 0.202643 0.457547 1.630375)
-
- 13.571488278185 #(0.0 0.045712809917355 1.7370286198347 1.1979704297521 0.87081123966942 0.17171104958678 0.99849485950413 1.6916686694215 0.75008947933884 0.8122202892562 0.34679009917355 1.2799239090909 0.90677471900826 0.38739652892562 1.967346338843 0.98430714876033 1.2145739586777 0.36787476859504 0.9025605785124 1.4549143884298 0.34943919834711 1.0804780082645 1.4376998181818 0.91143562809917 0.94688643801653 1.5546022479339 0.58830805785124 1.2917258677686 1.571367677686 0.91467148760331 1.1663982975207 1.989164107438 0.47266491735537 1.0579757272727 0.78507453719008 1.1606333471074 0.14447815702479 0.88581096694215 1.8444867768595 0.38889658677686 1.9636153966942 1.6638932066116 1.1808030165289 1.9873068264463 1.7686336363636 0.53423644628099 1.9504972561983 1.9137270661157 1.6081028760331 1.5353106859504 0.83680549586777 0.080082305785124 0.48502611570248 0.39261192561983 0.58100473553719 0.078443545454546 0.9328973553719 1.8793501652893 1.5282049752066 1.994426785124 1.3899455950413 0.98138840495868 1.095242214876 0.94369102479339 1.9091898347107 1.0761466446281 1.3503714545455 1.9552592644628 1.5056080743802 1.0508298842975 0.27630069421488 0.33757750413223 0.48607731404959 1.6336661239669 0.3624499338843 1.0664167438017 1.310191553719 1.4188943636364 0.41473717355372 1.6128219834711 1.0839787933884 1.8833746033058 1.3597184132231 1.2369402231405 1.2301650330579 1.3946008429752 1.3704926528926 1.9674694628099 0.57470927272727 1.4897750826446 0.65810989256198 1.7443117024793 0.92609951239669 0.95355632231405 1.8957671322314 1.3627229421488 1.6707007520661 1.6404955619835 0.61150337190083 0.45099918181818 0.72227299173554 0.27266980165289 1.5417036115702 0.4925034214876 0.087607231404959 0.94092204132231 1.4650268512397 1.567409661157 0.88518147107438 0.98274928099174 1.2024010909091 1.7036459008264 0.084495710743802 0.020826520661156 1.1274553305785 0.64549414049587 1.5296969504132 1.5157157603306 1.3673765702479 1.9370133801653 1.2598291900826)
+ 13.103152 #(0.000000 0.029736 1.741460 1.209924 0.853299 0.187340 1.000862 1.677247 0.756789 0.797190 0.371416 1.294182 0.896462 0.403396 1.996483 0.977173 1.219024 0.395887 0.895145 1.431085 0.325100 1.105736 1.429317 0.920732 0.930927 1.553815 0.602614 1.279600 1.544790 0.907478 1.167325 1.994833 0.472678 1.040885 0.771181 1.155147 0.134932 0.872221 1.845922 0.371256 1.967838 1.662082 1.185358 1.981547 1.783586 0.528525 1.942336 1.921715 1.586317 1.521927 0.825483 0.103576 0.485372 0.391082 0.587483 0.101771 0.932761 1.880563 1.536603 1.973973 1.373997 0.978788 1.086150 0.956165 1.891444 1.102826 1.351603 1.937551 1.508084 1.056609 0.280021 0.338827 0.460887 1.624541 0.351687 1.089700 1.294475 1.424574 0.421347 1.615706 1.076660 1.876917 1.371922 1.238960 1.234059 1.389485 1.373193 1.982381 0.549083 1.476057 0.655216 1.745803 0.921346 0.980054 1.884876 1.390068 1.652340 1.654284 0.613291 0.431961 0.714080 0.260461 1.547477 0.468591 0.113203 0.941233 1.457943 1.575422 0.890004 0.997056 1.198915 1.721240 0.059618 0.014224 1.127630 0.633323 1.519531 1.514925 1.391740 1.921804 1.267315)
)
;;; 122 even --------------------------------------------------------------------------------
@@ -4587,7 +4742,7 @@
15.305 #(0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1)
15.057187309653 #(0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 1)
- 13.675894 #(0.000000 0.570077 1.097858 1.319800 0.718007 0.181079 1.337042 1.503585 1.651288 1.382335 0.324327 0.121190 0.743026 0.132544 1.757257 0.688885 1.219563 0.635500 0.920514 0.254733 1.632054 0.382962 0.140788 1.629241 0.506947 0.261304 1.404471 1.300207 0.473120 1.147351 -0.126826 1.682005 0.229213 -0.223431 1.252084 1.734084 0.890917 0.898278 0.831131 1.597884 0.863988 1.134412 0.437072 1.446360 1.826074 0.173987 0.021578 1.620494 1.164877 1.768787 -0.008129 1.233145 0.120687 1.828407 0.873302 1.361780 0.890907 1.461319 1.338807 0.703561 -0.092542 -0.230996 1.259077 1.822423 0.214554 0.828812 1.487761 1.466951 0.651123 0.529620 0.470516 0.173262 1.192493 0.844960 0.966697 1.409309 0.040614 0.954967 0.560103 0.607916 1.029316 0.354997 0.460208 0.330268 0.754977 0.666086 0.923955 0.036915 1.079430 0.508788 1.536790 0.825386 0.725299 1.124543 0.624732 1.074221 -0.007580 1.739767 0.118402 1.072578 1.629499 1.175863 1.551829 0.928112 0.956332 -0.130650 -0.100812 0.788353 -0.013056 0.634192 0.910144 0.516987 0.729499 0.372376 0.999492 1.662068 0.704253 0.719203 1.682147 1.142438 1.083648 1.420475)
+ 13.452919 #(0.000000 0.289408 0.605170 0.312253 0.027275 1.054736 0.421411 -0.111818 1.102083 0.042961 0.233263 1.347722 0.877522 0.170643 1.788993 1.253348 1.686868 0.603984 1.771509 1.022156 1.545908 0.575735 0.722954 0.851797 -0.011977 0.208426 1.468928 0.771409 0.536023 1.176112 0.398312 0.776671 1.285031 0.682709 0.054546 1.354019 1.804755 -0.042278 0.404458 0.730075 1.225156 1.264985 1.315948 0.409637 0.444562 0.179620 0.790162 1.879834 1.559112 1.454717 0.441886 0.335698 1.028403 1.397169 0.144249 0.591925 0.332993 1.640973 0.579611 0.402800 1.205674 1.214354 0.678981 -0.021289 -0.119261 1.819404 0.671380 0.663993 0.273752 0.276981 1.141117 0.161764 0.340782 1.802451 1.017709 -0.315475 0.580488 0.016302 1.143367 0.196741 1.336589 0.344578 0.537901 1.128036 0.921223 1.361566 0.214141 1.574000 1.666745 1.258249 1.449843 0.656873 1.257668 1.230650 0.435490 1.694108 0.182875 0.611440 0.925675 -0.004600 0.397361 1.679190 1.284995 1.192360 -0.398376 0.138794 1.671426 1.535985 1.560782 1.179257 0.928031 -0.033935 0.176794 0.451560 0.273917 1.841382 0.515561 1.528822 0.372913 0.639368 0.992686 0.144845)
)
;;; 123 even --------------------------------------------------------------------------------
@@ -4596,7 +4751,7 @@
15.332496766406 #(0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0)
15.156582832336 #(0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0)
- 13.652063 #(0.000000 0.988734 0.841934 0.713622 1.090364 0.516681 0.389358 1.674735 1.818477 0.993353 1.232402 0.095008 -0.000946 -0.213052 -0.174574 1.105604 0.615489 0.474867 0.655997 0.489170 1.379196 1.067537 1.000102 1.109488 0.819656 1.070016 1.826595 0.624446 1.463185 0.645019 0.585791 0.624424 0.009216 1.481855 0.800903 0.016750 1.691484 1.598584 0.719465 1.301562 0.724308 1.161433 1.234946 0.597020 0.082620 -0.015693 1.353522 0.319907 0.223471 1.379165 0.904849 1.771841 0.005143 0.017812 0.441806 0.283063 1.467560 -0.033016 0.676271 1.585673 1.343769 1.705800 0.308748 0.204574 0.926308 0.553893 -0.237059 0.596632 1.123088 0.344012 1.113671 1.883569 -0.056470 0.057205 0.358800 1.068479 0.291993 1.482184 1.125638 -0.155060 0.694551 0.364670 0.212550 -0.040361 1.613128 1.078664 0.051573 -0.083453 0.522502 1.428204 0.721093 -0.037922 0.741774 1.198761 1.760135 0.436118 0.713180 1.108586 1.624802 1.770995 1.603692 1.571161 1.942409 1.726042 1.620797 0.677203 -0.182944 1.341903 0.336527 1.193261 1.654513 0.496140 0.143567 0.013366 0.236921 1.951576 1.868976 0.226173 0.675128 0.909351 0.906607 1.694948 1.020058)
+ 13.569543 #(0.000000 0.018661 1.806656 0.620205 1.670760 0.987131 0.867463 -0.052138 1.566954 1.697642 0.310280 0.973212 0.897203 1.327427 -0.047421 1.016788 1.272445 0.927523 0.410758 1.076157 1.124221 1.682171 1.559533 0.573212 1.718873 0.545170 0.480505 0.892112 0.159181 1.578708 0.802237 1.629756 0.683727 0.038451 1.674790 1.715026 1.234636 1.317475 1.030931 1.410619 1.460340 0.675234 0.974604 1.015956 1.351739 1.858861 -0.045167 1.328491 0.450364 0.758366 0.611662 0.468439 0.264889 0.156844 0.785644 0.172019 0.921909 -0.072127 0.086601 0.782781 0.304007 0.991987 0.899040 0.373769 0.920655 0.615632 0.777844 1.557293 0.546245 0.155758 1.645931 1.021596 0.575255 0.434563 0.196965 1.186024 0.407550 0.969406 0.309011 1.901112 0.291414 1.177653 0.265280 1.549842 0.836372 1.053241 1.985014 0.283569 1.267125 1.569428 0.516726 1.471020 0.137246 0.559191 0.335900 -0.076704 0.818358 0.868227 -0.001532 1.496465 1.398800 0.998983 1.561768 1.161876 0.789513 0.744871 0.803860 0.131167 0.394405 0.562512 1.578284 0.959831 0.402533 0.680772 0.858222 0.791811 1.382551 1.643272 1.209728 1.112779 0.847445 1.645563 0.341156)
)
;;; 124 even --------------------------------------------------------------------------------
@@ -4604,9 +4759,7 @@
15.399996153183 #(0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0)
15.192802705519 #(0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0)
- 13.733966 #(0.000000 0.856616 1.032564 0.308241 1.520360 1.501309 0.149748 1.038015 0.022553 0.739044 0.890887 0.841598 0.677379 0.925729 1.467731 0.595021 0.359715 1.325112 0.719469 1.427393 1.133020 1.293948 0.559180 1.097124 1.249025 1.223347 1.682226 0.323861 1.673379 1.666768 1.081267 1.652785 1.338898 0.867711 1.114426 0.279304 1.219491 -0.037302 0.191841 0.424582 1.202820 1.106941 0.692597 1.495190 1.003729 1.007384 0.800454 1.901440 0.468218 1.723137 1.908554 0.661716 0.168228 0.336826 1.251638 1.264649 0.383985 0.552578 -0.099011 1.082117 1.848514 -0.152203 -0.287501 0.937831 0.270526 0.256312 0.246692 0.638271 1.598952 -0.067614 0.487427 1.223646 1.019850 0.101203 1.139222 0.615948 0.855187 1.546999 -0.010892 1.205313 1.574067 1.139022 1.687728 1.384591 0.076476 0.315105 0.407597 1.405280 1.053735 1.554787 0.812480 0.730748 0.473715 1.776237 1.752787 1.737422 1.203844 1.554100 0.524481 0.219817 1.834995 1.286431 0.115986 0.989875 0.828926 0.108651 0.967529 0.997522 0.241723 0.230349 0.709069 0.407115 0.086052 0.934868 1.683517 1.685356 0.171638 1.558716 1.184336 1.505057 1.263815 1.486585 1.919101 1.370979)
-
- 13.53773809984 #(0.0 0.56281502016129 1.1982220403226 0.050161060483871 1.0595260806452 0.40198410080645 1.2668341209677 1.771542141129 1.9656691612903 1.6632961814516 1.4956332016129 1.1523442217742 0.58793024193549 1.2886392620968 0.039629282258066 1.5032493024194 0.83174332258064 0.55132134274193 1.3147663629032 1.8907283830645 1.0066334032258 1.9321444233871 0.39410344354839 1.5711034637097 0.54406148387097 0.19711450403226 0.78913352419355 0.14587454435484 0.79005056451614 1.1684245846774 0.61661060483871 1.256190625 1.9756526451613 0.11242966532258 0.040194685483868 0.89041370564517 0.37402372580645 1.3790697459677 0.92126776612903 1.9073807862903 0.93690080645161 0.83835682661291 1.0798168467742 0.72382086693548 0.66040788709678 0.76475790725806 0.67162392741935 1.3900649475807 1.2153759677419 1.4787569879032 0.95114300806451 1.5678290282258 0.2805660483871 1.7135510685484 0.55797508870967 0.067850108870957 0.22238712903227 1.9018661491936 0.92781116935484 1.8183251895161 1.8099392096774 0.37611222983871 0.29071125 0.75141527016129 0.13023229032257 1.8506583104839 1.6129853306452 1.9078803508065 0.50755337096774 1.056053391129 1.4259004112903 1.8865324314516 0.5946074516129 0.029240471774187 0.040370491935491 0.056434512096772 0.50551653225806 0.44967055241935 1.7869675725807 1.6608495927419 0.0010426129032197 1.7180316330645 1.3398716532258 0.47902167338711 1.3468236935484 1.1418767137097 0.48225673387095 0.34867075403227 1.9501127741935 0.89640779435487 0.72779781451612 0.74948483467745 0.078501854838692 0.60062987500001 1.4032198951613 1.4608719153226 0.80065693548389 0.37919195564513 0.35541897580646 1.8898379959678 0.78021001612902 1.8625910362903 1.4113420564516 0.90943307661291 1.9987020967742 0.48899211693546 1.0256871370968 0.8291651572581 0.15729117741935 0.11278619758065 0.055118217741921 1.3536012379032 0.64853825806455 0.34436227822579 0.15724829838712 0.77183031854835 0.29772533870968 1.113064358871 1.6020063790322 0.20527439919354 0.89681341935486 1.3558664395161 0.37068945967744 0.80378047983868)
+ 13.052667 #(0.000000 0.568970 1.174257 0.030011 1.058475 0.400853 1.303902 1.768040 1.954473 1.665828 1.480449 1.160668 0.589133 1.276583 0.026583 1.502644 0.855382 0.549420 1.310436 1.886825 1.021847 1.925505 0.394017 1.596740 0.559164 0.202076 0.743149 0.141579 0.796809 1.157955 0.621022 1.254258 1.963247 0.121857 0.048423 0.889235 0.393933 1.360689 0.914747 1.891466 0.949691 0.822213 1.076430 0.741669 0.645162 0.767649 0.660809 1.370809 1.216244 1.466256 0.980516 1.562337 0.268679 1.730598 0.542085 0.066689 0.221108 1.892214 0.935388 1.827769 1.837197 0.369687 0.282515 0.741419 0.119411 1.878628 1.614114 1.902688 0.516186 1.048144 1.408165 1.891341 0.595838 0.048603 0.032105 0.050291 0.483088 0.443350 1.785371 1.658696 -0.003724 1.701823 1.346748 0.478567 1.331838 1.159122 0.473767 0.350504 1.945255 0.895037 0.730572 0.745607 0.099733 0.613479 1.390948 1.463568 0.814376 0.385404 0.335778 1.887557 0.752747 1.844646 1.416863 0.899104 0.019464 0.450661 1.011929 0.789114 0.168302 0.108058 0.049255 1.345997 0.638850 0.348139 0.161927 0.782327 0.324940 1.125169 1.587089 0.224277 0.901694 1.376665 0.387232 0.784496)
)
;;; 125 even --------------------------------------------------------------------------------
@@ -4614,7 +4767,7 @@
15.743360519409 #(0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0)
15.340427254326 #(0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0)
- 13.635599 #(0.000000 0.206297 1.617000 0.012735 0.581343 1.647057 1.165994 0.732975 0.986737 -0.054609 0.916796 1.631165 0.148362 0.657122 0.666012 -0.305112 1.903067 0.716688 0.362772 1.276508 1.041690 0.557327 0.673217 1.626021 0.496310 1.663593 1.482510 1.686971 -0.323333 1.225970 0.131032 1.589542 1.559790 1.710133 0.615910 0.522701 0.026089 1.263747 1.826912 1.171264 -0.095860 1.550433 1.278202 0.433716 0.092374 0.961926 0.660456 0.057934 1.279439 1.687794 0.470989 0.668632 0.139456 0.129356 0.207157 1.088021 -0.177212 1.383135 -0.107342 0.168812 1.674045 0.790508 -0.130296 1.410028 1.269764 1.308884 1.242743 1.492325 1.260985 0.439105 0.909990 0.716881 0.227490 0.292454 1.619336 0.835742 1.113785 0.365031 1.646584 -0.137295 0.409367 1.225314 1.755717 0.920553 0.728099 1.051656 0.220001 0.109123 1.035288 0.243819 1.670121 0.310747 0.241400 1.295208 1.526841 0.684591 0.280282 0.378740 0.209389 0.680650 1.106315 0.253047 1.930905 1.691560 0.201855 0.796552 1.148364 1.211908 1.506844 1.331295 1.789397 1.452191 0.045007 1.556438 0.014367 1.546312 0.658635 1.711408 0.347444 0.193153 1.002208 1.445280 1.634605 1.487880 0.750797)
+ 13.475117 #(0.000000 1.548491 1.151018 0.804055 1.288848 0.745562 0.119600 1.816640 0.489444 0.797927 -0.009889 0.603724 1.228261 0.224209 1.700944 0.558029 0.401926 0.678870 1.672569 0.206204 1.639950 0.207313 1.090655 1.731445 1.061924 1.204303 1.283384 0.596323 0.755197 0.840430 1.695795 1.068996 0.112442 0.629411 1.082678 0.178862 1.407494 1.596376 0.661679 1.646026 0.679033 0.910146 1.385029 1.645495 1.558900 0.402989 1.507360 0.715613 0.653396 1.185464 0.459365 1.081595 1.310356 0.134590 1.753770 1.160861 1.616366 0.292710 0.690644 1.567784 1.516765 0.815440 0.559268 1.472195 1.816365 0.438005 0.926342 1.080767 0.176681 1.263601 1.558824 0.269544 1.531077 0.799051 1.559178 1.198673 1.527753 1.046000 1.031478 1.381426 0.384881 1.162175 0.461678 1.754249 1.331102 1.470367 0.720340 1.211468 1.102450 0.834035 0.094053 0.215219 0.273972 0.510535 1.077240 1.269369 0.522016 1.924982 1.803219 0.279774 1.930560 0.125255 0.083727 0.861845 0.832709 0.150597 0.885757 0.351995 1.000263 0.775299 1.647657 1.798792 1.363952 1.321611 1.695013 1.205781 0.585519 0.121724 1.596687 1.484212 0.956521 0.440848 0.313981 0.032275 0.197878)
)
;;; 126 even --------------------------------------------------------------------------------
@@ -4622,7 +4775,7 @@
15.680 #(0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1)
15.28212621738 #(0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1)
- 13.745817 #(0.000000 0.321931 1.260480 0.545785 0.263921 1.827075 -0.053111 1.225797 1.060426 1.619248 1.035576 0.688829 0.858925 0.837553 0.919708 0.950933 1.609183 1.250743 -0.449331 0.106316 1.701123 1.533396 0.677309 0.121506 0.639288 0.112763 1.127038 0.596846 0.154446 -0.060592 0.322049 0.825004 0.382299 0.290255 1.231491 0.000290 0.533277 1.345735 1.527476 0.589800 1.369054 1.375839 0.750610 1.755840 0.030677 0.785866 0.066589 1.018713 0.327472 1.150349 1.358704 1.681642 -0.073976 1.667880 1.344591 1.465432 1.850400 0.870100 1.377839 1.198475 1.708839 1.371419 1.779387 1.467987 0.944454 1.913371 0.990621 1.095261 1.201571 -0.086358 0.664382 -0.166992 0.567376 -0.017313 0.863778 1.736765 1.726436 0.370641 1.584883 1.222557 1.539345 1.603399 1.250354 1.442020 0.581319 1.548664 1.693189 0.459392 1.220560 1.360491 1.554397 0.330571 0.671829 0.396308 1.066022 0.923782 1.127451 1.571461 0.776917 1.526039 1.179735 0.544839 -0.007177 0.166678 1.404062 1.644834 0.874521 0.762747 0.444149 0.107101 0.138896 1.459362 1.471315 0.460423 -0.049409 -0.272346 1.211513 1.940519 0.807764 1.643812 0.421963 0.084878 0.807960 0.747396 1.142567 1.730493)
+ 13.522083 #(0.000000 1.322470 0.683491 0.754777 0.991259 -0.122058 1.218326 0.490886 1.265175 -0.191956 1.705575 1.574470 0.115109 1.066110 1.440966 1.826253 1.011295 1.713833 0.257654 0.677908 1.083608 0.483300 1.147819 0.195552 1.732532 1.465772 0.953129 1.027878 0.897881 1.781518 0.392978 0.567709 0.176865 0.573967 0.076034 -0.028967 1.231376 1.416341 1.368774 -0.074748 1.670955 1.928101 1.019811 0.663581 1.601522 0.136645 0.732235 0.973492 0.636007 0.821336 1.108393 0.208576 0.548469 1.697703 0.759181 1.735090 1.408515 0.453528 0.686387 0.554923 0.572268 0.642397 0.903986 1.321089 0.057811 -0.143926 1.072661 0.642649 0.269445 1.065556 0.196909 1.232191 0.557845 1.468212 0.973973 0.361673 0.135892 0.586797 0.555639 1.295742 0.619596 0.638161 1.638237 0.921394 0.969759 0.325328 1.573314 0.537578 1.374682 1.436892 0.836052 0.329568 0.210608 1.373798 0.288709 -0.094527 1.593534 0.257928 0.774082 -0.004230 1.706491 0.009223 0.985249 1.778229 -0.281221 0.865751 0.612054 0.201682 0.015410 0.419232 1.402833 1.368093 1.140702 0.201744 -0.034377 0.892889 1.153071 0.650530 0.900940 0.928177 1.053617 1.665260 1.217975 1.212493 0.947890 1.003744)
)
;;; 127 even --------------------------------------------------------------------------------
@@ -4630,7 +4783,7 @@
15.609939955803 #(0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 1)
15.237931718393 #(0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0)
- 13.740583 #(0.000000 0.628632 0.618549 0.423054 1.761924 1.576136 0.228689 1.029434 1.284263 1.573048 0.344661 -0.041660 0.920970 0.397022 -0.150967 0.994461 1.301265 -0.007921 0.416367 0.918949 0.272586 1.195793 1.874779 1.745022 0.756251 -0.004769 1.449768 0.087666 0.339755 1.145160 0.962599 1.460598 0.037371 0.557797 1.630013 1.443438 1.427741 1.162978 0.555062 0.831250 1.422150 1.243364 1.318150 1.074232 0.603736 0.493628 -0.241343 1.739195 0.047659 1.840043 1.206332 0.991909 0.922591 1.077143 1.384218 0.662811 1.672993 1.181480 -0.316904 0.691579 0.007554 0.862481 1.202990 -0.034834 0.614788 1.464987 1.355537 0.776230 0.563518 0.990247 0.710256 1.890767 0.147126 -0.069474 1.739872 -0.013667 1.134131 1.887421 1.639945 0.017410 1.004202 0.247755 -0.140702 0.749520 0.494253 1.153812 0.107292 0.558824 1.017560 0.512327 1.385442 0.536107 0.351085 0.475952 0.461376 1.290270 1.211344 0.795876 1.230204 1.558980 1.678731 0.476604 0.078698 0.331155 0.738375 1.284137 0.662727 1.855105 0.122023 1.678308 0.586934 0.982362 1.951245 1.490204 1.362961 1.592665 0.237472 0.975997 -0.097384 0.590772 0.127373 0.738659 0.402070 0.318429 0.848920 0.642727 0.257331)
+ 13.738306 #(0.000000 0.628176 0.618579 0.424274 1.761293 1.576801 0.228919 1.027812 1.283100 1.573422 0.345209 -0.040843 0.921738 0.396407 -0.150421 0.995923 1.300164 -0.008006 0.415799 0.918858 0.272038 1.194042 1.875993 1.744829 0.756663 -0.005747 1.450105 0.087543 0.340255 1.145741 0.962289 1.461563 0.038054 0.558610 1.628871 1.444924 1.428871 1.163782 0.555547 0.830895 1.422609 1.243079 1.318786 1.075038 0.603913 0.493864 -0.242322 1.739580 0.046822 1.840055 1.207298 0.992546 0.923677 1.077533 1.383213 0.662536 1.672621 1.181372 -0.316993 0.691006 0.007940 0.862247 1.202226 -0.034956 0.615117 1.465983 1.354442 0.775927 0.563202 0.990400 0.710320 1.890670 0.146249 -0.070016 1.740742 -0.013705 1.133273 1.887844 1.639096 0.017785 1.004679 0.248216 -0.140885 0.749671 0.494719 1.153640 0.108170 0.558383 1.017766 0.512604 1.385405 0.536638 0.350475 0.474748 0.462574 1.289351 1.213049 0.795691 1.230539 1.559109 1.678387 0.475836 0.078689 0.332253 0.738064 1.283808 0.663609 1.855759 0.120527 1.678617 0.585861 0.983336 1.950663 1.490878 1.363046 1.592579 0.237127 0.975767 -0.096561 0.590219 0.126815 0.738587 0.402133 0.317176 0.848711 0.643449 0.255835)
)
;;; 128 even --------------------------------------------------------------------------------
@@ -4638,27 +4791,29 @@
15.889096531102 #(0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0)
15.651492555885 #(0 0 0 1 0 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0)
- 14.584981 #(0.000000 0.436400 1.468498 0.203286 -0.021669 1.118518 1.239467 1.117587 0.668622 0.302397 0.344182 0.927551 1.534752 1.327640 0.292332 0.373798 0.825548 0.785872 1.331809 1.171511 0.384252 1.307835 1.402240 0.406702 1.236608 0.476654 1.770850 1.587131 0.991641 0.347626 0.119171 0.059867 1.435511 1.446454 1.181570 1.617958 0.028227 0.129539 0.419836 0.437352 0.550514 1.622599 1.207257 1.134056 1.002594 1.407537 0.055758 0.711837 0.735016 0.382749 1.139745 -0.031604 0.957242 -0.021465 0.975314 1.220752 -0.031461 1.018790 1.173085 0.268748 0.028158 1.241354 1.335409 1.101085 1.773707 1.141378 0.244765 1.476330 1.279339 1.144317 1.165287 1.357602 0.905486 1.396558 1.423746 1.304801 0.325647 1.088960 0.479105 0.497408 0.739003 0.244975 0.816590 0.678072 0.255664 1.123772 1.127525 1.625337 0.455007 1.123808 0.801192 0.044927 1.505293 0.196723 1.662552 1.656891 0.731711 1.947498 1.364703 1.007831 0.794916 0.060327 0.633984 1.635731 0.789061 0.431200 0.075351 0.715704 1.914684 1.510534 1.898403 1.546431 0.583485 1.605642 1.022048 1.369504 0.557445 1.130727 1.276253 0.295239 0.908405 1.343720 1.367945 0.649220 1.837798 0.122376 0.006762 1.706063)
- 14.018574603402 #(0.0 1.37841796875 1.5759229375 1.40090190625 1.590912875 1.95508884375 0.6689258125 1.26845578125 1.34828675 1.73710371875 1.4172216875 1.38518365625 0.339933625 1.25657659375 0.8361845625 1.72266553125 1.8329745 1.62909446875 0.1344234375 0.21357840625 1.098135375 0.29479734375 1.9117853125 1.05516528125 1.75917525 1.11997521875 1.9855461875 1.80694215625 0.633976125 0.0033730937499996 0.7101820625 1.02802203125 0.916858 1.49866196875 0.2896689375 0.42068890625 1.387802875 1.74274784375 0.6012168125 0.54169278125 0.68520175 0.69382371875 0.6068626875 0.98138865625 1.839807625 0.92694059375 1.8094395625 1.36181753125 1.8931605 0.59455846875 0.2161534375 1.18218340625 1.939671375 1.97172934375 1.8170093125 0.74955528125 0.96944525 0.63698621875 0.6805221875 0.084323156250001 0.055659124999998 1.11933809375 0.4113690625 1.27834603125 0.236582 1.19420296875 0.2522829375 0.05214190625 1.778510875 1.03075184375 1.0750008125 0.60059478125001 0.22498175 1.15941471875 0.7513026875 1.88112865625 1.400596625 0.28275059375 1.7742535625 1.57307053125 0.49780150000001 1.89779446875 0.4663674375 1.96704340625 1.914100375 1.36621934375 0.85605531249999 0.30625228125001 1.93552525 1.35810821875 1.1665481875 0.50510615625001 0.06449412500001 0.31639209375 1.8202620625 1.48051503125 1.995483 1.36424696875 0.74011593750001 1.66741890625 0.199122875 1.24693884375 0.024264812500007 0.64189678125 1.36707375 0.010240718749998 0.7962796875 1.09344965625 0.97298462500001 0.82731959374999 0.5920245625 0.38179453124999 1.0435385 0.34517646875 0.4263304375 1.49130840625 1.543264375 0.21868834375 1.5012743125 0.11975328125 1.01437825 1.12376221875 1.9292311875 1.93203715625 0.635998125 1.80848109375 0.1666950625 0.34332503125)
+ 13.621503 #(0.000000 1.388735 1.565658 1.415623 1.598145 1.952085 0.662120 1.268851 1.347401 1.732810 1.400077 1.401126 0.338529 1.249706 0.843747 1.731886 1.825451 1.635073 0.133301 0.219202 1.092559 0.282923 1.915514 1.056384 1.743658 1.122531 1.990888 1.809783 0.654452 0.004784 0.696855 1.026404 0.920400 1.494009 0.292286 0.417230 1.391870 1.738228 0.604440 0.554970 0.675461 0.688982 0.615045 0.971590 1.829409 0.929745 1.794269 1.346018 1.906627 0.569656 0.224062 1.187664 1.926770 1.967457 1.838363 0.758896 0.968700 0.637966 0.674862 0.095204 0.045387 1.118725 0.411212 1.276274 0.239589 1.192936 0.234256 0.053543 1.798851 1.040359 1.083316 0.588986 0.255407 1.150223 0.760846 1.860319 1.415595 0.258565 1.776794 1.580588 0.483365 1.903378 0.457665 1.968255 1.893609 1.389158 0.863873 0.300860 1.933388 1.367877 1.159834 0.508996 0.081444 0.298712 1.832025 1.515144 1.999658 1.384057 0.736750 1.662196 0.185331 1.256558 0.028349 0.630271 1.362875 0.022547 0.792109 1.098648 0.970491 0.835036 0.587393 0.391414 1.032059 0.368578 0.410331 1.509224 1.534201 0.205313 1.510131 0.107032 1.009997 1.132961 1.934430 1.935820 0.631985 1.810874 0.141926 0.345881)
)
;;; 256 even --------------------------------------------------------------------------------
-#(256 26.463100712642 #(0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1)
- 24.437111537992 #(0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1)
+#(256 24.437111537992 #(0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1)
+
+ 21.673156 #(0.000000 0.015817 0.952196 0.230828 0.680323 1.421185 1.868775 0.826167 -0.056786 1.245060 1.755665 0.547109 0.470472 1.377724 -0.114534 0.420766 0.106493 0.428104 -0.008767 1.590842 1.414661 0.260649 0.699430 0.825568 0.729805 0.011252 0.745854 0.507499 -0.110088 0.030446 1.476169 0.682498 0.856399 0.081407 -0.117033 1.032013 0.583497 1.489397 0.373681 1.478732 1.274675 0.712834 -0.220141 1.059818 0.313111 1.670566 1.354192 0.154773 0.893873 -0.002217 1.356660 1.629084 -0.190890 1.291517 0.436193 0.313929 1.662405 0.791895 0.671823 1.200079 1.005618 0.942289 0.267355 0.578423 0.011807 0.189509 0.450132 0.116706 0.245147 1.117576 -0.085007 0.916230 0.281874 1.518758 -0.061734 1.302223 0.952999 0.216153 1.895744 0.403130 1.914634 1.146337 -0.000515 0.380060 0.172348 0.985877 0.874773 1.218010 1.408207 1.516156 0.442619 1.611479 1.398900 1.162670 0.337437 -0.078803 1.387853 1.064446 1.096354 0.682532 0.366955 -0.077272 1.574684 1.470052 0.740962 1.088702 0.878685 0.708488 0.721778 0.623992 1.180215 1.170139 0.260325 0.765303 0.285710 1.196341 1.930238 1.669884 1.878672 0.020138 0.325799 1.174507 1.087348 0.929457 1.181804 1.332768 1.502330 1.193560 1.814196 0.287824 1.618060 0.646619 1.452791 0.007830 1.585521 0.235189 0.300203 0.981327 1.633083 0.213189 1.161171 1.238161 1.373607 0.680257 1.957645 -0.079382 0.777706 1.865361 0.640380 0.966726 0.387067 0.924185 0.152860 0.617450 0.476247 0.328002 1.303003 0.686084 1.384398 1.108014 0.359950 0.248768 0.616304 0.700760 1.971914 0.607386 0.611436 0.912557 0.958871 0.736334 0.655215 0.305907 0.878048 1.566395 1.549227 0.271069 0.349038 0.219710 1.447036 1.091621 0.300122 1.428878 1.298413 0.370801 0.700845 1.410190 -0.085764 0.578756 1.360288 1.499854 0.903008 1.058866 1.655774 0.273680 1.650769 0.145302 0.327765 1.207384 0.480558 1.516528 0.019899 1.252336 -0.274303 1.660678 0.449417 0.888544 0.203782 0.446492 0.718147 1.650580 1.186442 0.357614 0.983492 1.489148 1.750137 1.719325 1.266057 0.928023 0.208843 1.273584 -0.060864 1.452481 1.351947 1.730519 0.237000 0.545824 1.454447 0.612746 0.175901 0.534550 0.381886 0.984140 0.341307 0.077367 -0.276388 1.285115 1.390326 1.674197 0.387948 1.082976 0.868096 1.802324 0.275019 1.328837 1.934294 -0.187544 0.113547 1.433571 1.333613 1.849051 0.681097 0.252360 -0.207267 0.405898 0.301042 0.529285)
)
;;; 512 even --------------------------------------------------------------------------------
-#(512 38.442 #(0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1)
- 35.776 #(0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1)
+#(512 35.776 #(0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1)
+
+ 32.512123 #(0.000000 0.211782 0.866260 1.700198 0.453991 0.014753 0.106280 1.296644 1.574948 0.714250 0.769213 0.245881 0.549126 0.904130 0.314153 1.454814 0.910893 1.373673 1.792272 0.554890 0.209341 0.658725 0.608835 1.034924 0.533335 0.246071 1.406433 0.589790 0.795890 1.366097 0.493842 1.753401 0.020173 1.800386 1.144047 1.639086 0.714934 1.669833 0.186893 1.213601 1.392125 1.815180 0.206833 0.481774 -0.058161 0.965742 0.947083 0.890392 1.906279 1.297929 -0.088873 0.669320 0.074624 -0.071580 0.556448 0.406765 1.198934 1.516094 0.877460 1.399263 1.578275 0.852163 1.013902 1.605034 1.507677 0.932332 0.196725 0.370279 1.206527 1.374718 0.741825 1.750265 1.003967 1.290124 1.743594 1.090817 0.614767 1.787879 1.233533 0.130079 0.834465 1.197392 0.094668 0.843674 0.695885 1.433856 0.156489 0.458659 0.884883 1.592180 1.093067 1.849010 1.185812 0.123093 1.113335 1.935699 -0.083549 1.574227 0.300194 0.059746 1.515980 1.278936 1.359358 1.456672 1.566344 0.033080 1.864330 1.634893 1.522988 1.648984 0.045782 1.717554 0.108817 1.253262 0.697207 1.375459 1.277238 0.386082 1.185766 0.152010 1.285766 1.570609 0.311639 1.564131 0.463266 0.882448 0.505868 0.843292 1.878156 1.158260 1.566868 1.941600 0.053436 1.596808 0.564366 0.299555 1.916618 1.814449 0.347998 0.017388 1.646228 1.624761 1.692579 0.281561 0.979036 1.440081 1.488760 0.897390 0.313542 0.382367 1.655746 1.309158 1.142521 1.008750 0.276285 1.159685 0.631953 1.550753 1.609921 0.196908 0.896080 -0.020231 0.425217 1.474422 0.930098 0.091472 0.750996 0.701589 0.961629 0.668155 1.309930 1.036714 0.453760 0.872533 0.916448 0.991650 1.202119 1.514052 0.812807 0.938948 0.621551 0.260965 1.253044 1.031536 -0.042384 0.849294 0.012533 0.944763 1.066157 -0.009607 1.862096 1.098755 0.239133 1.308048 1.233220 0.329968 0.668281 1.083705 1.337131 1.492671 0.222047 -0.066905 0.024203 1.520856 0.240298 0.688591 1.149896 0.426638 1.089820 1.814182 0.429260 0.792755 0.153661 0.790121 0.886817 0.572332 0.765717 0.845769 0.743697 1.502052 1.247512 0.606363 1.805391 1.825084 -0.018818 0.538741 1.078331 1.085885 1.021733 0.249748 1.354300 0.354917 0.921756 1.146276 1.136034 0.004274 0.182291 0.420455 1.113097 0.142361 0.883827 1.244553 0.270522 0.297732 0.663326 0.117069 1.038253 1.182441 0.753783 0.598449 0.476248 0.621579 1.776199 1.715812 0.003005 1.822011 0.507441 0.082483 0.745061 1.156135 1.393014 0.391073 1.022490 1.587865 1.872053 0.970707 -0.057450 1.934941 0.721459 1.462383 1.725909 1.893592 1.345514 0.197426 0.465041 0.810717 1.221288 -0.053216 1.007052 1.044767 0.911022 1.574023 1.732175 1.306462 0.542821 -0.220348 0.800852 0.261800 0.400366 1.566150 0.991659 0.496914 1.316835 0.559835 1.712947 1.520133 0.862746 1.010876 1.035591 1.200157 1.681774 1.210229 1.089999 1.437105 0.204136 1.591157 0.416288 1.584732 1.009884 1.297450 -0.111916 1.178459 0.880841 0.948170 0.053559 0.898931 0.221259 0.249868 1.705123 0.127844 0.100716 0.390264 0.325976 0.881204 0.237593 0.953874 0.527109 0.612929 0.327279 -1.950573 0.758873 1.335377 1.132238 0.679149 0.619264 1.392153 1.880738 1.311800 1.116211 1.484074 0.578029 0.135580 0.709755 0.874511 0.093381 1.376200 0.069985 0.357296 1.448276 1.273466 0.866131 -0.075377 0.945015 1.109156 1.654528 -0.056100 0.056973 0.203012 0.882269 1.474850 0.356522 1.281964 1.028050 1.584914 0.026415 0.316954 1.584410 1.173261 1.728309 1.396005 1.473569 0.851921 0.291071 1.663656 1.754893 0.933115 1.751630 0.939956 0.174872 1.434753 1.961837 0.732724 0.414019 1.170636 1.572415 0.571395 1.025743 0.342853 -0.167801 0.063591 0.409294 0.847933 0.461358 1.568815 0.744299 0.458491 1.494409 1.219862 -1.872566 -0.075310 1.145974 0.047122 1.023590 1.041911 0.408934 0.318739 0.666270 0.447095 1.534805 1.489234 0.390453 1.611656 0.937849 0.728349 0.198856 1.330660 1.909526 0.295199 1.003136 1.541366 0.084910 0.059739 1.640361 -0.005926 1.239698 1.572506 0.268634 1.171788 1.345623 1.171979 1.095808 0.445817 0.752268 0.724671 0.337991 1.778454 0.039223 1.414053 0.628437 0.034229 0.837630 0.740790 1.373040 0.299573 -1.934752 1.840487 1.710459 1.775163 1.660747 0.836340 1.593233 0.002409 0.094011 1.220821 0.678649 0.230744 0.081147 1.603206 1.403892 0.381972 0.131038 0.945849 0.021808 0.600709 0.584897 1.114359 -0.062493 0.536808 1.188972 0.289812 1.327304 1.762768 1.373557 1.555849 1.345541 0.056752 0.217273 0.808136 0.548422 -1.937746 0.489656 0.751406 1.696301 0.506109 1.509694 0.428410 0.397529 0.531779 1.503252 0.723021 1.065292 0.042128 1.329621 1.707989 1.225822 1.631856 1.633454 1.652930 1.597213 0.967452 0.673417 0.215258 1.697674 0.712306 1.113540 1.491755 0.399395 1.433136 0.200495 1.294483 1.858153 1.435534)
)
;;; 1024 even --------------------------------------------------------------------------------
-#(1024 57.838 #(0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0)
- 51.895 #(0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0)
+#(1024 51.895 #(0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0)
)
;;; 2048 even --------------------------------------------------------------------------------
#(2048 87.300233499882 #(0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1)
+
+ 81.821476 #(0.000000 1.054494 -0.027439 0.346842 0.661170 1.133415 1.069592 1.563138 0.111303 1.325434 0.040238 -0.075138 0.800637 1.782396 0.476865 0.172496 1.374132 0.119844 1.661343 1.015211 0.354777 1.375191 0.185409 0.946157 1.731483 1.659185 1.801695 0.461325 0.224022 1.759338 1.839777 0.602448 1.277924 1.734303 0.144138 1.895222 0.279797 -0.062002 1.483072 0.189157 1.196315 0.129921 0.971922 1.741638 0.264504 0.435861 1.453052 1.240929 1.268146 0.502037 0.745095 1.587083 1.061705 1.739963 0.410284 0.816896 1.121251 1.911008 0.234039 0.075113 1.698978 0.777554 0.131273 0.717741 1.104678 1.477885 1.846638 1.657721 0.825962 1.337420 1.334526 1.058671 0.214958 1.729283 1.679406 1.709695 -0.063129 1.860505 0.092255 1.196561 1.791623 0.534178 0.011833 0.970633 0.204779 0.371902 0.314375 1.437766 1.304221 1.953821 1.508309 0.926378 1.885620 0.755020 0.528645 0.903984 0.259848 1.170772 1.797611 1.061031 1.714432 1.833932 1.805157 0.640566 0.401516 0.267664 0.563877 0.560503 1.433559 0.916887 1.842587 0.976090 0.194763 1.500586 0.403047 0.103553 0.700045 1.936469 1.855438 0.539509 1.613342 -0.114540 1.418468 0.842475 1.421507 1.382850 0.342480 0.721503 1.397777 0.442090 0.224220 0.169902 0.646223 0.449991 -0.061078 0.931973 1.758359 0.361760 0.208770 1.298954 0.092755 1.357324 1.249038 1.650848 0.255277 0.329432 1.506719 0.960734 0.199577 0.212236 0.305721 0.572984 1.563693 1.055743 1.378907 1.311320 0.240255 0.861016 1.214778 1.603346 1.321991 0.819800 0.216147 1.833974 1.547528 0.122200 0.684674 0.169827 0.673251 0.974300 0.713659 0.082191 1.788842 0.041146 0.240746 0.429316 0.258893 0.716448 1.764756 0.422672 0.908412 1.663987 1.555829 1.650692 0.804732 0.194077 1.568213 0.000729 1.285570 0.693552 1.962242 1.189546 0.333042 0.543562 1.416532 1.063945 0.291095 1.736553 1.628085 1.708776 0.573042 1.743168 0.278192 1.161824 0.076547 1.143654 0.828791 0.716845 0.046639 1.178121 1.693161 0.879702 1.603002 0.664279 0.832661 -0.006659 -0.090385 1.552641 1.911312 0.105700 0.561789 0.253754 0.419189 1.297914 1.285846 0.328682 1.576025 0.270557 0.844141 0.516789 1.514224 1.496705 1.262537 -0.087919 1.667063 1.061551 0.015419 1.116482 0.596012 1.104737 1.833117 0.805074 0.291714 1.242743 1.372205 0.685589 0.910475 1.135619 1.256499 0.986379 1.705094 0.349765 1.337360 0.030509 1.720413 1.423944 1.470994 0.578186 1.497346 1.401230 1.624437 0.502511 0.886901 -0.103347 0.745114 1.219022 0.913568 1.795008 1.345661 0.398205 0.167347 0.725869 0.290010 0.726393 -0.043647 1.650834 0.279711 0.303189 0.049367 1.671423 0.568307 1.232991 1.474113 0.529459 1.735629 0.566021 0.972279 0.320067 1.268197 0.882813 1.880451 1.607027 1.131381 1.123626 1.534162 0.129801 1.220852 1.620183 0.404553 1.787302 1.163579 1.188488 0.921049 0.218073 1.714358 0.603089 1.779009 0.585841 -0.149328 0.296725 1.858791 0.450904 1.036970 1.302940 1.268655 0.419994 0.185192 0.380876 0.158844 0.318063 1.164699 1.419895 1.210515 1.225111 0.632705 1.779657 0.493692 1.837987 1.163681 0.133458 0.538772 0.818423 1.431042 -0.000775 -0.001813 0.911182 1.022956 -0.080688 0.151975 0.085520 1.817086 0.701336 0.906707 0.294152 1.273180 0.373481 0.197559 1.001145 1.148662 1.248775 0.530878 1.583527 0.438632 0.688063 1.503274 0.100070 1.731362 1.374457 1.181468 1.255550 0.281696 0.401411 0.212174 1.570027 1.773034 -0.225645 0.653521 0.472548 1.680667 0.558829 0.166062 1.578921 1.442715 1.857551 1.018365 0.278616 1.832954 0.430303 1.545094 0.392212 0.274173 1.744790 0.773156 0.378196 0.213349 1.116079 0.936793 1.310646 0.782183 0.924508 1.889463 0.814656 1.204756 0.078804 1.560757 1.721874 0.726772 1.679631 1.029140 0.892762 0.234539 0.334660 0.400324 1.744547 1.619200 1.362376 1.715051 0.408584 0.500772 0.123274 1.879029 0.539459 1.571237 1.133824 1.313681 0.840751 1.412997 1.497631 -0.049886 0.355985 0.476523 1.057019 1.343136 0.780021 0.304035 1.384349 1.458441 0.996143 0.311843 1.794338 1.623824 0.007401 0.594295 0.942146 1.720587 0.402450 1.242496 1.276538 0.736797 0.049169 0.869030 0.235459 1.687523 0.484825 0.376134 0.983613 1.331226 0.946422 -0.070235 0.517337 0.910587 1.810216 -0.177710 1.650735 1.542570 0.279370 0.731437 1.098749 1.056929 1.506964 1.522039 1.799688 0.295206 0.342237 0.310041 0.183234 -0.168766 0.054333 1.709048 1.110636 1.059434 1.177649 1.163858 1.662906 1.038326 1.084117 1.009702 1.307988 0.473925 1.296567 1.202546 1.253179 0.433854 1.163432 1.568392 0.112247 0.129464 0.630263 1.511108 1.480881 0.714179 1.211723 0.255239 1.743018 0.850802 1.379380 0.626232 0.619485 0.056113 0.394098 1.767320 1.858084 0.531734 0.318691 0.792690 0.034626 0.775957 1.820231 0.504597 1.089795 1.458885 1.010098 1.006708 0.678773 0.709935 1.246025 0.905997 0.392494 0.685170 1.266381 1.143517 1.444388 -0.032904 1.287611 0.267743 0.134752 0.728544 0.187844 0.517562 0.967478 0.078661 1.751267 1.164138 1.665047 0.911923 1.817820 0.902707 1.350234 1.210278 1.133105 -0.003282 0.110470 1.620150 1.197947 1.450235 1.789124 -0.187130 1.496304 1.104550 1.874378 1.752275 0.010880 0.004668 0.199421 0.010687 1.562957 1.622139 1.386212 1.059023 1.594840 0.830908 0.342055 1.278369 1.041542 1.324390 0.490944 0.413414 0.943292 0.375542 0.410191 0.558180 0.754601 1.433754 0.448779 0.450801 1.882789 1.395886 1.554056 0.917286 1.663676 1.831234 1.385306 0.952537 0.104193 0.241553 1.746219 0.372921 0.376010 0.483912 1.149731 0.304156 0.082027 0.417323 1.832884 0.238509 -0.066507 -0.062683 0.064540 1.171119 0.353229 0.178002 0.217553 1.065409 0.168089 0.884488 0.860076 0.343970 0.426638 0.096932 0.181950 0.049317 0.167584 0.397701 0.510895 0.250565 0.913964 1.193627 1.853936 0.969809 0.983659 1.664573 0.772560 1.279058 -0.023915 0.205228 0.247629 1.188461 0.656959 1.236722 1.725341 0.940115 -0.113209 0.849819 0.249819 1.581041 1.814607 1.362897 1.547528 1.686984 1.815889 1.285237 1.789822 1.132911 0.066447 -0.023167 1.203245 0.674930 0.403607 1.424795 1.455826 1.126019 0.511531 0.918644 0.681264 1.777915 1.658689 1.037654 1.495687 1.930063 1.648452 1.691207 0.644866 1.597940 1.090672 0.802574 1.662024 0.693104 0.262561 0.132147 0.161381 0.902677 0.118139 1.209328 1.181639 0.932247 1.679859 0.969346 1.936446 0.402738 1.460798 0.098801 1.424042 0.533864 0.383439 0.268746 0.774104 1.359468 0.551837 1.072551 1.042980 1.187151 0.047706 0.475799 0.777237 1.508583 1.518390 0.624320 1.803609 -0.030146 1.428704 1.310937 0.200692 0.052979 0.248842 0.649311 1.390948 1.226773 0.627202 0.781465 1.281153 1.239400 0.074232 0.416931 1.280024 1.789310 0.371491 1.751863 1.011841 0.492815 1.050730 1.800313 0.950130 0.055134 0.624454 1.728356 1.204405 1.157013 1.556977 -0.053824 0.341297 1.557961 0.476700 0.850933 0.904239 1.687309 0.426984 1.284031 1.932629 0.705526 0.156329 1.808172 0.579194 1.000874 -0.065769 0.042011 1.229956 1.150937 -0.021819 1.496948 0.443659 0.756699 1.017917 0.251346 1.030963 1.700245 1.522355 1.033941 0.199053 0.895824 0.077681 -0.189464 1.138611 0.482469 0.670557 0.776398 0.101988 1.722452 1.772080 0.177376 1.142171 0.934923 1.481127 0.086983 0.577707 0.938725 0.850275 0.563872 1.225982 0.685952 1.482226 1.334215 0.509273 0.746348 0.969863 0.425234 0.193057 1.126319 1.717756 1.528837 0.488432 1.443764 1.714937 1.155149 1.167378 1.613967 1.199146 1.181773 0.344569 1.419134 -0.071949 1.346424 1.006446 -0.131152 0.728654 0.579173 -0.045896 0.845056 0.643214 1.617764 0.308222 1.103985 1.198293 0.615149 1.494940 -0.035825 0.670860 1.445170 1.159345 0.355670 0.735478 0.464210 0.913633 1.219473 1.118765 1.055292 1.056281 0.163639 1.133798 1.563215 1.723323 0.260017 1.605864 1.770955 0.668745 1.337320 1.007358 1.425833 0.777384 1.237103 1.006016 1.193298 1.651320 1.151617 1.880150 -0.057676 0.789706 1.276991 1.375810 0.824803 1.238859 0.916547 1.672716 1.688012 0.387565 0.255608 1.573682 1.496643 0.977599 0.563576 0.074656 1.141253 0.719343 1.223403 0.992610 1.858696 1.161425 0.070041 -0.125686 0.366133 0.548001 0.029832 0.966137 0.040605 0.859124 0.796007 -0.028757 1.503146 1.000712 0.350997 0.675359 1.657961 0.160716 1.364976 0.809508 1.465379 1.502419 1.664453 1.346214 0.980484 0.056425 0.582571 0.449384 0.964774 1.453345 0.957981 0.502063 1.649071 0.712283 0.618742 0.565175 1.143455 0.489376 1.817579 1.159323 0.148678 0.333064 0.709037 1.481181 1.547696 0.428397 0.156549 0.695465 1.356751 1.680722 0.615155 0.117992 0.510780 1.176860 1.354240 1.517559 0.636368 1.302311 0.451684 1.264346 1.556310 1.471008 0.581828 0.535059 1.663929 1.202044 0.264646 1.656255 0.805087 0.901536 1.636656 1.660890 0.213781 0.532407 1.704614 0.396471 0.287874 1.912406 0.959872 1.366158 0.497154 0.113127 0.757324 1.951120 1.684558 1.585973 1.115695 0.078984 1.961626 0.432344 1.383665 1.839506 0.464197 1.382403 0.427107 0.162841 1.778107 1.281058 0.089942 1.697933 1.210648 1.608672 0.966474 1.127034 1.183479 0.015244 1.307273 0.500341 0.137936 1.174736 1.112224 1.723755 1.678383 0.186904 1.574722 0.043220 0.423928 0.904505 -0.084123 0.123149 1.017494 0.182180 0.845663 0.909297 1.899427 1.571011 1.855999 0.411109 1.430036 0.198897 1.262293 1.525746 0.617827 0.342433 0.400577 0.534487 1.565876 1.105658 0.753026 1.729575 0.238258 0.074101 -0.033772 1.568523 1.717343 1.918595 1.704326 1.329853 1.746013 0.559256 0.907430 0.303341 0.114160 0.419704 1.407176 0.917726 1.385385 0.309901 1.271882 0.991233 0.626687 1.503739 1.761445 0.249662 1.036228 1.154024 0.122831 0.878665 1.019549 0.418872 1.249494 1.648187 0.685065 0.809468 1.459645 0.223209 1.276202 0.249098 1.107719 0.756455 0.675855 1.099504 1.821182 0.439342 1.136479 0.991788 1.806393 1.229819 0.775871 0.730021 0.103406 0.954714 1.373034 0.766770 0.226914 0.042385 0.357251 1.110782 0.706130 0.818954 0.663311 1.394411 -0.002333 0.170522 0.982526 1.134855 1.429460 0.958902 0.104769 1.363562 0.183401 0.987942 1.297404 0.781306 0.237651 1.387529 0.451936 1.135925 0.034323 1.467075 1.733686 0.672139 0.194562 1.712838 0.199073 0.397457 1.211235 1.873323 0.593680 0.689795 1.666389 1.387596 0.393157 0.109486 0.039271 0.574404 0.448900 0.858254 1.646605 1.150831 0.976483 0.383055 1.187262 1.496789 1.030500 1.504707 0.225431 1.104803 1.142124 0.650019 -0.056910 1.284387 1.214574 1.318027 0.132885 1.566739 0.508778 1.657481 0.736366 0.104613 0.353614 -0.078214 0.391782 1.885340 1.027024 0.057797 1.217778 0.929840 1.028350 0.705000 -0.149722 -0.066493 1.889044 0.110325 0.983042 0.309869 0.453933 0.387086 0.075846 1.905796 1.865389 1.918858 1.603983 0.713841 0.209720 -0.006643 1.339545 1.283096 0.518808 1.727901 1.695347 0.166260 1.729079 0.596249 0.598788 1.459050 1.373434 1.059808 0.263405 0.787598 0.750878 1.859223 1.455721 1.057228 1.880949 0.490826 0.480814 0.731423 1.269127 1.477368 1.452725 1.658583 0.898012 -0.206350 0.726186 0.876052 0.601006 1.099717 1.704079 0.115881 1.711472 1.701603 0.090876 0.469167 0.329196 1.694134 0.609674 0.296971 1.420592 0.588171 0.798695 0.492937 1.362363 1.705138 0.953363 0.715777 1.187715 0.137005 0.861354 1.278804 1.691238 0.220098 1.450682 1.274154 0.506599 0.486114 1.317070 1.042439 1.031173 0.076177 1.371313 1.525164 1.391698 0.168870 0.990807 1.712722 0.349662 1.188065 1.689867 0.623727 0.810052 1.266993 1.756572 0.585363 1.155258 1.207120 0.340125 1.095115 0.373453 0.746548 0.798746 0.695648 0.480037 1.665283 0.187718 0.509859 1.459411 0.159039 0.480744 0.197403 1.309059 0.183238 0.141461 0.932954 1.385194 1.874995 0.421847 0.592535 1.213160 1.324877 1.115619 0.602293 1.165930 0.736350 1.345151 0.567362 1.724476 1.314449 -0.009822 1.740175 1.330920 0.462556 0.337968 0.690692 0.949365 0.528224 1.732295 0.627916 1.770706 1.808990 0.600269 0.507826 1.049136 0.007882 0.548083 0.233717 0.687788 1.750769 1.212254 1.336601 0.608126 0.763179 1.792711 0.829391 1.853624 1.338781 0.328698 0.313930 0.134059 0.078374 0.860094 1.177784 -0.170272 0.423271 1.531652 1.545534 0.946297 0.938882 0.827107 0.385199 0.804432 0.376896 1.680737 0.493869 1.054621 1.482109 0.276807 0.370412 0.130379 0.560208 0.307767 0.707311 1.168701 1.246370 0.459097 1.577499 0.778623 1.185364 1.820826 0.376895 -0.000279 1.660466 0.738767 0.679051 1.835358 1.128161 1.234483 1.686015 0.237152 1.570322 0.733097 1.056685 0.190270 1.651412 1.552403 0.100049 0.352363 0.510500 1.032232 1.338133 0.354700 1.446166 1.135327 1.162009 1.692449 1.233326 1.283040 1.062653 -0.032844 0.988846 0.560990 0.673509 1.907780 0.753844 0.213662 0.480313 1.114457 1.359602 1.856622 0.714410 1.521015 0.348264 0.531203 1.026578 1.298369 0.582097 -0.047209 0.864510 -0.049426 1.724088 1.451930 1.621492 0.684612 1.460721 1.235916 0.350349 1.154146 -0.050896 0.957761 0.545640 1.540301 0.937733 -0.092039 1.753334 -0.001745 1.423253 1.604824 0.501983 1.477163 0.488951 1.367156 0.581784 1.432247 0.574524 1.566697 1.784857 1.142234 -0.035944 1.358074 -0.084439 1.920717 0.281090 0.027105 1.112695 -0.069333 1.977502 1.022351 1.316712 1.837822 1.617951 0.145384 0.678330 0.780838 0.759306 1.579814 0.881591 0.028800 1.747779 0.217846 0.093847 1.541383 1.432880 0.804262 0.001652 0.496141 0.763184 0.350024 0.247830 0.556581 0.841680 1.239333 0.677414 1.853240 0.734235 1.761778 0.476423 1.751026 0.001537 1.297088 1.748363 0.436992 0.875558 0.656917 0.941074 0.822806 0.918297 0.892341 0.860078 1.620482 1.119641 1.528123 0.215215 0.694822 1.690116 0.651795 1.943137 1.072341 1.220955 1.379944 1.274276 0.492791 1.340891 1.613371 0.968325 1.712829 1.504321 1.740625 0.897578 1.223557 1.705815 0.573395 0.287496 0.600183 1.147131 1.476049 0.427869 1.436897 1.027432 1.566185 0.979730 1.675041 0.920354 -0.071571 1.942315 1.074526 0.545908 1.136159 1.890089 0.764227 1.831111 1.497595 1.693648 1.911185 1.023122 0.894721 0.578201 0.817917 0.520745 -0.010085 1.709161 0.069394 0.531077 1.778656 0.180270 0.143816 0.075060 -0.038020 1.828685 1.277648 1.718003 1.189702 1.366040 0.095047 1.540029 0.387511 1.535264 1.655455 0.814800 1.275265 0.520247 1.081943 0.918219 0.980301 0.960761 1.392365 1.226648 0.388476 1.268976 0.739344 0.299357 1.754431 1.200979 0.202246 1.056121 1.001164 0.340510 0.676315 0.807485 0.049607 0.451875 1.723692 0.669496 1.183757 1.048577 0.881410 0.924945 0.117855 0.972391 0.941164 1.362251 0.339816 1.187981 1.112739 1.946142 1.477010 0.900141 0.981500 0.690820 0.718612 1.287409 0.885780 0.085941 0.458644 1.035331 0.426282 0.612089 1.539389 0.603918 0.299374 1.528677 1.738841 0.916787 1.854694 1.544844 1.050674 0.819370 1.727307 1.188322 0.010972 1.467338 1.766927 0.802593 0.235669 0.766034 0.026472 1.198388 1.774251 0.130888 1.053176 1.481141 0.876218 1.456495 0.160397 1.391821 -0.234549 0.260571 1.636519 0.506373 0.037763 0.218949 1.014687 1.029256 1.073816 0.012628 1.464141 1.524001 1.944582 1.903671 1.341401 1.030917 0.183264 0.178082 0.776502 1.094608 1.339629 -0.058755 0.052841 -0.057590 1.313235 0.981607 0.229605 0.845026 0.836394 0.374607 1.694997 0.169561 0.362408 0.339472 1.029029 0.036834 1.443566 1.837048 1.352074 0.267991 1.640185 1.275760 0.218946 1.378808 0.820591 1.639380 1.658848 0.891354 0.120570 1.057970 1.524787 0.697563 0.290652 0.159045 1.157871 0.031524 0.048413 1.571253 1.726466 1.587306 -0.003323 0.985464 0.669289 0.911367 1.710427 1.444792 1.194553 1.916283 0.183050 0.428781 0.244411 0.825053 0.563277 0.581047 -0.158092 1.195266 1.603912 0.974984 1.795356 1.456798 1.154876 0.231344 0.691063 0.896697 1.104758 0.695115 1.086653 1.467499 0.240808 0.286875 -0.092886 -0.081143 0.921049 0.467830 1.584461 0.380149 1.124185 1.374049 1.062798 0.776117 1.078021 0.364915 1.634267 0.189509 0.453520 0.558514 0.593987 0.098480 1.678891 0.758512 0.444710 1.105264 0.074450 1.858431 1.062728 1.705809 1.204568 1.806762 0.565446 0.116994 1.899748 1.219432 1.040399 0.409827 1.092242 0.655367 0.628939 1.558310 -0.132349 0.960474 0.968625 1.600722 1.592598 1.293226 1.485132 1.403506 0.121673 0.156185 1.033860 1.465363 1.355537 1.131408 -0.332607 1.107295 0.514580 0.514027 -0.018422 1.700284 0.519983 0.931010 0.493968 0.681690 1.430799 1.787347 0.904664 1.499430 0.455450 0.933801 0.850726 0.432495 0.660660 -0.004954 0.655136 -0.148773 1.400357 0.267471 1.548428 1.792653 0.562751 1.706703 0.864919 0.048679 1.187539 0.346654 0.772860 0.193614 0.168501 1.050210 0.042807 1.181518 0.173962 1.637858 1.358068 0.769190 1.828873 0.678251 0.521468 -0.063886 0.315508 0.638270 0.000364 1.579419 0.789250 0.657127 1.203771 0.129719 0.681799 1.190778 0.894287 1.336344 1.788463 1.846398 1.607135 1.455095 1.767751 1.068955 1.271427 1.103560 1.799002 0.229493 1.513569 0.231110 1.051375 1.781330 1.718417 1.579801 0.662031 1.600575 0.720245 0.042416 1.686871 0.680986 0.709878 0.903091 1.408359 0.002925 0.744556 0.738793 1.813141 1.075793 1.734703 1.682875 1.118770 0.649169 1.253302 0.219739 0.765513 0.362778 1.124432 1.483219 1.210938 1.334907 1.947989 1.414494 0.096360 -0.147788 0.750155 0.306400 1.121717 0.371162 -0.145257 1.612715 1.274266 0.522524 0.320913 1.100279 0.987903 0.400348 0.608101 1.842391 0.692877 0.181716 0.113519 0.307760 1.548623 0.236764 1.432256 0.278623 1.785585 0.189840 0.393200 0.401979 1.307402 1.156180 0.376371 -0.137312 1.084279 0.334683 0.637341 0.321475 1.550001 0.773735 1.878487 0.470924 1.743676 1.247417 1.412610 0.453632 0.952996 0.603634 0.223839 1.468667 0.623231 0.692795 1.971190 0.916854 0.275567 1.492615 1.212276 0.779810 0.179111 0.368239 0.935091 1.027977 0.130672 0.034555 0.911475 1.276506 1.891716 1.485403 0.987569 1.688898 0.672758 1.248824 1.356252 0.481907 0.915560 1.209030 1.208082 0.110653 0.939625 0.668513 0.639433 1.084344 0.556776 0.665675 1.721594 0.160860 0.467349 0.836020 0.266590 0.145044 0.970886 0.877130 0.758603 0.818682 0.994847 1.550458 1.130237 1.844679 0.595736 1.709610 1.641269 -0.126034 0.239840 1.514469 0.413112 0.548712 1.197128 0.470456 1.260206 1.416600 0.962967 0.464707 1.782023 0.680816 -0.068522 1.515998 0.905404 1.825158 0.878572 1.286928 1.777582 1.176578 0.504100 0.153432 0.236354 1.572845 1.072440 1.225102 1.468949 1.147936 0.060847 0.677911 0.958862 0.563111 1.729938 1.089984 0.392951 0.168868 1.132775 1.031074 1.166083 0.063334 1.108227 0.512278 1.680383 1.603508 0.165709 1.630714 0.620600 0.080639 1.835039 1.891068 0.337558 0.284989 1.806024 1.702499 1.797501 0.180551 -0.098669 0.542253 0.416139 1.267309 0.272434 0.869017 1.670141 0.434986 1.169876 0.778976 1.563237 0.004143 0.630692 0.038661 0.209223 0.366363 0.296521 0.792475 1.689937 0.043722 0.120064 0.331935 0.897717 1.570899 1.805204 0.128369 0.534772 1.584364 -0.142217 1.447133 0.065015 1.501032 1.174583 1.571049 1.201595 0.446026 0.559027 0.513681 1.861344 0.964408 1.174899 0.345088 1.307907 0.313322 0.372117 0.251941 1.059719 0.741984 1.382242 1.325610)
)
))
@@ -5012,6 +5167,25 @@
(set! mx (abs val))
(set! loc x)))))))
+(define (tstallf mult phs)
+ (let ((len (vector-length phs))
+ (incr 0.0001)
+ (mx 0.0)
+ (loc 0.0))
+ (do ((x 0.0 (+ x incr)))
+ ((> x (* 2 pi)) (list mx loc))
+ (let ((val 0.0))
+ (do ((k 0 (+ k 1))
+ (j 1 (+ j 1)))
+ ((= k len))
+ (if (= k (- len 1))
+ (set! val (+ val (* mult (sin (+ (* j x) (* pi (phs k)))))))
+ (set! val (+ val (sin (+ (* j x) (* pi (phs k))))))))
+ (if (> (abs val) mx)
+ (begin
+ (set! mx (abs val))
+ (set! loc x)))))))
+
(define (tsteven phs)
(let ((len (vector-length phs))
(incr 0.0001)
@@ -5114,6 +5288,86 @@
(list choice-list (- (+ total first) this)))) ; first to this would be a straight line
+
+(define (find-other-mins peak-amp peak-phases)
+
+ ;; given a point, find the 3 other matching points (this assumes all harmonics, but the other cases are similar;
+ ;; in the even case, we'd flip all above 0, not just every other one, because they're all even, but we end
+ ;; up with 4 equivalent points as before -- step by 1 not 2 in the 1st and 3rd loops below. In the odd and
+ ;; prime cases, I can only think of 2 such points, the symmetry being around 0 (2-val)).
+
+ (let ((temp-phases (copy peak-phases))
+ (n (length peak-phases))
+ (results '()))
+
+ ;; flip evens
+ (do ((i 1 (+ i 2)))
+ ((>= i n))
+ (set! (temp-phases i) (modulo (+ (temp-phases i) 1.0) 2.0)))
+ (let ((val (car (tstall temp-phases))))
+ (if (> (abs (- val peak-amp)) .001)
+ (format #t ";~A -> ~A?~%" peak-amp val))
+ (set! results (cons (list val temp-phases) results)))
+
+ ;; get case symmetric around 0
+ (set! temp-phases (copy peak-phases))
+ (do ((i 1 (+ i 1)))
+ ((= i n))
+ (set! (temp-phases i) (modulo (- 2.0 (temp-phases i)) 2.0)))
+ (let ((val (car (tstall temp-phases))))
+ (if (> (abs (- val peak-amp)) .001)
+ (format #t ";~A -> ~A?~%" peak-amp val))
+ (set! results (cons (list val temp-phases) results)))
+
+ ;; flip evens on the previous case
+ (set! temp-phases (copy temp-phases))
+ (do ((i 1 (+ i 2)))
+ ((>= i n))
+ (set! (temp-phases i) (modulo (+ (temp-phases i) 1.0) 2.0)))
+ (let ((val (car (tstall temp-phases))))
+ (if (> (abs (- val peak-amp)) .001)
+ (format #t ";~A -> ~A?~%" peak-amp val))
+ (set! results (cons (list val temp-phases) results)))
+
+ (format #f "~{~{~,8F ~A~%~}~}" (reverse results))
+ results
+ ))
+
+;;; :(find-other-mins (car (tstall #(0.0 0.1 0.2 0.3))) #(0.0 0.1 0.2 0.3))
+;;; 3.49630991 #(0.0 1.1 0.2 1.3)
+;;; 3.49630680 #(0.0 1.9 1.8 1.7)
+;;; 3.49630979 #(0.0 0.9 1.8 0.7)
+
+(set! (print-length) 123123)
+
+(define (show-mins i)
+ (let ((data (get-best :all i)))
+ (let ((other-mins (apply find-other-mins data)))
+ (let ((pk1 (cadr data))
+ (pk2 (cadr (car other-mins)))
+ (pk3 (cadr (cadr other-mins)))
+ (pk4 (cadr (caddr other-mins))))
+
+ (if (or (> (abs (- (car (car other-mins)) (car data))) .001)
+ (> (abs (- (car (cadr other-mins)) (car data))) .001)
+ (> (abs (- (car (caddr other-mins)) (car data))) .001))
+ (format #t "trouble in ~D: ~A ~A~%" i data other-mins))
+
+ (let ((phases (sort! (list pk1 pk2 pk3 pk4)
+ (lambda (a b)
+ (< (vector-ref a 1) (vector-ref b 1))))))
+ (format #t "~,8F~% ~A~% ~A~% ~A~% ~A~%"
+ (car data)
+ (list-ref phases 0)
+ (list-ref phases 1)
+ (list-ref phases 2)
+ (list-ref phases 3)
+ ))))))
+
+;;; is it heading for (sqrt (* 2 n))?
+
+
+
;; 1 Mar 5446.42, 0.576
;; 1 Apr 5405.890, 0.575
;; 1 May 5138.261, 0.562
@@ -5121,14 +5375,21 @@
;; 1 Jul 4669.101, 0.540
;; 1 Aug 4633.454, 0.539
;; 1 Sep 4616.517, 0.538
-;; 1 Oct 4592.994, 0.537
+;; 1 Oct 4592.994, 0.537
+;; 1 Nov 4560.903, 0.536
-;all peaks... Thu 17-Sep-2009 04:54
+;all peaks... Fri 06-Nov-2009 11:51
;(0.0029939404030834 87)
-;odd peaks... Thu 17-Sep-2009 12:47
+;odd peaks... Fri 06-Nov-2009 14:54
+;odd 1024: peak-phases value: 51.239994, current: 51.223308942004, diff: -0.016685057995865
;odd 2048: peak-phases value: 83.108, current: 83.104896182737, diff: -0.0031038172633231
-;(0.0031038172633231 2048)
-;even peaks... Thu 17-Sep-2009 21:19
+;(0.016685057995865 1024)
+;even peaks... Fri 06-Nov-2009 18:09
;even 2048: peak-phases value: 87.300233499882, current: 87.471149563312, diff: 0.17091606342971
;(0.17091606342971 2048)
-;prime peaks... Fri 18-Sep-2009 05:25
+;prime peaks... Fri 06-Nov-2009 21:08
+;prime 1024: peak-phases value: 70.14, current: 70.135034607593, diff: -0.0049653924066604
+;prime 2048: peak-phases value: 102.619, current: 102.51726365169, diff: -0.10173634830561
+;(0.10173634830561 2048)
+;all done! Fri 06-Nov-2009 23:48
+
diff --git a/pix/mixdialog.png b/pix/mixdialog.png
new file mode 100644
index 0000000..24c0b9c
--- /dev/null
+++ b/pix/mixdialog.png
Binary files differ
diff --git a/pix/peak-path.png b/pix/peak-path.png
new file mode 100644
index 0000000..d1b6c59
--- /dev/null
+++ b/pix/peak-path.png
Binary files differ
diff --git a/pix/phase-paths.png b/pix/phase-paths.png
new file mode 100644
index 0000000..ff8d1bc
--- /dev/null
+++ b/pix/phase-paths.png
Binary files differ
diff --git a/pix/rr2.png b/pix/rr2.png
new file mode 100644
index 0000000..906c644
--- /dev/null
+++ b/pix/rr2.png
Binary files differ
diff --git a/pix/s65536.png b/pix/s65536.png
deleted file mode 100644
index 343c1ce..0000000
--- a/pix/s65536.png
+++ /dev/null
Binary files differ
diff --git a/pix/sqrt.png b/pix/sqrt.png
index 50e1c91..694fc11 100644
--- a/pix/sqrt.png
+++ b/pix/sqrt.png
Binary files differ
diff --git a/pix/sqrt1.png b/pix/sqrt1.png
index c960a4b..2b3c361 100644
--- a/pix/sqrt1.png
+++ b/pix/sqrt1.png
Binary files differ
diff --git a/play.rb b/play.rb
index e975e42..f41c0dc 100644
--- a/play.rb
+++ b/play.rb
@@ -2,7 +2,7 @@
# Translator: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Fri Apr 22 23:36:39 CEST 2005
-# Changed: Fri Jul 06 01:53:01 CEST 2007
+# Changed: Thu Nov 26 18:19:16 CET 2009
# Commentary:
#
@@ -94,10 +94,10 @@ def play_often(n)
play_once = lambda do |reason|
if plays > 0 and (not c_g?) and reason == 0
plays -= 1
- play(0, false, false, false, false, false, play_once)
+ play(selected_sound, :wait, play_once)
end
end
- play(0, false, false, false, false, false, play_once)
+ play(selected_sound, :wait, play_once)
end
# bind_key(?p, 0, lambda do |n| play_often([1, n].max) end, false, "play often")
@@ -121,10 +121,10 @@ add_help(:play_region_forever,
def play_region_forever(reg)
play_region_again = lambda do |reason|
if (not c_g?) and reason == 0
- play_region(reg, false, play_region_again)
+ play(reg, :stop, play_region_again)
end
end
- play_region(reg, false, play_region_again)
+ play(reg, :stop, play_region_again)
end
# bind_key(?p, 0,
# lambda do |n| play_region_forever(Snd.regions[[0, n].max]) end,
diff --git a/play.scm b/play.scm
index 5b2da50..f52999f 100644
--- a/play.scm
+++ b/play.scm
@@ -114,8 +114,8 @@
(= reason 0))
(begin
(set! plays (- plays 1))
- (play 0 #f #f #f #f #f play-once))))
- (play 0 #f #f #f #f #f play-once)))
+ (play (selected-sound) :start 0 :stop play-once))))
+ (play (selected-sound) :start 0 :stop play-once)))
;(bind-key #\p 0 (lambda (n) "play often" (play-often (max 1 n))))
@@ -127,8 +127,8 @@
(define (play-once reason)
(if (and (not (c-g?))
(= reason 0))
- (play 0 #f #f #f #f #f play-once)))
- (play 0 #f #f #f #f #f play-once))
+ (play (selected-sound) :start 0 :stop play-once)))
+ (play (selected-sound) :start 0 :stop play-once))
;;; -------- play region over and over until C-g typed
@@ -181,16 +181,10 @@
;;; -------- hold DAC open and play sounds via keyboard
-;;;
-;;; if for some reason you want the DAC to run continuously in the background,
-;;; use the "end" argument to the first player seen upon starting the dac:
-(define (start-dac)
+(define* (start-dac (sr 44100) (chans 1))
"(start-dac) starts the DAC running continuously in the background"
- (let ((hidden-player (make-player)))
- (set! (amp-control hidden-player) 0.0)
- (add-player hidden-player 0 123456789)
- (start-playing 1 22050)))
+ (play #f :srate sr :channels chans))
(define stop-dac stop-playing)
diff --git a/po/Makefile.in b/po/Makefile.in
new file mode 100644
index 0000000..3e5c03b
--- /dev/null
+++ b/po/Makefile.in
@@ -0,0 +1,317 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+
+PACKAGE = snd
+VERSION = 7.13
+
+SHELL = /bin/sh
+
+
+srcdir = .
+top_srcdir = ..
+
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+datadir = ${prefix}/share
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+MKINSTALLDIRS = ./mkinstalldirs
+mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
+
+GMSGFMT = /usr/local/bin/msgfmt
+MSGFMT = /usr/local/bin/msgfmt
+XGETTEXT = /usr/local/bin/xgettext
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = /usr/local/bin/msgmerge --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in Makevars remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
+
+.po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: all-yes
+
+all-yes: $(CATALOGS)
+all-no:
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)'
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+$(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-yes
+ if test "$(PACKAGE)" = "gettext"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common); do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-yes
+ if test "$(PACKAGE)" = "gettext"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-yes
+ if test "$(PACKAGE)" = "gettext"; then \
+ for file in $(DISTFILES.common); do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+uninstall-data-no:
+uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+check: all
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ $(MAKE) update-po
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir); \
+ else \
+ cp -p $(srcdir)/$$file $(distdir); \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# General rule for updating PO files.
+
+.nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/POTFILES.in~ b/po/POTFILES.in~
index 42b3c82..9776e63 100644
--- a/po/POTFILES.in~
+++ b/po/POTFILES.in~
@@ -50,7 +50,6 @@ snd-mix.c
snd-nogui.c
snd-print.c
snd-region.c
-snd-run.c
snd-select.c
snd-sig.c
snd-snd.c
diff --git a/po/de.gmo b/po/de.gmo
new file mode 100644
index 0000000..98d09cc
--- /dev/null
+++ b/po/de.gmo
Binary files differ
diff --git a/po/snd.pot b/po/snd.pot
index 9ba941a..44f4f68 100644
--- a/po/snd.pot
+++ b/po/snd.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-16 06:49-0700\n"
+"POT-Creation-Date: 2009-11-28 03:34-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,116 +16,111 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: snd-chn.c:665 snd-chn.c:7841
+#: snd-chn.c:642 snd-chn.c:7936
msgid "time (beats)"
msgstr ""
-#: snd-chn.c:666 snd-chn.c:7842
+#: snd-chn.c:643 snd-chn.c:7937
msgid "time (measures)"
msgstr ""
-#: snd-chn.c:667 snd-chn.c:7843
+#: snd-chn.c:644 snd-chn.c:7938
msgid "time (samples)"
msgstr ""
-#: snd-chn.c:668 snd-chn.c:7844
+#: snd-chn.c:645 snd-chn.c:7939
msgid "time (percent)"
msgstr ""
-#: snd-chn.c:669 snd-chn.c:3015 snd-chn.c:7845 snd-edits.c:265 snd-fft.c:679
+#: snd-chn.c:646 snd-chn.c:2953 snd-chn.c:7940 snd-edits.c:265 snd-fft.c:679
#: snd-fft.c:696
msgid "time"
msgstr ""
-#: snd-chn.c:740 snd-edits.c:260
+#: snd-chn.c:717 snd-edits.c:260
msgid "(no data)"
msgstr ""
-#: snd-chn.c:1351
+#: snd-chn.c:1328
msgid "(len: "
msgstr ""
-#: snd-chn.c:2619 snd-chn.c:3186
+#: snd-chn.c:2596 snd-chn.c:3120
msgid "stopped"
msgstr ""
-#: snd-chn.c:4516 snd-chn.c:4532
+#: snd-chn.c:4450 snd-chn.c:4466
#, c-format
msgid "cursor at %s (sample "
msgstr ""
-#: snd-chn.c:4523
+#: snd-chn.c:4457
#, c-format
msgid "chan %d, cursor at %s (sample "
msgstr ""
-#: snd-chn.c:4687
+#: snd-chn.c:4705
#, c-format
msgid "(%.1f Hz: %.*f%s, %.*f radians (unscaled: %.*f)"
msgstr ""
-#: snd-chn.c:4691 snd-chn.c:4702 snd-chn.c:4733 snd-genv.c:1136 snd-gfft.c:953
-#: snd-gmix.c:831 snd-grec.c:406 snd-gsnd.c:2059 snd-xenv.c:1150
-#: snd-xfft.c:1626 snd-xmix.c:866 snd-xrec.c:429 snd-xsnd.c:2770
+#: snd-chn.c:4709 snd-chn.c:4720 snd-chn.c:4751 snd-genv.c:1136 snd-gfft.c:953
+#: snd-gmix.c:914 snd-grec.c:406 snd-gsnd.c:2059 snd-xenv.c:1150
+#: snd-xfft.c:1626 snd-xmix.c:951 snd-xrec.c:429 snd-xsnd.c:2770
msgid "dB"
msgstr ""
-#: snd-chn.c:4697
+#: snd-chn.c:4715
#, c-format
msgid "(%.1f%s: %.*f%s (unscaled: %.*f)"
msgstr ""
-#: snd-chn.c:4699
+#: snd-chn.c:4717
msgid " samps"
msgstr ""
-#: snd-chn.c:4699
+#: snd-chn.c:4717
msgid " Hz"
msgstr ""
-#: snd-chn.c:4729
+#: snd-chn.c:4747
#, c-format
msgid "(time: %.2f, freq: %.1f, val: %.*f%s (raw: %.*f))"
msgstr ""
-#: snd-chn.c:5120
+#: snd-chn.c:5165 snd-chn.c:5171
#, c-format
msgid "mark %d at sample "
msgstr ""
-#: snd-chn.c:5137
-#, c-format
-msgid "mix %d "
-msgstr ""
-
-#: snd-chn.c:7992
+#: snd-chn.c:8087
#, c-format
msgid ""
"Snd: fft peaks (%s)\n"
"\n"
msgstr ""
-#: snd-chn.c:8049
+#: snd-chn.c:8144
#, c-format
msgid ": chan %d"
msgstr ""
-#: snd-chn.c:8050
+#: snd-chn.c:8145
#, c-format
msgid ", fft "
msgstr ""
-#: snd-dac.c:1840
+#: snd-dac.c:1878
#, c-format
msgid "can't play %s: %s"
msgstr ""
-#: snd-dac.c:2088 snd-dac.c:2217 snd-dac.c:2304
+#: snd-dac.c:2126 snd-dac.c:2255 snd-dac.c:2342
#, c-format
msgid "folding %d chans into %d "
msgstr ""
-#: snd-dac.c:2258
+#: snd-dac.c:2296
#, c-format
msgid "can't get audio output chans? (%d) "
msgstr ""
@@ -178,7 +173,7 @@ msgstr ""
msgid "can't read %s"
msgstr ""
-#: snd-edits.c:6136 snd-file.c:1345 snd-file.c:2031 snd-snd.c:347
+#: snd-edits.c:6136 snd-file.c:1345 snd-file.c:1988 snd-snd.c:347
#, c-format
msgid "%s no longer exists!"
msgstr ""
@@ -198,7 +193,7 @@ msgstr ""
msgid "can't save edits; %s has disappeared!"
msgstr ""
-#: snd-edits.c:8611
+#: snd-edits.c:8587
msgid "maxamp check interrupted..."
msgstr ""
@@ -282,34 +277,34 @@ msgstr ""
msgid "%s is read-protected!"
msgstr ""
-#: snd-file.c:2787 snd-file.c:2794
+#: snd-file.c:2744 snd-file.c:2751
#, c-format
msgid "%s is write-protected"
msgstr ""
-#: snd-file.c:4182
+#: snd-file.c:4135
#, c-format
msgid "%s mixed in at "
msgstr ""
-#: snd-file.c:4183
+#: snd-file.c:4136
msgid "selected files mixed in at "
msgstr ""
-#: snd-file.c:4266
+#: snd-file.c:4219
#, c-format
msgid "%s inserted at "
msgstr ""
-#: snd-file.c:4267
+#: snd-file.c:4220
msgid "selected files inserted at "
msgstr ""
-#: snd-file.c:5054
+#: snd-file.c:5007
msgid "sound is write-protected"
msgstr ""
-#: snd-file.c:5110
+#: snd-file.c:5063
#, c-format
msgid "changing %s's header from %s to aifc to accommodate loop info"
msgstr ""
@@ -331,78 +326,74 @@ msgstr ""
msgid "search already in progress"
msgstr ""
-#: snd-gchn.c:849 snd-xchn.c:1005
+#: snd-gchn.c:831 snd-xchn.c:1023
msgid "f"
msgstr ""
-#: snd-gchn.c:856 snd-xchn.c:1010
+#: snd-gchn.c:838 snd-xchn.c:1028
msgid "w"
msgstr ""
-#: snd-gdraw.c:1133
+#: snd-gdraw.c:1111
msgid "Color"
msgstr ""
-#: snd-gdraw.c:1144 snd-genv.c:265 snd-gfft.c:870 snd-gfile.c:406
+#: snd-gdraw.c:1122 snd-genv.c:265 snd-gfft.c:870 snd-gfile.c:406
#: snd-gfile.c:3451 snd-gfile.c:3755 snd-gfile.c:4133 snd-gfile.c:5255
-#: snd-ghelp.c:289 snd-glistener.c:63 snd-gmix.c:649 snd-gprefs.c:1638
+#: snd-ghelp.c:291 snd-glistener.c:63 snd-gmix.c:726 snd-gprefs.c:1638
#: snd-gprint.c:289 snd-grec.c:370 snd-gregion.c:452 snd-xdraw.c:959
-#: snd-xenv.c:256 snd-xenv.c:950 snd-xfft.c:1024 snd-xfile.c:1265
-#: snd-xfile.c:1602 snd-xfile.c:3218 snd-xfile.c:3790 snd-xfile.c:4226
-#: snd-xfile.c:4553 snd-xfile.c:5822 snd-xfind.c:121 snd-xfind.c:181
-#: snd-xhelp.c:345 snd-xmix.c:588 snd-xprefs.c:1797 snd-xprint.c:202
+#: snd-xenv.c:256 snd-xenv.c:950 snd-xfft.c:1024 snd-xfile.c:1267
+#: snd-xfile.c:1604 snd-xfile.c:3220 snd-xfile.c:3792 snd-xfile.c:4228
+#: snd-xfile.c:4555 snd-xfile.c:5824 snd-xfind.c:121 snd-xfind.c:181
+#: snd-xhelp.c:355 snd-xmix.c:667 snd-xprefs.c:1797 snd-xprint.c:202
#: snd-xrec.c:340 snd-xregion.c:444
msgid "Go Away"
msgstr ""
-#: snd-gdraw.c:1205 snd-xdraw.c:1114
+#: snd-gdraw.c:1183 snd-xdraw.c:1114
msgid "light"
msgstr ""
-#: snd-gdraw.c:1210 snd-xdraw.c:1124
+#: snd-gdraw.c:1188 snd-xdraw.c:1124
msgid "dark"
msgstr ""
-#: snd-gdraw.c:1245
+#: snd-gdraw.c:1223
msgid "data cutoff:"
msgstr ""
-#: snd-gdraw.c:1260 snd-xdraw.c:1174
+#: snd-gdraw.c:1238 snd-xdraw.c:1174
msgid "invert"
msgstr ""
-#: snd-gdraw.c:1302
+#: snd-gdraw.c:1280
msgid "x angle:"
msgstr ""
-#: snd-gdraw.c:1323
+#: snd-gdraw.c:1301
msgid "y angle:"
msgstr ""
-#: snd-gdraw.c:1344
+#: snd-gdraw.c:1322
msgid "z angle:"
msgstr ""
-#: snd-gdraw.c:1371
+#: snd-gdraw.c:1349
msgid "x scale:"
msgstr ""
-#: snd-gdraw.c:1392
+#: snd-gdraw.c:1370
msgid "y scale:"
msgstr ""
-#: snd-gdraw.c:1414
+#: snd-gdraw.c:1392
msgid "z scale:"
msgstr ""
-#: snd-gdraw.c:1441
+#: snd-gdraw.c:1419
msgid "hop: "
msgstr ""
-#: snd-gdraw.c:1458 snd-xdraw.c:1390
-msgid "use OpenGL"
-msgstr ""
-
#: snd-genv.c:15 snd-genv.c:1102 snd-xenv.c:13 snd-xenv.c:1114
msgid "amp env:"
msgstr ""
@@ -447,8 +438,8 @@ msgid "Undo&Apply"
msgstr ""
#: snd-genv.c:943 snd-gfile.c:3453 snd-gfile.c:3760 snd-gfile.c:5257
-#: snd-xdraw.c:961 snd-xenv.c:994 snd-xfile.c:3816 snd-xfile.c:4587
-#: snd-xfile.c:5852
+#: snd-xdraw.c:961 snd-xenv.c:994 snd-xfile.c:3818 snd-xfile.c:4589
+#: snd-xfile.c:5854
msgid "Reset"
msgstr ""
@@ -504,11 +495,11 @@ msgstr ""
msgid "envs:"
msgstr ""
-#: snd-genv.c:1126 snd-gmix.c:821 snd-xenv.c:1176 snd-xmix.c:859
+#: snd-genv.c:1126 snd-gmix.c:904 snd-xenv.c:1176 snd-xmix.c:944
msgid "clip"
msgstr ""
-#: snd-genv.c:1131 snd-gmix.c:826 snd-xenv.c:1163 snd-xmix.c:863
+#: snd-genv.c:1131 snd-gmix.c:909 snd-xenv.c:1163 snd-xmix.c:948
msgid "wave"
msgstr ""
@@ -582,46 +573,46 @@ msgstr ""
msgid "wavelet"
msgstr ""
-#: snd-gfile.c:408 snd-xfile.c:1597 snd-xfile.c:3336
+#: snd-gfile.c:408 snd-xfile.c:1599 snd-xfile.c:3338
msgid "Mkdir"
msgstr ""
-#: snd-gfile.c:413 snd-xfile.c:3324
+#: snd-gfile.c:413 snd-xfile.c:3326
msgid "Extract"
msgstr ""
-#: snd-gfile.c:1379 snd-xfile.c:931
+#: snd-gfile.c:1379 snd-xfile.c:933
msgid "sound files only"
msgstr ""
-#: snd-gfile.c:1385 snd-xfile.c:935
+#: snd-gfile.c:1385 snd-xfile.c:937
msgid "play selected sound"
msgstr ""
-#: snd-gfile.c:1522 snd-gfile.c:1682 snd-gfile.c:1780 snd-xfile.c:1493
-#: snd-xfile.c:1648 snd-xfile.c:1747
+#: snd-gfile.c:1522 snd-gfile.c:1682 snd-gfile.c:1780 snd-xfile.c:1495
+#: snd-xfile.c:1650 snd-xfile.c:1749
msgid "no filename given"
msgstr ""
-#: snd-gfile.c:1556 snd-gfile.c:1716 snd-gfile.c:1817 snd-xfile.c:1530
-#: snd-xfile.c:1686 snd-xfile.c:1787
+#: snd-gfile.c:1556 snd-gfile.c:1716 snd-gfile.c:1817 snd-xfile.c:1532
+#: snd-xfile.c:1688 snd-xfile.c:1789
#, c-format
msgid "%s is a directory"
msgstr ""
-#: snd-gfile.c:1600 snd-gfile.c:2924 snd-xfile.c:1548 snd-xfile.c:3147
+#: snd-gfile.c:1600 snd-gfile.c:2924 snd-xfile.c:1550 snd-xfile.c:3149
#, c-format
msgid "can't make %s: %s"
msgstr ""
#: snd-gfile.c:1622 snd-gfile.c:1638 snd-gfile.c:1639 snd-gmenu.c:496
-#: snd-gmenu.c:497 snd-gmenu.c:650 snd-gmenu.c:651 snd-xfile.c:1573
+#: snd-gmenu.c:497 snd-gmenu.c:650 snd-gmenu.c:651 snd-xfile.c:1575
#: snd-xmenu.c:529 snd-xmenu.c:615
msgid "View"
msgstr ""
#: snd-gfile.c:1622 snd-gfile.c:1638 snd-gfile.c:1639 snd-gmenu.c:395
-#: snd-gmenu.c:396 snd-xfile.c:1578 snd-xfile.c:5951 snd-xmenu.c:386
+#: snd-gmenu.c:396 snd-xfile.c:1580 snd-xfile.c:5953 snd-xmenu.c:386
#: snd-xmenu.c:487
msgid "Open"
msgstr ""
@@ -630,37 +621,37 @@ msgstr ""
msgid "view:"
msgstr ""
-#: snd-gfile.c:1623 snd-xfile.c:1579
+#: snd-gfile.c:1623 snd-xfile.c:1581
msgid "open:"
msgstr ""
-#: snd-gfile.c:1709 snd-kbd.c:971 snd-xfile.c:1678
+#: snd-gfile.c:1709 snd-kbd.c:971 snd-xfile.c:1680
#, c-format
msgid "%s mixed in at cursor"
msgstr ""
#: snd-gfile.c:1729 snd-gfile.c:5493 snd-gmenu.c:454 snd-gmenu.c:455
-#: snd-gmenu.c:1030 snd-gmenu.c:1031 snd-gregion.c:457 snd-xfile.c:6012
+#: snd-gmenu.c:1030 snd-gmenu.c:1031 snd-gregion.c:457 snd-xfile.c:6014
#: snd-xmenu.c:388 snd-xmenu.c:510 snd-xmenu.c:833 snd-xregion.c:469
msgid "Mix"
msgstr ""
-#: snd-gfile.c:1729 snd-gmix.c:686 snd-xmix.c:652
+#: snd-gfile.c:1729 snd-gmix.c:769 snd-xmix.c:737
msgid "mix:"
msgstr ""
-#: snd-gfile.c:1810 snd-kbd.c:984 snd-xfile.c:1779
+#: snd-gfile.c:1810 snd-kbd.c:984 snd-xfile.c:1781
#, c-format
msgid "%s inserted at cursor"
msgstr ""
#: snd-gfile.c:1829 snd-gfile.c:5494 snd-gmenu.c:462 snd-gmenu.c:463
-#: snd-gmenu.c:1072 snd-gmenu.c:1073 snd-gregion.c:454 snd-xfile.c:6026
+#: snd-gmenu.c:1072 snd-gmenu.c:1073 snd-gregion.c:454 snd-xfile.c:6028
#: snd-xmenu.c:389 snd-xmenu.c:514 snd-xmenu.c:854 snd-xregion.c:446
msgid "Insert"
msgstr ""
-#: snd-gfile.c:1829 snd-xfile.c:1808
+#: snd-gfile.c:1829 snd-xfile.c:1810
msgid "insert:"
msgstr ""
@@ -688,55 +679,55 @@ msgstr ""
msgid "location:"
msgstr ""
-#: snd-gfile.c:2434 snd-xfile.c:2556
+#: snd-gfile.c:2434 snd-xfile.c:2558
msgid "samples:"
msgstr ""
-#: snd-gfile.c:2463 snd-xfile.c:2612
+#: snd-gfile.c:2463 snd-xfile.c:2614
msgid "comment:"
msgstr ""
#: snd-gfile.c:2551 snd-gmenu.c:430 snd-gmenu.c:431 snd-gmenu.c:1024
-#: snd-gmenu.c:1025 snd-gmenu.c:1272 snd-gmenu.c:1273 snd-xfile.c:2732
-#: snd-xfile.c:3206 snd-xfile.c:4228 snd-xmenu.c:387 snd-xmenu.c:498
+#: snd-gmenu.c:1025 snd-gmenu.c:1272 snd-gmenu.c:1273 snd-xfile.c:2734
+#: snd-xfile.c:3208 snd-xfile.c:4230 snd-xmenu.c:387 snd-xmenu.c:498
#: snd-xmenu.c:830 snd-xmenu.c:996 snd-xprefs.c:1796
msgid "Save"
msgstr ""
-#: snd-gfile.c:2622 snd-kbd.c:874 snd-xfile.c:2801
+#: snd-gfile.c:2622 snd-kbd.c:874 snd-xfile.c:2803
msgid "no selection to save"
msgstr ""
-#: snd-gfile.c:2623 snd-xfile.c:2802
+#: snd-gfile.c:2623 snd-xfile.c:2804
msgid "can't extract: no selection"
msgstr ""
-#: snd-gfile.c:2633 snd-xfile.c:2812
+#: snd-gfile.c:2633 snd-xfile.c:2814
msgid "no region to save"
msgstr ""
-#: snd-gfile.c:2642 snd-xfile.c:2821
+#: snd-gfile.c:2642 snd-xfile.c:2823
msgid "nothing to save"
msgstr ""
-#: snd-gfile.c:2643 snd-xfile.c:2822
+#: snd-gfile.c:2643 snd-xfile.c:2824
msgid "nothing to extract"
msgstr ""
-#: snd-gfile.c:2654 snd-xfile.c:2833
+#: snd-gfile.c:2654 snd-xfile.c:2835
msgid "can't save: no file name given"
msgstr ""
-#: snd-gfile.c:2655 snd-xfile.c:2834
+#: snd-gfile.c:2655 snd-xfile.c:2836
msgid "can't extract: no file name given"
msgstr ""
-#: snd-gfile.c:2716 snd-xfile.c:2899
+#: snd-gfile.c:2716 snd-xfile.c:2901
#, c-format
msgid "%s cancelled by %s"
msgstr ""
-#: snd-gfile.c:2733 snd-xfile.c:2917
+#: snd-gfile.c:2733 snd-xfile.c:2919
#, c-format
msgid "can't overwrite %s (it is write-protected)"
msgstr ""
@@ -746,28 +737,28 @@ msgstr ""
msgid "%s exists%s. To overwrite it, click '%s'"
msgstr ""
-#: snd-gfile.c:2763 snd-gfile.c:3631 snd-xfile.c:2947 snd-xfile.c:3665
+#: snd-gfile.c:2763 snd-gfile.c:3631 snd-xfile.c:2949 snd-xfile.c:3667
msgid "DoIt"
msgstr ""
#: snd-gfile.c:2936 snd-gfile.c:2964 snd-gfile.c:2967 snd-gfile.c:3013
-#: snd-xfile.c:3127 snd-xfile.c:3130 snd-xfile.c:3203
+#: snd-xfile.c:3129 snd-xfile.c:3132 snd-xfile.c:3205
msgid "save as:"
msgstr ""
-#: snd-gfile.c:2955 snd-xfile.c:3118
+#: snd-gfile.c:2955 snd-xfile.c:3120
msgid "save as (file write-protected?):"
msgstr ""
-#: snd-gfile.c:2958 snd-xfile.c:3121
+#: snd-gfile.c:2958 snd-xfile.c:3123
msgid "save as (overwriting):"
msgstr ""
-#: snd-gfile.c:2963 snd-xfile.c:3126
+#: snd-gfile.c:2963 snd-xfile.c:3128
msgid "save as (no such directory?):"
msgstr ""
-#: snd-gfile.c:3007 snd-xfile.c:3210 snd-xfile.c:3364
+#: snd-gfile.c:3007 snd-xfile.c:3212 snd-xfile.c:3366
#, c-format
msgid "save %s"
msgstr ""
@@ -777,7 +768,7 @@ msgstr ""
msgid "Save as"
msgstr ""
-#: snd-gfile.c:3114 snd-xfile.c:3427
+#: snd-gfile.c:3114 snd-xfile.c:3429
msgid "current selection"
msgstr ""
@@ -785,59 +776,59 @@ msgstr ""
msgid "current region"
msgstr ""
-#: snd-gfile.c:3439 snd-xfile.c:4557
+#: snd-gfile.c:3439 snd-xfile.c:4559
msgid "No header on file"
msgstr ""
-#: snd-gfile.c:3558 snd-gfile.c:3757 snd-xfile.c:3583 snd-xfile.c:3791
-#: snd-xfile.c:4555
+#: snd-gfile.c:3558 snd-gfile.c:3757 snd-xfile.c:3585 snd-xfile.c:3793
+#: snd-xfile.c:4557
msgid "Ok"
msgstr ""
-#: snd-gfile.c:3606 snd-xfile.c:3637
+#: snd-gfile.c:3606 snd-xfile.c:3639
msgid "new sound needs a file name ('New file:' field is empty)"
msgstr ""
-#: snd-gfile.c:3629 snd-xfile.c:3661
+#: snd-gfile.c:3629 snd-xfile.c:3663
#, c-format
msgid "%s exists. If you want to overwrite it, click 'DoIt'"
msgstr ""
-#: snd-gfile.c:3678 snd-xfile.c:3724
+#: snd-gfile.c:3678 snd-xfile.c:3726
#, c-format
msgid "new-%d.%s"
msgstr ""
-#: snd-gfile.c:3744 snd-xfile.c:3788
+#: snd-gfile.c:3744 snd-xfile.c:3790
msgid "New file"
msgstr ""
-#: snd-gfile.c:3772 snd-xfile.c:3829
+#: snd-gfile.c:3772 snd-xfile.c:3831
msgid "New file:"
msgstr ""
-#: snd-gfile.c:3919 snd-xfile.c:4000
+#: snd-gfile.c:3919 snd-xfile.c:4002
#, c-format
msgid "Add header to (write-protected) %s"
msgstr ""
-#: snd-gfile.c:3920 snd-xfile.c:4001
+#: snd-gfile.c:3920 snd-xfile.c:4003
#, c-format
msgid "Edit header of (write-protected) %s"
msgstr ""
-#: snd-gfile.c:3927 snd-xfile.c:4008
+#: snd-gfile.c:3927 snd-xfile.c:4010
#, c-format
msgid "Add header to %s"
msgstr ""
-#: snd-gfile.c:3928 snd-xfile.c:4009
+#: snd-gfile.c:3928 snd-xfile.c:4011
#, c-format
msgid "Edit header of %s"
msgstr ""
#: snd-gfile.c:4142 snd-gmenu.c:636 snd-gmenu.c:637 snd-menu.c:59
-#: snd-xfile.c:4229 snd-xmenu.c:602
+#: snd-xfile.c:4231 snd-xmenu.c:602
msgid "Edit Header"
msgstr ""
@@ -845,53 +836,53 @@ msgstr ""
msgid "Info"
msgstr ""
-#: snd-gfile.c:5237 snd-gmenu.c:675 snd-gmenu.c:676 snd-xfile.c:5828
+#: snd-gfile.c:5237 snd-gmenu.c:675 snd-gmenu.c:676 snd-xfile.c:5830
#: snd-xmenu.c:273 snd-xmenu.c:627
msgid "Files"
msgstr ""
-#: snd-gfile.c:5250 snd-xfile.c:5824
+#: snd-gfile.c:5250 snd-xfile.c:5826
msgid "New Viewer"
msgstr ""
-#: snd-gfile.c:5304 snd-xfile.c:6411
+#: snd-gfile.c:5304 snd-xfile.c:6413
msgid "files"
msgstr ""
-#: snd-gfile.c:5317 snd-gregion.c:501 snd-gsnd.c:1802 snd-xfile.c:6432
+#: snd-gfile.c:5317 snd-gregion.c:501 snd-gsnd.c:1802 snd-xfile.c:6434
#: snd-xregion.c:523 snd-xsnd.c:2141
msgid "play"
msgstr ""
-#: snd-gfile.c:5326 snd-xfile.c:6461
+#: snd-gfile.c:5326 snd-xfile.c:6463
msgid "a..z"
msgstr ""
-#: snd-gfile.c:5327 snd-xfile.c:6462
+#: snd-gfile.c:5327 snd-xfile.c:6464
msgid "z..a"
msgstr ""
-#: snd-gfile.c:5328 snd-xfile.c:6463
+#: snd-gfile.c:5328 snd-xfile.c:6465
msgid "new..old"
msgstr ""
-#: snd-gfile.c:5329 snd-xfile.c:6464
+#: snd-gfile.c:5329 snd-xfile.c:6466
msgid "old..new"
msgstr ""
-#: snd-gfile.c:5330 snd-xfile.c:6465
+#: snd-gfile.c:5330 snd-xfile.c:6467
msgid "small..big"
msgstr ""
-#: snd-gfile.c:5331 snd-xfile.c:6466
+#: snd-gfile.c:5331 snd-xfile.c:6468
msgid "big..small"
msgstr ""
-#: snd-gfile.c:5355 snd-xfile.c:6457
+#: snd-gfile.c:5355 snd-xfile.c:6459
msgid "sort"
msgstr ""
-#: snd-gfile.c:5409 snd-xfile.c:6321
+#: snd-gfile.c:5409 snd-xfile.c:6323
msgid "add:"
msgstr ""
@@ -899,53 +890,53 @@ msgstr ""
msgid "(no files selected)"
msgstr ""
-#: snd-gfile.c:5456 snd-xfile.c:5966
+#: snd-gfile.c:5456 snd-xfile.c:5968
msgid "Unlist"
msgstr ""
-#: snd-gfile.c:5508 snd-xfile.c:6032
+#: snd-gfile.c:5508 snd-xfile.c:6034
msgid "at cursor"
msgstr ""
-#: snd-gfile.c:5514 snd-xfile.c:6049
+#: snd-gfile.c:5514 snd-xfile.c:6051
msgid "at end"
msgstr ""
-#: snd-gfile.c:5520 snd-xfile.c:6065
+#: snd-gfile.c:5520 snd-xfile.c:6067
msgid "at beginning"
msgstr ""
-#: snd-gfile.c:5538 snd-xfile.c:6081
+#: snd-gfile.c:5538 snd-xfile.c:6083
msgid "at sample"
msgstr ""
-#: snd-gfile.c:5547 snd-xfile.c:6115
+#: snd-gfile.c:5547 snd-xfile.c:6117
msgid "at mark"
msgstr ""
-#: snd-gfile.c:5568 snd-gmix.c:784 snd-gsnd.c:1844 snd-xfile.c:6161
-#: snd-xmix.c:771 snd-xsnd.c:2211
+#: snd-gfile.c:5568 snd-gmix.c:867 snd-gsnd.c:1844 snd-xfile.c:6163
+#: snd-xmix.c:856 snd-xsnd.c:2211
msgid "amp:"
msgstr ""
-#: snd-gfile.c:5596 snd-gmix.c:745 snd-gsnd.c:1872 snd-xfile.c:6214
-#: snd-xmix.c:715 snd-xsnd.c:2265
+#: snd-gfile.c:5596 snd-gmix.c:828 snd-gsnd.c:1872 snd-xfile.c:6216
+#: snd-xmix.c:800 snd-xsnd.c:2265
msgid "speed:"
msgstr ""
-#: snd-ghelp.c:278 snd-gmenu.c:976 snd-gmenu.c:977 snd-xdraw.c:960
-#: snd-xenv.c:951 snd-xfft.c:1025 snd-xfile.c:3789 snd-xfile.c:4227
-#: snd-xfile.c:4554 snd-xfile.c:5823 snd-xhelp.c:343 snd-xmenu.c:807
-#: snd-xmix.c:590 snd-xprefs.c:1793 snd-xprint.c:201 snd-xrec.c:341
+#: snd-ghelp.c:280 snd-gmenu.c:976 snd-gmenu.c:977 snd-xdraw.c:960
+#: snd-xenv.c:951 snd-xfft.c:1025 snd-xfile.c:3791 snd-xfile.c:4229
+#: snd-xfile.c:4556 snd-xfile.c:5825 snd-xhelp.c:353 snd-xmenu.c:807
+#: snd-xmix.c:669 snd-xprefs.c:1793 snd-xprint.c:201 snd-xrec.c:341
#: snd-xregion.c:445
msgid "Help"
msgstr ""
-#: snd-ghelp.c:312
+#: snd-ghelp.c:314
msgid "related topics"
msgstr ""
-#: snd-ghelp.c:319 snd-xhelp.c:443
+#: snd-ghelp.c:321 snd-xhelp.c:453
msgid "help topic:"
msgstr ""
@@ -953,55 +944,55 @@ msgstr ""
msgid "Completions"
msgstr ""
-#: snd-gmain.c:566
+#: snd-gmain.c:567
#, c-format
msgid "can't get %s -- will use white\n"
msgstr ""
-#: snd-gmain.c:571
+#: snd-gmain.c:572
#, c-format
msgid "can't get %s -- will use black\n"
msgstr ""
-#: snd-gmain.c:753
+#: snd-gmain.c:748
#, c-format
msgid "can't find tiny font: %s"
msgstr ""
-#: snd-gmain.c:757
+#: snd-gmain.c:752
#, c-format
msgid "can't find axis label font: %s"
msgstr ""
-#: snd-gmain.c:761
+#: snd-gmain.c:756
#, c-format
msgid "can't find axis numbers font: %s"
msgstr ""
-#: snd-gmain.c:765
+#: snd-gmain.c:760
#, c-format
msgid "can't find peaks font: %s"
msgstr ""
-#: snd-gmain.c:769
+#: snd-gmain.c:764
#, c-format
msgid "can't find bold peaks font: %s"
msgstr ""
-#: snd-gmain.c:772
+#: snd-gmain.c:767
#, c-format
msgid "can't find listener font: %s"
msgstr ""
-#: snd-gmain.c:1091 snd-nogui.c:734 snd-xmain.c:1151
+#: snd-gmain.c:1086 snd-nogui.c:753 snd-xmain.c:1154
msgid "Caught seg fault (will try to continue):\n"
msgstr ""
-#: snd-gmain.c:1094 snd-nogui.c:737 snd-xmain.c:1154
+#: snd-gmain.c:1089 snd-nogui.c:756 snd-xmain.c:1157
msgid "Caught seg fault while trying to exit.\n"
msgstr ""
-#: snd-gmain.c:1102 snd-nogui.c:745 snd-xmain.c:1162
+#: snd-gmain.c:1097 snd-nogui.c:764 snd-xmain.c:1165
msgid "Caught top level error (will try to continue):\n"
msgstr ""
@@ -1035,7 +1026,7 @@ msgstr ""
msgid "Revert"
msgstr ""
-#: snd-gmenu.c:470 snd-gmenu.c:471 snd-xfile.c:6369 snd-xmenu.c:518
+#: snd-gmenu.c:470 snd-gmenu.c:471 snd-xfile.c:6371 snd-xmenu.c:518
msgid "Update"
msgstr ""
@@ -1106,8 +1097,8 @@ msgstr ""
msgid "Open listener"
msgstr ""
-#: snd-gmenu.c:686 snd-gmenu.c:687 snd-gmix.c:638 snd-xmenu.c:631
-#: snd-xmix.c:591 snd-xmix.c:603
+#: snd-gmenu.c:686 snd-gmenu.c:687 snd-gmix.c:715 snd-xmenu.c:631
+#: snd-xmix.c:670 snd-xmix.c:682
msgid "Mixes"
msgstr ""
@@ -1348,22 +1339,30 @@ msgstr ""
msgid "Reset controls"
msgstr ""
-#: snd-gmix.c:291 snd-xmix.c:260
+#: snd-gmix.c:321 snd-xmix.c:283
msgid "mix env"
msgstr ""
-#: snd-gmix.c:651 snd-xmix.c:589
+#: snd-gmix.c:728
msgid "Apply Env"
msgstr ""
-#: snd-gmix.c:726 snd-xfind.c:207 snd-xmix.c:693
+#: snd-gmix.c:734 snd-xmix.c:668
+msgid "Copy mix"
+msgstr ""
+
+#: snd-gmix.c:809 snd-xfind.c:207 snd-xmix.c:778
msgid "Next"
msgstr ""
-#: snd-gmix.c:733 snd-xfind.c:182 snd-xmix.c:685
+#: snd-gmix.c:816 snd-xfind.c:182 snd-xmix.c:770
msgid "Previous"
msgstr ""
+#: snd-gmix.c:919 snd-gsnd.c:1808 snd-xmix.c:956 snd-xsnd.c:2156
+msgid "sync"
+msgstr ""
+
#: snd-gprint.c:208 snd-xprint.c:114
#, c-format
msgid "printing %s"
@@ -1418,7 +1417,7 @@ msgstr ""
msgid "maxamp: %.3f"
msgstr ""
-#: snd-gregion.c:553 snd-xfile.c:2439 snd-xfile.c:2447 snd-xregion.c:577
+#: snd-gregion.c:553 snd-xfile.c:2441 snd-xfile.c:2449 snd-xregion.c:577
msgid "srate:"
msgstr ""
@@ -1450,10 +1449,6 @@ msgstr ""
msgid "frequency response"
msgstr ""
-#: snd-gsnd.c:1808 snd-xsnd.c:2156
-msgid "sync"
-msgstr ""
-
#: snd-gsnd.c:1814 snd-xsnd.c:2173
msgid "unite"
msgstr ""
@@ -1487,95 +1482,95 @@ msgstr ""
msgid "(translated %s)"
msgstr ""
-#: snd-gxcolormaps.c:1024
+#: snd-gxcolormaps.c:1236
msgid "black-and-white"
msgstr ""
-#: snd-gxcolormaps.c:1025
+#: snd-gxcolormaps.c:1237
msgid "gray"
msgstr ""
-#: snd-gxcolormaps.c:1026
+#: snd-gxcolormaps.c:1238
msgid "autumn"
msgstr ""
-#: snd-gxcolormaps.c:1027
+#: snd-gxcolormaps.c:1239
msgid "spring"
msgstr ""
-#: snd-gxcolormaps.c:1028
+#: snd-gxcolormaps.c:1240
msgid "winter"
msgstr ""
-#: snd-gxcolormaps.c:1029
+#: snd-gxcolormaps.c:1241
msgid "summer"
msgstr ""
-#: snd-gxcolormaps.c:1030
+#: snd-gxcolormaps.c:1242
msgid "cool"
msgstr ""
-#: snd-gxcolormaps.c:1031
+#: snd-gxcolormaps.c:1243
msgid "copper"
msgstr ""
-#: snd-gxcolormaps.c:1032
+#: snd-gxcolormaps.c:1244
msgid "flag"
msgstr ""
-#: snd-gxcolormaps.c:1033
+#: snd-gxcolormaps.c:1245
msgid "prism"
msgstr ""
-#: snd-gxcolormaps.c:1034
+#: snd-gxcolormaps.c:1246
msgid "bone"
msgstr ""
-#: snd-gxcolormaps.c:1035
+#: snd-gxcolormaps.c:1247
msgid "hot"
msgstr ""
-#: snd-gxcolormaps.c:1036
+#: snd-gxcolormaps.c:1248
msgid "jet"
msgstr ""
-#: snd-gxcolormaps.c:1037
+#: snd-gxcolormaps.c:1249
msgid "pink"
msgstr ""
-#: snd-gxcolormaps.c:1038
+#: snd-gxcolormaps.c:1250
msgid "rainbow"
msgstr ""
-#: snd-gxcolormaps.c:1039
+#: snd-gxcolormaps.c:1251
msgid "phases"
msgstr ""
-#: snd-help.c:363
+#: snd-help.c:342
msgid "This is Snd version "
msgstr ""
-#: snd-help.c:384
+#: snd-help.c:363
msgid " samples"
msgstr ""
-#: snd-help.c:387
+#: snd-help.c:366
msgid ", with modules"
msgstr ""
-#: snd-help.c:448
+#: snd-help.c:419
msgid ""
"\n"
" without any graphics system"
msgstr ""
-#: snd-help.c:476
+#: snd-help.c:447
msgid ""
"\n"
" compiled as a widget"
msgstr ""
-#: snd-help.c:479
+#: snd-help.c:450
msgid ""
"\n"
" with gettext: "
@@ -1746,40 +1741,40 @@ msgstr ""
msgid " interrupted"
msgstr ""
-#: snd-main.c:664
+#: snd-main.c:631
#, c-format
msgid "%s end of snd options\n"
msgstr ""
-#: snd-main.c:1260 snd-main.c:1414
+#: snd-main.c:1212 snd-main.c:1356
#, c-format
msgid "can't write %s: %s"
msgstr ""
-#: snd-main.c:1523
+#: snd-main.c:1465
#, c-format
msgid "%s but no directory to add?"
msgstr ""
-#: snd-main.c:1545
+#: snd-main.c:1487
#, c-format
msgid "%s but no file to load?"
msgstr ""
-#: snd-main.c:1568
+#: snd-main.c:1510
#, c-format
msgid "%s but no form to evaluate?"
msgstr ""
-#: snd-main.c:1586
+#: snd-main.c:1528
msgid "-title but no title?"
msgstr ""
-#: snd-main.c:1597
+#: snd-main.c:1539
msgid "-I but no path?"
msgstr ""
-#: snd-main.c:1690
+#: snd-main.c:1632
#, c-format
msgid "%s: directory %s is not writable: %s"
msgstr ""
@@ -1925,117 +1920,117 @@ msgstr ""
msgid "not enough space to save region? -- need "
msgstr ""
-#: snd-select.c:989
+#: snd-select.c:1204
msgid "save selection stopped"
msgstr ""
-#: snd-select.c:1350 snd-snd.c:4349
+#: snd-select.c:1637 snd-snd.c:4472
msgid "can't write this header type:"
msgstr ""
-#: snd-select.c:1355 snd-snd.c:4388
+#: snd-select.c:1643 snd-snd.c:4511
msgid "can't write this combination of header type and data format:"
msgstr ""
-#: snd-select.c:1361 snd-snd.c:4320
+#: snd-select.c:1650 snd-snd.c:4443
msgid "srate can't be <= 0"
msgstr ""
-#: snd-sig.c:174 snd-sig.c:232
+#: snd-sig.c:176 snd-sig.c:234
msgid "no selection"
msgstr ""
-#: snd-sig.c:274
+#: snd-sig.c:276
#, c-format
msgid "convolve: impulse response file %s chans: %d"
msgstr ""
-#: snd-sig.c:278
+#: snd-sig.c:280
#, c-format
msgid "convolve: impulse response file %s is empty"
msgstr ""
-#: snd-sig.c:320
+#: snd-sig.c:322
#, c-format
msgid "convolve: save chan (%s[%d]) in %s hit error: %s\n"
msgstr ""
-#: snd-sig.c:332
+#: snd-sig.c:334
#, c-format
msgid "convolve: open saved chan (%s[%d]) file %s hit error: %s\n"
msgstr ""
-#: snd-sig.c:351
+#: snd-sig.c:353
#, c-format
msgid "convolve: open filter file %s hit error: %s\n"
msgstr ""
-#: snd-sig.c:384
+#: snd-sig.c:386
#, c-format
msgid "convolve: close filter file %s hit error: %s\n"
msgstr ""
-#: snd-sig.c:393
+#: snd-sig.c:395
#, c-format
msgid "convolve: close saved chan (%s[%d]) file %s hit error: %s\n"
msgstr ""
-#: snd-sig.c:678 snd-sig.c:694
+#: snd-sig.c:681 snd-sig.c:697
#, c-format
msgid "%s "
msgstr ""
-#: snd-sig.c:760
+#: snd-sig.c:763
msgid "swap interrupted"
msgstr ""
-#: snd-sig.c:903 snd-sig.c:1386 snd-sig.c:1493 snd-sig.c:1654 snd-sig.c:2062
-#: snd-sig.c:2446 snd-sig.c:2954
+#: snd-sig.c:906 snd-sig.c:1389 snd-sig.c:1496 snd-sig.c:1657 snd-sig.c:2068
+#: snd-sig.c:2452 snd-sig.c:2960
#, c-format
msgid "%s %s temp file %s: %s\n"
msgstr ""
-#: snd-sig.c:1175
+#: snd-sig.c:1178
msgid "src interrupted"
msgstr ""
-#: snd-sig.c:1374
+#: snd-sig.c:1377
#, c-format
msgid "%s can't read %s[%d] channel data!"
msgstr ""
-#: snd-sig.c:1559
+#: snd-sig.c:1562
msgid "filter interrupted"
msgstr ""
-#: snd-sig.c:1600
+#: snd-sig.c:1603
msgid "can't write data?"
msgstr ""
-#: snd-sig.c:1903
+#: snd-sig.c:1909
#, c-format
msgid "%s: can't handle %s generators"
msgstr ""
-#: snd-sig.c:2002
+#: snd-sig.c:2008
msgid "filter stopped"
msgstr ""
-#: snd-sig.c:2204
+#: snd-sig.c:2210
msgid "reverse stopped"
msgstr ""
-#: snd-sig.c:2941
+#: snd-sig.c:2947
#, c-format
msgid "%s: can't read %s[%d] channel data!"
msgstr ""
-#: snd-sig.c:3071
+#: snd-sig.c:3077
#, c-format
msgid "%s temp file %s: %s\n"
msgstr ""
-#: snd-sig.c:3794 snd-sig.c:3952
+#: snd-sig.c:3847
#, c-format
msgid "%s stopped at sample "
msgstr ""
@@ -2050,16 +2045,16 @@ msgstr ""
msgid "%s: can't write %s header with %s data format"
msgstr ""
-#: snd-snd.c:1960
+#: snd-snd.c:1955
msgid "apply controls: no changes to apply!"
msgstr ""
-#: snd-snd.c:2077
+#: snd-snd.c:2072
#, c-format
msgid "%s apply temp file %s: %s\n"
msgstr ""
-#: snd-snd.c:4034
+#: snd-snd.c:4157
#, c-format
msgid "%s (index %d) is write-protected"
msgstr ""
@@ -2132,6 +2127,10 @@ msgstr ""
msgid "orientation"
msgstr ""
+#: snd-xdraw.c:1390
+msgid "use OpenGL"
+msgstr ""
+
#: snd-xen.c:842 snd-xen.c:875
#, c-format
msgid "%s function (%s arg %d) should take %d args, not %d"
@@ -2237,60 +2236,60 @@ msgstr ""
msgid "display"
msgstr ""
-#: snd-xfile.c:1264 snd-xfile.c:3215
+#: snd-xfile.c:1266 snd-xfile.c:3217
msgid "files listed:"
msgstr ""
-#: snd-xfile.c:1574
+#: snd-xfile.c:1576
msgid "open read-only:"
msgstr ""
-#: snd-xfile.c:1717
+#: snd-xfile.c:1719
msgid "Mix Sound"
msgstr ""
-#: snd-xfile.c:1717
+#: snd-xfile.c:1719
msgid "mix in:"
msgstr ""
-#: snd-xfile.c:1808
+#: snd-xfile.c:1810
msgid "Insert Sound"
msgstr ""
-#: snd-xfile.c:2325
+#: snd-xfile.c:2327
msgid "header"
msgstr ""
-#: snd-xfile.c:2379
+#: snd-xfile.c:2381
msgid "data"
msgstr ""
-#: snd-xfile.c:2479 snd-xfile.c:2488
+#: snd-xfile.c:2481 snd-xfile.c:2490
msgid "channels:"
msgstr ""
-#: snd-xfile.c:2479 snd-xfile.c:2488
+#: snd-xfile.c:2481 snd-xfile.c:2490
msgid "extract channel:"
msgstr ""
-#: snd-xfile.c:2530
+#: snd-xfile.c:2532
msgid "data location:"
msgstr ""
-#: snd-xfile.c:2941
+#: snd-xfile.c:2943
#, c-format
msgid "%s exists%s. To overwrite it, click 'DoIt'"
msgstr ""
-#: snd-xfile.c:3457
+#: snd-xfile.c:3459
msgid "selected region"
msgstr ""
-#: snd-xfile.c:5692
+#: snd-xfile.c:5694
msgid "amp env"
msgstr ""
-#: snd-xfile.c:6385 snd-xprefs.c:1795 snd-xprefs.c:1827
+#: snd-xfile.c:6387 snd-xprefs.c:1795 snd-xprefs.c:1827
msgid "Clear"
msgstr ""
@@ -2303,69 +2302,71 @@ msgstr ""
msgid "find:"
msgstr ""
-#: snd-xhelp.c:344
+#: snd-xhelp.c:354
msgid "Forward"
msgstr ""
-#: snd-xhelp.c:372
+#: snd-xhelp.c:382
msgid "Back"
msgstr ""
-#: snd-xhelp.c:472
+#: snd-xhelp.c:482
msgid "related topics:"
msgstr ""
-#: snd-xmain.c:626
+#: snd-xmain.c:629
#, c-format
msgid "can't get color %s -- will use white\n"
msgstr ""
-#: snd-xmain.c:631
+#: snd-xmain.c:634
#, c-format
msgid "can't get color %s -- will use black\n"
msgstr ""
-#: snd-xmain.c:871
-#, c-format
+#: snd-xmain.c:874
msgid "no RGB visual with desired depth\n"
msgstr ""
-#: snd-xmain.c:877
-#, c-format
+#: snd-xmain.c:880
msgid "could not create rendering context\n"
msgstr ""
-#: snd-xmain.c:954
+#: snd-xmain.c:957
#, c-format
msgid "can't find peaks font %s"
msgstr ""
-#: snd-xmain.c:958
+#: snd-xmain.c:961
#, c-format
msgid "can't find tiny font %s"
msgstr ""
-#: snd-xmain.c:963
+#: snd-xmain.c:966
#, c-format
msgid "can't find bold peaks font %s"
msgstr ""
-#: snd-xmain.c:968
+#: snd-xmain.c:971
#, c-format
msgid "can't find axis label font %s"
msgstr ""
-#: snd-xmain.c:973
+#: snd-xmain.c:976
#, c-format
msgid "can't find axis numbers font %s"
msgstr ""
-#: snd-xmain.c:977
+#: snd-xmain.c:980
#, c-format
msgid "can't find listener font %s"
msgstr ""
-#: snd-xmix.c:986
+#: snd-xmix.c:703
+msgid "Apply env"
+msgstr ""
+
+#: snd-xmix.c:1087
msgid "no active mixes"
msgstr ""
@@ -2377,6 +2378,6 @@ msgstr ""
msgid "none"
msgstr ""
-#: snd.c:461
+#: snd.c:459
msgid "Snd is a sound editor; see http://ccrma.stanford.edu/software/snd/.\n"
msgstr ""
diff --git a/popup.fs b/popup.fs
index 9623f88..88dcabd 100644
--- a/popup.fs
+++ b/popup.fs
@@ -3,7 +3,7 @@
\ Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Fri Dec 23 00:28:28 CET 2005
-\ Changed: Thu Jun 25 19:51:41 CEST 2009
+\ Changed: Thu Nov 26 18:32:35 CET 2009
\ Commentary:
@@ -31,12 +31,12 @@ require snd-xm
\ for prefs
: edhist-help-edits <{ w c info -- }>
- $" Edit History Functions" _
+ $" Edit History Functions"
$" This popup menu gives access to the edit-list function handlers in Snd. \
At any time you can backup in the edit list, 'save' the current trailing edits, make some \
new set of edits, then 'reapply' the saved edits. The 'apply' choice gives access to all \
currently saved edit lists -- any such list can be applied to any channel. 'Clear' deletes \
-all saved edit lists." _
+all saved edit lists."
#( $" {edit lists}" $" {edit-list->function}" )
#( $" extsnd.html#editlists" $" extsnd.html#editlist_to_function" )
help-dialog drop
@@ -191,7 +191,7 @@ hide
vars :stopping array-assoc-ref if
vars :stopping #f array-assoc-set!
( vars ) :stop-widget array-assoc-ref FWidget? if
- vars :stop-widget array-assoc-ref "Play" _ change-label
+ vars :stop-widget array-assoc-ref "Play" change-label
then
then
;
@@ -200,26 +200,26 @@ hide
does> { w c info self -- }
self @ { vars }
vars :stopping array-assoc-ref if
- w "Play" _ change-label
+ w "Play" change-label
vars :stopping #f array-assoc-set!
( vars ) :stopping1 array-assoc-ref if
vars :stopping1 #f array-assoc-set!
- ( vars ) :stop-widget1 array-assoc-ref $" Loop play" _ change-label
+ ( vars ) :stop-widget1 array-assoc-ref $" Loop play" change-label
then
undef stop-playing drop
else
- w "Stop" _ change-label
+ w "Stop" change-label
vars :stop-widget w array-assoc-set!
( vars ) :stopping #t array-assoc-set! drop
- #f undef play-selection drop
+ selected-sound play drop
then
;
: stop-playing-selection { w vars -- }
- w $" Loop play" _ change-label
+ w $" Loop play" change-label
vars :stopping1 #f array-assoc-set!
( vars ) :stopping array-assoc-ref if
vars :stopping #f array-assoc-set!
- ( vars ) :stop-widget array-assoc-ref "Play" _ change-label
+ ( vars ) :stop-widget array-assoc-ref "Play" change-label
then
;
: play-selection-again { w vars -- prc; reason self -- }
@@ -231,7 +231,7 @@ hide
c-g? not
reason 0= &&
vars :stopping1 array-assoc-ref && if
- #f w vars recurse play-selection drop
+ selected-sound :stop w vars recurse play drop
else
w vars stop-playing-selection
then
@@ -247,10 +247,10 @@ hide
w vars stop-playing-selection
undef stop-playing drop
else
- w "Stop!" _ change-label
+ w "Stop!" change-label
vars :stop-widget1 w array-assoc-set!
( vars ) :stopping1 #t array-assoc-set! to vars
- #f w vars play-selection-again play-selection drop
+ #f :stop w vars play-selection-again play drop
then
;
: as-one-edit-thunk ( selection -- prc; self -- )
@@ -302,7 +302,7 @@ hide
$" duration: %d, %.3f\n" #( len len #f srate f/ ) string-format str swap << to str
$" chans: %d\n" selection-chans string-format str swap << to str
$" maxamp: %.3f\n" #f #f selection-maxamp string-format str swap << to str
- $" Selection Info" _ str info-dialog drop
+ $" Selection Info" str info-dialog drop
;
\ choice 2 == selection
: sel-appcnt <{ w c info -- val }> #f 2 0 undef apply-controls ;
@@ -316,24 +316,24 @@ let: ( -- menu )
#a( :stopping #f :stopping1 #f :stop-widget #f :stop-widget1 #f ) { vars }
stop-playing-selection-hook vars sel-stop-play-cb add-hook!
"selection-popup" main-widgets 2 array-ref
- #( #( $" Selection" _ 'label #f #f )
- #( $" sep" _ 'separator #f #f )
- #( $" Play" _ #f vars sel-play-cb #f )
- #( $" Loop play" _ #f vars sel-loop-cb #f )
- #( $" Delete" _ #f <'> sel-del #f )
- #( $" Zero" _ #f <'> sel-zero #f )
- #( $" Crop" _ #f <'> sel-crop #f )
- #( $" Save as" _ #f <'> sel-save-as #f )
- #( $" Copy->New" _ #f <'> sel-copy #f )
- #( $" Cut->New" _ #f <'> sel-cut #f )
- #( $" Snap marks" _ #f <'> sel-marks #f )
- #( $" Selection Info" _ #f <'> sel-info #f )
- #( $" Apply controls" _ #f <'> sel-appcnt #f )
- #( $" Reset controls" _ #f <'> sel-rescnt #f )
- #( $" Unselect" _ #f <'> sel-unsel #f )
- #( $" Reverse" _ #f <'> sel-rev #f )
- #( $" Mix" _ #f <'> sel-mix #f )
- #( $" Invert" _ #f <'> sel-invert #f ) ) make-popup-menu
+ #( #( $" Selection" 'label #f #f )
+ #( $" sep" 'separator #f #f )
+ #( $" Play" #f vars sel-play-cb #f )
+ #( $" Loop play" #f vars sel-loop-cb #f )
+ #( $" Delete" #f <'> sel-del #f )
+ #( $" Zero" #f <'> sel-zero #f )
+ #( $" Crop" #f <'> sel-crop #f )
+ #( $" Save as" #f <'> sel-save-as #f )
+ #( $" Copy->New" #f <'> sel-copy #f )
+ #( $" Cut->New" #f <'> sel-cut #f )
+ #( $" Snap marks" #f <'> sel-marks #f )
+ #( $" Selection Info" #f <'> sel-info #f )
+ #( $" Apply controls" #f <'> sel-appcnt #f )
+ #( $" Reset controls" #f <'> sel-rescnt #f )
+ #( $" Unselect" #f <'> sel-unsel #f )
+ #( $" Reverse" #f <'> sel-rev #f )
+ #( $" Mix" #f <'> sel-mix #f )
+ #( $" Invert" #f <'> sel-invert #f ) ) make-popup-menu
;let constant selection-popup-menu
\ --- time domain popup ---
@@ -346,7 +346,7 @@ let: ( -- menu )
self @ { vars }
vars :stopping array-assoc-ref if
vars :stopping #f array-assoc-set!
- ( vars ) :stop-widget array-assoc-ref dup if "Play" _ change-label else drop then
+ ( vars ) :stop-widget array-assoc-ref dup if "Play" change-label else drop then
then
;
: play-cb ( vars -- prc; w c i self -- )
@@ -355,12 +355,12 @@ let: ( -- menu )
self @ { vars }
vars :stopping array-assoc-ref if
vars :stopping #f array-assoc-set! drop
- w "Play" _ change-label
+ w "Play" change-label
undef stop-playing drop
else
- w "Stop" _ change-label
+ w "Stop" change-label
vars :stopping #t array-assoc-set! drop
- 0 graph-popup-snd undef undef undef undef undef undef play drop
+ graph-popup-snd play drop
then
;
: stop-cb ( vars -- prc; widget self -- )
@@ -373,24 +373,23 @@ let: ( -- menu )
does> { w c info self -- }
self @ { vars }
vars :stopping #t array-assoc-set!
- ( vars ) :stop-widget array-assoc-ref "Stop" _ change-label
- 0 graph-popup-snd graph-popup-chn undef undef undef undef undef play drop
+ ( vars ) :stop-widget array-assoc-ref "Stop" change-label
+ graph-popup-snd :channel graph-popup-chn play drop
;
: pcur-cb ( vars -- prc; w c i self -- )
3 proc-create swap ,
does> { w c info self -- }
self @ { vars }
vars :stopping #t array-assoc-set!
- ( vars ) :stop-widget array-assoc-ref "Stop" _ change-label
- graph-popup-snd graph-popup-chn #f cursor
- graph-popup-snd undef undef undef undef undef undef play drop
+ ( vars ) :stop-widget array-assoc-ref "Stop" change-label
+ graph-popup-snd :start graph-popup-snd graph-popup-chn #f cursor play drop
;
: pprev-cb ( vars -- prc; w c i self -- )
3 proc-create swap ,
does> { w c info self -- }
self @ { vars }
vars :stopping #t array-assoc-set!
- ( vars ) :stop-widget array-assoc-ref "Stop" _ change-label
+ ( vars ) :stop-widget array-assoc-ref "Stop" change-label
0 graph-popup-snd graph-popup-chn #f #f
graph-popup-snd graph-popup-chn edit-position 1-
undef undef play drop
@@ -400,8 +399,8 @@ let: ( -- menu )
does> { w c info self -- }
self @ { vars }
vars :stopping #t array-assoc-set!
- ( vars ) :stop-widget array-assoc-ref "Stop" _ change-label
- 0 graph-popup-snd graph-popup-chn #f #f 0 undef undef play drop
+ ( vars ) :stop-widget array-assoc-ref "Stop" change-label
+ graph-popup-snd :channel graph-popup-chn :edit-position 0 play drop
;
: pundo-cb <{ w c info -- val }> 1 graph-popup-snd graph-popup-chn undo ;
@@ -529,34 +528,34 @@ let: ( -- menu )
"graph-popup" main-widgets 2 array-ref
#( #( $" Snd" 'label #f #f )
#( $" sep" 'separator #f #f )
- #( $" Play" _ #f vars play-cb vars stop-cb )
- #( $" Play channel" _ #f vars pchan-cb #f )
- #( $" Play from cursor" _ #f vars pcur-cb #f )
- #( $" Play previous" _ #f vars pprev-cb #f )
- #( $" Play original" _ #f vars porig-cb #f )
- #( $" Undo" _ #f <'> pundo-cb #f )
- #( $" Redo" _ #f <'> predo-cb #f )
- #( $" Revert" _ #f <'> prev-cb #f )
- #( $" Open" _ #f <'> popen-cb #f )
- #( $" Save" _ #f <'> psave-cb #f )
- #( $" Save as" _ #f <'> psaveas-cb #f )
- #( $" Update" _ #f <'> pupdate-cb #f )
- #( $" Close" _ #f <'> pclose-cb #f )
- #( $" Mix selection" _ #f <'> pmixsel-cb #f )
- #( $" Insert selection" _ #f <'> pinssel-cb #f )
- #( $" Replace with selection" _ #f <'> prepsel-cb #f )
- #( $" Select all" _ #f <'> pselall-cb #f )
- #( $" Unselect" _ #f <'> punsel-cb #f )
- #( $" Apply controls" _ #f <'> papcnt-cb #f )
- #( $" Reset controls" _ #f <'> precnt-cb #f )
- #( $" Info" _ #f <'> pinfo-cb #f )
- #( $" Add mark" _ #f <'> paddmrk-cb #f )
- #( $" Delete mark" _ #f <'> pdelmrk-cb #f )
- #( $" Delete all marks" _ #f <'> pdelamrk-cb #f )
- #( $" To next mark" _ #f <'> pnextmrk-cb #f )
- #( $" To last mark" _ #f <'> plastmrk-cb #f )
- #( $" sep" 'separator #f #f )
- #( $" Exit" _ #f <'> exit-cb #f ) ) make-popup-menu
+ #( $" Play" #f vars play-cb vars stop-cb )
+ #( $" Play channel" #f vars pchan-cb #f )
+ #( $" Play from cursor" #f vars pcur-cb #f )
+ #( $" Play previous" #f vars pprev-cb #f )
+ #( $" Play original" #f vars porig-cb #f )
+ #( $" Undo" #f <'> pundo-cb #f )
+ #( $" Redo" #f <'> predo-cb #f )
+ #( $" Revert" #f <'> prev-cb #f )
+ #( $" Open" #f <'> popen-cb #f )
+ #( $" Save" #f <'> psave-cb #f )
+ #( $" Save as" #f <'> psaveas-cb #f )
+ #( $" Update" #f <'> pupdate-cb #f )
+ #( $" Close" #f <'> pclose-cb #f )
+ #( $" Mix selection" #f <'> pmixsel-cb #f )
+ #( $" Insert selection" #f <'> pinssel-cb #f )
+ #( $" Replace with selection" #f <'> prepsel-cb #f )
+ #( $" Select all" #f <'> pselall-cb #f )
+ #( $" Unselect" #f <'> punsel-cb #f )
+ #( $" Apply controls" #f <'> papcnt-cb #f )
+ #( $" Reset controls" #f <'> precnt-cb #f )
+ #( $" Info" #f <'> pinfo-cb #f )
+ #( $" Add mark" #f <'> paddmrk-cb #f )
+ #( $" Delete mark" #f <'> pdelmrk-cb #f )
+ #( $" Delete all marks" #f <'> pdelamrk-cb #f )
+ #( $" To next mark" #f <'> pnextmrk-cb #f )
+ #( $" To last mark" #f <'> plastmrk-cb #f )
+ #( $" sep" 'separator #f #f )
+ #( $" Exit" #f <'> exit-cb #f ) ) make-popup-menu
;let constant graph-popup-menu
: graph-popup-cb { snd chn -- prc; widget self -- }
@@ -573,34 +572,34 @@ let: ( -- menu )
w snd short-file-name change-label
then
else
- name $" Save" _ string=
- name $" Undo" _ string= ||
- name $" Revert" _ string= ||
- name $" Play previous" _ string= || if
+ name $" Save" string=
+ name $" Undo" string= ||
+ name $" Revert" string= ||
+ name $" Play previous" string= || if
w eds 0 array-ref 0> if FXtManageChild else FXtUnmanageChild then drop
else
- name $" Play channel" _ string= if
+ name $" Play channel" string= if
w snd channels 1 > if FXtManageChild else FXtUnmanageChild then drop
else
- name $" Redo" _ string= if
+ name $" Redo" string= if
w eds 1 array-ref 0> if FXtManageChild else FXtUnmanageChild then drop
else
- name $" Mix selection" _ string=
- name $" Insert selection" _ string= ||
- name $" Unselect" _ string= ||
- name $" Replace with selection" _ string= || if
- w selection? if FXtManageChild else FXtUnmanageChild then drop
+ name $" Mix selection" string=
+ name $" Insert selection" string= ||
+ name $" Unselect" string= ||
+ name $" Replace with selection" string= || if
+ w undef selection? if FXtManageChild else FXtUnmanageChild then drop
else
- name $" Play from cursor" _ string= if
+ name $" Play from cursor" string= if
w snd chn #f cursor 0> if FXtManageChild else FXtUnmanageChild then drop
else
- name $" Play original" _ string= if
+ name $" Play original" string= if
w eds 0 array-ref 1 > if FXtManageChild else FXtUnmanageChild then drop
else
- name $" Delete mark" _ string=
- name $" Delete all marks" _ string= ||
- name $" To next mark" _ string= ||
- name $" To last mark" _ string= || if
+ name $" Delete mark" string=
+ name $" Delete all marks" string= ||
+ name $" To next mark" string= ||
+ name $" To last mark" string= || if
w snd chn #f marks nil? unless FXtManageChild else FXtUnmanageChild then drop
then
then
@@ -646,9 +645,9 @@ let: ( -- menu )
self @ ( val ) graph-popup-snd choose-chan set-transform-graph-type drop
;
: grp-labs ( -- ary )
- #( #( "once" _ graph-once grp-lst-cb )
- #( "sonogram" _ graph-as-sonogram grp-lst-cb )
- #( "spectrogram" _ graph-as-spectrogram grp-lst-cb ) )
+ #( #( "once" graph-once grp-lst-cb )
+ #( "sonogram" graph-as-sonogram grp-lst-cb )
+ #( "spectrogram" graph-as-spectrogram grp-lst-cb ) )
;
: grp-set <{ lst -- }>
lst each ( child )
@@ -810,18 +809,18 @@ value fft-trn-transform
let: ( -- menu )
$" fft-popup" main-widgets 2 array-ref
- #( #( $" Transform" _ 'label #f #f )
- #( $" sep" 'separator #f #f )
- #( $" Peaks" _ #f <'> fft-peaks-cb #f )
- #( $" dB" _ #f <'> fft-db-cb #f )
- #( $" Log freq" _ #f <'> fft-frq-cb #f )
- #( $" Normalize" _ #f <'> fft-norm-cb #f )
- #( $" Graph type" _ 'cascade grp-labs <'> grp-set )
- #( $" Size" _ 'cascade siz-labs <'> siz-set )
- #( $" Window" _ 'cascade win-labs <'> win-set )
- #( $" Transform type" _ 'cascade trn-labs <'> trn-set )
- #( $" Wavelet type" _ 'cascade typ-labs <'> typ-set )
- #( $" Color/Orientation" _ #f <'> fft-color #f ) ) make-popup-menu
+ #( #( $" Transform" 'label #f #f )
+ #( $" sep" 'separator #f #f )
+ #( $" Peaks" #f <'> fft-peaks-cb #f )
+ #( $" dB" #f <'> fft-db-cb #f )
+ #( $" Log freq" #f <'> fft-frq-cb #f )
+ #( $" Normalize" #f <'> fft-norm-cb #f )
+ #( $" Graph type" 'cascade grp-labs <'> grp-set )
+ #( $" Size" 'cascade siz-labs <'> siz-set )
+ #( $" Window" 'cascade win-labs <'> win-set )
+ #( $" Transform type" 'cascade trn-labs <'> trn-set )
+ #( $" Wavelet type" 'cascade typ-labs <'> typ-set )
+ #( $" Color/Orientation" #f <'> fft-color #f ) ) make-popup-menu
;let constant fft-popup-menu
: fft-popup-cb { snd chn -- cb; widget self -- }
@@ -830,14 +829,14 @@ let: ( -- menu )
self @ { chn }
self cell+ @ { snd }
w FXtName { name }
- name $" Peaks" _ string= if
- w snd chn show-transform-peaks if $" No peaks" _ else $" Peaks" _ then change-label
+ name $" Peaks" string= if
+ w snd chn show-transform-peaks if $" No peaks" else $" Peaks" then change-label
else
- name $" dB" _ string= if
- w snd chn fft-log-magnitude if $" Linear" _ else $" dB" _ then change-label
+ name $" dB" string= if
+ w snd chn fft-log-magnitude if $" Linear" else $" dB" then change-label
else
- name $" Log freq" _ string= if
- w snd chn fft-log-frequency if $" Linear freq" _ else $" Log freq" _ then change-label
+ name $" Log freq" string= if
+ w snd chn fft-log-frequency if $" Linear freq" else $" Log freq" then change-label
then
then
then
@@ -923,14 +922,14 @@ hide
let: ( -- menu )
close-hook <'> edhist-close-hook-cb add-hook!
"edhist-popup" main-widgets 2 array-ref
- #( #( "Edits" _ 'label #f #f )
- #( "sep" 'separator #f #f )
- #( "Save" _ #f <'> edhist-save-edits #f )
- #( "Reapply" _ #f <'> edhist-reapply-edits #f )
- #( "Apply" _ 'cascade <'> edhist-set-wid <'> edhist-apply-edits )
- #( "Clear" _ #f <'> edhist-clear-edits #f )
- #( "sep" 'separator #f #f )
- #( "Help" _ #f <'> edhist-help-edits #f ) ) make-popup-menu
+ #( #( "Edits" 'label #f #f )
+ #( "sep" 'separator #f #f )
+ #( "Save" #f <'> edhist-save-edits #f )
+ #( "Reapply" #f <'> edhist-reapply-edits #f )
+ #( "Apply" 'cascade <'> edhist-set-wid <'> edhist-apply-edits )
+ #( "Clear" #f <'> edhist-clear-edits #f )
+ #( "sep" 'separator #f #f )
+ #( "Help" #f <'> edhist-help-edits #f ) ) make-popup-menu
;let constant edit-history-menu
: edhist-popup-cb { snd chn -- cb; widget self -- }
@@ -939,13 +938,13 @@ let: ( -- menu )
self @ { chn }
self cell+ @ { snd }
w FXtName { name }
- name "Clear" _ string= name "Apply" _ string= || if
+ name "Clear" string= name "Apply" string= || if
w edhist-funcs empty? if #f else #t then FXtSetSensitive drop
else
- name "Save" _ string= if
+ name "Save" string= if
w 0 snd chn edits each + end-each 0> if #t else #f then FXtSetSensitive drop
else
- name "Reapply" _ string= if
+ name "Reapply" string= if
w edhist-funcs #( snd chn ) array-assoc-ref if #t else #f then FXtSetSensitive drop
then
then
@@ -1019,7 +1018,7 @@ let: ( -- menu )
else
#t
then if
- selection? if
+ undef selection? if
snd graph-popup-chn selection-position { pos }
snd srate { sr }
pos sr f/ { beg } \ BEG and END should be floats
@@ -1084,7 +1083,7 @@ NEW-COLOR can be the color name, an xm Pixel, a snd color, or a list of rgb valu
dpy scr FDefaultColormap { cmap }
FXColor { col }
dpy cmap new-color col col FXAllocNamedColor 0= if
- $" can't allocate %S" _ #( new-color ) string-format snd-error
+ $" can't allocate %S" #( new-color ) string-format snd-error
else
col Fpixel
then
@@ -1130,7 +1129,7 @@ hide
snds
;
: focused-cb <{ snds -- lst }> snds length 1 > if snds else #() then ;
-: list-play-cb <{ snd -- val }> 0 snd undef undef undef undef undef undef play ;
+: list-play-cb <{ snd -- val }> snd play ;
: list-focus-cb <{ us -- val }>
\ 5 == notebook-outer-pane
main-widgets 5 array-ref FWidget? if
@@ -1155,10 +1154,10 @@ hide
: list-clear-cb <{ w c info -- val }> clear-listener ;
: listener-edit <{ w -- }>
w FXtName { name }
- name "Help" _ string= if
+ name "Help" string= if
listener-selection { subject }
subject if
- w $" Help on %S" _ #( subject ) string-format change-label
+ w $" Help on %S" #( subject ) string-format change-label
w FXtManageChild drop
else
w FXtUnmanageChild drop
@@ -1199,18 +1198,18 @@ let: ( -- )
main-widgets 4 array-ref
then { parent }
"listener-popup" parent
- #( #( $" Listener" _ 'label #f #f )
- #( $" sep" 'separator #f #f )
- #( $" Play" _ 'cascade <'> list-play-cb <'> identity-cb #t )
- #( $" Help" _ #f <'> list-help-cb #f )
- #( $" Open" _ #f <'> popen-cb #f )
- #( $" Clear listener" _ #f <'> list-clear-cb #f )
- #( $" Close" _ 'cascade <'> close-sound-extend <'> identity-cb #t )
- #( $" Save" _ 'cascade <'> save-sound <'> edited-cb #t )
- #( $" Revert" _ 'cascade <'> revert-sound <'> edited-cb #t )
- #( $" Focus" _ 'cascade <'> list-focus-cb <'> focused-cb #f )
- #( $" sep" 'separator #f #f )
- #( $" Exit" _ #f <'> exit-cb #f ) ) make-popup-menu { menu }
+ #( #( $" Listener" 'label #f #f )
+ #( $" sep" 'separator #f #f )
+ #( $" Play" 'cascade <'> list-play-cb <'> identity-cb #t )
+ #( $" Help" #f <'> list-help-cb #f )
+ #( $" Open" #f <'> popen-cb #f )
+ #( $" Clear listener" #f <'> list-clear-cb #f )
+ #( $" Close" 'cascade <'> close-sound-extend <'> identity-cb #t )
+ #( $" Save" 'cascade <'> save-sound <'> edited-cb #t )
+ #( $" Revert" 'cascade <'> revert-sound <'> edited-cb #t )
+ #( $" Focus" 'cascade <'> list-focus-cb <'> focused-cb #f )
+ #( $" sep" 'separator #f #f )
+ #( $" Exit" #f <'> exit-cb #f ) ) make-popup-menu { menu }
parent FXmNpopupHandlerCallback menu listener-popup-cb undef FXtAddCallback drop
menu
;let constant listener-popup-menu
diff --git a/popup.rb b/popup.rb
index d22fece..0251470 100644
--- a/popup.rb
+++ b/popup.rb
@@ -2,7 +2,7 @@
# Author: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Thu Sep 05 22:28:49 CEST 2002
-# Changed: Thu Oct 15 00:27:57 CEST 2009
+# Changed: Thu Nov 26 18:20:42 CET 2009
# Commentary:
#
@@ -37,7 +37,7 @@
# Usage:
#
# menu = make_snd_popup("graph") do
-# entry("Play") do |snd, chn, w| play(0, snd) end
+# entry("Play") do |snd, chn, w| play(snd, 0) end
# cascade("Marks") do
# entry("Add") do |snd, chn, w| add_mark(cursor(snd, chn), snd, chn) end
# entry("Delete") do |snd, chn, w| delete_mark(marks(snd, chn)[0]) end
@@ -599,7 +599,7 @@ unless defined? $__private_popup_menu__ and $__private_popup_menu__
change_label(w, "Stop")
stop_widget = w
stopping = true
- play_selection
+ play(selected_sound)
end
end
entry("Loop play") do |snd, chn, w|
@@ -616,8 +616,10 @@ unless defined? $__private_popup_menu__ and $__private_popup_menu__
change_label(w, "Stop!")
stop_widget1 = w
stopping1 = true
- $stop_playing_selection_hook.add_hook!("popup-play-selection") do | | play_selection end
- play_selection
+ $stop_playing_selection_hook.add_hook!("popup-play-selection") do | |
+ play(selected_sound)
+ end
+ play(selected_sound)
end
end
entry("Delete") do |snd, chn, w| delete_selection end
@@ -731,28 +733,28 @@ unless defined? $__private_popup_menu__ and $__private_popup_menu__
else
change_label(w, "Stop")
stopping = true
- play(0, snd)
+ play(snd, 0)
end
end
entry("Play channel") do |snd, chn, w|
stopping = true
change_label(stop_widget, "Stop")
- play(0, snd, chn)
+ play(snd, :channel, chn)
end
entry("Play from cursor") do |snd, chn, w|
stopping = true
change_label(stop_widget, "Stop")
- play(cursor(snd, chn), snd)
+ play(snd, :start, cursor(snd, chn))
end
entry("Play previous") do |snd, chn, w|
stopping = true
change_label(stop_widget, "Stop")
- play(0, snd, chn, false, false, edit_position - 1)
+ play(snd, :channel, chn, :edit_position, edit_position - 1)
end
entry("Play original") do |snd, chn, w|
stopping = true
change_label(stop_widget, "Stop")
- play(0, snd, chn, false, false, 0)
+ play(snd, :channel, chn, :edit_position, 0)
end
entry("Undo") do |snd, chn, w| undo_edit(1, snd, chn) end if defined? undo_edit
entry("Redo") do |snd, chn, w| redo_edit(1, snd, chn) end if defined? redo_edit
@@ -976,12 +978,12 @@ written: %s\n", channels(snd), srate(snd), frames(snd) / srate(snd).to_f,
cascade("Transform type") do
children(lambda do |snd, chn, val|
transform_type(snd, chn) != val
- end, [["Fourier", Fourier_transform],
- ["Autocorrelate", Autocorrelation],
- ["Cepstrum", Cepstrum],
- ["Walsh", Walsh_transform],
- ["Haar", Haar_transform],
- ["Wavelet", Wavelet_transform]]) do |snd, chn, val|
+ end, [["Fourier", $fourier_transform],
+ ["Autocorrelate", $autocorrelation],
+ ["Cepstrum", $cepstrum],
+ ["Walsh", $walsh_transform],
+ ["Haar", $haar_transform],
+ ["Wavelet", $wavelet_transform]]) do |snd, chn, val|
set_transform_type(val, snd, choose_chan.call(snd, chn))
end
cascade("Wavelet type") do
@@ -1114,7 +1116,7 @@ all saved edit lists.",
end
focused = lambda do | | (snds = Snd.sounds).length > 1 ? snds : [] end
cascade("Play") do
- children(identity) do |snd| play(0, snd) end
+ children(identity) do |snd| play(snd, 0) end
end
entry("Open") do |snd, chn, w| open_file_dialog end
entry("Clear listener") do |snd, chn, w| clear_listener end
diff --git a/popup.scm b/popup.scm
index 319e857..afc7acc 100644
--- a/popup.scm
+++ b/popup.scm
@@ -141,6 +141,7 @@
(sounds))
sndlist))))
(list "Save as" xmPushButtonWidgetClass every-menu (lambda (w c i) (save-selection-dialog)))
+ (list "Selection->Mix" xmPushButtonWidgetClass every-menu (lambda (w c i) (selection->mix)))
(list "Copy->New" xmPushButtonWidgetClass every-menu
(lambda (w c i)
(let ((new-file-name (snd-tempnam)))
@@ -177,8 +178,9 @@
(list "Reset controls" xmPushButtonWidgetClass every-menu (lambda (w c i) (reset-controls)))
(list "Unselect" xmPushButtonWidgetClass every-menu (lambda (w c i) (set! (selection-member? #t) #f)))
(list "Reverse" xmPushButtonWidgetClass every-menu (lambda (w c i) (reverse-selection)))
- (list "Mix" xmPushButtonWidgetClass every-menu (lambda (w c i) (mix-selection (cursor))))
- (list "Invert" xmPushButtonWidgetClass every-menu (lambda (w c i) (scale-selection-by -1)))))))
+ (list "Mix (at cursor)" xmPushButtonWidgetClass every-menu (lambda (w c i) (mix-selection (cursor))))
+; (list "Invert" xmPushButtonWidgetClass every-menu (lambda (w c i) (scale-selection-by -1)))
+ ))))
;;; -------- time domain popup
@@ -191,6 +193,7 @@
(let ((every-menu (list XmNbackground (highlight-color)))
(stopping #f)
(stop-widget #f))
+
(define (vector-print v)
(if (< (length v) 3)
(object->string v)
@@ -199,6 +202,7 @@
((= i 3))
(set! str (string-append str " " (object->string (vector-ref v i)))))
(string-append str " ...)"))))
+
(define (display-properties props)
;; there's no way to tell Guile's format that enormous vectors should not be printed in full
;; so we search for them here and handle them ourselves
@@ -254,29 +258,29 @@
(begin
(change-label w "Stop")
(set! stopping #t)
- (play 0 graph-popup-snd))))
+ (play graph-popup-snd 0))))
(lambda (wid)
(set! stop-widget wid)))
(list "Play channel" xmPushButtonWidgetClass every-menu
(lambda (w c i)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play 0 graph-popup-snd graph-popup-chn)))
+ (play graph-popup-snd 0 :channel graph-popup-chn)))
(list "Play from cursor" xmPushButtonWidgetClass every-menu
(lambda (w c i)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play (cursor graph-popup-snd graph-popup-chn) graph-popup-snd)))
+ (play graph-popup-snd :start (cursor graph-popup-snd graph-popup-chn))))
(list "Play previous" xmPushButtonWidgetClass every-menu
(lambda (w c i)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play 0 graph-popup-snd graph-popup-chn #f #f (- (edit-position) 1)))) ; play version before most-recent edit
+ (play graph-popup-snd 0 :channel graph-popup-chn :edit-position (- (edit-position) 1)))) ; play version before most-recent edit
(list "Play original" xmPushButtonWidgetClass every-menu
(lambda (w c i)
(set! stopping #t)
(change-label stop-widget "Stop")
- (play 0 graph-popup-snd graph-popup-chn #f #f 0))) ; play unedited version
+ (play graph-popup-snd 0 :channel graph-popup-chn :edit-position 0))) ; play unedited version
(list "Undo" xmPushButtonWidgetClass every-menu
(lambda (w c i)
(undo 1 graph-popup-snd graph-popup-chn)))
@@ -584,7 +588,7 @@
(lambda (lst)
(for-each
(lambda (child type)
- (XtSetSensitive child (not (= (transform-type graph-popup-snd graph-popup-chn) type))))
+ (XtSetSensitive child (not (equal? (transform-type graph-popup-snd graph-popup-chn) type))))
lst types))
every-menu))
@@ -947,7 +951,7 @@ color name, an xm Pixel, a snd color, or a list of rgb values (as in Snd's make-
(XtCreateManagedWidget "sep" xmSeparatorWidgetClass listener-popup every-menu)
(let ((listener-popup-menu
- (list (make-popdown-entry "Play" listener-popup (lambda (snd) (play 0 snd)) every-menu identity #t)
+ (list (make-popdown-entry "Play" listener-popup (lambda (snd) (play snd 0)) every-menu identity #t)
(let ((help-widget (XtCreateManagedWidget "Help" xmPushButtonWidgetClass listener-popup every-menu)))
(XtAddCallback help-widget XmNactivateCallback
diff --git a/pretty-print.scm b/pretty-print.scm
new file mode 100644
index 0000000..a9d9439
--- /dev/null
+++ b/pretty-print.scm
@@ -0,0 +1,300 @@
+;;;; -*-scheme-*-
+;;;;
+;;;; Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
+;;;;
+;;;; This library is free software; you can redistribute it and/or
+;;;; modify it under the terms of the GNU Lesser General Public
+;;;; License as published by the Free Software Foundation; either
+;;;; version 3 of the License, or (at your option) any later version.
+;;;;
+;;;; This library is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with this library; if not, write to the Free Software
+;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;;;;
+
+;; From SLIB.
+
+;;"genwrite.scm" generic write used by pretty-print and truncated-print.
+;; Copyright (c) 1991, Marc Feeley
+;; Author: Marc Feeley (feeley@iro.umontreal.ca)
+;; Distribution restrictions: none
+
+
+;; from Guile (modules/ice-9/pretty-print.scm) with a few changes for s7
+
+
+(define genwrite:newline-str (make-string 1 #\newline))
+
+(define (generic-write obj display? width per-line-prefix output)
+
+ (define (read-macro? l)
+ (define (length1? l) (and (pair? l) (null? (cdr l))))
+ (let ((head (car l)) (tail (cdr l)))
+ (case head
+ ((quote quasiquote unquote unquote-splicing) (length1? tail))
+ (else #f))))
+
+ (define (read-macro-body l)
+ (cadr l))
+
+ (define (read-macro-prefix l)
+ (let ((head (car l)))
+ (case head
+ ((quote) "'")
+ ((quasiquote) "`")
+ ((unquote) ",")
+ ((unquote-splicing) ",@"))))
+
+ (define (out str col)
+ (and col (output str) (+ col (string-length str))))
+
+ (define (wr obj col)
+ (cond ((and (pair? obj)
+ (read-macro? obj))
+ (wr (read-macro-body obj)
+ (out (read-macro-prefix obj) col)))
+ (else
+ (out (if display? (format #f "~A" obj) (format #f "~S" obj)) col))))
+
+ (define (pp obj col)
+
+ (define (spaces n col)
+ (if (> n 0)
+ (if (> n 7)
+ (spaces (- n 8) (out " " col))
+ (out (substring " " 0 n) col))
+ col))
+
+ (define (indent to col)
+ (and col
+ (if (< to col)
+ (and (out genwrite:newline-str col)
+ (out per-line-prefix 0)
+ (spaces to 0))
+ (spaces (- to col) col))))
+
+ (define (pr obj col extra pp-pair)
+ (if (or (pair? obj) (vector? obj)) ; may have to split on multiple lines
+ (let ((result '())
+ (left (min (+ (- (- width col) extra) 1) max-expr-width)))
+ (generic-write obj display? #f ""
+ (lambda (str)
+ (set! result (cons str result))
+ (set! left (- left (string-length str)))
+ (> left 0)))
+ (if (> left 0) ; all can be printed on one line
+ (out (reverse-string-append result) col)
+ (if (pair? obj)
+ (pp-pair obj col extra)
+ (pp-list (vector->list obj) (out "#" col) extra pp-expr))))
+ (wr obj col)))
+
+ (define (pp-expr expr col extra)
+ (if (read-macro? expr)
+ (pr (read-macro-body expr)
+ (out (read-macro-prefix expr) col)
+ extra
+ pp-expr)
+ (let ((head (car expr)))
+ (if (symbol? head)
+ (let ((proc (style head)))
+ (if proc
+ (proc expr col extra)
+ (if (> (string-length (symbol->string head))
+ max-call-head-width)
+ (pp-general expr col extra #f #f #f pp-expr)
+ (pp-call expr col extra pp-expr))))
+ (pp-list expr col extra pp-expr)))))
+
+ ; (head item1
+ ; item2
+ ; item3)
+ (define (pp-call expr col extra pp-item)
+ (let ((col* (wr (car expr) (out "(" col))))
+ (and col
+ (pp-down (cdr expr) col* (+ col* 1) extra pp-item))))
+
+ ; (item1
+ ; item2
+ ; item3)
+ (define (pp-list l col extra pp-item)
+ (let ((col (out "(" col)))
+ (pp-down l col col extra pp-item)))
+
+ (define (pp-down l col1 col2 extra pp-item)
+ (let loop ((l l) (col col1))
+ (and col
+ (cond ((pair? l)
+ (let ((rest (cdr l)))
+ (let ((extra (if (null? rest) (+ extra 1) 0)))
+ (loop rest
+ (pr (car l) (indent col2 col) extra pp-item)))))
+ ((null? l)
+ (out ")" col))
+ (else
+ (out ")"
+ (pr l
+ (indent col2 (out "." (indent col2 col)))
+ (+ extra 1)
+ pp-item)))))))
+
+ (define (pp-general expr col extra named? pp-1 pp-2 pp-3)
+
+ (define (tail1 rest col1 col2 col3)
+ (if (and pp-1 (pair? rest))
+ (let* ((val1 (car rest))
+ (rest (cdr rest))
+ (extra (if (null? rest) (+ extra 1) 0)))
+ (tail2 rest col1 (pr val1 (indent col3 col2) extra pp-1) col3))
+ (tail2 rest col1 col2 col3)))
+
+ (define (tail2 rest col1 col2 col3)
+ (if (and pp-2 (pair? rest))
+ (let* ((val1 (car rest))
+ (rest (cdr rest))
+ (extra (if (null? rest) (+ extra 1) 0)))
+ (tail3 rest col1 (pr val1 (indent col3 col2) extra pp-2)))
+ (tail3 rest col1 col2)))
+
+ (define (tail3 rest col1 col2)
+ (pp-down rest col2 col1 extra pp-3))
+
+ (let* ((head (car expr))
+ (rest (cdr expr))
+ (col* (wr head (out "(" col))))
+ (if (and named? (pair? rest))
+ (let* ((name (car rest))
+ (rest (cdr rest))
+ (col** (wr name (out " " col*))))
+ (tail1 rest (+ col indent-general) col** (+ col** 1)))
+ (tail1 rest (+ col indent-general) col* (+ col* 1)))))
+
+ (define (pp-expr-list l col extra)
+ (pp-list l col extra pp-expr))
+
+ (define (pp-LAMBDA expr col extra)
+ (pp-general expr col extra #f pp-expr-list #f pp-expr))
+
+ (define (pp-IF expr col extra)
+ (pp-general expr col extra #f pp-expr #f pp-expr))
+
+ (define (pp-COND expr col extra)
+ (pp-call expr col extra pp-expr-list))
+
+ (define (pp-CASE expr col extra)
+ (pp-general expr col extra #f pp-expr #f pp-expr-list))
+
+ (define (pp-AND expr col extra)
+ (pp-call expr col extra pp-expr))
+
+ (define (pp-LET expr col extra)
+ (let* ((rest (cdr expr))
+ (named? (and (pair? rest) (symbol? (car rest)))))
+ (pp-general expr col extra named? pp-expr-list #f pp-expr)))
+
+ (define (pp-BEGIN expr col extra)
+ (pp-general expr col extra #f #f #f pp-expr))
+
+ (define (pp-DO expr col extra)
+ (pp-general expr col extra #f pp-expr-list pp-expr-list pp-expr))
+
+ ; define formatting style (change these to suit your style)
+
+ (define indent-general 2)
+
+ (define max-call-head-width 5)
+
+ (define max-expr-width 50)
+
+ (define (style head)
+ (case head
+ ((lambda let* letrec define) pp-LAMBDA)
+ ((if set!) pp-IF)
+ ((cond) pp-COND)
+ ((case) pp-CASE)
+ ((and or) pp-AND)
+ ((let) pp-LET)
+ ((begin) pp-BEGIN)
+ ((do) pp-DO)
+ (else #f)))
+
+ (pr obj col 0 pp-expr))
+
+ (out per-line-prefix 0)
+ (if width
+ (out genwrite:newline-str (pp obj 0))
+ (wr obj 0))
+ ;; Return `unspecified'
+ (if #f #f))
+
+; (reverse-string-append l) = (apply string-append (reverse l))
+
+(define (reverse-string-append l)
+
+ (define (rev-string-append l i)
+ (if (pair? l)
+ (let* ((str (car l))
+ (len (string-length str))
+ (result (rev-string-append (cdr l) (+ i len))))
+ (let loop ((j 0) (k (- (- (string-length result) i) len)))
+ (if (< j len)
+ (begin
+ (string-set! result k (string-ref str j))
+ (loop (+ j 1) (+ k 1)))
+ result)))
+ (make-string i)))
+
+ (rev-string-append l 0))
+
+(define (pretty-print obj . opts)
+ "pprint OBJ on PORT, which is a keyword argument defaulting to
+the current output port. Formatting can be controlled by a number of
+keyword arguments: Each line in the output is preceded by the string
+PER-LINE-PREFIX, which is empty by default. The output lines will be
+at most WIDTH characters wide; the default is 79. If DISPLAY? is
+true, display rather than write representation will be used.
+
+Instead of with a keyword argument, you can also specify the output
+port directly after OBJ: (pprint OBJ PORT)"
+ (if (pair? opts)
+ (if (keyword? (car opts))
+ (apply pretty-print-with-keys obj opts)
+ (apply pretty-print-with-keys obj #:port (car opts) (cdr opts)))
+ (pretty-print-with-keys obj)))
+
+(define* (pretty-print-with-keys obj
+ (port #f)
+ (width 79)
+ (display? #f)
+ (per-line-prefix ""))
+ (generic-write obj display?
+ (- width (string-length per-line-prefix))
+ per-line-prefix
+ (lambda (s) (if (not port) (display s) (display s port)) #t)))
+
+
+(define pprint pretty-print)
+
+
+#|
+(with-output-to-string
+ (lambda ()
+ (pprint (procedure-source all-chans))))
+
+"(lambda ()
+ (let ((sndlist (quote ())) (chnlist (quote ())))
+ (for-each
+ (lambda (snd)
+ (do ((i (- (channels snd) 1) (- i 1)))
+ ((< i 0))
+ (set! sndlist (cons snd sndlist))
+ (set! chnlist (cons i chnlist))))
+ (sounds))
+ (list sndlist chnlist)))
+"
+|#
diff --git a/pvoc.rb b/pvoc.rb
index d3d0049..5f02839 100644
--- a/pvoc.rb
+++ b/pvoc.rb
@@ -2,7 +2,7 @@
# Translator: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Sat Mar 27 00:19:51 CET 2004
-# Changed: Thu Oct 15 00:19:47 CEST 2009
+# Changed: Thu Nov 26 18:15:00 CET 2009
# Comment:
#
@@ -142,7 +142,7 @@ let(open_sound("oboe.snd"),
make_pvocoder(256, 4, 64),
make_sampler(0)) do |ind, pv, rd|
map_channel(lambda do |y| pvocoder(pv, rd) end)
- play_and_wait(0, ind)
+ play(ind, :wait, true)
save_sound_as("pvoc.snd", ind)
revert_sound(ind)
close_sound(ind)
diff --git a/quick.html b/quick.html
index 7cf71e4..33b5940 100644
--- a/quick.html
+++ b/quick.html
@@ -178,7 +178,7 @@ tracking cursor updating: <a href="extsnd.html#cursorupdateinterval">cursor-upda
<br>
<table border=3 bordercolor="tan" hspace=40><th bgcolor="lightgreen">Deletions</th><tr><td>
<small><blockquote>
-delete a file: use the Guile function delete-file or Ruby's File.delete<br>
+delete a file: in scheme delete-file or Ruby's File.delete<br>
delete a region: <a href="extsnd.html#forgetregion">forget-region</a><br>
delete the currently selected samples: <a href="extsnd.html#deleteselection">delete-selection</a><br>
delete the selection and smooth the splice: <a href="sndscm.html#deleteselectionandsmooth">delete-selection-and-smooth</a><br>
@@ -378,7 +378,7 @@ enveloped mix: see <a href="sndscm.html#envelopedmix">enveloped-mix</a> in exten
read mix samples: <a href="extsnd.html#makemixsampler">make-mix-sampler</a><br>
mix data maxamp: <a href="sndscm.html#mixmaxamp">mix-maxamp</a><br>
mix data to vct: <a href="sndscm.html#mixtovct">mix-&gt;vct</a><br>
-save mix data in file: <a href="sndscm.html#savemix">save-mix</a><br>
+save mix data in file: <a href="extsnd.html#savemix">save-mix</a><br>
mix property list: <a href="sndscm.html#mixproperty">mix-property</a> in mix.scm<br>
pan mono sound into stereo: see <a href="sndscm.html#placesound">place-sound</a> in examp.scm<br>
move a mixed sound via dlocsig: <a href="extsnd.html#mixmovesound">mix-move-sound</a><br>
@@ -396,12 +396,11 @@ with-sound (a notelist) expanded into mixes: <a href="sndscm.html#withmixedsound
<br>
<table border=3 bordercolor="tan" hspace=40><th bgcolor="lightgreen">Play</th><tr><td>
<small><blockquote>
-play one channel: <a href="extsnd.html#playchannel">play-channel</a>, play button in control panel or files dialog<br>
play from cursor: C-q and example above<br>
play from cursor with tracking cursor: <a href="extsnd.html#pfc">pfc</a> above<br>
-play the selection: <a href="extsnd.html#playselection">play-selection</a>, <a href="snd.html#cxp">C-x p</a><br>
-play a region: <a href="extsnd.html#playregion">play-region</a>, <a href="snd.html#cxp">C-x p</a>, play button in Region dialog<br>
-play a mix: <a href="extsnd.html#playmix">play-mix</a>, play button in Mix dialog<br>
+play the selection: (play (selection)), <a href="snd.html#cxp">C-x p</a><br>
+play a region: (play region-object), <a href="snd.html#cxp">C-x p</a>, play button in Region dialog<br>
+play a mix: (play mix-object), play button in Mix dialog<br>
play a sequence of mixes: <a href="sndscm.html#playmixes">play-mixes</a><br>
play from mark: click or drag triangle (control-click for all chans)<br>
play continuously between two marks: <a href="sndscm.html#loopbetweenmarks">loop-it</a><br>
@@ -543,7 +542,7 @@ check first for unsaved edits: <a href="sndscm.html#checkforunsavededits">check-
save Snd's complete state (unsaved edits and all): <a href="extsnd.html#savestate">save-state</a>, <a href="extsnd.html#savedir">save-dir</a>, <a href="extsnd.html#savestatehook">save-state-hook</a>, <a href="extsnd.html#savestatefile">save-state-file</a><br>
save the selection: <a href="extsnd.html#saveselection">save-selection</a><br>
save a region: <a href="extsnd.html#saveregion">save-region</a><br>
-save a mix: <a href="sndscm.html#savemix">save-mix</a><br>
+save a mix: <a href="extsnd.html#savemix">save-mix</a><br>
save the control panel state: <a href="extsnd.html#savecontrols">save-controls</a><br>
save currently defined envelopes (envelope editor): <a href="extsnd.html#saveenvelopes">save-envelopes</a><br>
start the file save dialog: <a href="extsnd.html#savesounddialog">save-sound-dialog</a><br>
@@ -580,7 +579,7 @@ see also <a href="extsnd.html#countmatches">count-matches</a> and <a href="extsn
search a multichannel sound: <a href="sndscm.html#scansound">scan-sound</a><br>
find a widget: find-child in snd-motif.scm<br>
add C-s and C-r to the listener key bindings: add-find-to-listener in snd-motif.scm<br>
-Guile find: find-if<br>
+Scheme find: find-if<br>
<br>
</small></blockquote>
</td></tr></table>
@@ -611,6 +610,7 @@ write selection to a file: <a href="sndscm.html#menusdoc">selection-&gt;new</a><
notch filter selection: <a href="sndscm.html#notchselection">notch-selection</a><br>
undo select-all.: <a href="sndscm.html#menusdoc">deselect-all</a><br>
filter the selection: <a href="extsnd.html#filterselection">filter-selection</a>, <a href="sndscm.html#filterselectionandsmooth">filter-selection-and-smooth</a><br>
+turn the selection into a mix: <a href="extsnd.html#selectiontomix">selection-&gt;mix</a><br>
<br>
</blockquote></small>
</td></tr></table>
diff --git a/rgb.fs b/rgb.fs
index 4d0559b..e8df41d 100644
--- a/rgb.fs
+++ b/rgb.fs
@@ -15,24 +15,6 @@
\ Code:
-00 constant black-and-white-colormap
-01 constant gray-colormap
-02 constant hot-colormap
-03 constant cool-colormap
-04 constant bone-colormap
-05 constant copper-colormap
-06 constant pink-colormap
-07 constant jet-colormap
-08 constant prism-colormap
-09 constant autumn-colormap
-10 constant winter-colormap
-11 constant spring-colormap
-12 constant summer-colormap
-13 constant rainbow-colormap
-14 constant flag-colormap
-15 constant phases-colormap
-16 constant last-colormap
-
1.00 0.98 0.98 make-color constant snow
0.97 0.97 1.00 make-color constant ghost-white
0.96 0.96 0.96 make-color constant white-smoke
diff --git a/rgb.rb b/rgb.rb
index a52f5f7..b3cc169 100644
--- a/rgb.rb
+++ b/rgb.rb
@@ -7,24 +7,6 @@
# X11 color names converted to Snd (Ruby) colors
# tan -> tawny 24-Aug-01
-# e.g. set_colormap(Jet_colormap)
-Black_and_white_colormap = 0
-Gray_colormap = 1
-Hot_colormap = 2
-Cool_colormap = 3
-Bone_colormap = 4
-Copper_colormap = 5
-Pink_colormap = 6
-Jet_colormap = 7
-Prism_colormap = 8
-Autumn_colormap = 9
-Winter_colormap = 10
-Spring_colormap = 11
-Summer_colormap = 12
-Rainbow_colormap = 13
-Flag_colormap = 14
-Last_colormap = 15
-
# rgb.scm
Snow = make_color(1.00, 0.98, 0.98)
Ghost_white = make_color(0.97, 0.97, 1.00)
diff --git a/rgb.scm b/rgb.scm
index f1953a5..21f6ad4 100644
--- a/rgb.scm
+++ b/rgb.scm
@@ -4,26 +4,6 @@
;; tan -> tawny 24-Aug-01
-;;; colormap names
-
-(define black-and-white-colormap 0)
-(define gray-colormap 1)
-(define hot-colormap 2)
-(define cool-colormap 3)
-(define bone-colormap 4)
-(define copper-colormap 5)
-(define pink-colormap 6)
-(define jet-colormap 7)
-(define prism-colormap 8)
-(define autumn-colormap 9)
-(define winter-colormap 10)
-(define spring-colormap 11)
-(define summer-colormap 12)
-(define rainbow-colormap 13)
-(define flag-colormap 14)
-(define phases-colormap 15)
-
-
(define snow (make-color 1.00 0.98 0.98))
(define ghost-white (make-color 0.97 0.97 1.00))
(define white-smoke (make-color 0.96 0.96 0.96))
diff --git a/rubber.fs b/rubber.fs
index f9f2d2d..d6c1ce1 100644
--- a/rubber.fs
+++ b/rubber.fs
@@ -2,7 +2,7 @@
\ Translator: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Fri Jan 06 05:32:57 CET 2006
-\ Changed: Sat Sep 26 02:11:36 CEST 2009
+\ Changed: Fri Nov 06 00:35:16 CET 2009
\ Commentary:
\
@@ -236,7 +236,7 @@ hide
end-each
else
beg snd chn #f frames >= if
- $" trouble at %d: %d of %d" _ #( i beg snd chn #f frames ) clm-message
+ $" trouble at %d: %d of %d" #( i beg snd chn #f frames ) clm-message
then
show-details if
beg 1- $" %d:%d" #( i len extension f/ f>s ) string-format snd chn add-named-mark drop
@@ -257,7 +257,7 @@ hide
then
end-each
show-details if
- $" wanted: %d, got %d" _ #( samps changed-len ) clm-message
+ $" wanted: %d, got %d" #( samps changed-len ) clm-message
then
\ ;; and return to original srate
snd chn unsample-sound
diff --git a/run.c b/run.c
index 2433f00..e3de4a6 100644
--- a/run.c
+++ b/run.c
@@ -101,9 +101,6 @@
*
* TODO: run doesn't always warn about a closure (explicit gen basically) -- if it's used directly,
* there's no warning, but it doesn't handle the closed-over variables correctly
- * TODO: vector<->vct
- * all numeric types + multiprecision stuff
- * what about the thread stuff: only thread_variable in s7.h now
*/
/* some timings (I keep losing these stats, so I'll put them here for safekeeping, "*"=not optimizable)
@@ -8658,11 +8655,6 @@ static xen_value *region_length_1(ptree *prog, xen_value **args, int num_args) {
#if USE_SND
/* ---------------- simple snd ops ---------------- */
-#define FLOAT_INT_OP(CName) \
-static void CName ## _i(int *args, ptree *pt) {FLOAT_RESULT = CName(INT_ARG_1);} \
-static xen_value * CName ## _1(ptree *prog, xen_value **args, int num_args) {return(package(prog, R_FLOAT, CName ## _i, #CName "_i", args, 1));}
-
-
#define BOOL_INT_OP(CName) \
static void CName ## _i(int *args, ptree *pt) {BOOL_RESULT = CName(INT_ARG_1);} \
static xen_value * CName ## _1(ptree *prog, xen_value **args, int num_args) {return(package(prog, R_BOOL, CName ## _i, #CName "_i", args, 1));}
@@ -10093,7 +10085,6 @@ static xen_value *vct_set_2(ptree *prog, xen_value **args, int num_args)
}
-
static void make_vct_v(int *args, ptree *pt)
{
if (VCT_RESULT) mus_vct_free(VCT_RESULT);
@@ -16045,6 +16036,8 @@ static void init_walkers(void)
INIT_WALKER("vector-fill!", make_walker(vector_fill_1, NULL, NULL, 2, 2, R_INT, false, 1, R_VECTOR));
INIT_WALKER("vector-set!", make_walker(vector_set_1, NULL, NULL, 3, 3, R_ANY, false, 2, R_VECTOR, R_INT));
INIT_WALKER("make-vector", make_walker(make_vector_1, NULL, NULL, 1, 2, R_ANY, false, 2, R_INT, R_NUMBER));
+ INIT_WALKER(S_vct_to_vector, make_walker(vct_copy_1, NULL, NULL, 1, 1, R_VCT, false, 1, R_VCT));
+ INIT_WALKER(S_vector_to_vct, make_walker(vct_copy_1, NULL, NULL, 1, 1, R_VCT, false, 1, R_VECTOR));
/* -------- list funcs */
INIT_WALKER("list-ref", make_walker(list_ref_1, NULL, NULL, 2, 2, R_ANY, false, 2, R_LIST, R_INT));
@@ -16632,8 +16625,8 @@ void mus_init_run(void)
if (run_inited) fprintf(stderr, "redundant run initialization?");
run_inited = true;
- XEN_DEFINE_PROCEDURE("run", g_run_w, 1, 0, 0, "run macro testing...");
- XEN_DEFINE_PROCEDURE("run-eval", g_run_eval_w, 1, 3, 0, "run macro testing...");
+ XEN_DEFINE_PROCEDURE("run", g_run_w, 1, 0, 0, H_run);
+ XEN_DEFINE_PROCEDURE("run-eval", g_run_eval_w, 1, 3, 0, H_run);
walker_hash_table = s7_make_hash_table(s7, 1031);
s7_gc_protect(s7, walker_hash_table);
diff --git a/s7.c b/s7.c
index f510de8..28e984f 100644
--- a/s7.c
+++ b/s7.c
@@ -27,21 +27,22 @@
* generalized set!, procedure-with-setter, applicable objects
* defmacro and define-macro
* keywords, hash tables, block comments, define*
- * threads (optional)
- * multidimensional vectors (optional)
* format
- * encapsulation (optional)
* error handling using error and catch
- * in sndlib, the run macro works giving S7 a (somewhat limited) byte compiler
+ * in sndlib, the run macro works giving s7 a (somewhat limited) byte compiler
* no invidious distinction between built-in and "foreign"
- * (this makes it easy to extend built-in operators like "+" -- see s7.h for a simple example)
+ * (this makes it easy to extend built-in operators like "+" -- see s7.html for a simple example)
* lists, strings, vectors, and hash-tables are (set-)applicable objects
* true multiple-values, multiple-value-bind, multiple-value-set!
+ * threads (optional)
+ * multidimensional vectors (optional)
+ * encapsulation (optional)
*
* many minor changes!
*
* deliberate omission from r5rs:
* no syntax-rules or any of its friends
+ * no force and delay unless WITH_FORCE is 1 (default is 0)
* no inexact integer or ratio (so, for example, truncate returns an exact integer), no exact complex or exact real
* (exact? has no obvious meaning in regard to complex numbers anyway -- are we referring to the polar or
* the rectangular form, and are both real and imaginary parts included? -- why can't they be separate?)
@@ -53,7 +54,6 @@
* deliberate difference from r5rs:
* modulo, remainder, and quotient take integer, ratio, or real args
* lcm and gcd can take integer or ratio args
- * delay is renamed make-promise to avoid collisions in CLM, also promise?
* continuation? function to distinguish a continuation from a procedure
* log takes an optional 2nd arg (base)
* '.' and an exponent can occur in a number in any base -- they do not mean "base 10"!
@@ -65,39 +65,40 @@
* read-line, read-byte, write-byte
* logior, logxor, logand, lognot, ash, integer-length
* procedure-source, procedure-arity, procedure-documentation, help
+ * if the initial expression in a function body is a string constant, it is assumed to be a documentation string
* symbol-table, symbol->value, global-environment, current-environment, stack
- * provide, provided?, defined?, promise?
+ * provide, provided?, defined?
* port-line-number, port-filename
* object->string, eval-string
- * reverse!, list-set!, sort!
+ * reverse!, list-set!, sort!, make-list
* gc, quit, *load-hook*, *error-hook*, *error-info*
* *features*, *load-path*, *vector-print-length*
* define-constant, pi, most-positive-fixnum, most-negative-fixnum, constant?
* a constant is really constant -- it can't be bound or set.
* symbol-calls if profiling is enabled
- * stacktrace, trace and untrace, __func__, macroexpand
+ * stacktrace, trace and untrace, *trace-hook*, __func__, macroexpand
* as in C, __func__ is the name of the function currently being defined.
* length, copy, fill!, map, for-each are generic
* vector-for-each, vector-map, string-for-each, for-each of any applicable object
*
* things I ought to add/change:
- * perhaps find(-if), remove etc from CL?
- * defmacro* define-macro*
- * perhaps settable numerator denominator imag-part real-part angle magnitude
- * perhaps trailing args to cons -> list*
- * perhaps trailing args to list-ref
- * cerror ("error/cc"?) -- tag = continuation in this case,
- * and error handler makes it accessible (as well as error context) for eval
- * rename "force" to some name matching the notion of a promise ("delay" and "force" are about as bad as names can get)
- * or better, get rid of these things altogether [cash_promise?]
+ * perhaps find(-if), remove etc from CL? (generic -- vectors and strings also as in support.scm)
+ * if generic, perhaps add to c-type struct?
* make #<func args> = (func args) or something like that so we can read new_type objects, or add a reader to that struct
+ * also add a conversion function (->generator etc)
* make-vector! where type of initial element sets type of all elements, or make-vector*?
* (make-vector! 32 0.0)
- * perhaps member, reverse and append generic
- * ->* for conversions (->vector, ->ratio? ->string etc)
- * ideally: remove all mention of exact|inexact, remove "delay"|force, remove set-car!|cdr!,
+ * set of other type either converts or error
+ * FFI would guarantee (for example) s7_Double as elements?
+ * perhaps generic reverse and append -- in the ! sense, reverse can be based on apply/set!/length
+ * ->* for conversions (->vector, ->ratio? ->string etc) [see end of this file]
+ * ideally: remove all mention of exact|inexact, remove set-car!|cdr!,
* remove *-ci-*, remove cxxxxr, remove improper lists
+ * exact->inexact is the only useful exactness function -- perhaps (->real x)?
* load should handle C shared libraries, using dlopen/dlinit [optionally]
+ * defgenerator (or at least defstruct of some sort)
+ * perhaps vector<->string for consistency
+ * perhaps bring new_type_x out to scheme -- could this be extended to defstruct? (needs make)
*
*
* Mike Scholz provided the FreeBSD support (complex trig funcs, etc)
@@ -213,6 +214,13 @@
*/
#endif
+#ifndef WITH_FORCE
+ #define WITH_FORCE 0
+ /* this includes the slib versions of force and delay. The name "delay" collides with CLM,
+ * so this is not compatible with sndlib.
+ */
+#endif
+
/* -------------------------------------------------------------------------------- */
@@ -301,21 +309,22 @@
typedef enum {OP_READ_INTERNAL, OP_EVAL, OP_EVAL_ARGS0, OP_EVAL_ARGS1, OP_APPLY, OP_EVAL_MACRO, OP_LAMBDA, OP_QUOTE,
OP_DEFINE0, OP_DEFINE1, OP_BEGIN, OP_IF0, OP_IF1, OP_SET0, OP_SET1, OP_SET2,
OP_LET0, OP_LET1, OP_LET2, OP_LET_STAR0, OP_LET_STAR1,
- OP_LETREC0, OP_LETREC1, OP_LETREC2, OP_COND0, OP_COND1, OP_MAKE_PROMISE, OP_AND0, OP_AND1,
- OP_OR0, OP_OR1, OP_DEFMACRO, OP_MACRO0, OP_MACRO1, OP_DEFINE_MACRO, OP_DEFINE_EXPANSION, OP_EXPANSION,
+ OP_LETREC0, OP_LETREC1, OP_LETREC2, OP_COND0, OP_COND1,
+ OP_AND0, OP_AND1, OP_OR0, OP_OR1, OP_DEFMACRO, OP_DEFMACRO_STAR, OP_MACRO0, OP_MACRO1,
+ OP_DEFINE_MACRO, OP_DEFINE_MACRO_STAR, OP_DEFINE_EXPANSION, OP_EXPANSION,
OP_CASE0, OP_CASE1, OP_CASE2, OP_READ_LIST, OP_READ_DOT, OP_READ_QUOTE,
OP_READ_QUASIQUOTE, OP_READ_QUASIQUOTE_VECTOR, OP_READ_UNQUOTE, OP_READ_UNQUOTE_SPLICING,
- OP_READ_VECTOR, OP_FORCE, OP_READ_RETURN_EXPRESSION, OP_READ_POP_AND_RETURN_EXPRESSION,
+ OP_READ_VECTOR, OP_READ_RETURN_EXPRESSION, OP_READ_POP_AND_RETURN_EXPRESSION,
OP_LOAD_RETURN_IF_EOF, OP_LOAD_CLOSE_AND_POP_IF_EOF, OP_EVAL_STRING, OP_EVAL_STRING_DONE, OP_EVAL_DONE,
OP_QUIT, OP_CATCH, OP_DYNAMIC_WIND, OP_LIST_FOR_EACH, OP_LIST_MAP, OP_DEFINE_CONSTANT0, OP_DEFINE_CONSTANT1,
OP_DO, OP_DO_END0, OP_DO_END1, OP_DO_STEP0, OP_DO_STEP1, OP_DO_STEP2, OP_DO_INIT,
OP_DEFINE_STAR, OP_LAMBDA_STAR, OP_ERROR_QUIT, OP_UNWIND_INPUT, OP_UNWIND_OUTPUT,
- OP_TRACE_RETURN, OP_ERROR_HOOK_QUIT, OP_WITH_ENV0, OP_WITH_ENV1, OP_WITH_ENV2,
+ OP_TRACE_RETURN, OP_ERROR_HOOK_QUIT, OP_TRACE_HOOK_QUIT, OP_WITH_ENV0, OP_WITH_ENV1, OP_WITH_ENV2,
OP_VECTOR_FOR_EACH, OP_VECTOR_MAP0, OP_VECTOR_MAP1, OP_STRING_FOR_EACH, OP_OBJECT_FOR_EACH,
OP_MAX_DEFINED} opcode_t;
#define NUM_SMALL_INTS 256
-/* this needs to be at least OP_MAX_DEFINED = 85 */
+/* this needs to be at least OP_MAX_DEFINED = 86 */
typedef enum {TOKEN_EOF, TOKEN_LEFT_PAREN, TOKEN_RIGHT_PAREN, TOKEN_DOT, TOKEN_ATOM, TOKEN_QUOTE, TOKEN_DOUBLE_QUOTE,
TOKEN_BACK_QUOTE, TOKEN_COMMA, TOKEN_AT_MARK, TOKEN_SHARP_CONST, TOKEN_VECTOR} token_t;
@@ -385,6 +394,9 @@ typedef struct s7_vdims_t {
typedef struct s7_cell {
unsigned int flag;
int hloc;
+#if WITH_PROFILING
+ long long int calls;
+#endif
union {
struct {
@@ -417,9 +429,6 @@ typedef struct s7_cell {
struct s7_cell *car;
struct s7_cell *cdr;
int line;
-#if WITH_PROFILING
- long long int calls;
-#endif
} cons;
struct {
@@ -504,7 +513,7 @@ struct s7_scheme {
s7_pointer LAMBDA, LAMBDA_STAR, QUOTE, QUASIQUOTE, UNQUOTE, UNQUOTE_SPLICING, MACROEXPAND;
s7_pointer APPLY, VECTOR, CONS, APPEND, CDR, VECTOR_FUNCTION, VALUES, ELSE, SET;
s7_pointer ERROR, WRONG_TYPE_ARG, OUT_OF_RANGE, FORMAT_ERROR, WRONG_NUMBER_OF_ARGS;
- s7_pointer KEY_KEY, KEY_OPTIONAL, KEY_REST, __FUNC__, ERROR_HOOK;
+ s7_pointer KEY_KEY, KEY_OPTIONAL, KEY_REST, __FUNC__, ERROR_HOOK, TRACE_HOOK;
s7_pointer FEED_TO; /* => */
s7_pointer OBJECT_SET; /* applicable object set method */
s7_pointer VECTOR_SET, STRING_SET, LIST_SET, HASH_TABLE_SET;
@@ -517,7 +526,7 @@ struct s7_scheme {
/* these 6 are pointers so that all thread refs are to the same thing */
bool *gc_off; /* if true, the GC won't run */
- bool *tracing; /* if tracing, each function on the *trace* list prints its args upon application */
+ bool *tracing, *trace_all; /* if tracing, each function on the *trace* list prints its args upon application */
long *gensym_counter;
#if WITH_ENCAPSULATION
@@ -580,17 +589,16 @@ struct s7_scheme {
#define T_INPUT_PORT 11
#define T_VECTOR 12
#define T_MACRO 13
-#define T_PROMISE 14
-#define T_C_OBJECT 15
-#define T_GOTO 16
-#define T_OUTPUT_PORT 17
-#define T_CATCH 18
-#define T_DYNAMIC_WIND 19
-#define T_HASH_TABLE 20
-#define T_BOOLEAN 21
-#define T_C_MACRO 22
-#define T_C_POINTER 23
-#define BUILT_IN_TYPES 24
+#define T_C_OBJECT 14
+#define T_GOTO 15
+#define T_OUTPUT_PORT 16
+#define T_CATCH 17
+#define T_DYNAMIC_WIND 18
+#define T_HASH_TABLE 19
+#define T_BOOLEAN 20
+#define T_C_MACRO 21
+#define T_C_POINTER 22
+#define BUILT_IN_TYPES 23
#define TYPE_BITS 8
#define T_MASKTYPE 0xff
@@ -719,7 +727,7 @@ struct s7_scheme {
#define symbol_value(Sym) cdr(Sym)
#define set_symbol_value(Sym, Val) cdr(Sym) = (Val)
#if WITH_PROFILING
- #define symbol_calls(p) (p)->object.cons.calls
+ #define symbol_calls(p) (p)->calls
#endif
#define symbol_global_slot(p) (car(p))->object.string.global_slot
@@ -779,7 +787,6 @@ struct s7_scheme {
#define is_goto(p) (type(p) == T_GOTO)
#define is_macro(p) (type(p) == T_MACRO)
-#define is_promise(p) (type(p) == T_PROMISE)
#define is_closure(p) (type(p) == T_CLOSURE)
#define is_closure_star(p) (type(p) == T_CLOSURE_STAR)
@@ -959,9 +966,9 @@ bool s7_boolean(s7_scheme *sc, s7_pointer x)
}
-bool s7_is_boolean(s7_scheme *sc, s7_pointer x)
+bool s7_is_boolean(s7_pointer x)
{
- return((x == sc->F) || (x == sc->T));
+ return(type(x) == T_BOOLEAN);
}
@@ -974,7 +981,7 @@ s7_pointer s7_make_boolean(s7_scheme *sc, bool x)
static s7_pointer g_is_boolean(s7_scheme *sc, s7_pointer args)
{
#define H_is_boolean "(boolean? obj) returns #t if obj is #f or #t"
- return(s7_make_boolean(sc, s7_is_boolean(sc, car(args))));
+ return(s7_make_boolean(sc, s7_is_boolean(car(args))));
}
@@ -1421,7 +1428,7 @@ static s7_pointer new_cell(s7_scheme *sc)
fprintf(stderr, "heap reallocation failed! tried to get %lu bytes\n", (unsigned long)((sc->heap_size + 1) * sizeof(s7_cell *)));
sc->free_heap = (s7_cell **)realloc(sc->free_heap, sc->heap_size * sizeof(s7_cell *));
- if (!(sc->heap))
+ if (!(sc->free_heap))
fprintf(stderr, "free heap reallocation failed! tried to get %lu bytes\n", (unsigned long)(sc->heap_size * sizeof(s7_cell *)));
{
@@ -1537,13 +1544,12 @@ void s7_remove_from_heap(s7_scheme *sc, s7_pointer x)
break;
case T_SYMBOL:
- /* here hloc is usually NOT_IN_HEAP, but in syntax case can be the syntax op code */
+ /* here hloc is usually NOT_IN_HEAP, but in the syntax case can be the syntax op code */
return;
case T_CLOSURE:
case T_CLOSURE_STAR:
case T_MACRO:
- case T_PROMISE:
s7_remove_from_heap(sc, closure_source(x));
break;
@@ -1661,14 +1667,15 @@ static void show_stack(s7_scheme *sc)
const char *ops[OP_MAX_DEFINED] =
{"read_internal", "eval", "eval_args0", "eval_args1", "apply", "eval_macro", "lambda", "quote",
"define0", "define1", "begin", "if0", "if1", "set0", "set1", "set2", "let0", "let1", "let2",
- "let_star0", "let_star1", "letrec0", "letrec1", "letrec2", "cond0", "cond1", "make_promise",
- "and0", "and1", "or0", "or1", "defmacro", "macro0", "macro1", "define_macro", "define_expansion", "expansion",
+ "let_star0", "let_star1", "letrec0", "letrec1", "letrec2", "cond0", "cond1",
+ "and0", "and1", "or0", "or1", "defmacro", "defmacro_star", "macro0", "macro1",
+ "define_macro", "define_macro_star", "define_expansion", "expansion",
"case0", "case1", "case2", "read_list", "read_dot", "read_quote", "read_quasiquote", "read_quasiquote_vector",
- "read_unquote", "read_unquote_splicing", "read_vector", "force", "read_return_expression",
+ "read_unquote", "read_unquote_splicing", "read_vector", "read_return_expression",
"read_and_return_expression", "load_return_if_eof", "load_close_and_pop_if_eof", "eval_string",
"eval_string_done", "eval_done", "quit", "catch", "dynamic_wind", "for_list_each", "list_map", "define_constant0",
"define_constant1", "do", "do_end0", "do_end1", "do_step0", "do_step1", "do_step2", "do_init", "define_star",
- "lambda_star", "error_quit", "unwind_input", "unwind_output", "trace_return", "error_hook_quit",
+ "lambda_star", "error_quit", "unwind_input", "unwind_output", "trace_return", "error_hook_quit", "trace_hook_quit",
"with_env0", "with_env1", "with_env2", "vector_for_each", "vector_map0", "vector_map1", "string_for_each",
"object_for_each"};
@@ -2453,7 +2460,6 @@ static s7_pointer copy_object(s7_scheme *sc, s7_pointer obj)
(is_closure(obj)) ||
(is_closure_star(obj)) ||
(is_macro(obj)) ||
- (is_promise(obj)) ||
(s7_is_function(obj)))
cdr(nobj) = cdr(obj); /* closure_environment in func cases */
else cdr(nobj) = copy_object(sc, cdr(obj));
@@ -6679,6 +6685,23 @@ static s7_pointer g_make_random_state(s7_scheme *sc, s7_pointer args)
}
+static s7_pointer copy_random_state(s7_scheme *sc, s7_pointer obj)
+{
+ s7_rng_t *r;
+ if (c_object_type(obj) == rng_tag)
+ {
+ s7_rng_t *new_r;
+ r = (s7_rng_t *)s7_object_value(obj);
+ new_r = (s7_rng_t *)calloc(1, sizeof(s7_rng_t));
+ new_r->ran_seed = r->ran_seed;
+ new_r->ran_carry = r->ran_carry;
+ return(s7_make_object(sc, rng_tag, (void *)new_r));
+ }
+ /* I can't find a way to copy a gmp random generator */
+ return(sc->F);
+}
+
+
#if HAVE_PTHREADS
static pthread_mutex_t rng_lock = PTHREAD_MUTEX_INITIALIZER;
#endif
@@ -7668,17 +7691,23 @@ static char *describe_port(s7_scheme *sc, s7_pointer p)
static s7_pointer g_port_line_number(s7_scheme *sc, s7_pointer args)
{
#define H_port_line_number "(port-line-number input-file-port) returns the current read line number of port"
- s7_pointer x = car(args);
- if ((is_input_port(x)) &&
- (is_file_port(x)))
+ s7_pointer x;
+ x = car(args);
+
+ if (!(is_input_port(x)))
+ return(s7_wrong_type_arg_error(sc, "port-line-number", 1, x, "an input port"));
+
+ if (is_file_port(x))
return(s7_make_integer(sc, port_line_number(x)));
+
return(sc->F); /* not an error! */
}
const char *s7_port_filename(s7_pointer x)
{
- if (is_file_port(x))
+ if (((is_input_port(x)) || (is_output_port(x))) && /* make sure it's some kind of port */
+ (is_file_port(x)))
return(port_filename(x));
return(NULL);
}
@@ -7686,10 +7715,16 @@ const char *s7_port_filename(s7_pointer x)
static s7_pointer g_port_filename(s7_scheme *sc, s7_pointer args)
{
#define H_port_filename "(port-filename file-port) returns the filename associated with port"
- s7_pointer x = car(args);
- if (is_file_port(x))
- return(s7_make_string(sc, port_filename(x)));
- return(sc->F); /* not an error! */
+ s7_pointer x;
+ x = car(args);
+
+ if ((is_input_port(x)) || (is_output_port(x)))
+ {
+ if (is_file_port(x))
+ return(s7_make_string(sc, port_filename(x)));
+ return(sc->F); /* not an error! */
+ }
+ return(s7_wrong_type_arg_error(sc, "port-filename", 1, x, "a port"));
}
@@ -8950,9 +8985,6 @@ static char *s7_atom_to_c_string(s7_scheme *sc, s7_pointer obj, bool use_write)
return(s7_strdup("#<closure>"));
}
- case T_PROMISE:
- return(s7_strdup("#<promise>"));
-
case T_C_FUNCTION:
return(s7_strdup(c_function_name(obj)));
@@ -9008,6 +9040,13 @@ static char *s7_atom_to_c_string(s7_scheme *sc, s7_pointer obj, bool use_write)
}
+bool s7_is_valid_pointer(s7_pointer arg)
+{
+ return((arg) &&
+ (type(arg) > T_UNTYPED) && (type(arg) < BUILT_IN_TYPES));
+}
+
+
static char *s7_vector_to_c_string(s7_scheme *sc, s7_pointer vect, int depth, bool to_file);
static char *s7_list_to_c_string(s7_scheme *sc, s7_pointer lst, int depth);
@@ -9803,6 +9842,36 @@ static s7_pointer g_is_list(s7_scheme *sc, s7_pointer args)
}
+static s7_pointer g_make_list(s7_scheme *sc, s7_pointer args)
+{
+ #define H_make_list "(make-list length (initial-element #f)) returns a list of 'length' elements whose value is 'initial-element'."
+
+ s7_pointer init, result;
+ int i, len;
+
+ if (!s7_is_integer(car(args)))
+ return(s7_wrong_type_arg_error(sc, "make-list", 1, car(args), "an integer"));
+ len = s7_integer(car(args));
+ if (len < 0)
+ return(s7_out_of_range_error(sc, "make-list", 1, car(args), "length should be non-negative"));
+ if (len == 0) return(sc->NIL); /* what about (make-list 0 123)? */
+
+ if (is_pair(cdr(args)))
+ init = cadr(args);
+ else init = sc->F;
+
+ result = sc->NIL;
+ if (sc->free_heap_top <= (unsigned int)len) gc(sc);
+
+ s7_gc_on(sc, false);
+ for (i = 0; i < len; i++)
+ result = s7_cons(sc, init, result);
+ s7_gc_on(sc, true);
+
+ return(result);
+}
+
+
static s7_pointer g_list_ref(s7_scheme *sc, s7_pointer args)
{
#define H_list_ref "(list-ref lst i) returns the i-th element (0-based) of the list"
@@ -10658,6 +10727,9 @@ static s7_pointer s7_vector_copy(s7_scheme *sc, s7_pointer old_vect)
len = vector_length(old_vect);
new_vect = s7_make_vector_1(sc, len, false);
+ /*
+ * here and in vector-fill! we have a problem with bignums -- should new bignums be allocated? (copy_list also)
+ */
memcpy((void *)(vector_elements(new_vect)), (void *)(vector_elements(old_vect)), len * sizeof(s7_pointer));
return(new_vect);
@@ -10708,6 +10780,32 @@ s7_pointer *s7_vector_elements(s7_pointer vec)
}
+s7_Int *s7_vector_dimensions(s7_pointer vec)
+{
+ s7_Int *dims;
+#if WITH_MULTIDIMENSIONAL_VECTORS
+ if (vector_is_multidimensional(vec))
+ return(vec->object.vector.dim_info->dims);
+#endif
+ dims = (s7_Int *)malloc(sizeof(s7_Int));
+ dims[0] = vector_length(vec);
+ return(dims);
+}
+
+
+s7_Int *s7_vector_offsets(s7_pointer vec)
+{
+ s7_Int *offs;
+#if WITH_MULTIDIMENSIONAL_VECTORS
+ if (vector_is_multidimensional(vec))
+ return(vec->object.vector.dim_info->offsets);
+#endif
+ offs = (s7_Int *)malloc(sizeof(s7_Int));
+ offs[0] = 1;
+ return(offs);
+}
+
+
s7_pointer s7_vector_to_list(s7_scheme *sc, s7_pointer vect)
{
s7_pointer lst = sc->NIL;
@@ -11029,6 +11127,16 @@ static s7_pointer g_is_vector(s7_scheme *sc, s7_pointer args)
}
+int s7_vector_rank(s7_pointer vect)
+{
+#if WITH_MULTIDIMENSIONAL_VECTORS
+ if (vector_is_multidimensional(vect))
+ return(vector_ndims(vect));
+#endif
+ return(1);
+}
+
+
#if WITH_MULTIDIMENSIONAL_VECTORS
static s7_pointer g_vector_dimensions(s7_scheme *sc, s7_pointer args)
{
@@ -11205,6 +11313,9 @@ If its first argument is a list, the list is copied (despite the '!')."
/* qsort is a large and complex function (250 lines in libc), so we can't easily
* expand it in our eval loop, but we may want to jump out of the sort via call/cc,
* so we look for the stack being unwound past the start point -- this is a kludge!
+ * Currently, if an error occurs in the sort function, we depend on s7_error to
+ * turn it back on; is there any case where we'd want it off despite hitting
+ * an error?
*/
push_stack(sc, OP_EVAL_DONE, sc->args, sc->code);
@@ -11560,7 +11671,7 @@ s7_pointer s7_procedure_source(s7_scheme *sc, s7_pointer p)
* ((a) (+ a b)) (((b . 1)) #(() () () () () ((make-filtered-comb . make-filtered-comb)) () () ...))
*/
- if (is_closure(p) || is_closure_star(p) || is_macro(p) || is_promise(p))
+ if (is_closure(p) || is_closure_star(p) || is_macro(p))
{
return(s7_cons(sc,
s7_append(sc,
@@ -11591,7 +11702,7 @@ static s7_pointer g_procedure_source(s7_scheme *sc, s7_pointer args)
(!is_macro(p)))
return(s7_wrong_type_arg_error(sc, "procedure-source", 0, p, "a procedure or a macro"));
- if (is_closure(p) || is_closure_star(p) || is_macro(p) || is_promise(p))
+ if (is_closure(p) || is_closure_star(p) || is_macro(p))
return(s7_append(sc,
make_list_2(sc,
(is_closure_star(p)) ? sc->LAMBDA_STAR : sc->LAMBDA,
@@ -11622,7 +11733,7 @@ static s7_pointer g_procedure_environment(s7_scheme *sc, s7_pointer args)
if (!is_procedure(p))
return(s7_wrong_type_arg_error(sc, "procedure-environment", 0, p, "a procedure"));
- if (is_closure(p) || is_closure_star(p) || is_promise(p))
+ if (is_closure(p) || is_closure_star(p))
return(closure_environment(p));
return(sc->global_env);
}
@@ -12056,8 +12167,6 @@ static s7_pointer g_object_for_each(s7_scheme *sc, s7_pointer args)
-
-
/* -------- procedure-with-setter -------- */
static int pws_tag;
@@ -12399,14 +12508,6 @@ static s7_pointer g_is_equal(s7_scheme *sc, s7_pointer args)
}
-static s7_pointer g_is_promise(s7_scheme *sc, s7_pointer args)
-{
- #define H_is_promise "(promise? obj1) returns #t if obj1 is a promise (from make-promise = 'delay' in other schemes)"
- return(make_boolean(sc, type(car(args)) == T_PROMISE));
-}
-
-
-
/* ---------------------------------------- length, copy, fill ---------------------------------------- */
@@ -12755,14 +12856,16 @@ typedef struct {
static char *s7_format_error(s7_scheme *sc, const char *msg, const char *str, s7_pointer args, format_data *dat)
{
- int len, slen = 0;
+ int len;
char *errmsg;
s7_pointer x;
- len = safe_strlen(msg) + (2 * safe_strlen(str)) + 32;
- errmsg = (char *)malloc(len * sizeof(char));
if (dat->loc == 0)
- slen = snprintf(errmsg, len, "format ~S ~{~A~^ ~}: %s", msg);
+ {
+ len = safe_strlen(msg) + 32;
+ errmsg = (char *)malloc(len * sizeof(char));
+ snprintf(errmsg, len, "format ~S ~{~A~^ ~}: %s", msg);
+ }
else
{
char *filler;
@@ -12770,11 +12873,13 @@ static char *s7_format_error(s7_scheme *sc, const char *msg, const char *str, s7
filler = (char *)calloc(dat->loc + 12, sizeof(char));
for (i = 0; i < dat->loc + 11; i++)
filler[i] = ' ';
- slen = snprintf(errmsg, len, "\nformat: ~S ~{~A~^ ~}\n%s^: %s", filler, msg);
+ len = safe_strlen(msg) + 32 + dat->loc + 12;
+ errmsg = (char *)malloc(len * sizeof(char));
+ snprintf(errmsg, len, "\nformat: ~S ~{~A~^ ~}\n%s^: %s", filler, msg);
free(filler);
}
- x = make_list_3(sc, s7_make_string_with_length(sc, errmsg, slen), s7_make_string(sc, str), args);
+ x = make_list_3(sc, s7_make_string(sc, errmsg), s7_make_string(sc, str), args);
free(errmsg);
if (dat->str) free(dat->str);
@@ -13169,7 +13274,7 @@ spacing (and spacing character) and precision. ~{ starts an embedded format dir
if (!s7_is_string(cadr(args)))
return(s7_wrong_type_arg_error(sc, "format", 2, cadr(args), "a string"));
- if (!((s7_is_boolean(sc, pt)) || /* #f or #t */
+ if (!((s7_is_boolean(pt)) || /* #f or #t */
(pt == sc->NIL) || /* default current-output-port = stdout -> nil */
(s7_is_output_port(sc, pt)))) /* (current-output-port) or call-with-open-file arg, etc */
return(s7_wrong_type_arg_error(sc, "format", 1, pt, "#f, #t, or an output port"));
@@ -13209,7 +13314,8 @@ static s7_pointer g_trace(s7_scheme *sc, s7_pointer args)
#define H_trace "(trace . args) adds each function in its argument list to the trace list.\
Each argument can be a function, symbol, macro, or any applicable object: (trace abs '+ v) where v is a vct \
prints out data about any call on abs or +, and any reference to the vct v. Trace output is sent \
-to the current-output-port."
+to the current-output-port. If trace is called without any arguments, everything is traced -- use \
+untrace without arguments to turn this off."
int i;
s7_pointer x;
@@ -13218,13 +13324,17 @@ to the current-output-port."
sc = sc->orig_sc;
#endif
- if (args == sc->NIL) return(sc->F);
+ if (args == sc->NIL)
+ {
+ (*(sc->trace_all)) = true;
+ (*(sc->tracing)) = true;
+ return(sc->F);
+ }
for (i = 0, x = args; x != sc->NIL; i++, x = cdr(x))
if ((!s7_is_symbol(car(x))) &&
(!s7_is_procedure(car(x))) &&
- (!is_any_macro(car(x))) &&
- (!is_promise(car(x))))
+ (!is_any_macro(car(x))))
return(s7_wrong_type_arg_error(sc, "trace", i + 1, car(x), "a symbol, a function, or some other applicable object"));
for (i = 0, x = args; x != sc->NIL; i++, x = cdr(x))
@@ -13240,7 +13350,6 @@ to the current-output-port."
}
(*(sc->tracing)) = (sc->trace_top > 0);
-
return(sc->T);
}
@@ -13249,39 +13358,42 @@ static s7_pointer g_untrace(s7_scheme *sc, s7_pointer args)
{
#define H_untrace "(untrace . args) removes each function in its arg list from the trace list. \
If untrace is called with no arguments, all functions are removed, turning off all tracing."
+ int i, j;
+ s7_pointer x;
#if HAVE_PTHREADS
sc = sc->orig_sc;
#endif
if (args == sc->NIL)
- sc->trace_top = 0;
- else
{
- int i, j;
- s7_pointer x;
- for (x = args; x != sc->NIL; x = cdr(x))
- {
- s7_pointer value;
- if (s7_is_symbol(car(x)))
- value = eval_symbol(sc, car(x));
- else value = car(x);
-
- for (i = 0; i < sc->trace_top; i++)
- if (value == sc->trace_list[i])
- sc->trace_list[i] = sc->NIL;
- }
-
- /* now collapse list and reset trace_top (and possibly tracing) */
- for (i = 0, j = 0; i < sc->trace_top; i++)
- if (sc->trace_list[i] != sc->NIL)
- sc->trace_list[j++] = sc->trace_list[i];
-
- sc->trace_top = j;
+ (*(sc->trace_all)) = false;
+ for (i = 0; i < sc->trace_top; i++)
+ sc->trace_list[i] = sc->NIL;
+ sc->trace_top = 0;
+ (*(sc->tracing)) = false;
+ return(sc->F);
}
+ for (x = args; x != sc->NIL; x = cdr(x))
+ {
+ s7_pointer value;
+ if (s7_is_symbol(car(x)))
+ value = eval_symbol(sc, car(x));
+ else value = car(x);
+
+ for (i = 0; i < sc->trace_top; i++)
+ if (value == sc->trace_list[i])
+ sc->trace_list[i] = sc->NIL;
+ }
+
+ /* now collapse list and reset trace_top (and possibly tracing) */
+ for (i = 0, j = 0; i < sc->trace_top; i++)
+ if (sc->trace_list[i] != sc->NIL)
+ sc->trace_list[j++] = sc->trace_list[i];
+
+ sc->trace_top = j;
(*(sc->tracing)) = (sc->trace_top > 0);
-
return(sc->T);
}
@@ -13289,6 +13401,7 @@ If untrace is called with no arguments, all functions are removed, turning off a
static void trace_apply(s7_scheme *sc)
{
int i;
+ bool trace_it = false;
#if HAVE_PTHREADS
int id;
@@ -13296,46 +13409,70 @@ static void trace_apply(s7_scheme *sc)
sc = sc->orig_sc;
#endif
- for (i = 0; i < sc->trace_top; i++)
- if (sc->code == sc->trace_list[i])
- {
- int k, len;
- char *tmp1, *tmp2, *str;
- push_stack(sc, OP_TRACE_RETURN, sc->code, sc->NIL);
- tmp1 = s7_object_to_c_string(sc, sc->code);
- tmp2 = s7_object_to_c_string(sc, sc->args);
- len = safe_strlen(tmp2);
- tmp2[0] = ' ';
- tmp2[len - 1] = ']';
-
- len += (safe_strlen(tmp1) + sc->trace_depth + 64);
- str = (char *)calloc(len, sizeof(char));
-
- for (k = 0; k < sc->trace_depth; k++) str[k] = ' ';
- str[k] = '[';
- strcat(str, tmp1);
- strcat(str, tmp2);
- free(tmp1);
- free(tmp2);
-
-#if HAVE_PTHREADS
- if (id != 0) /* main thread */
+ if (*(sc->trace_all))
+ trace_it = true;
+ else
+ {
+ for (i = 0; i < sc->trace_top; i++)
+ if (sc->code == sc->trace_list[i])
{
- char *tmp3;
- tmp3 = (char *)calloc(64, sizeof(char));
- snprintf(tmp3, 64, " (thread %d)", id);
- strcat(str, tmp3);
- free(tmp3);
+ trace_it = true;
+ break;
}
-#endif
+ }
- strcat(str, "\n");
- write_string(sc, str, sc->output_port);
- free(str);
+ if (trace_it)
+ {
+ int k, len;
+ char *tmp1, *tmp2, *str;
+ push_stack(sc, OP_TRACE_RETURN, sc->code, sc->NIL);
+ tmp1 = s7_object_to_c_string(sc, sc->code);
+ tmp2 = s7_object_to_c_string(sc, sc->args);
+ len = safe_strlen(tmp2);
+ tmp2[0] = ' ';
+ tmp2[len - 1] = ']';
+
+ len += (safe_strlen(tmp1) + sc->trace_depth + 64);
+ str = (char *)calloc(len, sizeof(char));
+
+ for (k = 0; k < sc->trace_depth; k++) str[k] = ' ';
+ str[k] = '[';
+ strcat(str, tmp1);
+ strcat(str, tmp2);
+ free(tmp1);
+ free(tmp2);
+
+#if HAVE_PTHREADS
+ if (id != 0) /* main thread */
+ {
+ char *tmp3;
+ tmp3 = (char *)calloc(64, sizeof(char));
+ snprintf(tmp3, 64, " (thread %d)", id);
+ strcat(str, tmp3);
+ free(tmp3);
+ }
+#endif
+
+ strcat(str, "\n");
+ write_string(sc, str, sc->output_port);
+ free(str);
+
+ sc->trace_depth++;
- sc->trace_depth++;
- break;
+ {
+ /* handle *trace-hook* */
+ s7_pointer trace_hook, trace_hook_binding;
+ trace_hook_binding = s7_find_symbol_in_environment(sc, sc->envir, sc->TRACE_HOOK, true);
+ if ((trace_hook_binding != sc->NIL) &&
+ (is_procedure(symbol_value(trace_hook_binding))))
+ {
+ trace_hook = symbol_value(trace_hook_binding);
+ push_stack(sc, OP_TRACE_HOOK_QUIT, sc->args, sc->code); /* restore current state after dealing with the trace hook func */
+ sc->args = make_list_2(sc, sc->code, sc->args);
+ sc->code = trace_hook;
+ }
}
+ }
}
@@ -13388,7 +13525,6 @@ static const char *s7_type_name(s7_pointer arg)
case T_CHARACTER: return("character");
case T_VECTOR: return("vector");
case T_MACRO: return("macro");
- case T_PROMISE: return("promise");
case T_CATCH: return("catch");
case T_DYNAMIC_WIND: return("dynamic-wind");
case T_HASH_TABLE: return("hash-table");
@@ -13649,6 +13785,17 @@ static int remember_file_name(const char *file)
* PERHAPS: include the continuation?
*/
+/* slightly ugly:
+
+(define-macro (cerror . args)
+ `(call/cc
+ (lambda (continue)
+ (apply error continue ',args))))
+
+;;; now ((vector-ref *error-info* 0)) will continue from the error
+*/
+
+
static s7_pointer s7_error_1(s7_scheme *sc, s7_pointer type, s7_pointer info, bool exit_eval)
{
int i;
@@ -13661,6 +13808,7 @@ static s7_pointer s7_error_1(s7_scheme *sc, s7_pointer type, s7_pointer info, bo
vector_element(sc->error_info, ERROR_CODE_LINE) = ERROR_INFO_DEFAULT;
vector_element(sc->error_info, ERROR_CODE_FILE) = ERROR_INFO_DEFAULT;
vector_element(sc->error_info, ERROR_ENVIRONMENT) = sc->envir;
+ s7_gc_on(sc, true); /* this is in case we were triggered from the sort function -- clumsy! */
/* (let ((x 32)) (define (h1 a) (* a "hi")) (define (h2 b) (+ b (h1 b))) (h2 1)) */
@@ -14142,22 +14290,6 @@ void s7_quit(s7_scheme *sc)
}
-static s7_pointer g_force(s7_scheme *sc, s7_pointer args)
-{
- #define H_force "(force obj) lazily evaluates obj"
- if (is_promise(car(args)))
- {
- sc->code = car(args);
- push_stack(sc, OP_FORCE, sc->NIL, sc->code);
- sc->args = sc->NIL;
- push_stack(sc, OP_APPLY, sc->args, sc->code);
- return(sc->NIL);
- }
- /* already forced, presumably */
- return(car(args));
-}
-
-
static s7_pointer apply_list_star(s7_scheme *sc, s7_pointer d)
{
s7_pointer p, q;
@@ -14883,7 +15015,7 @@ static s7_pointer read_string_constant(s7_scheme *sc, s7_pointer pt)
else
{
if (!isspace(c))
- return(sc->F);
+ return(sc->T); /* #f here would give confusing error message "end of input", so return #t=bad backslash */
}
}
}
@@ -14962,6 +15094,8 @@ static s7_pointer read_expression(s7_scheme *sc)
sc->value = read_string_constant(sc, sc->input_port);
if (sc->value == sc->F) /* can happen if input code ends in the middle of a string */
return(read_error(sc, "end of input encountered while in a string"));
+ if (sc->value == sc->T)
+ return(read_error(sc, "unknown backslash usage"));
return(sc->value);
case TOKEN_SHARP_CONST:
@@ -15708,7 +15842,9 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
int len;
char *msg, *argstr;
s7_pointer result;
- argstr = s7_object_to_c_string(sc, s7_append(sc, s7_reverse(sc, cdr(sc->args)), s7_cons(sc, car(sc->args), sc->code)));
+ argstr = s7_object_to_c_string(sc, s7_append(sc,
+ s7_reverse(sc, cdr(sc->args)),
+ s7_cons(sc, car(sc->args), sc->code)));
len = strlen(argstr) + 32;
msg = (char *)malloc(len * sizeof(char));
len = snprintf(msg, len, "improper list of arguments: %s?", argstr);
@@ -15719,6 +15855,11 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
}
sc->args = safe_reverse_in_place(sc, sc->args);
+ /* we could omit this reversal in many cases: all built in ops could
+ * assume reversed args, things like eq? and + don't care about order, etc.
+ * But, I think the reversal is not taking any noticeable percentage of
+ * the overall compute time (ca 1% according to callgrind).
+ */
sc->code = car(sc->args);
sc->args = cdr(sc->args);
/* goto APPLY; */
@@ -15728,14 +15869,15 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
/* ---------------- OP_APPLY ---------------- */
APPLY:
case OP_APPLY: /* apply 'code' to 'args' */
- if (*(sc->tracing))
- trace_apply(sc);
-
- /* fprintf(stderr, "(%s %s)\n", s7_object_to_c_string(sc, sc->code), s7_object_to_c_string(sc, sc->args)); */
#if WITH_PROFILING
symbol_calls(sc->code)++;
#endif
+
+ if (*(sc->tracing))
+ trace_apply(sc);
+
+ APPLY_WITHOUT_TRACE:
if (sc->stack_top >= sc->stack_size2)
increase_stack_size(sc);
@@ -15806,9 +15948,8 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
}
- case T_CLOSURE:
+ case T_CLOSURE: /* -------- normal function (lambda), or macro -------- */
case T_MACRO:
- case T_PROMISE: /* -------- normal function (lambda), macro, or delay -------- */
sc->envir = new_frame_in_env(sc, closure_environment(sc->code));
/* load up the current args into the ((args) (lambda)) layout [via the current environment] */
@@ -16614,70 +16755,6 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
goto EVAL;
- /* rather than having built-in force and make-promise, why not use these (from slib with some changes):
-
- (define (force object) (object))
-
- (define-macro (make-promise expression)
- `(let ((result-ready? #f)
- (result #f))
- (lambda ()
- (if result-ready?
- result
- (let ((x (let ()
- ,expression)))
- (if result-ready?
- result
- (begin
- (set! result-ready? #t)
- (set! result x)
- result)))))))
- */
-
- case OP_MAKE_PROMISE:
- if (sc->code == sc->NIL) /* (make-promise) */
- return(eval_error(sc, "make-promise needs an argument: ~A", sc->code));
-
- if (cdr(sc->code) != sc->NIL)
- return(eval_error(sc, "make-promise takes one argument: ~A", sc->code));
-
- sc->value = s7_make_closure(sc, s7_cons(sc, sc->NIL, sc->code), sc->envir);
- set_type(sc->value, T_PROMISE);
- pop_stack(sc);
- goto START;
-
-
- case OP_FORCE: /* Save forced value replacing promise */
- /* in g_force, code = car(args) == the promise
- * it then calls apply, and then pops to here, so value == promise's value, code = promise object
- */
- {
- int cloc;
- cloc = sc->code->hloc;
- memcpy(sc->code, sc->value, sizeof(s7_cell));
- sc->code->hloc = cloc;
- }
- /* "values" is trouble here -- I think, since "delay" is a mess to begin with, that I'll ignore that problem */
- /* (let ((arg (force (make-promise (values 1 2 3))))) (+ arg 4)) ; this doesn't work yet */
-
- /* memcpy is trouble:
- * if, for example, sc->value is a string, after memcpy we have two (string) objects in the heap
- * pointing to the same string. When they are GC'd, we try to free the same pointer twice.
- * But we can't clear sc->value and reset its type -- it might be #t for example!
- * We can't just say sc->code = sc->value because we're playing funny games with
- * self-modifying code here. So...
- */
-
- clear_finalizable(sc->code); /* make sure GC calls free once */
-
- if ((is_pair(sc->value)) && /* (+ (force (make-promise (values 1 2 3))) 4) */
- (car(sc->value) == sc->VALUES))
- sc->value = splice_in_values(sc, cdr(sc->value));
-
- pop_stack(sc);
- goto START;
-
-
case OP_AND0:
if (sc->code == sc->NIL)
{
@@ -16805,6 +16882,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
case OP_DEFMACRO:
+ case OP_DEFMACRO_STAR:
/* (defmacro name (args) body) ->
*
@@ -16879,7 +16957,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
sc->APPLY,
s7_cons(sc,
s7_cons(sc,
- sc->LAMBDA,
+ (sc->op == OP_DEFMACRO_STAR) ? sc->LAMBDA_STAR : sc->LAMBDA,
sc->z),
make_list_1(sc, make_list_2(sc, sc->CDR, sc->y)))))));
@@ -16909,6 +16987,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
case OP_DEFINE_MACRO:
+ case OP_DEFINE_MACRO_STAR:
if (!is_pair(car(sc->code)))
return(s7_wrong_type_arg_error(sc, "define-macro", 1, car(sc->code), "a list (name ...)"));
@@ -16947,7 +17026,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
sc->APPLY,
s7_cons(sc,
s7_cons(sc,
- sc->LAMBDA,
+ (sc->op == OP_DEFINE_MACRO_STAR) ? sc->LAMBDA_STAR : sc->LAMBDA,
s7_cons(sc,
cdar(sc->code), /* arg list */
sc->z)),
@@ -17021,6 +17100,10 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
pop_stack(sc);
goto START;
+
+ case OP_TRACE_HOOK_QUIT:
+ goto APPLY_WITHOUT_TRACE;
+
case OP_ERROR_HOOK_QUIT:
s7_symbol_set_value(sc, sc->ERROR_HOOK, sc->code);
@@ -17668,8 +17751,10 @@ static void mark_s7(s7_scheme *sc)
* in 0.7 they removed MPC_IM and MPC_RE, and replaced them with mpc_imagref and mpc_realref.
*/
+/* TODO: remove mpc < 0.8 support! */
+
#if defined(MPC_VERSION_MAJOR) && defined(MPC_VERSION_MINOR)
-#if ((MPC_VERSION_MAJOR == 0) && (MPC_VERSION_MINOR > 5))
+#if ((MPC_VERSION_MAJOR >= 1) || ((MPC_VERSION_MAJOR == 0) && (MPC_VERSION_MINOR > 5)))
#define TRIG_TYPE int
@@ -17692,6 +17777,10 @@ static void mpc_init_set_ui_ui(mpc_ptr z, unsigned long int x, unsigned long int
mpc_set_ui_ui(z, x, y, rnd);
}
+#if ((MPC_VERSION_MAJOR >= 1) || ((MPC_VERSION_MAJOR == 0) && (MPC_VERSION_MINOR > 7)))
+#define HAVE_MPC_ASIN 1
+#endif
+
#else
#define TRIG_TYPE void
#define mpc_set_default_precision(Prec) mpc_set_default_prec(Prec)
@@ -17707,6 +17796,10 @@ static void mpc_init_set_ui_ui(mpc_ptr z, unsigned long int x, unsigned long int
#define MPC_RE(x) mpc_realref(x)
#endif
+#ifndef HAVE_MPC_ASIN
+#define HAVE_MPC_ASIN 0
+#endif
+
/* -------------------------------------------------------------------------------- */
@@ -17971,6 +18064,12 @@ s7_pointer s7_make_big_integer(s7_scheme *sc, mpz_t *val)
}
+s7_pointer copy_big_integer(s7_scheme *sc, s7_pointer obj)
+{
+ return(s7_make_big_integer(sc, s7_big_integer(obj)));
+}
+
+
static s7_pointer string_to_big_ratio(s7_scheme *sc, const char *str, int radix)
{
mpq_t *n;
@@ -18007,6 +18106,12 @@ s7_pointer s7_make_big_ratio(s7_scheme *sc, mpq_t *val)
}
+s7_pointer copy_big_ratio(s7_scheme *sc, s7_pointer obj)
+{
+ return(s7_make_big_ratio(sc, s7_big_ratio(obj)));
+}
+
+
static s7_pointer mpz_to_big_ratio(s7_scheme *sc, mpz_t val)
{
mpq_t *n;
@@ -18095,6 +18200,12 @@ s7_pointer s7_make_big_real(s7_scheme *sc, mpfr_t *val)
}
+s7_pointer copy_big_real(s7_scheme *sc, s7_pointer obj)
+{
+ return(s7_make_big_real(sc, s7_big_real(obj)));
+}
+
+
static s7_pointer big_pi(s7_scheme *sc)
{
mpfr_t *n;
@@ -18204,6 +18315,12 @@ s7_pointer s7_make_big_complex(s7_scheme *sc, mpc_t *val)
}
+s7_pointer copy_big_complex(s7_scheme *sc, s7_pointer obj)
+{
+ return(s7_make_big_complex(sc, s7_big_complex(obj)));
+}
+
+
static s7_pointer make_big_complex(s7_scheme *sc, mpfr_t rl, mpfr_t im)
{
/* there is no mpc_get_str equivalent, so we need to split up str,
@@ -20152,7 +20269,11 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
if ((s7_is_number(x)) &&
(s7_is_number(y)))
{
+#if HAVE_MPC_ASIN
+ mpc_t cy;
+#else
mpfr_t r, theta, yre, yim, nr, ntheta, lgr;
+#endif
mpc_t *z;
x = promote_number(sc, T_BIG_COMPLEX, x);
@@ -20176,6 +20297,13 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
return(small_int(sc, 1));
}
+#if HAVE_MPC_ASIN
+ /* this chooses a different root in a few cases */
+ mpc_init(cy);
+ mpc_set(cy, S7_BIG_COMPLEX(y), MPC_RNDNN);
+ mpc_pow(*z, *z, cy, MPC_RNDNN);
+ mpc_clear(cy);
+#else
mpfr_init(r);
mpfr_init(theta);
mpc_abs(r, *z, GMP_RNDN); /* r = cabs(x) */
@@ -20206,7 +20334,7 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
mpfr_clear(ntheta);
mpfr_clear(yre);
mpfr_clear(yim);
-
+#endif
if (mpfr_cmp_ui(MPC_IM(*z), 0) == 0)
{
mpfr_t *n;
@@ -20245,7 +20373,6 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
static s7_pointer big_asinh(s7_scheme *sc, s7_pointer args)
{
- /* the complex case is not yet implmented in mpc, so use the earlier formula for casinh */
s7_pointer p;
p = car(args);
if (is_c_object(p))
@@ -20262,10 +20389,16 @@ static s7_pointer big_asinh(s7_scheme *sc, s7_pointer args)
}
if (c_object_type(p) == big_complex_tag)
{
- mpc_t *n;
+#if (!HAVE_MPC_ASIN)
mpc_t z;
+#endif
+ mpc_t *n;
n = (mpc_t *)malloc(sizeof(mpc_t));
mpc_init(*n);
+#if HAVE_MPC_ASIN
+ mpc_set(*n, S7_BIG_COMPLEX(p), MPC_RNDNN);
+ mpc_asinh(*n, *n, MPC_RNDNN);
+#else
mpc_init(z);
mpc_set(z, S7_BIG_COMPLEX(p), MPC_RNDNN);
mpc_mul(*n, z, z, MPC_RNDNN); /* z*z */
@@ -20274,6 +20407,7 @@ static s7_pointer big_asinh(s7_scheme *sc, s7_pointer args)
mpc_add(*n, *n, z, MPC_RNDNN); /* z + sqrt(1+z*z) */
mpc_log(*n, *n, MPC_RNDNN); /* log(z+sqrt(1+z*z)) */
mpc_clear(z);
+#endif
return(s7_make_object(sc, big_complex_tag, (void *)n));
}
}
@@ -20283,7 +20417,6 @@ static s7_pointer big_asinh(s7_scheme *sc, s7_pointer args)
static s7_pointer big_acosh(s7_scheme *sc, s7_pointer args)
{
- /* the complex case is not yet implmented in mpc, so use the earlier formula for cacosh */
s7_pointer p;
p = car(args);
if (is_c_object(p))
@@ -20305,12 +20438,17 @@ static s7_pointer big_acosh(s7_scheme *sc, s7_pointer args)
}
if (c_object_type(p) == big_complex_tag)
{
- /* use 2.0 * clog(csqrt(0.5 * (z + 1.0)) + csqrt(0.5 * (z - 1.0))) for better results when z is very large */
- mpc_t *n;
+#if (!HAVE_MPC_ASIN)
mpc_t zm1, zp1;
+#endif
+ mpc_t *n;
n = (mpc_t *)malloc(sizeof(mpc_t));
mpc_init(*n);
mpc_set(*n, S7_BIG_COMPLEX(p), MPC_RNDNN);
+#if HAVE_MPC_ASIN
+ mpc_acosh(*n, *n, MPC_RNDNN);
+#else
+ /* use 2.0 * clog(csqrt(0.5 * (z + 1.0)) + csqrt(0.5 * (z - 1.0))) for better results when z is very large */
mpc_init(zm1);
mpc_init(zp1);
mpc_set(zm1, *n, MPC_RNDNN);
@@ -20326,6 +20464,7 @@ static s7_pointer big_acosh(s7_scheme *sc, s7_pointer args)
mpc_mul_ui(*n, *n, 2, MPC_RNDNN);
mpc_clear(zm1);
mpc_clear(zp1);
+#endif
return(s7_make_object(sc, big_complex_tag, (void *)n));
}
}
@@ -20335,7 +20474,6 @@ static s7_pointer big_acosh(s7_scheme *sc, s7_pointer args)
static s7_pointer big_atanh(s7_scheme *sc, s7_pointer args)
{
- /* the complex case is not yet implmented in mpc, so use the earlier formula for catanh */
s7_pointer p;
p = car(args);
if (is_c_object(p))
@@ -20362,10 +20500,16 @@ static s7_pointer big_atanh(s7_scheme *sc, s7_pointer args)
}
if (c_object_type(p) == big_complex_tag)
{
- mpc_t *n;
+#if (!HAVE_MPC_ASIN)
mpc_t zp1, zm1;
+#endif
+ mpc_t *n;
n = (mpc_t *)malloc(sizeof(mpc_t));
mpc_init(*n);
+#if HAVE_MPC_ASIN
+ mpc_set(*n, S7_BIG_COMPLEX(p), MPC_RNDNN);
+ mpc_atanh(*n, *n, MPC_RNDNN);
+#else
mpc_init(zp1);
mpc_init(zm1);
mpc_set(zp1, S7_BIG_COMPLEX(p), MPC_RNDNN);
@@ -20375,6 +20519,7 @@ static s7_pointer big_atanh(s7_scheme *sc, s7_pointer args)
mpc_div(*n, zp1, zm1, MPC_RNDNN); /* (1+z)/(1-z) */
mpc_log(*n, *n, MPC_RNDNN); /* log((1+z)/(1-z)) */
mpc_div_ui(*n, *n, 2, MPC_RNDNN); /* log((1+z)/(1-z))/2 */
+#endif
return(s7_make_object(sc, big_complex_tag, (void *)n));
}
}
@@ -20384,7 +20529,6 @@ static s7_pointer big_atanh(s7_scheme *sc, s7_pointer args)
static s7_pointer big_atan(s7_scheme *sc, s7_pointer args)
{
- /* the complex case is not yet implmented in mpc, so use the earlier formula for catan */
/* either arg can be big, 2nd is optional */
s7_pointer p0, p1 = NULL;
@@ -20414,10 +20558,15 @@ static s7_pointer big_atan(s7_scheme *sc, s7_pointer args)
if (c_object_type(p0) == big_complex_tag)
{
- mpc_t *n;
+#if (!HAVE_MPC_ASIN)
mpc_t ci, cipz, cimz;
+#endif
+ mpc_t *n;
n = (mpc_t *)malloc(sizeof(mpc_t));
mpc_init_set(*n, S7_BIG_COMPLEX(p0), MPC_RNDNN);
+#if HAVE_MPC_ASIN
+ mpc_atan(*n, *n, MPC_RNDNN);
+#else
mpc_init_set_ui_ui(ci, 0, 1, MPC_RNDNN); /* 0+i ... */
mpc_init_set_ui_ui(cipz, 0, 1, MPC_RNDNN);
mpc_init_set_ui_ui(cimz, 0, 1, MPC_RNDNN);
@@ -20430,6 +20579,7 @@ static s7_pointer big_atan(s7_scheme *sc, s7_pointer args)
mpc_div_ui(*n, *n, 2, MPC_RNDNN); /* log((i+z)/(i-z))/2 */
mpc_mul(*n, *n, ci, MPC_RNDNN); /* i*log((i+z)/(i-z))/2 */
mpc_clear(ci);
+#endif
return(s7_make_object(sc, big_complex_tag, (void *)n));
}
}
@@ -20439,7 +20589,6 @@ static s7_pointer big_atan(s7_scheme *sc, s7_pointer args)
static s7_pointer big_acos(s7_scheme *sc, s7_pointer args)
{
- /* the complex case is not yet implmented in mpc, so use the earlier formula for cacos */
s7_pointer p;
p = car(args);
if (is_c_object(p))
@@ -20469,13 +20618,17 @@ static s7_pointer big_acos(s7_scheme *sc, s7_pointer args)
if (c_object_type(p) == big_complex_tag)
{
+#if (!HAVE_MPC_ASIN)
bool ok;
- mpc_t *n;
mpc_t x, ci;
mpfr_t temp;
+#endif
+ mpc_t *n;
n = (mpc_t *)malloc(sizeof(mpc_t));
mpc_init_set(*n, S7_BIG_COMPLEX(p), MPC_RNDNN);
-
+#if HAVE_MPC_ASIN
+ mpc_acos(*n, *n, MPC_RNDNN);
+#else
/* check for very large args as in g_acos */
mpfr_init_set_ui(temp, 10000000, GMP_RNDN);
ok = ((mpfr_cmpabs(MPC_RE(*n), temp) <= 0) &&
@@ -20515,6 +20668,7 @@ static s7_pointer big_acos(s7_scheme *sc, s7_pointer args)
mpc_neg(*n, *n, MPC_RNDNN);
mpc_clear(x);
mpc_clear(ci);
+#endif
return(s7_make_object(sc, big_complex_tag, (void *)n));
}
}
@@ -20554,13 +20708,17 @@ static s7_pointer big_asin(s7_scheme *sc, s7_pointer args)
if (c_object_type(p) == big_complex_tag)
{
+#if (!HAVE_MPC_ASIN)
bool ok;
- mpc_t *n;
mpc_t x, ci;
mpfr_t temp;
+#endif
+ mpc_t *n;
n = (mpc_t *)malloc(sizeof(mpc_t));
mpc_init_set(*n, S7_BIG_COMPLEX(p), MPC_RNDNN);
-
+#if HAVE_MPC_ASIN
+ mpc_asin(*n, *n, MPC_RNDNN);
+#else
/* check for very large args as in g_asin */
mpfr_init_set_ui(temp, 10000000, GMP_RNDN);
ok = ((mpfr_cmpabs(MPC_RE(*n), temp) <= 0) &&
@@ -20601,6 +20759,7 @@ static s7_pointer big_asin(s7_scheme *sc, s7_pointer args)
mpc_neg(*n, *n, MPC_RNDNN);
mpc_clear(x);
mpc_clear(ci);
+#endif
return(s7_make_object(sc, big_complex_tag, (void *)n));
}
}
@@ -21976,10 +22135,10 @@ static s7_pointer big_random(s7_scheme *sc, s7_pointer args)
static void s7_gmp_init(s7_scheme *sc)
{
- big_integer_tag = s7_new_type("<big-integer>", print_big_integer, free_big_integer, equal_big_integer, NULL, NULL, NULL);
- big_ratio_tag = s7_new_type("<big-ratio>", print_big_ratio, free_big_ratio, equal_big_ratio, NULL, NULL, NULL);
- big_real_tag = s7_new_type("<big-real>", print_big_real, free_big_real, equal_big_real, NULL, NULL, NULL);
- big_complex_tag = s7_new_type("<big-complex>", print_big_complex, free_big_complex, equal_big_complex, NULL, NULL, NULL);
+ big_integer_tag = s7_new_type_x("<big-integer>", print_big_integer, free_big_integer, equal_big_integer, NULL, NULL, NULL, NULL, copy_big_integer, NULL);
+ big_ratio_tag = s7_new_type_x("<big-ratio>", print_big_ratio, free_big_ratio, equal_big_ratio, NULL, NULL, NULL, NULL, copy_big_ratio, NULL);
+ big_real_tag = s7_new_type_x("<big-real>", print_big_real, free_big_real, equal_big_real, NULL, NULL, NULL, NULL, copy_big_real, NULL);
+ big_complex_tag = s7_new_type_x("<big-complex>", print_big_complex, free_big_complex, equal_big_complex, NULL, NULL, NULL, NULL, copy_big_complex, NULL);
s7_define_function(sc, "+", big_add, 0, 0, true, H_add);
s7_define_function(sc, "-", big_subtract, 1, 0, true, H_subtract);
@@ -22188,6 +22347,7 @@ s7_scheme *s7_init(void)
sc->gensym_counter = (long *)calloc(1, sizeof(long));
sc->tracing = (bool *)calloc(1, sizeof(bool));
+ sc->trace_all = (bool *)calloc(1, sizeof(bool));
#if WITH_ENCAPSULATION
sc->encapsulators = sc->NIL;
@@ -22247,13 +22407,14 @@ s7_scheme *s7_init(void)
assign_syntax(sc, "let*", OP_LET_STAR0);
assign_syntax(sc, "letrec", OP_LETREC0);
assign_syntax(sc, "cond", OP_COND0);
- assign_syntax(sc, "make-promise", OP_MAKE_PROMISE); /* "delay" in standard scheme */
assign_syntax(sc, "and", OP_AND0);
assign_syntax(sc, "or", OP_OR0);
assign_syntax(sc, "case", OP_CASE0);
assign_syntax(sc, "macro", OP_MACRO0); /* r4rs macro syntax, I think */
assign_syntax(sc, "defmacro", OP_DEFMACRO); /* CL-style macro syntax */
+ assign_syntax(sc, "defmacro*", OP_DEFMACRO_STAR);
assign_syntax(sc, "define-macro", OP_DEFINE_MACRO); /* Scheme-style macro syntax */
+ assign_syntax(sc, "define-macro*", OP_DEFINE_MACRO_STAR);
assign_syntax(sc, "define-expansion", OP_DEFINE_EXPANSION); /* read-time (immediate) macro expansion */
assign_syntax(sc, "do", OP_DO);
assign_syntax(sc, "with-environment", OP_WITH_ENV0);
@@ -22338,6 +22499,9 @@ s7_scheme *s7_init(void)
sc->ERROR_HOOK = s7_make_symbol(sc, "*error-hook*");
typeflag(sc->ERROR_HOOK) |= T_DONT_COPY;
+ sc->TRACE_HOOK = s7_make_symbol(sc, "*trace-hook*");
+ typeflag(sc->TRACE_HOOK) |= T_DONT_COPY;
+
sc->SET = s7_make_symbol(sc, "set!");
typeflag(sc->SET) |= T_DONT_COPY;
@@ -22496,7 +22660,7 @@ s7_scheme *s7_init(void)
s7_define_function(sc, "lognot", g_lognot, 1, 0, false, H_lognot);
s7_define_function(sc, "ash", g_ash, 2, 0, false, H_ash);
- rng_tag = s7_new_type("<random-number-generator>", print_rng, free_rng, equal_rng, NULL, NULL, NULL);
+ rng_tag = s7_new_type_x("<random-number-generator>", print_rng, free_rng, equal_rng, NULL, NULL, NULL, NULL, copy_random_state, NULL);
s7_define_function(sc, "random", g_random, 1, 1, false, H_random);
s7_define_function(sc, "make-random-state", g_make_random_state, 1, 0, false, H_make_random_state);
@@ -22603,6 +22767,7 @@ s7_scheme *s7_init(void)
s7_define_function(sc, "list-ref", g_list_ref, 2, 0, false, H_list_ref);
s7_define_set_function(sc, "list-set!", g_list_set, 3, 0, false, H_list_set);
s7_define_function(sc, "list-tail", g_list_tail, 2, 0, false, H_list_tail);
+ s7_define_function(sc, "make-list", g_make_list, 1, 1, false, H_make_list);
s7_define_function(sc, "length", g_length, 1, 0, false, H_length);
s7_define_function(sc, "copy", g_copy, 1, 0, false, H_copy);
@@ -22635,9 +22800,6 @@ s7_scheme *s7_init(void)
s7_define_function(sc, "eval", g_eval, 1, 1, false, H_eval);
s7_define_function(sc, "eval-string", g_eval_string, 1, 1, false, H_eval_string);
s7_define_function(sc, "apply", g_apply, 1, 0, true, H_apply);
- s7_define_function(sc, "force", g_force, 1, 0, false, H_force);
- s7_define_function(sc, "promise?", g_is_promise, 1, 0, false, H_is_promise);
-
s7_define_function(sc, "for-each", g_for_each, 2, 0, true, H_list_for_each);
s7_define_function(sc, "map", g_map, 2, 0, true, H_list_map);
@@ -22648,6 +22810,8 @@ s7_scheme *s7_init(void)
s7_define_function(sc, "trace", g_trace, 0, 0, true, H_trace);
s7_define_function(sc, "untrace", g_untrace, 0, 0, true, H_untrace);
+ s7_define_variable(sc, "*trace-hook*", sc->NIL);
+
s7_define_function(sc, "stack", g_stack, 0, 1, false, H_stack);
s7_define_function(sc, "stacktrace", g_stacktrace, 0, 1, false, H_stacktrace);
@@ -22754,6 +22918,7 @@ s7_scheme *s7_init(void)
/* s7_define_function(sc, "dump-heap", g_dump_heap, 0, 0, false, "hiho"); */
+#if (!S7_DISABLE_DEPRECATED)
/* backwards compatiblity */
s7_eval_c_string(sc, "(define (backtracing val) #f) \n\
(define (set-backtrace-length val) #f) \n\
@@ -22761,6 +22926,7 @@ s7_scheme *s7_init(void)
(define (backtrace) #f)");
s7_eval_c_string(sc, "(define (gc-verbose val) #f) \n\
(define (load-verbose val) #f)");
+#endif
/* macroexpand */
s7_eval_c_string(sc, "(define-macro (macroexpand mac) `(,(procedure-source (car mac)) ',mac))");
@@ -22799,6 +22965,7 @@ s7_scheme *s7_init(void)
*/
#endif
+
#if WITH_ENCAPSULATION
s7_eval_c_string(sc, " \n\
(define-macro (encapsulate . body) \n\
@@ -22814,7 +22981,114 @@ s7_scheme *s7_init(void)
(close-encapsulator ,encap))))))");
#endif
+ /* s7_eval_c_string(sc, "(define (ratio? n) (and (rational? n) (not (integer? n))))"); */
+
+
+#if WITH_FORCE
+ s7_eval_c_string("(define (force object) (object))");
+
+ s7_eval_c_string("(define-macro (delay expression)\n\
+ `(let ((result-ready? #f)\n\
+ (result #f))\n\
+ (lambda ()\n\
+ (if result-ready?\n\
+ result\n\
+ (let ((x (let () \n\
+ ,expression)))\n\
+ (if result-ready?\n\
+ result\n\
+ (begin\n\
+ (set! result-ready? #t)\n\
+ (set! result x)\n\
+ result)))))))");
+#endif
+
return(sc);
}
/* TODO: how to trace setter [s7_object_set?] mus-srate for example */
+
+#if 0
+/* here are the ->* functions, without c-type stuff
+
+(define ->string object->string) ; or perhaps (format #f "~A" x)
+
+(define (->symbol x)
+ (string->symbol (object->string x)))
+
+(define (->real x)
+ (if (number? x)
+ (if (complex? x)
+ (real-part x)
+ (exact->inexact x))
+ (if (string? x)
+ (exact->inexact (string->number x))
+ (if (char? x)
+ (exact->inexact (->integer x))
+ (error 'wrong-type-arg "can't convert ~A to real" x)))))
+
+(define (->integer x)
+ (if (number? x)
+ (if (complex? x)
+ (floor (real-part x))
+ (floor x))
+ (if (string? x)
+ (floor (string->number x))
+ (if (char? x)
+ (char->integer x)
+ (error 'wrong-type-arg "can't convert ~A to integer" x)))))
+
+(define (->ratio x)
+ (if (number? x)
+ (if (complex? x)
+ (rationalize (real-part x))
+ (rationalize x))
+ (if (string? x)
+ (rationalize (string->number x))
+ (if (char? x)
+ (char->integer x)
+ (error 'wrong-type-arg "can't convert ~A to ratio" x)))))
+
+(define (->number x)
+ (if (number? x)
+ x
+ (if (string? x)
+ (string->number x)
+ (if (char? x)
+ (char->integer x)
+ (error 'wrong-type-arg "can't convert ~A to number" x)))))
+
+(define (->character x)
+ (if (char? x)
+ x
+ (if (number? x)
+ (integer->char (->integer x))
+ (if (and (string? x)
+ (= (length x) 1))
+ (string-ref x 0)
+ (error 'wrong-type-arg "can't convert ~A to character" x)))))
+
+(define (->list x)
+ (if (list? x)
+ x
+ (if (pair? x)
+ (list (car x) (cdr x))
+ (if (vector? x)
+ (vector->list x)
+ (if (string? x)
+ (string->list x)
+ (error 'wrong-type-arg "can't convert ~A to list" x))))))
+
+(define (->vector x)
+ (if (vector? x)
+ x
+ (if (list? x)
+ (list->vector x)
+ (if (string? x)
+ (list->vector (string->list x))
+ (if (pair? x)
+ (list->vector (->list x))
+ (error 'wrong-type-arg "can't convert ~A to vector" x))))))
+ */
+#endif
+
diff --git a/s7.h b/s7.h
index 3b92f09..ad0398a 100644
--- a/s7.h
+++ b/s7.h
@@ -1,8 +1,8 @@
#ifndef S7_H
#define S7_H
-#define S7_VERSION "1.34"
-#define S7_DATE "12-Oct-09"
+#define S7_VERSION "1.39"
+#define S7_DATE "24-Nov-09"
typedef long long int s7_Int;
@@ -14,7 +14,7 @@ typedef double s7_Double;
/* --------------------------------------------------------------------------------
* s7 itself is based on the types and functions in this file, so the first place to look for examples
- * is s7.c. There are also a few variations on a REPL at the end of this file. s7test.scm
+ * is s7.c. There are also a few variations on a REPL at the end of s7.html. s7test.scm
* is a regression test for s7 -- it still turns up a few problems. More tests are certainly welcome!
* Extended examples of s7 usage are:
*
@@ -29,16 +29,17 @@ typedef double s7_Double;
*
* s7 (scheme) variables:
*
- * *load-path* a list of directory names that "load" searches for scheme input files (initially '())
- * *vector-print-length* how many elements of a vector are printed (initially 8)
* *features* a list of symbols describing what is current available (initially '(s7)).
* "provide" adds a symbol to the list,
* "provided?" returns #t if its symbol arg is in the list.
+ * *vector-print-length* how many elements of a vector are printed (initially 8)
* __func__ equivalent to C's __func__. The symbol of the function currently being defined.
+ * *load-path* a list of directory names that "load" searches for scheme input files (initially '())
* *load-hook* called before a file is loaded, a function of one arg, the name of the file.
* *error-hook* called upon error, a function of two args,
* the error type (a symbol), and the info about it (a list).
* *error-info* data describing last error (see below).
+ * *trace-hook* called upon trace (a function of two args)
*
* s7 constants:
*
@@ -131,6 +132,7 @@ s7_pointer s7_undefined(s7_scheme *sc); /* #<undefi
s7_pointer s7_unspecified(s7_scheme *sc); /* #<unspecified> */
bool s7_is_unspecified(s7_scheme *sc, s7_pointer val); /* returns true if val is #<unspecified> */
s7_pointer s7_eof_object(s7_scheme *sc); /* #<eof> */
+bool s7_is_valid_pointer(s7_pointer arg);
/* these are the scheme constants; they do not change in value during a run, and
* are the same across all threads, so they can be safely assigned to C global variables if desired.
@@ -236,7 +238,7 @@ bool s7_is_eqv(s7_pointer a, s7_pointer b); /*
bool s7_is_equal(s7_pointer a, s7_pointer b); /* (equal? a b) */
-bool s7_is_boolean(s7_scheme *sc, s7_pointer x); /* (boolean? x) */
+bool s7_is_boolean(s7_pointer x); /* (boolean? x) */
bool s7_boolean(s7_scheme *sc, s7_pointer x); /* scheme boolean -> C bool */
s7_pointer s7_make_boolean(s7_scheme *sc, bool x); /* C bool -> scheme boolean */
@@ -324,6 +326,9 @@ s7_pointer s7_make_and_fill_vector(s7_scheme *sc, s7_Int len, s7_pointer fill);
s7_Int s7_vector_length(s7_pointer vec); /* (vector-length vec) */
s7_pointer s7_vector_to_list(s7_scheme *sc, s7_pointer vect); /* (vector->list vect) */
s7_pointer *s7_vector_elements(s7_pointer vec); /* a pointer to the array of s7_pointers */
+int s7_vector_rank(s7_pointer vect); /* number of dimensions in vect */
+s7_Int *s7_vector_dimensions(s7_pointer vec); /* dimensions */
+s7_Int *s7_vector_offsets(s7_pointer vec); /* precalculated offsets to speed-up addressing */
/* if s7 is built with multidimensional and applicable vectors,
*
@@ -670,7 +675,7 @@ void s7_define_macro(s7_scheme *sc, const char *name, s7_function fnc, int requi
* list as written in Scheme, and the documentation string. s7 makes sure the arguments
* are ordered correctly and have the specified defaults before calling the C function.
* s7_define_function_star(sc, "a-func", a_func, "arg1 (arg2 32)", "an example of C define*");
- * Now (a-func :arg1 2) calls the C function a_func(2, 32). See the example program below.
+ * Now (a-func :arg1 2) calls the C function a_func(2, 32). See the example program in s7.html.
*
* In s7 scheme, define* can be used just for its optional arguments feature, but that is
* included in s7_define_function. s7_define_function_star implements keyword arguments
@@ -699,11 +704,11 @@ s7_pointer s7_procedure_with_setter_setter(s7_pointer obj);
s7_pointer s7_procedure_with_setter_getter(s7_pointer obj);
/* a procedure_with_setter is an object that can be called either as a normal function,
- * or as the object of set! There is an extended example below. The 'getter'
+ * or as the object of set! There is an extended example in s7.html. The 'getter'
* is the normal (outside set!) function (normally a struct field reader of some sort),
* and the 'setter' is the set! function (a field writer in most cases).
*
- * In the example below we have dax-x as the procedure-with-setter,
+ * In the example in s7.html we have dax-x as the procedure-with-setter,
* (dac-x obj) returns the x field of obj
* (set! (dac-x obj) value) sets that field to value
*
@@ -738,7 +743,7 @@ void *s7_object_value(s7_pointer obj);
s7_pointer s7_make_object(s7_scheme *sc, int type, void *value);
void s7_mark_object(s7_pointer p);
- /* These functions create a new scheme object type. There is a simple example below.
+ /* These functions create a new scheme object type. There is a simple example in s7.html.
*
* s7_new_type describes the type for scheme:
* name: the name used by describe-object
@@ -823,869 +828,15 @@ void s7_mark_object(s7_pointer p);
#endif
-/* -------------------------------- examples --------------------------------
- *
- * These are simple, but complete programs illustrating various ways to use s7:
- *
- * read-eval-print loop
- * define a function with arguments and a returned value, and define a variable
- * call a scheme-defined function from C, and get/set scheme variable values in C
- * use s7 in C++ and Juce
- * load sndlib using the XEN functions and macros into a REPL
- * add a new type and procedure-with-setters
- * redirect display/write output to a C procedure
- * extend a built-in operator ("+" in this case)
- * use C-side define* (s7_define_function_star)
- * use C-side define-macro (s7_define_macro)
- * signal handling (C-C to break out of an infinite loop)
- */
-
-
-/*--------------------------------------------------------------------------------
- *
- * a read-eval-print loop using S7:
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
-{ /* all added functions have this form, args is a list,
- * s7_car(args) is the 1st arg, etc
- */
- exit(1);
- return(s7_nil(sc)); /* just to be pedantic */
-}
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
-
- s7 = s7_init(); /* initialize the interpreter */
-
- s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
-
- /* add the function "exit" to the interpreter.
- * 0, 0, false -> no required args,
- * no optional args,
- * no "rest" arg
- */
- while (1) /* fire up a "repl" */
- {
- fprintf(stdout, "\n> "); /* prompt for input */
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response); /* evaluate input and write the result */
- }
- }
-}
-
-/* make mus-config.h (it can be empty), then
- *
- * gcc -c s7.c -I.
- * gcc -o doc7 doc7.c s7.o -lm -I.
- *
- * run it:
- *
- * > (+ 1 2)
- * 3
- * > (define (add1 x) (+ 1 x))
- * add1
- * > (add1 2)
- * 3
- * > (exit)
- */
-
-#endif
-
-
-
-/* --------------------------------------------------------------------------------
- *
- * define a function with arguments and a returned value, and a variable
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
-{
- exit(1);
- return(s7_nil(sc));
-}
-
-static s7_pointer add1(s7_scheme *sc, s7_pointer args)
-{
- if (s7_is_integer(s7_car(args)))
- return(s7_make_integer(sc, 1 + s7_integer(s7_car(args))));
- return(s7_wrong_type_arg_error(sc, "add1", 1, s7_car(args), "an integer"));
-}
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
-
- s7 = s7_init(); /* initialize the interpreter */
-
- s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
- s7_define_function(s7, "add1", add1, 1, 0, false, "(add1 int) adds 1 to int");
-
- s7_define_variable(s7, "my-pi", s7_make_real(s7, 3.14159265));
-
- while (1) /* fire up a "repl" */
- {
- fprintf(stdout, "\n> "); /* prompt for input */
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response); /* evaluate input and write the result */
- }
- }
-}
-
-/*
- * /home/bil/cl/ doc7
- * > my-pi
- * 3.14159265
- * > (+ 1 (add1 1))
- * 3
- * > (exit)
- */
-
-#endif
-
-
-
-/* --------------------------------------------------------------------------------
- *
- * call a scheme-defined function from C, and get/set scheme variable values in C:
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- s7 = s7_init();
-
- s7_define_variable(s7, "an-integer", s7_make_integer(s7, 1));
-
- s7_eval_c_string(s7, "(define (add1 a) (+ a 1))");
-
- fprintf(stderr, "an-integer: %d\n",
- s7_integer(s7_name_to_value(s7, "an-integer")));
-
- s7_symbol_set_value(s7, s7_make_symbol(s7, "an-integer"), s7_make_integer(s7, 32));
-
- fprintf(stderr, "now an-integer: %d\n",
- s7_integer(s7_name_to_value(s7, "an-integer")));
-
- fprintf(stderr, "(add1 2): %d\n",
- s7_integer(s7_call(s7,
- s7_name_to_value(s7, "add1"),
- s7_cons(s7, s7_make_integer(s7, 2), s7_nil(s7)))));
-}
-
-/*
- * /home/bil/cl/ doc7
- * an-integer: 1
- * now an-integer: 32
- * (add1 2): 3
- */
-
-#endif
-
-
-/* --------------------------------------------------------------------------------
- *
- * here's an example using C++ and Juce that Rick sent me:
- */
-
-#if 0
-
-int main(int argc, const char* argv[])
-{
- initialiseJuce_NonGUI();
-
- s7_scheme *s7=s7_init();
- if (!s7)
- {
- std::cout << "Can't start S7!\n";
- return -1;
- }
-
- s7_pointer val;
- std::string str;
- while (true)
- {
- std::cout << "\ns7> ";
- std::getline(std::cin, str);
- val=s7_eval_c_string(s7, str.c_str());
- std::cout << s7_object_to_c_string(s7, val);
- }
-
- free(s7);
- std::cout << "Bye!\n";
- return 0;
-}
-
-#endif
-
-
-/* --------------------------------------------------------------------------------
- *
- * here's an example that loads sndlib using the XEN functions and macros into an s7 repl:
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-/* assume we've configured and built sndlib, so it has created a mus-config.h file */
-
-#include "mus-config.h"
-#include "s7.h"
-#include "xen.h"
-#include "clm.h"
-#include "clm2xen.h"
-
-static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
-{
- exit(1);
- return(s7_nil(sc));
-}
-
-/* the next functions are needed for either with-sound or many standard instruments, like fm-violin */
-/* (these are in the xen-style FFI) */
-
-static XEN g_file_exists_p(XEN name)
-{
- #define H_file_exists_p "(file-exists? filename): #t if the file exists"
- XEN_ASSERT_TYPE(XEN_STRING_P(name), name, XEN_ONLY_ARG, "file-exists?", "a string");
- return(C_TO_XEN_BOOLEAN(mus_file_probe(XEN_TO_C_STRING(name))));
-}
-
-XEN_NARGIFY_1(g_file_exists_p_w, g_file_exists_p)
-
-static XEN g_delete_file(XEN name)
-{
- #define H_delete_file "(delete-file filename): deletes the file"
- XEN_ASSERT_TYPE(XEN_STRING_P(name), name, XEN_ONLY_ARG, "delete-file", "a string");
- return(C_TO_XEN_BOOLEAN(unlink(XEN_TO_C_STRING(name))));
-}
-
-XEN_NARGIFY_1(g_delete_file_w, g_delete_file)
-
-
-
-int main(int argc, char **argv)
-{
- char buffer[512];
- char response[1024];
-
-
- s7 = s7_init(); /* initialize the interpreter; s7 is declared in xen.h */
- xen_initialize(); /* initialize the xen stuff (hooks and the xen s7 FFI used by sndlib) */
- Init_sndlib(); /* initialize sndlib with all the functions linked into s7 */
-
- /* these next lines are for compatibility with Guile */
- XEN_EVAL_C_STRING("(defmacro use-modules (arg . args) #f)");
- XEN_EVAL_C_STRING("(define (make-soft-port . args) #f)");
- XEN_EVAL_C_STRING("(define (current-module) (current-environment))");
- XEN_EVAL_C_STRING("(define load-from-path load)");
-
- XEN_DEFINE_PROCEDURE("file-exists?", g_file_exists_p_w, 1, 0, 0, H_file_exists_p);
- XEN_DEFINE_PROCEDURE("delete-file", g_delete_file_w, 1, 0, 0, H_delete_file);
- XEN_EVAL_C_STRING("(define (1+ x) (+ x 1))"); /* lots of the CLM instruments use this macro */
-
- s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
-
- while (1) /* fire up a "repl" */
- {
- fprintf(stdout, "\n> "); /* prompt for input */
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response); /* evaluate input and write the result */
- }
- }
-}
-
-/* gcc -o doc7 doc7.c -lm -I. /home/bil/test/sndlib/sndlib.a -lgsl -lgslcblas -lasound
- *
- * gsl and gslcblas are the Gnu Scientific Library that the configure script found -- those
- * may not be necessary on other systems
- *
- * run a CLM instrument:
- *
- * (load "sndlib-ws.scm")
- * (with-sound () (outa 10 .1))
- * (load "v.scm")
- * (with-sound () (fm-violin 0 .1 440 .1))
- */
-
-#endif
-
-
-/* --------------------------------------------------------------------------------
- *
- * an example of adding a new type and procedure-with-setters:
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
-{
- exit(1);
- return(s7_nil(sc));
-}
-
-
-/* define *listener-prompt* in scheme, add two accessors for C get/set */
-
-static const char *listener_prompt(s7_scheme *sc)
-{
- return(s7_string(s7_name_to_value(sc, "*listener-prompt*")));
-}
-
-static void set_listener_prompt(s7_scheme *sc, const char *new_prompt)
-{
- s7_symbol_set_value(sc, s7_make_symbol(sc, "*listener-prompt*"), s7_make_string(sc, new_prompt));
-}
-
-
-/* now add a new type, a struct named "dax" with two fields, a real "x" and a list "data" */
-/* since the data field is an s7 object, we'll need to mark it to protect it from the GC */
-
-typedef struct {
- s7_Double x;
- s7_pointer data;
-} dax;
-
-static char *print_dax(s7_scheme *sc, void *val)
-{
- char *data_str, *str;
- int data_str_len;
- dax *o = (dax *)val;
- data_str = s7_object_to_c_string(sc, o->data);
- data_str_len = strlen(data_str);
- str = (char *)calloc(data_str_len + 32, sizeof(char));
- snprintf(str, data_str_len + 32, "#<dax %.3f %s>", o->x, data_str);
- free(data_str);
- return(str);
-}
-
-static void free_dax(void *val)
-{
- if (val) free(val);
-}
-
-static bool equal_dax(void *val1, void *val2)
-{
- return(val1 == val2);
-}
-
-static void mark_dax(void *val)
-{
- dax *o = (dax *)val;
- if (o)
- s7_mark_object(o->data);
-}
-
-static int dax_type_tag = 0;
-
-static s7_pointer make_dax(s7_scheme *sc, s7_pointer args)
-{
- dax *o;
- o = (dax *)malloc(sizeof(dax));
- o->x = s7_real(s7_car(args));
- if (s7_cdr(args) != s7_nil(sc))
- o->data = s7_car(s7_cdr(args));
- else o->data = s7_nil(sc);
- return(s7_make_object(sc, dax_type_tag, (void *)o));
-}
-
-static s7_pointer is_dax(s7_scheme *sc, s7_pointer args)
-{
- return(s7_make_boolean(sc,
- s7_is_object(s7_car(args)) &&
- s7_object_type(s7_car(args)) == dax_type_tag));
-}
-
-static s7_pointer dax_x(s7_scheme *sc, s7_pointer args)
-{
- dax *o;
- o = (dax *)s7_object_value(s7_car(args));
- return(s7_make_real(sc, o->x));
-}
-
-static s7_pointer set_dax_x(s7_scheme *sc, s7_pointer args)
-{
- dax *o;
- o = (dax *)s7_object_value(s7_car(args));
- o->x = s7_real(s7_car(s7_cdr(args)));
- return(s7_car(s7_cdr(args)));
-}
-
-static s7_pointer dax_data(s7_scheme *sc, s7_pointer args)
-{
- dax *o;
- o = (dax *)s7_object_value(s7_car(args));
- return(o->data);
-}
-
-static s7_pointer set_dax_data(s7_scheme *sc, s7_pointer args)
-{
- dax *o;
- o = (dax *)s7_object_value(s7_car(args));
- o->data = s7_car(s7_cdr(args));
- return(o->data);
-}
-
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
-
- s7 = s7_init();
-
- s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
- s7_define_variable(s7, "*listener-prompt*", s7_make_string(s7, ">"));
-
- dax_type_tag = s7_new_type("dax", print_dax, free_dax, equal_dax, mark_dax, NULL, NULL);
- s7_define_function(s7, "make-dax", make_dax, 2, 0, false, "(make-dax x data) makes a new dax");
- s7_define_function(s7, "dax?", is_dax, 1, 0, false, "(dax? anything) returns #t if its argument is a dax object");
-
- s7_define_variable(s7, "dax-x",
- s7_make_procedure_with_setter(s7, "dax-x", dax_x, 1, 0, set_dax_x, 2, 0, "dax x field"));
-
- s7_define_variable(s7, "dax-data",
- s7_make_procedure_with_setter(s7, "dax-data", dax_data, 1, 0, set_dax_data, 2, 0, "dax data field"));
-
- while (1)
- {
- fprintf(stdout, "\n%s ", listener_prompt(s7));
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response); /* evaluate input and write the result */
- }
- }
-}
-
-/*
- * gcc -o doc7 doc7.c s7.o -lm
- * > *listener-prompt*
- * ">"
- * > (set! *listener-prompt* ":")
- * ":"
- * : (define obj (make-dax 1.0 (list 1 2 3)))
- * obj
- * : obj
- * #<dax 1.000 (1 2 3)>
- * : (dax-x obj)
- * 1.0
- * : (dax-data obj)
- * (1 2 3)
- * : (set! (dax-x obj) 123.0)
- * 123.0
- * : obj
- * #<dax 123.000 (1 2 3)>
- * : (dax? obj)
- * #t
- * : (exit)
- */
-#endif
-
-
-/* --------------------------------------------------------------------------------
- *
- * an example of redirecting output (and input) to a C procedure:
- */
-
-#if 0
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-static void my_print(s7_scheme *sc, char c, s7_pointer port)
-{
- fprintf(stderr, "[%c] ", c);
-}
-
-static s7_pointer my_read(s7_scheme *sc, s7_read_t peek, s7_pointer port)
-{
- return(s7_make_character(s7, fgetc(stdin)));
-}
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
-
- s7 = s7_init();
-
- s7_set_current_output_port(s7, s7_open_output_function(s7, my_print));
- s7_define_variable(s7, "io-port", s7_open_input_function(s7, my_read));
-
- while (1)
- {
- fprintf(stdout, "\n> ");
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response);
- }
- }
-}
-
-/*
- * gcc -c s7.c -I.
- * gcc -o doc7 doc7.c s7.o -lm -I.
- *
- * doc7
- * > (+ 1 2)
- * [3]
- * > (display "hiho")
- * [h] [i] [h] [o] [#] [<] [u] [n] [s] [p] [e] [c] [i] [f] [i] [e] [d] [>]
- * > (define (add1 x) (+ 1 x))
- * [a] [d] [d] [1]
- * > (add1 123)
- * [1] [2] [4]
- * > (read-char io-port)
- * a ; here I typed "a" in the shell
- * [#] [\] [a]
- */
-
-#endif
-
-
-
-/* --------------------------------------------------------------------------------
- *
- * an example of extending a built-in operator ("+" in this case):
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-static s7_pointer old_add; /* the original "+" function for non-string cases */
-static s7_pointer old_string_append; /* same, for "string-append" */
-
-static s7_pointer our_add(s7_scheme *sc, s7_pointer args)
-{
- /* this will replace the built-in "+" operator, extending it to include strings:
- * (+ "hi" "ho") -> "hiho" and (+ 3 4) -> 7
- */
- if ((s7_is_pair(args)) &&
- (s7_is_string(s7_car(args))))
- return(s7_apply_function(sc, old_string_append, args));
-
- return(s7_apply_function(sc, old_add, args));
-}
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
-
- s7 = s7_init();
- /* get built-in + and string-append */
- old_add = s7_name_to_value(s7, "+");
- old_string_append = s7_name_to_value(s7, "string-append");
- /* redefine "+" */
- s7_define_function(s7, "+", our_add, 0, 0, true, "(+ ...) adds or appends its arguments");
-
- while (1)
- {
- fprintf(stdout, "\n> ");
- fgets(buffer, 512, stdin);
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response);
- }
- }
-}
-
-/*
- * > (+ 1 2)
- * 3
- * > (+ "hi" "ho")
- * "hiho"
- */
-
-#endif
-
-
-
-/* --------------------------------------------------------------------------------
- *
- * an example of C-side define* (s7_define_function_star)
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-static s7_pointer plus(s7_scheme *sc, s7_pointer args)
-{
- /* (define* (plus (red 32) blue) (+ (* 2 red) blue)) */
- return(s7_make_integer(sc, 2 * s7_integer(s7_car(args)) + s7_integer(s7_car(s7_cdr(args)))));
-}
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
-
- s7 = s7_init();
- s7_define_function_star(s7, "plus", plus, "(red 32) blue", "an example of define* from C");
-
- while (1)
- {
- fprintf(stdout, "\n> ");
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response);
- }
- }
-}
-
-/*
- * > (plus 2 3)
- * 7
- * > (plus :blue 3)
- * 67
- * > (plus :blue 1 :red 4)
- * 9
- * > (plus 2 :blue 3)
- * 7
- * > (plus :blue 3 :red 1)
- * 5
- */
-
-#endif
-
-
-/* --------------------------------------------------------------------------------
- *
- * an example of C-side define-macro (s7_define_macro)
- */
-
-#if 0
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "s7.h"
-
-static s7_pointer plus(s7_scheme *sc, s7_pointer args)
-{
- /* (define-macro (plus a b) `(+ ,a ,b)) */
- s7_pointer a, b;
- a = s7_car(args);
- b = s7_car(s7_cdr(args));
- return(s7_cons(sc, s7_make_symbol(sc, "+"), /* we are forming the list `(+ ,a ,b) */
- s7_cons(sc, a,
- s7_cons(sc, b, s7_nil(sc)))));
-}
-
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
-
- s7 = s7_init();
- s7_define_macro(s7, "plus", plus, 2, 0, false, "plus adds its two arguments");
-
- while (1)
- {
- fprintf(stdout, "\n> ");
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response);
- }
- }
-}
-
-/*
- * > (plus 2 3)
- * 5
- */
-
-#endif
-
-
-
-/* --------------------------------------------------------------------------------
- *
- * an example of signal handling (C-C to break out of an infinite loop), s7_make_continuation
- * to pick up where we were interrupted (or get a stacktrace, etc).
- */
-
-#if 0
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <signal.h>
-
-#include "s7.h"
-
-static s7_scheme *s7;
-struct sigaction new_act, old_act;
-
-static void handle_sigint(int ignored)
-{
- fprintf(stderr, "interrupted!\n");
- s7_symbol_set_value(s7, s7_make_symbol(s7, "*interrupt*"), s7_make_continuation(s7)); /* save where we were interrupted */
- sigaction(SIGINT, &new_act, NULL);
- s7_quit(s7); /* get out of the eval loop if possible */
-}
-
-static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
-{
- /* this is really needed if we are trapping C-C! */
- exit(1);
- return(s7_f(sc));
-}
-
-static s7_pointer our_sleep(s7_scheme *sc, s7_pointer args)
-{
- /* slow down out infinite loop for demo purposes */
- sleep(1);
- return(s7_f(sc));
-}
-
-int main(int argc, char **argv)
-{
- char buffer[512];
- char response[1024];
-
- s7 = s7_init();
- s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits");
- s7_define_function(s7, "sleep", our_sleep, 0, 0, false, "(sleep) sleeps");
- s7_define_variable(s7, "*interrupt*", s7_f(s7));
- /* scheme variable *interrupt* holds the continuation at the point of the interrupt */
-
- sigaction(SIGINT, NULL, &old_act);
- if (old_act.sa_handler != SIG_IGN)
- {
- memset(&new_act, 0, sizeof(new_act));
- new_act.sa_handler = &handle_sigint;
- sigaction(SIGINT, &new_act, NULL);
- }
-
- while (1)
- {
- fprintf(stderr, "\n> ");
- fgets(buffer, 512, stdin);
-
- if ((buffer[0] != '\n') ||
- (strlen(buffer) > 1))
- {
- sprintf(response, "(write %s)", buffer);
- s7_eval_c_string(s7, response);
- }
- }
-}
-
-/*
- * > (do ((i 0 (+ i 1))) ((= i -1)) (format #t "~D " i) (sleep))
- * ;;; now type C-C to break out of this loop
- * 0 1 2 ^Cinterrupted!
- * ;;; call the continuation to continue from where we were interrupted
- * > (*interrupt*)
- * 3 4 5 ^Cinterrupted!
- * > *interrupt*
- * #<continuation>
- * > (+ 1 2)
- * 3
- */
-#endif
-
-
- /* backwards compatibility... */
+#if (!S7_DISABLE_DEPRECATED)
#define s7_F(Sc) s7_f(Sc)
#define s7_T(Sc) s7_t(Sc)
#define s7_NIL(Sc) s7_nil(Sc)
#define s7_UNDEFINED(Sc) s7_undefined(Sc)
#define s7_UNSPECIFIED(Sc) s7_unspecified(Sc)
#define s7_EOF_OBJECT(Sc) s7_eof_object(Sc)
-
+#endif
@@ -1693,6 +844,12 @@ int main(int argc, char **argv)
*
* s7 changes
*
+ * 24-Nov: define-macro* and defmacro*.
+ * force and delay included only if WITH_FORCE set, promise? removed.
+ * 17-Nov: s7_is_boolean no longer takes the s7_scheme argument.
+ * 7-Nov: s7_vector_dimensions, s7_vector_offsets, example of use.
+ * 3-Nov: s7_vector_rank.
+ * 30-Oct: *trace-hook*.
* 12-Oct: s7_port_filename.
* 5-Oct: s7_c_pointer and friends.
* 14-Sep: s7_values, s7_make_continuation, and a better interrupt example.
diff --git a/s7.html b/s7.html
index 1ba792d..a377450 100644
--- a/s7.html
+++ b/s7.html
@@ -65,30 +65,16 @@ and want a quick tour of where s7 is different:
</p>
<br>
-<dl>
-<dt><em class=emdef>call-with-exit and continuation?</em></dt>
-<dd><p>call-with-exit is call/cc without the ability to return (an escape or goto, "call/exit"?).
-</p>
-<pre>
-(define (find-first-even-number arg)
- (<em class=red>call-with-exit</em>
- (lambda (return)
- (for-each
- (lambda (a)
- (if (even? a)
- (return a)))
- arg))))
-(find-first-even-number (list 1 3 9 13 8 2 4)) -&gt; 8
-</pre>
-<p>continuation? returns #t if its argument is a continuation,
-as opposed to a normal procedure.
-</p>
-</dd>
-<br>
+<dl>
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>multiprecision arithmetic</h4></td></tr></table>
+</td></tr></table>
+</dt>
-<dt><em class=emdef>multiprecision arithmetic</em></dt>
<dd><p>All numeric types (integers, ratios, reals, complex numbers) are supported.
The basic integer and real
types are defined in s7.h, defaulting to long long int and double.
@@ -130,7 +116,14 @@ Its argument is a string representing the desired number:
</dd>
<br>
-<dt><em class=emdef>math functions</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>math functions</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>
s7 includes:
</p>
@@ -177,10 +170,10 @@ Other math-related differences between s7 and r5rs:
&gt; (log 8 2)
3
-&gt; (number->string 0.5 2)
+&gt; (number-&gt;string 0.5 2)
"0.1"
-&gt; (string->number "0.1" 2)
+&gt; (string-&gt;number "0.1" 2)
0.5
&gt; (rationalize 1.5)
@@ -189,35 +182,14 @@ Other math-related differences between s7 and r5rs:
</dd>
<br>
-<dt><em class=emdef>defmacro, define-macro, macroexpand, and gensym</em></dt>
-<dd><p>These are the standard macro definers. </p>
-<pre>
-(define-macro (add-1 arg) `(+ 1 ,arg))
-(defmacro add-1 (arg) `(+ 1 ,arg))
-</pre>
-<p>macroexpand can help debug a macro:
-</p>
-<pre>
-&gt; (define-macro (add-1 arg) `(+ 1 ,arg))
-add-1
-&gt; (macroexpand (add-1 32))
-(+ 1 32)
-</pre>
-<p>gensym returns a symbol that is guaranteed to be currently unused. It takes an optional string argument
-giving the new symbol name's prefix.
-</p>
-<pre>
-(defmacro pop! (sym)
- (let ((v (<em class=red>gensym</em>)))
- `(let ((,v (car ,sym)))
- (set! ,sym (cdr ,sym))
- ,v)))
-</pre>
-</dd>
-<br>
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>define*, lambda*</h4></td></tr></table>
+</td></tr></table>
+</dt>
-<dt><em class=emdef>define* and lambda*</em></dt>
<dd><p>These are extensions of define and lambda that make it easier to
to deal with optional, keyword, and rest arguments.
The syntax is very simple: every argument to define* has a default value
@@ -249,7 +221,60 @@ above as an example:
</dd>
<br>
-<dt><em class=emdef>define-constant and constant?</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=60% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>define-macro, define-macro*, defmacro, defmacro*, macroexpand, gensym</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd><p>These are the standard macro definers. </p>
+<pre>
+(define-macro (add-1 arg) `(+ 1 ,arg))
+(defmacro add-1 (arg) `(+ 1 ,arg))
+</pre>
+<p>macroexpand can help debug a macro:
+</p>
+<pre>
+&gt; (define-macro (add-1 arg) `(+ 1 ,arg))
+add-1
+&gt; (macroexpand (add-1 32))
+(+ 1 32)
+</pre>
+<p>gensym returns a symbol that is guaranteed to be currently unused. It takes an optional string argument
+giving the new symbol name's prefix.
+</p>
+<pre>
+(defmacro pop! (sym)
+ (let ((v (<em class=red>gensym</em>)))
+ `(let ((,v (car ,sym)))
+ (set! ,sym (cdr ,sym))
+ ,v)))
+</pre>
+<p>As in define*, the starred forms give optional and keyword arguments:
+</p>
+<pre>
+&gt; (define-macro* (add-2 a (b 2)) `(+ ,a ,b))
+add-2
+&gt; (add-2 1 3)
+4
+&gt; (add-2 1)
+3
+&gt; (add-2 :b 3 :a 1)
+4
+</pre>
+</dd>
+<br>
+
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>define-constant, constant?</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>define-constant defines a constant and constant? returns #t if its argument
is a constant. A constant in s7 is really constant: it can't be set or rebound.
</p>
@@ -277,7 +302,14 @@ become constants:
</dd>
<br>
-<dt><em class=emdef>make-procedure-with-setter</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>procedure-with-setter</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>A procedure-with-setter consists of two functions, the "getter" and the "setter".
The getter is called when the object is encountered as a function, and the setter when
it is set:
@@ -292,7 +324,14 @@ it is set:
</dd>
<br>
-<dt><em class=emdef>applicable objects and generalized set!</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>applicable objects, generalized set!</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>Lists, strings, vectors, hash-tables, and any cooperating C-defined objects
are both applicable and settable. I think the syntax is pretty:
</p>
@@ -313,16 +352,52 @@ when it is buried in vector-refs and vector-set!s!
</dd>
<br>
-<dt><em class=emdef>block comments in #| ... |# and #! ... !#</em></dt>
-<dd>
-<p>Multi-line comments can be enclosed in either #| and |#, or #! and !# (the latter
-is for compatibility with Guile).
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>multidimensional vectors</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd><p>
+If s7 is built with WITH_MULTIDIMENSIONAL_VECTORS (the default), it supports
+vectors with any number of dimensions. It is here, in particular, that the generalized
+set! stuff shines. make-vector's 2nd argument can be a list of dimensions, rather than
+an integer (the one dimensional case):
</p>
+<pre>
+ (make-vector (list 2 3 4))
+ (make-vector '(2 3) 1.0)
+ (vector-dimensions (make-vector (list 2 3 4))) -&gt; (2 3 4)
+</pre>
+<p>The second example includes the optional default vector element. Once defined,
+(vect i ...) or (to be very verbose, (vector-ref vect i ...)) returns the given
+element, and (set! (vect i ...) m), (or verbose and unreadable, (vector-set! vect i ... m))
+sets that element. vector-dimensions returns a list of the dimensions of a vector.
+</p>
+<pre>
+ (define v (make-vector '(2 3) 1.0))
+ -&gt; #(1.0 1.0 1.0 1.0 1.0 1.0)
+
+ (set! (v 0 1) 2.0)
+ -&gt; #(1.0 2.0 1.0 1.0 1.0 1.0)
+
+ (v 0 1)
+ -&gt; 2.0
+</pre>
</dd>
<br>
-<dt><em class=emdef>hash tables </em></dt>
-<dd>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>hash-tables</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd><br>
<ul>
<li>(make-hash-table (size 461))
<li>(hash-table-ref ht obj)
@@ -335,7 +410,14 @@ is for compatibility with Guile).
</dd>
<br>
-<dt><em class=emdef>threads</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>threads</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>If s7 is built with HAVE_PTHREADS set, you get multithreading functions.
</p>
<ul>
@@ -353,12 +435,104 @@ is for compatibility with Guile).
Threads in s7 share the heap and symbol table, but have their own local environment, stack,
and evaluator locals. I use the term "lock" in place of "mutex", and "thread-variable"
in place of "pthread_key". The thread-variable is applicable and settable, so instead
-of pthread_getspecific, simply call it: (var).
+of pthread_getspecific, just call it: (var).
</p>
</dd>
<br>
-<dt><em class=emdef>format and object-&gt;string</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>multiple-values</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd><p>
+The r5rs section about values makes no sense to me; why have
+multiple values at all if you're just going to throw away all
+but the first value?
+In s7 (+ (values 1 2 3) 4) is 10. Similarly,
+</p>
+<pre>
+ (string-ref ((lambda () (values "abcd" 2))))
+ -&gt; #\c
+
+ ((lambda (a b) (+ a b))
+ ((lambda () (values 1 2))))
+ -&gt; 3
+
+ ;; call-with-values:
+ (define-macro (call-with-values producer consumer)
+ `(,consumer (,producer)))
+
+ ;; multiple-value-bind ("receive" in srfi-8):
+ (define-macro (multiple-value-bind vars expr . body)
+ `((lambda ,vars ,@body) ,expr))
+
+ ;; multiple-value-set!:
+ (define-macro (multiple-value-set! vars expr . body)
+ (let ((local-vars (map (lambda (n) (gensym)) vars)))
+ `((lambda ,local-vars ,@(map (lambda (n ln) `(set! ,n ,ln)) vars local-vars) ,@body) ,expr)))
+
+ ;; call/cc returns multiple values:
+ (+ (call/cc (lambda (ret) (ret 1 2 3))) 4)
+ -&gt; 10
+
+ ;; let*-values is defined as a macro at the end of s7.c (commented out)
+</pre>
+<p>
+In Snd many functions take the same trailing arguments: sound-index, channel-number, and edit-position;
+we can package these up in a values call:
+</p>
+<pre>
+ ;; say we have those arguments in snd, chn, edpos
+ (defmacro sce () `(values ,snd ,chn ,edpos))
+ (maxamp (sce))
+</pre>
+</dd>
+<br>
+
+<!-- should this work? (let ((var (values (values 1 2 3)))) (+ var 4))
+ currently you need: (let ((var (values (values 1 2 3)))) (+ (eval var) 4)) -> 10
+-->
+
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>call-with-exit and continuation?</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd><p>call-with-exit is call/cc without the ability to return (an escape or goto, "call/exit"?).
+</p>
+<pre>
+(define (find-first-even-number arg)
+ (<em class=red>call-with-exit</em>
+ (lambda (return)
+ (for-each
+ (lambda (a)
+ (if (even? a)
+ (return a)))
+ arg))))
+
+(find-first-even-number (list 1 3 9 13 8 2 4)) -&gt; 8
+</pre>
+<p>continuation? returns #t if its argument is a continuation,
+as opposed to a normal procedure.
+</p>
+</dd>
+<br>
+
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>format, object-&gt;string</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>s7's built-in format function is very close to that in srfi-48.</p>
<pre>
(format #f "~A ~D ~F" 'hi 123 3.14)
@@ -376,43 +550,14 @@ of pthread_getspecific, simply call it: (var).
</dd>
<br>
-<dt><em class=emdef>FFI</em></dt>
-<dd><p>s7 exists only to serve as an extension of some other application, so in a sense
-it is just a foreign function interface. See s7.h for the API and many examples.
-Here is a bare REPL:
-</p>
-<pre>
-#include &lt;stdlib.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;string.h&gt;
-#include "s7.h"
-
-static s7_pointer our_exit(s7_scheme *sc, s7_pointer args) {exit(1);}
-int main(int argc, char **argv)
-{
- s7_scheme *s7;
- char buffer[512];
- char response[1024];
- s7 = <em class=red>s7_init</em>(); /* initialize the interpreter */
- <em class=red>s7_define_function</em>(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
- while (1) /* fire up a REPL */
- {
- fprintf(stdout, "\n&gt; "); /* prompt for input */
- fgets(buffer, 512, stdin);
- if ((buffer[0] != '\n') ||
- (strlen(buffer) &gt; 1))
- {
- sprintf(response, "(write %s)", buffer);
- <em class=red>s7_eval_c_string</em>(s7, response); /* evaluate input and write the result */
- }
- }
-}
-</pre>
-</dd>
-<br>
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>error handling</h4></td></tr></table>
+</td></tr></table>
+</dt>
-<dt><em class=emdef>error handling via error and catch</em></dt>
<dd><p>s7's error handling mimics that of (pre-r6rs) Guile. An error is signalled
via the error function, and can be trapped and dealt with via catch.
</p>
@@ -472,7 +617,14 @@ which allows you to stop at some point, then evaluate arbitrary expressions in t
</dd>
<br>
-<dt><em class=emdef>trace and untrace</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>trace, untrace</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>These functions provide tracing:
</p>
<pre>
@@ -495,11 +647,34 @@ which allows you to stop at some point, then evaluate arbitrary expressions in t
3
</pre>
<p>trace adds a function to the list of functions being traced, and untrace removes it.
+trace with no arguments causes everything to be traced, and untrace with no arguments
+turns this off.
+</p>
+<p>There is also a hook, *trace-hook*, a function of 2 arguments (the currently traced
+function and the list of current arguments). It is evaluated in the environment of the
+function call (that is, global to the function, not the function's local environment).
</p>
+<pre>
+ (define (hiho a b c) (* a b c))
+ (set! *trace-hook* (lambda (f args) (format #t "sum of args: ~A~%" (apply + args))))
+ (trace hiho)
+ (hiho 2 3 4)
+
+ [hiho 2 3 4]
+ sum of args: 9
+ 24
+</pre>
</dd>
<br>
-<dt><em class=emdef>stacktrace and stack</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>stacktrace, stack</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>stacktrace prints the stack contents. Its optional argument
can be *error-info* to show the stack at the point of the last error,
a thread object to show that thread's stack, or a continuation to
@@ -511,7 +686,14 @@ internally by the evaluator.
</dd>
<br>
-<dt><em class=emdef>IO functions</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>IO functions</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd>
<p>Besides files, ports can also represent strings and functions. The string port functions
are:
@@ -551,7 +733,14 @@ for an example.
</dd>
<br>
-<dt><em class=emdef>Generic functions</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>generic functions</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>length, copy, and fill! are generic functions in the sense that their argument can be
a list, string, vector, hash-table, or C-defined object. Since vectors and lists are set-applicable,
and length is generic, we can write a generic FFT that accepts both types or any other object that follows this syntax:
@@ -604,64 +793,14 @@ and length is generic, we can write a generic FFT that accepts both types or any
</dd>
<br>
-<dt><em class=emdef>multidimensional vectors</em></dt>
-<dd><p>
-If s7 is built with WITH_MULTIDIMENSIONAL_VECTORS (the default), it supports
-vectors with any number of dimensions. It is here, in particular, that the generalized
-set! stuff shines. make-vector's 2nd argument can be a list of dimensions, rather than
-an integer (the one dimensional case):
-</p>
-<pre>
- (make-vector (list 2 3 4))
- (make-vector '(2 3) 1.0)
- (vector-dimensions (make-vector (list 2 3 4))) -&gt; (2 3 4)
-</pre>
-<p>The second example includes the optional default vector element. Once defined,
-(vect i ...) or (to be very verbose, (vector-ref vect i ...)) returns the given
-element, and (set! (vect i ...) m), (or verbose and unreadable, (vector-set! vect i ... m))
-sets that element. vector-dimensions returns a list of the dimensions of a vector.
-</p>
-<pre>
- (define v (make-vector '(2 3) 1.0))
- -&gt; #(1.0 1.0 1.0 1.0 1.0 1.0)
- (set! (v 0 1) 2.0)
- -&gt; #(1.0 2.0 1.0 1.0 1.0 1.0)
-
- (v 0 1)
- -&gt; 2.0
-</pre>
-</dd>
-<br>
-
-<dt><em class=emdef>*load-path* and *load-hook*</em></dt>
-<dd><p>*load-path* is a list of directories to search when loading a file.
-*load-hook* is a function called just before a file is loaded. Its argument is the filename.
-While loading, port-filename and port-line-number (of the current-input-port) can tell you
-where you are in the file.
-</p>
-<pre>
-(set! *load-hook* (lambda (name) (format #t "loading ~S...~%" name)))
-</pre>
-</dd>
-<br>
-
-<dt><em class=emdef>*features*, provide, and provided?</em></dt>
-<dd><p>As in Common Lisp, *features* is a list describing what is currently loaded into s7. You can
-check it with the provided? function, or add something to it with provide. In my version of Snd,
-at startup *features* is:
-</p>
-<pre>
-&gt; *features*
-(snd10 snd snd-s7 snd-motif gsl alsa xm snd-ladspa run clm4 clm sndlib gmp multidimensional-vectors s7)
-
-&gt; (provided? 'gmp)
-#t
-</pre>
-</dd>
-<br>
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>procedure info</h4></td></tr></table>
+</td></tr></table>
+</dt>
-<dt><em class=emdef>procedure info</em></dt>
<dd><p>procedure-source, procedure-arity, procedure-documentation, and help provide a look into a
scheme function.
procedure-documentation returns the documentation string associated with a procedure (the initial string in the
@@ -686,7 +825,13 @@ add-2
<br>
-<dt><em class=emdef>symbol table info</em></dt>
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>symbol table info</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>(symbol-table) returns the symbol table, a vector of lists of symbols.
(symbol-&gt;value sym :optional env) returns the binding of 'sym'
in the given environment which defaults to the current environment.
@@ -712,7 +857,14 @@ Here we scan the symbol table for any function that doesn't have documentation:
</dd>
<br>
-<dt><em class=emdef>environments</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>environment info</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>environments are "first class objects" in s7. An environment is
a list of alists ending with a hash-table (the global environment).
(current-environment :optional thread)
@@ -811,44 +963,54 @@ write "hygenic" macros:
<br>
-<dt><em class=emdef>encapsulation</em></dt>
-<dd><p>encapsulation saves and restores environments.</p>
-<ul>
-<li>(open-encapsulator)
-<li>(close-encapsulator encap)
-<li>(encapsulator-bindings encap)
-<li>(encapsulator? obj)
-<li>(encapsulate . body)
-</ul>
-<p>An encapsulator is
-a sort of data-side continuation. open-encapsulator
-remembers the overall environment at the point it is called, returning an encapuslator
-object. Whenever we want to return to that data state, we call that object as a thunk.
-encapsulator-bindings returns the alist of variables awaiting restoration. When the encapsulator is called (restoring those bindings),
-the list is cleared, and the encapsulator starts saving values again (so repeated calls
-keep returning you to that data state). close-encapsulator turns that encapsulator off.
-In a REPL, for example, you could save the initial state, then return to it at any time,
-without restarting the interpreter. fluid-let is not what we want here because it has
-a body, and requires that you list in advance what variables you want to protect (and
-besides, it's not really a let (it uses "set!") and I can't see anything fluid about it).
-encapsulate is a macro that evaluates its body, then returns any variables global to that code to their prior value.
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>*load-path*, *load-hook*</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd><p>*load-path* is a list of directories to search when loading a file.
+*load-hook* is a function called just before a file is loaded. Its argument is the filename.
+While loading, port-filename and port-line-number (of the current-input-port) can tell you
+where you are in the file.
</p>
<pre>
-&gt; (define global-x 32)
-global-x
+(set! *load-hook* (lambda (name) (format #t "loading ~S...~%" name)))
+</pre>
+</dd>
+<br>
-&gt; (encapsulate
- (set! global-x 123)
- (format #f "x: ~A" global-x))
- "x: 123"
-&gt; global-x
-32
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>provide, provided?, *features*</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd><p>As in Common Lisp, *features* is a list describing what is currently loaded into s7. You can
+check it with the provided? function, or add something to it with provide. In my version of Snd,
+at startup *features* is:
+</p>
+<pre>
+&gt; *features*
+(snd10 snd snd-s7 snd-motif gsl alsa xm snd-ladspa run clm4 clm sndlib gmp multidimensional-vectors s7)
+
+&gt; (provided? 'gmp)
+#t
</pre>
</dd>
<br>
-<dt><em class=emdef>eval and eval-string</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>eval, eval-string</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>
eval evaluates its argument (a list representing a piece of code). It takes an optional
second argument, the environment in which the evaluation should take place. eval-string
@@ -864,7 +1026,29 @@ is similar, but its argument is a string.
</dd>
<br>
-<dt><em class=emdef>reverse!, list-set!, sort!</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>blocks comments in #| ... |# and #! ... !#</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
+<dd>
+<p>Multi-line comments can be enclosed in either #| and |#, or #! and !# (the latter
+is for compatibility with Guile).
+</p>
+</dd>
+<br>
+
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>reverse!, list-set!, sort!</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>reverse! is an in-place version of the built-in function reverse. That is,
it modifies the list passed to it in the process of reversing its contents.
list-set! sets a member of a list. sort! sorts a list or a vector using the
@@ -884,7 +1068,14 @@ but vectors are sorted in place.
</dd>
<br>
-<dt><em class=emdef>keywords</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>keywords</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>
Keywords exist mainly for define*'s benefit. The keyword functions are:
keyword?, make-keyword, symbol-&gt;keyword, and keyword-&gt;symbol.
@@ -895,122 +1086,1038 @@ signals that the symbol is in the Package-With-No-Name [offstage: harmonica, tub
</dd>
<br>
-<dt><em class=emdef>help</em></dt>
+
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>other functions</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><p>
-(help obj) tries to find information about obj.
-</p>
+<p>(<b>help</b> obj) tries to find information about obj.</p>
+<p>(<b>quit</b>) exits s7.</p>
+<p>(<b>make-list</b> length (initial-element #f)) returns a list of 'length' elements defaulting to 'initial-element'.</p>
+<p>(<b>gc</b>) calls the garbage collector. (gc #f) turns off the GC, and (gc #t) turns it on.</p>
</dd>
<br>
-<dt><em class=emdef>multiple-values</em></dt>
-<dd><p>
-The r5rs section about values makes no sense to me; why have
-multiple values at all if you're simply going to throw away all
-but the first value?
-In s7 (+ (values 1 2 3) 4) is 10. Similarly,
-</p>
-<pre>
- (string-ref ((lambda () (values "abcd" 2))))
- -&gt; #\c
- ((lambda (a b) (+ a b))
- ((lambda () (values 1 2))))
- -&gt; 3
-
- ;; call-with-values:
- (define-macro (call-with-values producer consumer)
- `(,consumer (,producer)))
-
- ;; multiple-value-bind ("receive" in srfi-8):
- (define-macro (multiple-value-bind vars expr . body)
- `((lambda ,vars ,@body) ,expr))
-
- ;; multiple-value-set!:
- (define-macro (multiple-value-set! vars expr . body)
- (let ((local-vars (map (lambda (n) (gensym)) vars)))
- `((lambda ,local-vars ,@(map (lambda (n ln) `(set! ,n ,ln)) vars local-vars) ,@body) ,expr)))
- ;; call/cc returns multiple values:
- (+ (call/cc (lambda (ret) (ret 1 2 3))) 4)
- -&gt; 10
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>define-expansion</h4></td></tr></table>
+</td></tr></table>
+</dt>
- ;; let*-values is defined as a macro at the end of s7.c (commented out)
-</pre>
-<p>
-In Snd many functions take the same trailing arguments: sound-index, channel-number, and edit-position;
-we can package these up in a values call:
+<dd><p>
+This defines read-time macros, which are just dangerous enough that
+I probably shouldn't document them. It has the same syntax as
+define-macro, and the same result except that the macro is
+dealt with at read time! (This means it does not respect attempts to
+bind it to something else, which is asking for confusion).
</p>
-<pre>
- ;; say we have those arguments in snd, chn, edpos
- (defmacro sce () `(values ,snd ,chn ,edpos))
- (maxamp (sce))
-</pre>
</dd>
<br>
-<!-- should this work? (let ((var (values (values 1 2 3)))) (+ var 4))
- currently you need: (let ((var (values (values 1 2 3)))) (+ (eval var) 4)) -> 10
--->
-
-
-<dt><em class=emdef>quit</em></dt>
-<dd><p>quit exits s7.</p>
-<br>
-<dt><em class=emdef>make-promise</em></dt>
-<dd><p>This is named "delay" in most Schemes, but that name belongs to CLM.
-There is also promise? which returns #t if its argument is a promise.
-</p>
-</dd>
-<br>
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>encapsulation</h4></td></tr></table>
+</td></tr></table>
+</dt>
-<dt><em class=emdef>gc</em></dt>
-<dd><p>The gc function either calls the GC (if passed no arguments), or turns the GC either on: (gc #t)
-or off: (gc #f).
+<dd><p>encapsulation saves and restores environments.</p>
+<ul>
+<li>(open-encapsulator)
+<li>(close-encapsulator encap)
+<li>(encapsulator-bindings encap)
+<li>(encapsulator? obj)
+<li>(encapsulate . body)
+</ul>
+<p>An encapsulator is
+a sort of data-side continuation. open-encapsulator
+remembers the overall environment at the point it is called, returning an encapuslator
+object. Whenever we want to return to that data state, we call that object as a thunk.
+encapsulator-bindings returns the alist of variables awaiting restoration. When the encapsulator is called (restoring those bindings),
+the list is cleared, and the encapsulator starts saving values again (so repeated calls
+keep returning you to that data state). close-encapsulator turns that encapsulator off.
+In a REPL, for example, you could save the initial state, then return to it at any time,
+without restarting the interpreter. fluid-let is not what we want here because it has
+a body, and requires that you list in advance what variables you want to protect (and
+besides, it's not really a let (it uses "set!") and I can't see anything fluid about it).
+encapsulate is a macro that evaluates its body, then returns any variables global to that code to their prior value.
</p>
-</dd>
-<br>
+<pre>
+&gt; (define global-x 32)
+global-x
+&gt; (encapsulate
+ (set! global-x 123)
+ (format #f "x: ~A" global-x))
+ "x: 123"
-<dt><em class=emdef>define-expansion</em></dt>
-<dd><p>
-This defines read-time macros, which are just dangerous enough that
-I probably shouldn't document them. It has the same syntax as
-define-macro, and the same result except that the macro is
-dealt with at read time! (This means it does not respect attempts to
-bind it to something else, which is asking for confusion).
-</p>
+&gt; global-x
+32
+</pre>
</dd>
<br>
-<dt><em class=emdef>other differences from r5rs</em></dt>
+<!-- -------------------------------------------------------------------------------- -->
+<dt>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>other differences from r5rs</h4></td></tr></table>
+</td></tr></table>
+</dt>
+
<dd><br>
<ul>
<li>do sets its step variables, rather than rebinding them.
<li>no syntax-rules or any of its friends.
+<li>force and delay are implemented as in slib and depend on the WITH_FORCE switch, normally 0
<li>s7-version returns the current s7 version.
<li>no scheme-report-environment, null-environment, or interaction-environment (= current-environment?).
<li>no transcript-on or transcript-off.
-<li>__func__ is the name of the function currently being defined (as in C).
+<li>__func__ is the name of the function currently being defined or called (as in C).
<li>vector-for-each, vector-map, string-for-each
</ul>
</dd>
<br>
<br>
-<dt><em class=emdef>changes I'll probably get to someday</em></dt>
-<dd>
+</dl>
+
+
+<!-- -------------------------------------------------------------------------------- -->
+<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h3>FFI examples</h3></td></tr></table>
+</td></tr></table>
+
+<p>s7 exists only to serve as an extension of some other application, so
+it is primarily a foreign function interface. s7.h has lots of comments about the individual
+functions. Here I'll collect some complete examples. s7.c depends on the following
+compile-time flags:
+</p>
+<pre>
+ HAVE_STDBOOL_H 1 if you have stdbool.h
+ HAVE_PTHREADS 1 if you want multithreading support (requires pthreads, default is 0)
+ HAVE_NESTED_FUNCTIONS 1 if your compiler supports nested functions
+ WITH_GMP 1 if you want multiprecision arithmetic (requires gmp, mpfr, and mpc, default is 0)
+ WITH_COMPLEX 1 if your compiler supports complex numbers
+ HAVE_COMPLEX_TRIG 1 if you math library has complex versions of the trig functions
+ WITH_MULTIDIMENSIONAL_VECTORS 1 if you want multidimensional vectors (default is 1)
+ WITH_PROFILING 1 if you want profiling support (default is 0)
+ WITH_ENCAPSULATION 1 if you want encapsulation (default is 0)
+ WITH_FORCE 1 if you want force and delay (default is 0)
+ S7_DISABLE_DEPRECATED 1 if you want to make sure you're not using any deprecated s7 stuff
+</pre>
+<p>See the comment at the start of s7.c for more information about these switches.
+s7.h defines the two main number types: s7_Int and s7_Double.
+The examples that follow show:
+</p>
+
<ul>
-<li>define-macro* defmacro*
-<li>settable numerator denominator imag-part real-part angle magnitude
-<li>hooks
-<li>cerror ("error/cc"?)
+<li>read-eval-print loop
+<li>define a function with arguments and a returned value, and define a variable
+<li>call a scheme function from C, and get/set scheme variable values in C
+<li>C++ and Juce
+<li>load sndlib using the XEN functions and macros
+<li>add a new scheme type and a procedure-with-setter
+<li>redirect display output to a C procedure
+<li>extend a built-in operator ("+" in this case)
+<li>C-side define* (s7_define_function_star)
+<li>C-side define-macro (s7_define_macro)
+<li>signal handling (C-C to break out of an infinite loop)
+<li>direct multidimensional vector element access
</ul>
-</dd>
-<br>
-</dl>
+<br><br>
+<p>
+First, a bare REPL:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include "s7.h"
+
+static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
+{
+ /* all added functions have this form, args is a list,
+ * s7_car(args) is the 1st arg, etc
+ */
+ exit(1);
+ return(s7_nil()); /* never executed, but makes the compiler happier */
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = <em class=red>s7_init</em>(); /* initialize the interpreter */
+ <em class=red>s7_define_function</em>(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
+ /* add the function "exit" to the interpreter.
+ * 0, 0, false -&gt; no required args,
+ * no optional args,
+ * no "rest" arg
+ */
+ while (1) /* fire up a REPL */
+ {
+ fprintf(stdout, "\n&gt; "); /* prompt for input */
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ <em class=red>s7_eval_c_string</em>(s7, response); /* evaluate input and write the result */
+ }
+ }
+}
+
+/* make mus-config.h (it can be empty), then
+ *
+ * gcc -c s7.c -I.
+ * gcc -o doc7 doc7.c s7.o -lm -I.
+ *
+ * run it:
+ *
+ * doc7
+ * &gt; (+ 1 2)
+ * 3
+ * &gt; (define (add1 x) (+ 1 x))
+ * add1
+ * &gt; (add1 2)
+ * 3
+ * &gt; (exit)
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>Define a function with arguments and a returned value, and a variable:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
+{
+ exit(1);
+ return(s7_nil(sc));
+}
+
+static s7_pointer add1(s7_scheme *sc, s7_pointer args)
+{
+ if (<em class=red>s7_is_integer</em>(s7_car(args)))
+ return(<em class=red>s7_make_integer</em>(sc, 1 + <em class=red>s7_integer</em>(s7_car(args))));
+ return(s7_wrong_type_arg_error(sc, "add1", 1, s7_car(args), "an integer"));
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init(); /* initialize the interpreter */
+
+ s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
+ s7_define_function(s7, "add1", add1, 1, 0, false, "(add1 int) adds 1 to int");
+ <em class=red>s7_define_variable</em>(s7, "my-pi", <em class=red>s7_make_real</em>(s7, 3.14159265));
+
+ while (1) /* fire up a "repl" */
+ {
+ fprintf(stdout, "\n&gt; "); /* prompt for input */
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response); /* evaluate input and write the result */
+ }
+ }
+}
+
+/* doc7
+ * &gt; my-pi
+ * 3.14159265
+ * &gt; (+ 1 (add1 1))
+ * 3
+ * &gt; (exit)
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>Call a scheme-defined function from C, and get/set scheme variable values in C:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ s7 = s7_init();
+
+ s7_define_variable(s7, "an-integer", s7_make_integer(s7, 1));
+ s7_eval_c_string(s7, "(define (add1 a) (+ a 1))");
+
+ fprintf(stderr, "an-integer: %d\n",
+ s7_integer(<em class=red>s7_name_to_value</em>(s7, "an-integer")));
+
+ <em class=red>s7_symbol_set_value</em>(s7, <em class=red>s7_make_symbol</em>(s7, "an-integer"), s7_make_integer(s7, 32));
+
+ fprintf(stderr, "now an-integer: %d\n",
+ s7_integer(<em class=red>s7_name_to_value</em>(s7, "an-integer")));
+
+ fprintf(stderr, "(add1 2): %d\n",
+ s7_integer(<em class=red>s7_call</em>(s7,
+ s7_name_to_value(s7, "add1"),
+ s7_cons(s7, s7_make_integer(s7, 2), s7_nil(s7)))));
+}
+
+/*
+ * doc7
+ * an-integer: 1
+ * now an-integer: 32
+ * (add1 2): 3
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>C++ and Juce, from Rick Taube:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+int main(int argc, const char* argv[])
+{
+ initialiseJuce_NonGUI();
+
+ s7_scheme *s7 = s7_init();
+ if (!s7)
+ {
+ std::cout &lt;&lt; "Can't start S7!\n";
+ return -1;
+ }
+
+ s7_pointer val;
+ std::string str;
+ while (true)
+ {
+ std::cout &lt;&lt; "\ns7&gt; ";
+ std::getline(std::cin, str);
+ val = s7_eval_c_string(s7, str.c_str());
+ std::cout &lt;&lt; s7_object_to_c_string(s7, val);
+ }
+
+ free(s7);
+ std::cout &lt;&lt; "Bye!\n";
+ return 0;
+}
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>Load sndlib using the XEN functions and macros into an s7 repl:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;unistd.h&gt;
+
+/* assume we've configured and built sndlib, so it has created a mus-config.h file */
+
+#include "mus-config.h"
+#include "s7.h"
+#include "xen.h"
+#include "clm.h"
+#include "clm2xen.h"
+
+static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
+{
+ exit(1);
+ return(s7_nil(sc));
+}
+
+/* the next functions are needed for either with-sound or many standard instruments, like fm-violin */
+/* (these are in the xen-style FFI) */
+
+static XEN g_file_exists_p(XEN name)
+{
+ #define H_file_exists_p "(file-exists? filename): #t if the file exists"
+ XEN_ASSERT_TYPE(XEN_STRING_P(name), name, XEN_ONLY_ARG, "file-exists?", "a string");
+ return(C_TO_XEN_BOOLEAN(mus_file_probe(XEN_TO_C_STRING(name))));
+}
+
+XEN_NARGIFY_1(g_file_exists_p_w, g_file_exists_p)
+
+static XEN g_delete_file(XEN name)
+{
+ #define H_delete_file "(delete-file filename): deletes the file"
+ XEN_ASSERT_TYPE(XEN_STRING_P(name), name, XEN_ONLY_ARG, "delete-file", "a string");
+ return(C_TO_XEN_BOOLEAN(unlink(XEN_TO_C_STRING(name))));
+}
+
+XEN_NARGIFY_1(g_delete_file_w, g_delete_file)
+
+int main(int argc, char **argv)
+{
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init(); /* initialize the interpreter; s7 is declared in xen.h */
+ xen_initialize(); /* initialize the xen stuff (hooks and the xen s7 FFI used by sndlib) */
+ Init_sndlib(); /* initialize sndlib with all the functions linked into s7 */
+
+ XEN_DEFINE_PROCEDURE("file-exists?", g_file_exists_p_w, 1, 0, 0, H_file_exists_p);
+ XEN_DEFINE_PROCEDURE("delete-file", g_delete_file_w, 1, 0, 0, H_delete_file);
+ s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
+
+ while (1) /* fire up a "repl" */
+ {
+ fprintf(stdout, "\n&gt; "); /* prompt for input */
+ fgets(buffer, 512, stdin);
+
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response); /* evaluate input and write the result */
+ }
+ }
+}
+
+/* gcc -o doc7 doc7.c -lm -I. /usr/local/lib/sndlib.a -lasound
+ *
+ * (load "sndlib-ws.scm")
+ * (with-sound () (outa 10 .1))
+ * (load "v.scm")
+ * (with-sound () (fm-violin 0 .1 440 .1))
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>Add a new scheme type and procedure-with-setters:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
+{
+ exit(1);
+ return(s7_nil(sc));
+}
+
+/* define *listener-prompt* in scheme, add two accessors for C get/set */
+
+static const char *listener_prompt(s7_scheme *sc)
+{
+ return(s7_string(s7_name_to_value(sc, "*listener-prompt*")));
+}
+
+static void set_listener_prompt(s7_scheme *sc, const char *new_prompt)
+{
+ s7_symbol_set_value(sc, s7_make_symbol(sc, "*listener-prompt*"), s7_make_string(sc, new_prompt));
+}
+
+/* now add a new type, a struct named "dax" with two fields, a real "x" and a list "data" */
+/* since the data field is an s7 object, we'll need to mark it to protect it from the GC */
+
+typedef struct {
+ s7_Double x;
+ s7_pointer data;
+} dax;
+
+static char *print_dax(s7_scheme *sc, void *val)
+{
+ char *data_str, *str;
+ int data_str_len;
+ dax *o = (dax *)val;
+ data_str = s7_object_to_c_string(sc, o-&gt;data);
+ data_str_len = strlen(data_str);
+ str = (char *)calloc(data_str_len + 32, sizeof(char));
+ snprintf(str, data_str_len + 32, "#&lt;dax %.3f %s&gt;", o-&gt;x, data_str);
+ free(data_str);
+ return(str);
+}
+
+static void free_dax(void *val)
+{
+ if (val) free(val);
+}
+
+static bool equal_dax(void *val1, void *val2)
+{
+ return(val1 == val2);
+}
+
+static void mark_dax(void *val)
+{
+ dax *o = (dax *)val;
+ if (o) s7_mark_object(o-&gt;data);
+}
+
+static int dax_type_tag = 0;
+
+static s7_pointer make_dax(s7_scheme *sc, s7_pointer args)
+{
+ dax *o;
+ o = (dax *)malloc(sizeof(dax));
+ o-&gt;x = s7_real(s7_car(args));
+ if (s7_cdr(args) != s7_nil(sc))
+ o-&gt;data = s7_car(s7_cdr(args));
+ else o-&gt;data = s7_nil(sc);
+ return(<em class=red>s7_make_object</em>(sc, dax_type_tag, (void *)o));
+}
+
+static s7_pointer is_dax(s7_scheme *sc, s7_pointer args)
+{
+ return(s7_make_boolean(sc,
+ <em class=red>s7_is_object</em>(s7_car(args)) &amp;&amp;
+ <em class=red>s7_object_type</em>(s7_car(args)) == dax_type_tag));
+}
+
+static s7_pointer dax_x(s7_scheme *sc, s7_pointer args)
+{
+ dax *o;
+ o = (dax *)<em class=red>s7_object_value</em>(s7_car(args));
+ return(s7_make_real(sc, o-&gt;x));
+}
+
+static s7_pointer set_dax_x(s7_scheme *sc, s7_pointer args)
+{
+ dax *o;
+ o = (dax *)s7_object_value(s7_car(args));
+ o-&gt;x = s7_real(s7_car(s7_cdr(args)));
+ return(s7_car(s7_cdr(args)));
+}
+
+static s7_pointer dax_data(s7_scheme *sc, s7_pointer args)
+{
+ dax *o;
+ o = (dax *)s7_object_value(s7_car(args));
+ return(o-&gt;data);
+}
+
+static s7_pointer set_dax_data(s7_scheme *sc, s7_pointer args)
+{
+ dax *o;
+ o = (dax *)s7_object_value(s7_car(args));
+ o-&gt;data = s7_car(s7_cdr(args));
+ return(o-&gt;data);
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init();
+
+ s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits the program");
+ s7_define_variable(s7, "*listener-prompt*", s7_make_string(s7, "&gt;"));
+
+ dax_type_tag = <em class=red>s7_new_type</em>("dax", print_dax, free_dax, equal_dax, mark_dax, NULL, NULL);
+ s7_define_function(s7, "make-dax", make_dax, 2, 0, false, "(make-dax x data) makes a new dax");
+ s7_define_function(s7, "dax?", is_dax, 1, 0, false, "(dax? anything) returns #t if its argument is a dax object");
+
+ s7_define_variable(s7, "dax-x",
+ <em class=red>s7_make_procedure_with_setter</em>(s7, "dax-x", dax_x, 1, 0, set_dax_x, 2, 0, "dax x field"));
+
+ s7_define_variable(s7, "dax-data",
+ <em class=red>s7_make_procedure_with_setter</em>(s7, "dax-data", dax_data, 1, 0, set_dax_data, 2, 0, "dax data field"));
+
+ while (1)
+ {
+ fprintf(stdout, "\n%s ", listener_prompt(s7));
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response); /* evaluate input and write the result */
+ }
+ }
+}
+
+/*
+ * &gt; *listener-prompt*
+ * "&gt;"
+ * &gt; (set! *listener-prompt* ":")
+ * ":"
+ * : (define obj (make-dax 1.0 (list 1 2 3)))
+ * obj
+ * : obj
+ * #&lt;dax 1.000 (1 2 3)&gt;
+ * : (dax-x obj)
+ * 1.0
+ * : (dax-data obj)
+ * (1 2 3)
+ * : (set! (dax-x obj) 123.0)
+ * 123.0
+ * : obj
+ * #&lt;dax 123.000 (1 2 3)&gt;
+ * : (dax? obj)
+ * #t
+ * : (exit)
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>Redirect output (and input) to a C procedure:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+static void my_print(s7_scheme *sc, char c, s7_pointer port)
+{
+ fprintf(stderr, "[%c] ", c);
+}
+
+static s7_pointer my_read(s7_scheme *sc, s7_read_t peek, s7_pointer port)
+{
+ return(<em class=red>s7_make_character</em>(s7, fgetc(stdin)));
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init();
+
+ <em class=red>s7_set_current_output_port</em>(s7, <em class=red>s7_open_output_function</em>(s7, my_print));
+ s7_define_variable(s7, "io-port", <em class=red>s7_open_input_function</em>(s7, my_read));
+
+ while (1)
+ {
+ fprintf(stdout, "\n&gt; ");
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response);
+ }
+ }
+}
+
+/*
+ * &gt; (+ 1 2)
+ * [3]
+ * &gt; (display "hiho")
+ * [h] [i] [h] [o] [#] [&lt;] [u] [n] [s] [p] [e] [c] [i] [f] [i] [e] [d] [&gt;]
+ * &gt; (define (add1 x) (+ 1 x))
+ * [a] [d] [d] [1]
+ * &gt; (add1 123)
+ * [1] [2] [4]
+ * &gt; (read-char io-port)
+ * a ; here I typed "a" in the shell
+ * [#] [\] [a]
+ */
+</pre>
+</td></tr></table>
+
+
+<br><br>
+<p>Extend a built-in operator ("+" in this case):
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+static s7_pointer old_add; /* the original "+" function for non-string cases */
+static s7_pointer old_string_append; /* same, for "string-append" */
+
+static s7_pointer our_add(s7_scheme *sc, s7_pointer args)
+{
+ /* this will replace the built-in "+" operator, extending it to include strings:
+ * (+ "hi" "ho") -&gt; "hiho" and (+ 3 4) -&gt; 7
+ */
+ if ((s7_is_pair(args)) &amp;&amp;
+ (s7_is_string(s7_car(args))))
+ return(<em class=red>s7_apply_function</em>(sc, old_string_append, args));
+
+ return(s7_apply_function(sc, old_add, args));
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init();
+
+ /* get built-in + and string-append */
+ old_add = s7_name_to_value(s7, "+");
+ old_string_append = s7_name_to_value(s7, "string-append");
+
+ /* redefine "+" */
+ s7_define_function(s7, "+", our_add, 0, 0, true, "(+ ...) adds or appends its arguments");
+
+ while (1)
+ {
+ fprintf(stdout, "\n&gt; ");
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response);
+ }
+ }
+}
+
+/*
+ * &gt; (+ 1 2)
+ * 3
+ * &gt; (+ "hi" "ho")
+ * "hiho"
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>C-side define* (s7_define_function_star):
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+static s7_pointer plus(s7_scheme *sc, s7_pointer args)
+{
+ /* (define* (plus (red 32) blue) (+ (* 2 red) blue)) */
+ return(s7_make_integer(sc, 2 * s7_integer(s7_car(args)) + s7_integer(s7_car(s7_cdr(args)))));
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init();
+ <em class=red>s7_define_function_star</em>(s7, "plus", plus, "(red 32) blue", "an example of define* from C");
+
+ while (1)
+ {
+ fprintf(stdout, "\n&gt; ");
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response);
+ }
+ }
+}
+
+/*
+ * &gt; (plus 2 3)
+ * 7
+ * &gt; (plus :blue 3)
+ * 67
+ * &gt; (plus :blue 1 :red 4)
+ * 9
+ * &gt; (plus 2 :blue 3)
+ * 7
+ * &gt; (plus :blue 3 :red 1)
+ * 5
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>C-side define-macro (s7_define_macro):
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+static s7_pointer plus(s7_scheme *sc, s7_pointer args)
+{
+ /* (define-macro (plus a b) `(+ ,a ,b)) */
+ s7_pointer a, b;
+ a = s7_car(args);
+ b = s7_car(s7_cdr(args));
+ return(s7_cons(sc, s7_make_symbol(sc, "+"), /* we are forming the list `(+ ,a ,b) */
+ s7_cons(sc, a,
+ s7_cons(sc, b, s7_nil(sc)))));
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init();
+ <em class=red>s7_define_macro</em>(s7, "plus", plus, 2, 0, false, "plus adds its two arguments");
+
+ while (1)
+ {
+ fprintf(stdout, "\n&gt; ");
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response);
+ }
+ }
+}
+
+/*
+ * &gt; (plus 2 3)
+ * 5
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>Signal handling (C-C to break out of an infinite loop), and s7_make_continuation
+to pick up where we were interrupted:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;signal.h&gt;
+
+#include "s7.h"
+
+static s7_scheme *s7;
+struct sigaction new_act, old_act;
+
+static void handle_sigint(int ignored)
+{
+ fprintf(stderr, "interrupted!\n");
+ s7_symbol_set_value(s7, s7_make_symbol(s7, "*interrupt*"), <em class=red>s7_make_continuation</em>(s7)); /* save where we were interrupted */
+ sigaction(SIGINT, &amp;new_act, NULL);
+ s7_quit(s7); /* get out of the eval loop if possible */
+}
+
+static s7_pointer our_exit(s7_scheme *sc, s7_pointer args)
+{
+ /* this function is really needed if we are trapping C-C! */
+ exit(1);
+ return(s7_f(sc));
+}
+
+static s7_pointer our_sleep(s7_scheme *sc, s7_pointer args)
+{
+ /* slow down out infinite loop for demo purposes */
+ sleep(1);
+ return(s7_f(sc));
+}
+
+int main(int argc, char **argv)
+{
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init();
+ s7_define_function(s7, "exit", our_exit, 0, 0, false, "(exit) exits");
+ s7_define_function(s7, "sleep", our_sleep, 0, 0, false, "(sleep) sleeps");
+ s7_define_variable(s7, "*interrupt*", s7_f(s7));
+ /* scheme variable *interrupt* holds the continuation at the point of the interrupt */
+
+ sigaction(SIGINT, NULL, &amp;old_act);
+ if (old_act.sa_handler != SIG_IGN)
+ {
+ memset(&amp;new_act, 0, sizeof(new_act));
+ new_act.sa_handler = &amp;handle_sigint;
+ sigaction(SIGINT, &amp;new_act, NULL);
+ }
+
+ while (1)
+ {
+ fprintf(stderr, "\n&gt; ");
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response);
+ }
+ }
+}
+
+/*
+ * &gt; (do ((i 0 (+ i 1))) ((= i -1)) (format #t "~D " i) (sleep))
+ * ;;; now type C-C to break out of this loop
+ * 0 1 2 ^Cinterrupted!
+ * ;;; call the continuation to continue from where we were interrupted
+ * &gt; (*interrupt*)
+ * 3 4 5 ^Cinterrupted!
+ * &gt; *interrupt*
+ * #&lt;continuation&gt;
+ * &gt; (+ 1 2)
+ * 3
+ */
+</pre>
+</td></tr></table>
+
+
+
+<br><br>
+<p>Multidimensional vector element access:
+</p>
+
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=16>
+<tr><td bgcolor="#fbfbf0">
+<pre>
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+
+#include "s7.h"
+
+static s7_pointer ref3(s7_scheme *sc, s7_pointer args)
+{
+ /* (ref3 vec) prints out a multidimensional vector's contents, assuming a 3-D vector here */
+ int x, y, z;
+ s7_pointer *elements;
+ s7_Int *offsets, *dimensions;
+
+ elements = <em class=red>s7_vector_elements</em>(s7_car(args));
+ dimensions = <em class=red>s7_vector_dimensions</em>(s7_car(args));
+ offsets = <em class=red>s7_vector_offsets</em>(s7_car(args));
+
+ for (z = 0; z &lt; dimensions[0]; z++)
+ for (y = 0; y &lt; dimensions[1]; y++)
+ for (x = 0; x &lt; dimensions[2]; x++)
+ fprintf(stdout, "z: %d, y: %d, x: %d, (3dvec z y x): %s\n",
+ z, y, x,
+ s7_object_to_c_string(sc, elements[z * offsets[0] + y * offsets[1] + x * offsets[2]]));
+
+ return(s7_car(args));
+}
+
+int main(int argc, char **argv)
+{
+ s7_scheme *s7;
+ char buffer[512];
+ char response[1024];
+
+ s7 = s7_init();
+ s7_define_function(s7, "ref3", ref3, 1, 0, false, "(ref3 vect) prints the elements of the vector");
+
+ while (1)
+ {
+ fprintf(stdout, "\n&gt; ");
+ fgets(buffer, 512, stdin);
+ if ((buffer[0] != '\n') ||
+ (strlen(buffer) &gt; 1))
+ {
+ sprintf(response, "(write %s)", buffer);
+ s7_eval_c_string(s7, response); /* evaluate input and write the result */
+ }
+ }
+}
+
+/*
+ * &gt; (define vect (make-vector (list 1 2 3) 0))
+ * vect
+ * &gt; (set! (vect 0 1 1) 32)
+ * 32
+ * &gt; (ref3 vect)
+ * z: 0, y: 0, x: 0, (3dvec z y x): 0
+ * z: 0, y: 0, x: 1, (3dvec z y x): 0
+ * z: 0, y: 0, x: 2, (3dvec z y x): 0
+ * z: 0, y: 1, x: 0, (3dvec z y x): 0
+ * z: 0, y: 1, x: 1, (3dvec z y x): 32
+ * z: 0, y: 1, x: 2, (3dvec z y x): 0
+ * #(0 0 0 0 32 0)
+ */
+</pre>
+</td></tr></table>
</body>
</html>
diff --git a/s7.tar.gz b/s7.tar.gz
deleted file mode 100644
index b308d0a..0000000
--- a/s7.tar.gz
+++ /dev/null
Binary files differ
diff --git a/s7test.scm b/s7test.scm
index cc7a74a..5c45e3c 100644
--- a/s7test.scm
+++ b/s7test.scm
@@ -34,7 +34,6 @@
(define with-reverse! #t) ; test reverse!
(define with-open-input-string-and-friends #t) ; string IO, as well as file
(define with-delay #f) ; delay and force
-(define with-delay-named-make-promise #t) ; same but "delay" -> "make-promise" ("delay" belongs to CLM)
(define with-bitwise-functions #t) ; logand|or|xor|ior, ash
(define with-hash-tables #t) ; make-hash-table and friends
(define with-keywords #t) ; make-keyword, keyword->symbol etc
@@ -2762,6 +2761,7 @@
sum)
18))
+ (test (equal? (make-vector 0) (make-vector '(0))) #t)
(test (make-vector (1 . 2) "hi") 'error)))
@@ -2785,11 +2785,11 @@
(display "(input-port? ") (display arg) (display ") returned #t?") (newline))))
(list "hi" #f (integer->char 65) 1 (list 1 2) '#t '3 (make-vector 3) 3.14 3/4 1.0+1.0i #\f))
-(test (call-with-input-file "r5rstest.scm" input-port?) #t)
+(test (call-with-input-file "s7test.scm" input-port?) #t)
(if (not (eq? start-input-port (current-input-port)))
(begin (display "call-with-input-file did not restore current-input-port? ") (display start-input-port) (display " ") (display (current-input-port)) (newline)))
-(test (let ((this-file (open-input-file "r5rstest.scm"))) (let ((res (input-port? this-file))) (close-input-port this-file) res)) #t)
+(test (let ((this-file (open-input-file "s7test.scm"))) (let ((res (input-port? this-file))) (close-input-port this-file) res)) #t)
(if (not (eq? start-input-port (current-input-port)))
(begin (display "open-input-file clobbered current-input-port? ") (display start-input-port) (display " ") (display (current-input-port)) (newline)))
@@ -3673,7 +3673,7 @@
3)
(let ((vec (vector 0 1 2 3 4 5 6 7 8 9)))
- (test (do ((i 0 (1+ i))
+ (test (do ((i 0 (+ 1 i))
(n #f)
(j 9 (- j 1)))
((>= i j) vec)
@@ -3715,7 +3715,7 @@
(test (or arg) arg))
(list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))
-(test (call-with-input-file "r5rstest.scm"
+(test (call-with-input-file "s7test.scm"
(lambda (p)
(let ((loc 0))
(let loop ((val (read p)))
@@ -3762,7 +3762,7 @@
(test (and arg) arg))
(list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))
-(test (call-with-input-file "r5rstest.scm"
+(test (call-with-input-file "s7test.scm"
(lambda (p)
(let ((loc 0))
(let loop ((val (read p)))
@@ -4273,11 +4273,6 @@
(test (+ (with-input-from-string "(values 1 2 3)" (lambda () (read))) 2) 8))
(test (< (values 1 2 3)) #t)
-(test (+ (force (make-promise (values 1 2 3))) 4) 10)
-;;; (let ((arg (force (make-promise (values 1 2 3))))) (+ arg 4)) ; this doesn't work yet
-;;; (apply + (map (lambda (n) (values n (+ n 1))) (list 1 2))) ; nor does this
-
-
(test (let ((sum 0)) (for-each (lambda (n m p) (set! sum (+ sum n m p))) (values (list 1 2 3) (list 4 5 6) (list 7 8 9)))) 45)
(test (map (lambda (n m p) (+ n m p)) (values (list 1 2 3) (list 4 5 6) (list 7 8 9))) '(12 15 18))
(test (string-append (values "123" "4" "5") "6" (values "78" "90")) "1234567890")
@@ -4823,6 +4818,7 @@
count)
2)
+(test (procedure? (call/cc call/cc)) #t)
(test (call/cc (lambda (c) (0 (c 1)))) 1)
(test (call/cc (lambda (k) (k "foo"))) "foo")
(test (call/cc (lambda (k) "foo")) "foo")
@@ -4830,6 +4826,10 @@
(test (call/cc (lambda (return) (catch #t (lambda () (error 'hi "")) (lambda args (return "oops"))))) "oops")
(test (call/cc (lambda (return) (catch #t (lambda () (return 1)) (lambda args (return "oops"))))) 1)
(test (catch #t (lambda () (call/cc (lambda (return) (return "oops")))) (lambda arg 1)) "oops")
+(test (call/cc (if (< 2 1) (lambda (return) (return 1)) (lambda (return) (return 2) 3))) 2)
+(test (call/cc (let ((a 1)) (lambda (return) (set! a (+ a 1)) (return a)))) 2)
+(test (call/cc (lambda (return) (let ((hi return)) (hi 2) 3))) 2)
+(test (let () (define (hi) (call/cc func)) (define (func a) (a 1)) (hi)) 1)
(test (let ((listindex (lambda (e l)
(call/cc (lambda (not_found)
@@ -5697,202 +5697,6 @@
))
-(if with-delay-named-make-promise
- (begin
-
- (test (let ((count 0))
- (let ((p1 (make-promise (* 2 3 (let () (set! count (+ count 1)) count)))))
- (let ((val1 (force p1))
- (val2 (force p1))
- (val3 (force p1)))
- (and (= val1 val2 val3 6)
- (= count 1)))))
- #t)
-
- (test (let ((stream-car (lambda (s) (car (force s))))
- (stream-cdr (lambda (s) (cdr (force s))))
- (counters (let next ((n 1)) (make-promise (cons n (next (+ n 1)))))))
- (let* ((val1 (stream-car counters))
- (val2 (stream-car (stream-cdr counters))))
- (letrec ((stream-add (lambda (s1 s2)
- (make-promise (cons
- (+ (stream-car s1) (stream-car s2))
- (stream-add (stream-cdr s1) (stream-cdr s2)))))))
- (let ((even-counters (stream-add counters counters)))
- (let* ((val3 (stream-car even-counters))
- (val4 (stream-car (stream-cdr even-counters))))
- (list val1 val2 val3 val4))))))
- (list 1 2 2 4))
-
- (test (force (make-promise (+ 1 2))) 3)
- (test (let ((p (make-promise (+ 1 2)))) (list (force p) (force p))) (list 3 3))
- (test (letrec ((a-stream (letrec ((next (lambda (n)
- (cons n (make-promise (next (+ n 1)))))))
- (next 0)))
- (head car)
- (tail (lambda (stream) (force (cdr stream)))))
- (head (tail (tail a-stream))))
- 2)
-
- (letrec ((count 0)
- (p (make-promise (begin (set! count (+ count 1))
- (if (> count x)
- count
- (force p)))))
- (x 5))
- (test (force p) 6)
- (set! x 10)
- (test (force p) 6))
-
- (test (let ((generate (lambda (use-it)
- (let loop ((i 0))
- (if (< i 10) (begin (use-it i) (loop (+ i 1)))))))
- (generator->lazy-list (lambda (generator)
- (make-promise
- (call/cc (lambda (k-main)
- (generator
- (lambda (e)
- (call/cc (lambda (k-reenter)
- (k-main (cons e
- (make-promise
- (call/cc (lambda (k-new-main)
- (set! k-main k-new-main)
- (k-reenter #f))))))))))
- (k-main '()))))))
- (fnull? (lambda (x) (null? (force x))))
- (fcar (lambda (x) (car (force x))))
- (fcdr (lambda (x) (cdr (force x)))))
- (letrec ((lazy-list->list (lambda (lz)
- (if (fnull? lz) '()
- (cons (fcar lz) (lazy-list->list (fcdr lz)))))))
- (lazy-list->list (generator->lazy-list generate))))
- '(0 1 2 3 4 5 6 7 8 9))
-
- (test (let* ((x 1)
- (p (make-promise (+ x 1))))
- (force p)
- (set! x (+ x 1))
- (force p))
- 2)
-
- (test (let* ((x 1)
- (p #f))
- (let* ((x 2))
- (set! p (make-promise (+ x 1))))
- (force p))
- 3)
-
- (test (letrec ((count 0)
- (x 5)
- (p (make-promise (begin (set! count (+ count 1))
- (if (> count x)
- count
- (force p))))))
- (force p)
- (set! x 10)
- (force p))
- 6)
-
- (test (let ((count 0))
- (define s (make-promise (begin (set! count (+ count 1)) 1)))
- (+ (force s) (force s))
- count)
- 1)
-
- (test (let ()
- (define f
- (let ((first? #t))
- (make-promise
- (if first?
- (begin
- (set! first? #f)
- (force f))
- 'second))))
- (force f))
- 'second)
-
- (test (let ()
- (define q
- (let ((count 5))
- (define (get-count) count)
- (define p (make-promise (if (<= count 0)
- count
- (begin (set! count (- count 1))
- (force p)
- (set! count (+ count 2))
- count))))
- (list get-count p)))
- (let* ((get-count (car q))
- (p (cadr q))
- (a (get-count))
- (b (force p))
- (c (get-count)))
- (list a b c)))
- (list 5 0 10))
-
- (for-each
- (lambda (arg)
- (test (force (make-promise arg)) arg))
- (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))
-
- (test
- (let ()
-
- (define (square x) (* x x))
-
- (define (calculate-statistics-1 the-series)
- (let* ((size (length the-series))
- (sum (apply + the-series))
- (mean (/ sum size))
- (variance (let* ((variance-list (map (lambda (x) (square (- x mean))) the-series)))
- (/ (apply + variance-list) size)))
- (standard-deviation (sqrt variance)))
- (vector mean variance standard-deviation)))
-
- (define (calculate-statistics the-series)
- (let* ((size (make-promise (length the-series)))
- (mean (make-promise (/ (apply + the-series) (force size))))
- (variance (make-promise (let* ((variance-list (map (lambda (x) (square (- x (force mean)))) the-series)))
- (/ (apply + variance-list) (force size)))))
- (standard-deviation (make-promise (sqrt (force variance)))))
- (vector mean variance standard-deviation)))
-
- (let* ((stats1 (calculate-statistics-1 '(2 6 4 3 7 4 3 6 7 8 43 4 3 2 36 75 3)))
- (stats (calculate-statistics '(2 6 4 3 7 4 3 6 7 8 43 4 3 2 36 75 3)))
- (mean (force (vector-ref stats 0)))
- (variance (force (vector-ref stats 1)))
- (stddev (force (vector-ref stats 2))))
- (and (equal? (vector-ref stats1 0) mean)
- (equal? (vector-ref stats1 1) variance)
- (< (abs (- (vector-ref stats1 2) stddev)) 1.0e-6))))
- #t)
-
- (test
- (let ()
-
- (define (flatten x)
- (define (does-flatten x)
- (if (not (pair? x)) x
- (cond
- ((null? (car x)) (does-flatten (cdr x)))
- ((not (pair? (car x)))
- (cons (car x) (make-promise (does-flatten (cdr x)))))
- (else
- (does-flatten
- (cons (caar x) (cons (cdar x) (cdr x))))))))
- (make-promise (does-flatten x)))
-
- (let ((lst '((1 2) 3 ((4) 5)))
- (newlst '()))
- (do ((i 0 (+ i 1))
- (p (force (flatten lst)) (force (cdr p))))
- ((= i 5) (reverse newlst))
- (set! newlst (cons (car p) newlst)))))
- (list 1 2 3 4 5))
-
-
- ))
-
;;; -------- quasiquote --------
@@ -6220,7 +6024,7 @@
`(let ((body (lambda (,label) ,@forms))
(tag (gensym "return-")))
(catch tag
- (lambda () (body (lambda (val) (throw tag val))))
+ (lambda () (body (lambda (val) (error tag val))))
(lambda (tag val) val))))
;; (with-return FORMS...)
@@ -6743,6 +6547,13 @@
(test (procedure-arity arg) 'error))
(list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi"))
+ (test (string=? (let () (define (hi) "this is a string" 1) (procedure-documentation hi)) "this is a string") #t)
+
+ (for-each
+ (lambda (arg)
+ (test (procedure-environment arg) 'error))
+ (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi"))
+
(for-each
(lambda (arg)
(test (continuation? arg) #f))
@@ -6784,6 +6595,20 @@
(test (procedure-source arg) 'error))
(list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi"))
+ (test (make-list 0) '())
+ (test (make-list 0 123) '())
+ (test (make-list 1) '(#f))
+ (test (make-list 1 123) '(123))
+ (test (make-list 1 '()) '(()))
+ (test (make-list 2) '(#f #f))
+ (test (make-list 2 1) '(1 1))
+ (test (make-list -1) 'error)
+
+ (for-each
+ (lambda (arg)
+ (test (make-list arg) 'error))
+ (list #\a '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi"))
+
(test (let () (defmacro hiho (a) `(+ ,a 1)) (hiho 3)) 4)
(test (let () (defmacro hiho () `(+ 3 1)) (hiho)) 4)
(test (let () (defmacro hiho () `(+ 3 1)) (hiho 1)) 'error)
@@ -6797,6 +6622,40 @@
(test (let () (define-macro (hi a) `(+ ,a 1) #f) (hi 2)) #f)
(test (let () (define-macro (mac1 a) `',a) (equal? (mac1 (+ 1 2)) '(+ 1 2))) #t)
+
+ (define-macro* (_mac1_) `(+ 1 2))
+ (test (_mac1_) 3)
+ (define-macro* (_mac2_ a) `(+ ,a 2))
+ (test (_mac2_ 1) 3)
+ (test (_mac2_ :a 2) 4)
+ (define-macro* (_mac3_ (a 1)) `(+ ,a 2))
+ (test (_mac3_) 3)
+ (test (_mac3_ 3) 5)
+ (test (_mac3_ :a 0) 2)
+ (define-macro* (_mac4_ (a 1) (b 2)) `(+ ,a ,b))
+ (test (_mac4_) 3)
+ (test (_mac4_ :b 3) 4)
+ (test (_mac4_ 2 :b 3) 5)
+ (test (_mac4_ :b 10 :a 12) 22)
+ (test (_mac4_ :a 4) 6)
+
+
+ (defmacro* _mac11_ () `(+ 1 2))
+ (test (_mac11_) 3)
+ (defmacro* _mac12_ (a) `(+ ,a 2))
+ (test (_mac12_ 1) 3)
+ (test (_mac12_ :a 2) 4)
+ (defmacro* _mac13_ ((a 1)) `(+ ,a 2))
+ (test (_mac13_) 3)
+ (test (_mac13_ 3) 5)
+ (test (_mac13_ :a 0) 2)
+ (defmacro* _mac14_ ((a 1) (b 2)) `(+ ,a ,b))
+ (test (_mac14_) 3)
+ (test (_mac14_ :b 3) 4)
+ (test (_mac14_ 2 :b 3) 5)
+ (test (_mac14_ :b 10 :a 12) 22)
+ (test (_mac14_ :a 4) 6)
+
(begin
(define-macro (hi a) `(+ ,a 1))
(test (hi 2) 3)
@@ -6813,13 +6672,6 @@
(test (equal? (vector (hi 1)) '#(2)) #t)
(test (symbol? (vector-ref '#(hi) 0)) #t))
- (test (promise? (make-promise (+ 1 2))) #t)
- (for-each
- (lambda (arg)
- (test (promise? arg) #f))
- (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi"))
- (test (let ((p (make-promise (+ 1 2)))) (force p) (promise? p)) #f) ; force! might be a more accurate name
-
(test (let () (define-constant __c1__ 32) __c1__) 32)
(test (let () __c1__) 'error)
(test (let ((__c1__ 3)) __c1__) 'error)
@@ -7261,6 +7113,15 @@
))
+ (for-each
+ (lambda (arg)
+ (test (port-filename arg) 'error))
+ (list "hi" -1 #\a 1 0 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t '() (list 1 2 3) '(1 . 2)))
+
+ (for-each
+ (lambda (arg)
+ (test (port-line-number arg) 'error))
+ (list "hi" -1 #\a 1 0 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t '() (list 1 2 3) '(1 . 2)))
;; generic length/copy/fill!
(test (length (list 1 2)) 2)
@@ -7278,6 +7139,29 @@
(test (copy (list 1 (list 2 3))) (list 1 (list 2 3)))
(test (copy (cons 1 2)) (cons 1 2))
(test (copy '(1 2 . 3)) '(1 2 . 3))
+
+ (if (not (provided? 'gmp))
+ (let ((r1 (make-random-state 1234)))
+ (random 1.0 r1)
+ (let ((r2 (copy r1)))
+ (let ((v1 (random 1.0 r1))
+ (v2 (random 1.0 r2)))
+ (test (= v1 v2) #t)
+ (let ((v3 (random 1.0 r1)))
+ (random 1.0 r1)
+ (random 1.0 r1)
+ (let ((v4 (random 1.0 r2)))
+ (test (= v3 v4) #t)))))))
+
+ (if (provided? 'gmp)
+ (let ((i (copy (bignum "1")))
+ (r (copy (bignum "3/4")))
+ (f (copy (bignum "1.5")))
+ (c (copy (bignum "1.0+1.0i"))))
+ (test (= i (bignum "1")) #t)
+ (test (= r (bignum "3/4")) #t)
+ (test (= f (bignum "1.5")) #t)
+ (test (= c (bignum "1.0+1.0i")) #t)))
(let ((str (string #\1 #\2 #\3)))
(fill! str #\x)
@@ -7317,6 +7201,12 @@
(v 1))
0)
+ (let ()
+ (define (hiho a) __func__)
+ (test (or (equal? (hiho 1) 'hiho)
+ (equal? (car (hiho 1)) 'hiho))
+ #t))
+
(num-test (log 8 2) 3)
(num-test (log -1 -1) 1.0)
(num-test (log 1 1) 'error)
@@ -14405,7 +14295,7 @@
#t)
(let ((xs (list 2 3 4 1/2 1/3 1/4 2.5 1+i 2.5+1.5i 2.5-.5i))
- (ys (list 2 3 4 -2 -3 -4 1/2 1/3 1/4 -1/2 -1/3 -1/4 2.5 -3.5 1+i -1+2i 2.5+1.5i 2.5-.5i)))
+ (ys (list 2 3 4 -2 -3 1/2 1/3 1/4 -1/2 -1/3 -1/4 2.5 -3.5 1+i -1+2i 2.5+1.5i 2.5-.5i)))
(for-each
(lambda (x)
(for-each
@@ -33172,7 +33062,7 @@
(let ((y (random range)))
(if (not (chker y))
(format #t "(random ~A) -> ~A?~%" range y))
- (let ((iy (inexact->exact (floor (* 100 (/ y range))))))
+ (let ((iy (min 99 (inexact->exact (floor (* 100 (/ y range)))))))
(vector-set! hits iy (+ 1 (vector-ref hits iy))))))
(let ((sum 0.0)
(p (/ n 100.0)))
@@ -35618,7 +35508,7 @@
(test (lognot -6) #b101)
(test (lognot 12341234) -12341235)
(test (lognot #b-101) 4)
- (test (lognot (1+ (lognot 1000))) 999)
+ (test (lognot (+ 1 (lognot 1000))) 999)
;; from CL spec
(test (let ((str ""))
@@ -36840,6 +36730,7 @@
(test (if 1 . 2) 'error)
(test (if 1 2 . 3) 'error)
(test (if . 1) 'error)
+ (test (if _no_var_ 1) 'error)
(test (for-each (lambda (x) (display "for-each should not have called this"))) 'error)
(test (for-each (lambda () 1) '()) 'error)
@@ -36949,6 +36840,7 @@
(test (set! 3.14 1) 'error)
(test (set! #\a 12) 'error)
(test (set! (1 2) #t) 'error)
+ (test (set! _not_a_var_ 1) 'error)
(test (let ((a (lambda (x) (set! a 3) x))) (list (a 1) a)) 'error)
(test (let ((a (let ((b 1)) (set! a 3) b))) a) 'error)
@@ -37146,15 +37038,6 @@
(test (delay 1 2) 'error)
))
- (if with-delay-named-make-promise
- (begin
- (test (force) 'error)
- (test (make-promise) 'error)
- (test (make-promise 1 2) 'error)
-
- ))
-
-
(if with-hash-tables
(begin
@@ -38034,8 +37917,6 @@
(let* ((x (quote (1 2 3))) (y (apply list x))) (not (eq? x y))) got #f but expected #t
-(let () (define q (let ((count 5)) (define (get-count) count) (define p (make-promise (if (<= count 0) count (begin (set! count (- count 1)) (force p) (set! count (+ count 2)) count)))) (list get-count p))) (let* ((get-count (car q)) (p (cadr q)) (a (get-count)) (b (force p)) (c (get-count))) (list a b c))) got (5 10 10) but expected (5 0 10)
-
format #t 1 output-port: 2! (this is testing output ports)
op error test result expected
@@ -40914,7 +40795,7 @@ expt error > 1e-6 around 2^-46.506993328423
cadadr caddar cdaaar cdaadr cdadar cddaar cdaddr cddddr cddadr cdddar length assq assv
assoc memq memv member append list list-ref
;list-set! vector-set!
- list-tail vector? sort!
+ list-tail vector?
vector->list list->vector vector-fill! vector vector-length vector-ref make-vector
;call/cc call-with-current-continuation call-with-exit load
continuation? eval eval-string apply
@@ -40996,6 +40877,7 @@ expt error > 1e-6 around 2^-46.506993328423
(lambda (c)
(catch #t
(lambda ()
+ ;(format #t "(~A ~A ~A ~A)~%" f a b c)
(f a b c))
(lambda args #f)))
argls))
@@ -41006,7 +40888,7 @@ expt error > 1e-6 around 2^-46.506993328423
;(display "four args") (newline)
(for-each
(lambda (f)
- ;(display f) (display " ")
+ (display f) (display " ")
(for-each
(lambda (a)
(for-each
@@ -41261,4 +41143,4 @@ expt error > 1e-6 around 2^-46.506993328423
;;; same: (call/cc (lambda (a b) (a 1))) -> same
;;; same: (call/cc (lambda arg ((car arg) 1))) -> 1
;;; (call/cc (lambda () 1)) -> error?
-;;; this should work I think: (begin (define (hi) (call/cc func)) (define (func a) (a 1)))
+
diff --git a/snd-0.h b/snd-0.h
index e89ed3e..dc4d098 100644
--- a/snd-0.h
+++ b/snd-0.h
@@ -33,6 +33,12 @@
#define CANNOT_SAVE XEN_ERROR_TYPE("cannot-save")
#define CANT_UPDATE_FILE XEN_ERROR_TYPE("cant-update-file")
+#if (SIZEOF_INT == SIZEOF_VOID_P)
+ typedef int pointer_or_int_t;
+#else
+ typedef long long int pointer_or_int_t;
+#endif
+
#ifndef STRFTIME_FORMAT
#define STRFTIME_FORMAT "%a %d-%b-%Y %H:%M %Z"
#endif
@@ -48,8 +54,8 @@
#define XOR(a, b) ((a) ^ (b))
/* can't get used to this operator -- in the good old days, ^ meant exponentiation */
-#define UNPACK_SOUND(a) (a >> 16)
-#define UNPACK_CHANNEL(a) (a & 0xff)
+#define UNPACK_SOUND(a) ((int)a >> 16)
+#define UNPACK_CHANNEL(a) ((int)a & 0xff)
#define PACK_SOUND_AND_CHANNEL(a, b) ((a << 16) | b)
#define POINT_BUFFER_SIZE 8192
@@ -167,12 +173,6 @@ enum {BLACK_AND_WHITE_COLORMAP, GRAY_COLORMAP, HOT_COLORMAP, COOL_COLORMAP, BONE
(Err != IO_NEED_WRITE_CONFIRMATION) && \
(Err != IO_NO_CHANGES))
-#if MUS_DEBUGGING
- #define ASSERT_IO_ERROR(Err, Location) if (Err >= IO_ERROR_NUM) {fprintf(stderr, "%s: bogus io error: %d\n", Location, Err); abort();}
-#else
- #define ASSERT_IO_ERROR(Err, Location)
-#endif
-
typedef enum {SS_ANY_WATCHER, SS_FILE_OPEN_WATCHER, SS_MUS_ERROR_WATCHER, SS_SND_ERROR_WATCHER} ss_watcher_t;
typedef enum {SS_FILE_OPENED, SS_FILE_CLOSED, SS_MUS_ERROR, SS_SND_ERROR} ss_watcher_reason_t;
typedef enum {SP_ANY_WATCHER, SP_READ_ONLY_WATCHER, SP_REVERT_WATCHER} sp_watcher_t;
@@ -234,19 +234,6 @@ typedef enum {FILE_READ_WRITE, FILE_READ_ONLY} read_only_t;
#define PROC_TRUE "#t"
#define PROC_QUOTE "'"
#endif
-#if HAVE_CL
- #define TO_PROC_NAME(Str) Str
- #define TO_VAR_NAME(Str) Str
- #define PROC_OPEN " "
- #define PROC_SEP " "
- #define LIST_OPEN "(list "
- #define LIST_CLOSE ")"
- #define BPAREN "("
- #define EPAREN ")"
- #define PROC_FALSE "nil"
- #define PROC_TRUE "t"
- #define PROC_QUOTE "'"
-#endif
#define MAX_MAIN_MENUS 64
#define NO_REGIONS -2
@@ -265,6 +252,9 @@ typedef enum {NO_X_AXIS, WITH_X_AXIS} with_x_axis_t;
typedef enum {NO_GRID, WITH_GRID} with_grid_t;
typedef enum {WITH_LINEAR_AXES, WITH_LOG_X_AXIS, WITH_LOG_Y_AXIS} log_axis_t;
+#define GET_NEW_SYNC -1
+#define GET_ORIGINAL_SYNC -2
+
#define OVER_SELECTION true
#define OVER_SOUND false
diff --git a/snd-1.h b/snd-1.h
index ccfedbe..0524869 100644
--- a/snd-1.h
+++ b/snd-1.h
@@ -1005,6 +1005,14 @@ int max_transform_type(void);
void set_transform_position(int i, int j);
bool transform_p(int type);
+XEN new_xen_transform(int n);
+bool xen_transform_p(XEN obj);
+int xen_transform_to_int(XEN n);
+#define XEN_TRANSFORM_P(arg) xen_transform_p(arg)
+#define C_INT_TO_XEN_TRANSFORM(Val) new_xen_transform(Val)
+#define XEN_TRANSFORM_TO_C_INT(n) xen_transform_to_int(n)
+
+
/* -------- snd-xen.c -------- */
@@ -1093,6 +1101,8 @@ void ripple_selection(ed_list *new_ed, mus_long_t beg, mus_long_t num);
sync_info *selection_sync(void);
void start_selection_creation(chan_info *cp, mus_long_t samp);
void update_possible_selection_in_progress(mus_long_t samp);
+void restart_selection_creation(chan_info *cp, bool right);
+
int make_region_from_selection(void);
void display_selection(chan_info *cp);
bool delete_selection(cut_selection_regraph_t regraph);
@@ -1106,6 +1116,13 @@ void add_selection_or_region(int reg, chan_info *cp);
void insert_selection_from_menu(void);
void insert_selection_or_region(int reg, chan_info *cp);
+bool xen_selection_p(XEN obj);
+#define XEN_SELECTION_P(arg) xen_selection_p(arg)
+XEN g_selection_chans(void);
+XEN g_selection_srate(void);
+XEN g_selection_maxamp(XEN snd, XEN chn);
+XEN g_selection_frames(XEN snd, XEN chn);
+
void g_init_selection(void);
@@ -1151,6 +1168,7 @@ XEN g_region_srate(XEN n);
XEN g_region_chans(XEN n);
XEN g_region_frames(XEN n, XEN chan);
XEN g_region_maxamp(XEN n);
+XEN g_play_region(XEN n, play_process_t back, XEN stop_proc);
@@ -1217,7 +1235,7 @@ void play_sound(snd_info *sp, mus_long_t start, mus_long_t end);
void play_channels(chan_info **cps, int chans, mus_long_t *starts, mus_long_t *ur_ends,
play_process_t background, XEN edpos, bool selection, const char *caller, int arg_pos);
void play_selection(play_process_t background);
-bool add_mix_to_play_list(mix_state *ms, chan_info *cp, mus_long_t beg_within_mix);
+bool add_mix_to_play_list(mix_state *ms, chan_info *cp, mus_long_t beg_within_mix, bool start_playing);
void toggle_dac_pausing(void); /* snd-dac.c */
bool play_in_progress(void);
void initialize_apply(snd_info *sp, int chans, mus_long_t beg, mus_long_t frames);
@@ -1335,6 +1353,7 @@ void set_show_marks(bool val);
void set_show_y_zero(bool val);
XEN g_frames(XEN snd_n, XEN chn_n, XEN edpos);
+void check_cursor_shape(chan_info *cp, int x, int y);
@@ -1576,6 +1595,8 @@ void reset_mix_ctr(void);
void preload_mixes(mix_state **mixes, int low_id, ed_list *ed);
void free_channel_mixes(chan_info *cp);
void delete_any_remaining_mix_temp_files_at_exit(chan_info *cp);
+int mix_sync_from_id(int id);
+int mix_set_sync_from_id(int id, int new_sync);
XEN new_xen_mix(int n);
XEN g_make_mix_sampler(XEN mix_id, XEN ubeg);
@@ -1596,6 +1617,7 @@ mus_float_t mix_amp_from_id(int id);
mus_float_t mix_speed_from_id(int id);
env *mix_amp_env_from_id(int id);
chan_info *mix_chan_info_from_id(int id);
+int copy_mix(int id);
mix_state *prepare_mix_state_for_channel(chan_info *cp, int mix_loc, mus_long_t beg, mus_long_t len);
void add_ed_mix(ed_list *ed, mix_state *ms);
@@ -1609,13 +1631,26 @@ bool mix_set_amp_edit(int id, mus_float_t amp);
bool mix_set_speed_edit(int id, mus_float_t spd);
void after_mix_edit(int id);
+void syncd_mix_set_color(int id, color_t col);
+void syncd_mix_unset_color(int id);
+void syncd_mix_set_amp(int id, mus_float_t amp);
+void syncd_mix_set_speed(int id, mus_float_t amp);
+void syncd_mix_set_amp_env(int id, env *e);
+void syncd_mix_set_position(int mix_id, mus_long_t pos);
+void syncd_mix_play(int id);
+void mix_unset_color_from_id(int id);
+color_t mix_set_color_from_id(int id, color_t new_color);
+void start_dragging_syncd_mixes(int mix_id);
+void keep_dragging_syncd_mixes(int mix_id);
+void stop_dragging_syncd_mixes(int mix_id);
+void after_syncd_mix_edit(int id);
+void syncd_mix_change_position(int mix_id, mus_long_t change);
+
int mix_complete_file(snd_info *sp, mus_long_t beg, const char *fullname, bool with_tag, file_delete_t auto_delete, mix_sync_t all_chans, int *out_chans);
int mix_complete_file_at_cursor(snd_info *sp, const char *str);
int mix_file(mus_long_t beg, mus_long_t num, int chans, chan_info **cps, const char *mixinfile, file_delete_t temp, const char *origin, bool with_tag, int start_chan);
-bool mix_sampler_at_end_p(void *mf);
bool mix_sampler_p(XEN obj);
-
XEN g_copy_mix_sampler(XEN obj);
XEN g_mix_sampler_home(XEN obj);
XEN g_mix_sampler_at_end_p(XEN obj);
@@ -1631,6 +1666,7 @@ int prepare_mix_dialog_waveform(int mix_id, axis_info *ap, bool *two_sided);
void display_channel_mixes(chan_info *cp);
bool play_mix_from_id(int mix_id);
+XEN g_play_mix(XEN num, mus_long_t beg);
void drag_and_drop_mix_at_x_y(int data, const char *filename, int x, int y);
@@ -1714,6 +1750,7 @@ mus_long_t to_c_edit_samples(chan_info *cp, XEN edpos, const char *caller, int a
mus_long_t beg_to_sample(XEN beg, const char *caller);
mus_long_t dur_to_samples(XEN dur, mus_long_t beg, chan_info *cp, int edpos, int argn, const char *caller);
char *scale_and_src(char **files, int len, int max_chans, mus_float_t amp, mus_float_t speed, env *amp_env, bool *err);
+XEN g_scale_selection_by(XEN scalers);
/* -------- snd-draw.c -------- */
diff --git a/snd-axis.c b/snd-axis.c
index 9780b30..7733fc5 100644
--- a/snd-axis.c
+++ b/snd-axis.c
@@ -197,9 +197,12 @@ static char *measure_number(int bpm, double val)
static char *clock_number(double loc, int tens)
{
/* DD:HH:MM:SS.ddd */
+ #define CLOCK_BUFFER_SIZE 64
+
int day, hour, minute, second;
double frac_second;
char *buf;
+
second = (int)loc;
frac_second = loc - second;
minute = (int)floor(second / 60);
@@ -208,25 +211,28 @@ static char *clock_number(double loc, int tens)
second %= 60;
minute %= 60;
hour %= 24;
- buf = (char *)calloc(64, sizeof(char));
+
+ buf = (char *)calloc(CLOCK_BUFFER_SIZE, sizeof(char));
+
if (day > 0)
- sprintf(buf, "%02d:%02d:%02d:%02d.%0*d", day, hour, minute, second, tens, (int)(frac_second * pow(10.0, tens)));
+ snprintf(buf, CLOCK_BUFFER_SIZE, "%02d:%02d:%02d:%02d.%0*d", day, hour, minute, second, tens, (int)(frac_second * pow(10.0, tens)));
else
{
if (hour > 0)
- sprintf(buf, "%02d:%02d:%02d.%0*d", hour, minute, second, tens, (int)(frac_second * pow(10.0, tens)));
+ snprintf(buf, CLOCK_BUFFER_SIZE, "%02d:%02d:%02d.%0*d", hour, minute, second, tens, (int)(frac_second * pow(10.0, tens)));
else
{
if (minute > 0)
- sprintf(buf, "%02d:%02d.%0*d", minute, second, tens, (int)(frac_second * pow(10.0, tens)));
+ snprintf(buf, CLOCK_BUFFER_SIZE, "%02d:%02d.%0*d", minute, second, tens, (int)(frac_second * pow(10.0, tens)));
else
{
if (second > 0)
- sprintf(buf, "%d.%0*d", second, tens, (int)(frac_second * pow(10.0, tens)));
- else sprintf(buf, "0.%0*d", tens, (int)(frac_second * pow(10.0, tens)));
+ snprintf(buf, CLOCK_BUFFER_SIZE, "%d.%0*d", second, tens, (int)(frac_second * pow(10.0, tens)));
+ else snprintf(buf, CLOCK_BUFFER_SIZE, "0.%0*d", tens, (int)(frac_second * pow(10.0, tens)));
}
}
}
+
return(buf);
}
@@ -1779,22 +1785,198 @@ static XEN g_y_axis_label(XEN snd, XEN chn, XEN ax)
static XEN g_set_y_axis_label(XEN label, XEN snd, XEN chn, XEN ax)
{
axis_info *ap;
+
ASSERT_CHANNEL(S_setB S_y_axis_label, snd, chn, 2);
XEN_ASSERT_TYPE(XEN_STRING_P(label) || XEN_FALSE_P(label), label, XEN_ARG_1, S_setB S_y_axis_label, "a string");
+
XEN_ASSERT_TYPE(XEN_INTEGER_IF_BOUND_P(ax), ax, XEN_ARG_4, S_setB S_y_axis_label, S_time_graph ", " S_transform_graph ", or " S_lisp_graph);
ap = TO_C_AXIS_INFO(snd, chn, ax, S_y_axis_label);
if (ap->ylabel) free(ap->ylabel);
+
if (XEN_FALSE_P(label))
ap->ylabel = NULL;
else ap->ylabel = mus_strdup(XEN_TO_C_STRING(label));
update_graph(ap->cp);
+
return(label);
}
WITH_FOUR_SETTER_ARGS(g_set_y_axis_label_reversed, g_set_y_axis_label)
+
+
+
+static XEN g_x_bounds(XEN snd, XEN chn, XEN ax)
+{
+ #define H_x_bounds "(" S_x_bounds " :optional snd chn axis): a list (x0 x1) giving the current x axis bounds of snd channel chn"
+ axis_info *ap;
+
+ ASSERT_CHANNEL(S_x_bounds, snd, chn, 1);
+ XEN_ASSERT_TYPE(XEN_INTEGER_IF_BOUND_P(ax), ax, XEN_ARG_4, S_x_bounds, S_time_graph ", " S_transform_graph ", or " S_lisp_graph);
+ ap = TO_C_AXIS_INFO(snd, chn, ax, S_x_bounds);
+
+ return(XEN_LIST_2(C_TO_XEN_DOUBLE(ap->x0),
+ C_TO_XEN_DOUBLE(ap->x1)));
+ /* wavogram settings depend on context -- no easy way to map back to user's notion of bounds */
+}
+
+
+static XEN g_set_x_bounds(XEN bounds, XEN snd, XEN chn, XEN ax)
+{
+ chan_info *cp;
+ axis_info *ap;
+ mus_float_t x0 = 0.0, x1 = 0.0;
+
+ ASSERT_CHANNEL(S_setB S_x_bounds, snd, chn, 2);
+ XEN_ASSERT_TYPE(XEN_NUMBER_P(bounds) || (XEN_LIST_P(bounds) && (XEN_LIST_LENGTH(bounds) == 2)), bounds, XEN_ARG_1, S_setB S_x_bounds, "a list: (x0 x1) or a number");
+ XEN_ASSERT_TYPE(XEN_INTEGER_IF_BOUND_P(ax), ax, XEN_ARG_4, S_setB S_x_bounds, S_time_graph ", " S_transform_graph ", or " S_lisp_graph);
+ ap = TO_C_AXIS_INFO(snd, chn, ax, S_setB S_x_bounds);
+
+ cp = get_cp(snd, chn, S_setB S_x_bounds);
+ if (!cp) return(XEN_FALSE);
+
+ if (XEN_NUMBER_P(bounds))
+ {
+ x0 = 0.0;
+ x1 = XEN_TO_C_DOUBLE(bounds);
+ }
+ else
+ {
+ x0 = XEN_TO_C_DOUBLE(XEN_CAR(bounds));
+ x1 = XEN_TO_C_DOUBLE(XEN_CADR(bounds));
+ if (x1 < x0)
+ XEN_OUT_OF_RANGE_ERROR(S_setB S_x_bounds, 1, bounds, "~A: x1 < x0?");
+ }
+
+ if (ap == cp->axis)
+ {
+ if (cp->time_graph_type == GRAPH_ONCE)
+ {
+ snd_info *sp;
+ set_x_axis_x0x1(cp, x0, x1);
+ sp = cp->sound;
+ if (sp->nchans > 1)
+ {
+ if ((XEN_NOT_BOUND_P(chn)) && (cp->sound->channel_style == CHANNELS_COMBINED))
+ {
+ int i;
+ for (i = 0; i < sp->nchans; i++)
+ if (i != cp->chan)
+ set_x_axis_x0x1(sp->chans[i], x0, x1);
+ /* y-bounds are already tied together in the channels-combined case */
+ }
+ }
+ }
+ }
+ else
+ {
+ ap->x0 = x0;
+ ap->x1 = x1;
+ }
+ return(bounds);
+}
+
+WITH_FOUR_SETTER_ARGS(g_set_x_bounds_reversed, g_set_x_bounds)
+
+
+
+static XEN g_y_bounds(XEN snd, XEN chn, XEN ax)
+{
+ #define H_y_bounds "(" S_y_bounds " :optional snd chn axis): a list (y0 y1) giving the current y axis bounds of snd channel chn"
+ axis_info *ap;
+
+ ASSERT_CHANNEL(S_y_bounds, snd, chn, 1);
+ XEN_ASSERT_TYPE(XEN_INTEGER_IF_BOUND_P(ax), ax, XEN_ARG_4, S_y_bounds, S_time_graph ", " S_transform_graph ", or " S_lisp_graph);
+ ap = TO_C_AXIS_INFO(snd, chn, ax, S_x_bounds);
+
+ return(XEN_LIST_2(C_TO_XEN_DOUBLE(ap->y0),
+ C_TO_XEN_DOUBLE(ap->y1)));
+}
+
+
+static XEN g_set_y_bounds(XEN bounds, XEN snd, XEN chn, XEN ax)
+{
+ chan_info *cp;
+ axis_info *ap;
+ mus_float_t low = 0.0, hi = 0.0;
+ int len = 0;
+ XEN y0 = XEN_UNDEFINED, y1 = XEN_UNDEFINED;
+
+ ASSERT_CHANNEL(S_setB S_y_bounds, snd, chn, 2);
+ XEN_ASSERT_TYPE(XEN_NUMBER_P(bounds) || XEN_LIST_P_WITH_LENGTH(bounds, len), bounds, XEN_ARG_1, S_setB S_y_bounds, "a list or a number");
+ XEN_ASSERT_TYPE(XEN_INTEGER_IF_BOUND_P(ax), ax, XEN_ARG_4, S_setB S_y_bounds, S_time_graph ", " S_transform_graph ", or " S_lisp_graph);
+ ap = TO_C_AXIS_INFO(snd, chn, ax, S_setB S_y_bounds);
+
+ cp = get_cp(snd, chn, S_setB S_y_bounds);
+ if (!cp) return(XEN_FALSE);
+
+ if (XEN_NUMBER_P(bounds))
+ {
+ hi = XEN_TO_C_DOUBLE(bounds);
+ low = -hi;
+ }
+ else
+ {
+ if (len > 0)
+ {
+ y0 = XEN_CAR(bounds);
+ if (len > 1)
+ y1 = XEN_CADR(bounds);
+ }
+ if (XEN_NUMBER_P(y0))
+ {
+ low = XEN_TO_C_DOUBLE(y0);
+ if (XEN_NUMBER_P(y1))
+ hi = XEN_TO_C_DOUBLE(y1);
+ else
+ {
+ if (low < 0.0)
+ hi = -low;
+ else
+ {
+ hi = low;
+ low = -low;
+ }
+ }
+ }
+ else
+ {
+ if (ap == cp->axis)
+ {
+ /* if no bounds given, use maxamp */
+ hi = channel_maxamp(cp, AT_CURRENT_EDIT_POSITION);
+ if (hi < 0.0) hi = -hi;
+ if (hi == 0.0) hi = .001;
+ low = -hi;
+ }
+ }
+ }
+
+ if (hi > low)
+ {
+ ap->ymin = low;
+ ap->ymax = hi;
+ ap->y_ambit = (ap->ymax - ap->ymin);
+ ap->y0 = low;
+ ap->y1 = hi;
+ ap->zy = 1.0;
+ ap->sy = 0.0;
+ if (ap == cp->axis)
+ {
+ resize_sy_and_zy(cp);
+ apply_y_axis_change(ap, cp);
+ }
+ }
+
+ return(bounds);
+}
+
+WITH_FOUR_SETTER_ARGS(g_set_y_bounds_reversed, g_set_y_bounds)
+
+
#ifdef XEN_ARGIFY_1
+
XEN_ARGIFY_4(g_x_to_position_w, g_x_to_position)
XEN_ARGIFY_4(g_y_to_position_w, g_y_to_position)
XEN_ARGIFY_4(g_position_to_x_w, g_position_to_x)
@@ -1807,8 +1989,13 @@ XEN_ARGIFY_3(g_x_axis_label_w, g_x_axis_label)
XEN_ARGIFY_4(g_set_x_axis_label_w, g_set_x_axis_label)
XEN_ARGIFY_3(g_y_axis_label_w, g_y_axis_label)
XEN_ARGIFY_4(g_set_y_axis_label_w, g_set_y_axis_label)
+XEN_ARGIFY_3(g_x_bounds_w, g_x_bounds)
+XEN_ARGIFY_4(g_set_x_bounds_w, g_set_x_bounds)
+XEN_ARGIFY_3(g_y_bounds_w, g_y_bounds)
+XEN_ARGIFY_4(g_set_y_bounds_w, g_set_y_bounds)
#else
+
#define g_x_to_position_w g_x_to_position
#define g_y_to_position_w g_y_to_position
#define g_position_to_x_w g_position_to_x
@@ -1819,8 +2006,13 @@ XEN_ARGIFY_4(g_set_y_axis_label_w, g_set_y_axis_label)
#define g_set_x_axis_label_w g_set_x_axis_label
#define g_y_axis_label_w g_y_axis_label
#define g_set_y_axis_label_w g_set_y_axis_label
+#define g_x_bounds_w g_x_bounds
+#define g_set_x_bounds_w g_set_x_bounds
+#define g_y_bounds_w g_y_bounds
+#define g_set_y_bounds_w g_set_y_bounds
#endif
+
void g_init_axis(void)
{
@@ -1837,10 +2029,17 @@ void g_init_axis(void)
XEN_DEFINE_PROCEDURE_WITH_REVERSED_SETTER(S_y_axis_label, g_y_axis_label_w, H_y_axis_label,
S_setB S_y_axis_label, g_set_y_axis_label_w, g_set_y_axis_label_reversed, 0, 3, 1, 3);
+ XEN_DEFINE_PROCEDURE_WITH_REVERSED_SETTER(S_x_bounds, g_x_bounds_w, H_x_bounds,
+ S_setB S_x_bounds, g_set_x_bounds_w, g_set_x_bounds_reversed, 0, 3, 1, 3);
+
+ XEN_DEFINE_PROCEDURE_WITH_REVERSED_SETTER(S_y_bounds, g_y_bounds_w, H_y_bounds,
+ S_setB S_y_bounds, g_set_y_bounds_w, g_set_y_bounds_reversed, 0, 3, 1, 3);
+
XEN_DEFINE_CONSTANT(S_time_graph, TIME_AXIS_INFO, "time domain graph axis info");
XEN_DEFINE_CONSTANT(S_transform_graph, TRANSFORM_AXIS_INFO, "frequency domain graph axis info");
XEN_DEFINE_CONSTANT(S_lisp_graph, LISP_AXIS_INFO, "lisp graph axis info");
}
+
#endif
/* end no gui (covers entire xen section) */
diff --git a/snd-chn.c b/snd-chn.c
index 627f2e4..a764bb9 100644
--- a/snd-chn.c
+++ b/snd-chn.c
@@ -59,9 +59,12 @@ chan_info *get_cp(XEN snd, XEN x_chn_n, const char *caller)
}
-typedef enum {CLICK_NOGRAPH, CLICK_WAVE, CLICK_FFT_AXIS, CLICK_LISP, CLICK_FFT_MAIN} click_loc_t; /* for marks, regions, mouse click detection */
+typedef enum {CLICK_NOGRAPH, CLICK_WAVE, CLICK_FFT_AXIS, CLICK_LISP, CLICK_MIX, CLICK_MARK,
+ CLICK_FFT_MAIN, CLICK_SELECTION_LEFT, CLICK_SELECTION_RIGHT} click_loc_t;
+/* for marks, regions, mouse click detection */
/*
- * static char *click_detection_names[5] = {"no graph", "click wave", "click fft axis", "click lisp", "click fft graph"};
+ * static char *click_detection_names[9] = {"no graph", "click wave", "click fft axis", "click lisp", "click mix", "click mark",
+ * "click fft graph", "click selection left", "click selection right"};
*/
@@ -541,24 +544,6 @@ void calculate_fft(chan_info *cp)
static bool updating = false;
-
-#if HAVE_GUILE_DYNAMIC_WIND
-static void before_dpy(void *ignore) {}
-
-static void after_dpy(void *context) {updating = false;}
-
-static XEN dpy_body(void *context)
-{
- chan_info *cp = (chan_info *)context;
- if ((cp->graph_transform_p) &&
- (!(chan_fft_in_progress(cp))))
- calculate_fft_1(cp, DONT_FORCE_REDISPLAY);
- display_channel_data(cp);
- return(XEN_FALSE);
-}
-#endif
-
-
static void update_graph_1(chan_info *cp, bool warn)
{
/* don't put display stuff here! This is needed so that the fft display does not get caught in a loop */
@@ -604,19 +589,11 @@ static void update_graph_1(chan_info *cp, bool warn)
return;
}
-#if HAVE_GUILE_DYNAMIC_WIND
- scm_internal_dynamic_wind((scm_t_guard)before_dpy,
- (scm_t_inner)dpy_body,
- (scm_t_guard)after_dpy,
- (void *)cp,
- (void *)cp);
-#else
if ((cp->graph_transform_p) &&
(!(chan_fft_in_progress(cp))))
calculate_fft_1(cp, DONT_FORCE_REDISPLAY);
display_channel_data(cp);
updating = false;
-#endif
}
@@ -2692,7 +2669,7 @@ void reset_spectro(void)
set_spectro_z_scale((with_gl(ss)) ? DEFAULT_SPECTRO_Z_SCALE : 0.1);
}
-#if HAVE_GLU
+#if HAVE_GL
#include <GL/glu.h>
#endif
@@ -2760,47 +2737,22 @@ static void make_axes(chan_info *cp, axis_info *ap, x_axis_style_t x_style, bool
#define DONT_CLEAR_GRAPH false
#define CLEAR_GRAPH true
-#if HAVE_GL && USE_GTK
- #define GL_MAKE_CURRENT(Cp) gdk_gl_drawable_make_current(gtk_widget_get_gl_drawable(channel_graph(Cp)), \
- gtk_widget_get_gl_context(channel_graph(Cp)))
- #define GL_SWAP_BUFFERS(Cp) if (gdk_gl_drawable_is_double_buffered(gtk_widget_get_gl_drawable(channel_graph(Cp)))) \
- gdk_gl_drawable_swap_buffers(gtk_widget_get_gl_drawable(channel_graph(Cp))); \
- else glFlush()
-#endif
-
-
#if HAVE_GL
-
static void set_up_for_gl(chan_info *cp)
{
-#if USE_MOTIF
glXMakeCurrent(MAIN_DISPLAY(ss), XtWindow(channel_graph(cp)), ss->sgx->cx);
-#else
- GL_MAKE_CURRENT(cp);
- gdk_gl_drawable_wait_gdk(gtk_widget_get_gl_drawable(channel_graph(cp)));
-#endif
}
static void gl_display(chan_info *cp)
{
-#if USE_MOTIF
if (ss->gl_has_double_buffer)
glXSwapBuffers(MAIN_DISPLAY(ss), XtWindow(channel_graph(cp)));
else glFlush();
-#else
- GL_SWAP_BUFFERS(cp);
- gdk_gl_drawable_wait_gl(gtk_widget_get_gl_drawable(channel_graph(cp)));
-#endif
}
-#if USE_CAIRO
- #define GL_COLOR_SET(R, G, B) glColor3d(R, G, B)
-#else
- #define GL_COLOR_SET(R, G, B) glColor3us(R, G, B)
-#endif
-
+#define GL_COLOR_SET(R, G, B) glColor3us(R, G, B)
static void gl_spectrogram(sono_info *si, int gl_fft_list, mus_float_t cutoff, bool use_dB, mus_float_t min_dB,
rgb_t br, rgb_t bg, rgb_t bb)
@@ -2916,15 +2868,11 @@ static bool make_gl_spectrogram(chan_info *cp)
axis_info *fap;
snd_info *sp;
bool need_relist = false;
-
rgb_t br = RGB_MAX, bg = RGB_MAX, bb = RGB_MAX;
-#if USE_MOTIF
+
Colormap cmap;
XColor tmp_color;
Display *dpy;
-#else
- color_info *tmp_color;
-#endif
si = cp->sonogram_data;
sp = cp->sound;
@@ -2962,7 +2910,6 @@ static bool make_gl_spectrogram(chan_info *cp)
glShadeModel(GL_SMOOTH);
glClearDepth(1.0);
-#if USE_MOTIF
/* get the background color */
dpy = XtDisplay(MAIN_SHELL(ss));
cmap = DefaultColormap(dpy, DefaultScreen(dpy));
@@ -2978,15 +2925,6 @@ static bool make_gl_spectrogram(chan_info *cp)
RGB_TO_FLOAT(tmp_color.green),
RGB_TO_FLOAT(tmp_color.blue),
0.0);
-#else
- if (cp == selected_channel())
- tmp_color = ss->sgx->selected_graph_color;
- else tmp_color = ss->sgx->graph_color;
- glClearColor(RGB_TO_FLOAT(tmp_color->red),
- RGB_TO_FLOAT(tmp_color->green),
- RGB_TO_FLOAT(tmp_color->blue),
- 0.0);
-#endif
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if (need_relist)
@@ -3033,11 +2971,7 @@ static bool make_gl_spectrogram(chan_info *cp)
if (cp->graph_lisp_p)
display_channel_lisp_data(cp);
-#if USE_MOTIF
return(XtAppPending(MAIN_APP(ss)) == 0); /* return true if there are no pending events to force current buffer to be displayed */
-#else
- return(true);
-#endif
}
#endif
/* HAVE_GL */
@@ -4580,10 +4514,21 @@ void goto_graph(chan_info *cp)
#define SLOPPY_MOUSE 10
+#if USE_NO_GUI
+#define GUI_SET_CURSOR(w, cursor)
+#else
+#if USE_GTK
+#define GUI_SET_CURSOR(w, cursor) gdk_window_set_cursor(WIDGET_TO_WINDOW(w), cursor)
+#else
+#define GUI_SET_CURSOR(w, cursor) XUndefineCursor(XtDisplay(w), XtWindow(w)); XDefineCursor(XtDisplay(w), XtWindow(w), cursor)
+#endif
+#endif
+
static click_loc_t within_graph(chan_info *cp, int x, int y)
{
int x0, x1, y0, y1;
axis_info *ap;
+ #define SELECTION_DRAG_HEIGHT 30
x0 = x - SLOPPY_MOUSE;
x1 = x + SLOPPY_MOUSE;
@@ -4596,7 +4541,44 @@ static click_loc_t within_graph(chan_info *cp, int x, int y)
/* does (x, y) fall within the current axis bounds x_axis_x0|x1, y_axis_y0|y1 */
if (((x0 <= ap->x_axis_x1) && (x1 >= ap->x_axis_x0)) &&
((y0 <= ap->y_axis_y0) && (y1 >= ap->y_axis_y1)))
- return(CLICK_WAVE);
+ {
+ if ((y < (ap->y_offset + SELECTION_DRAG_HEIGHT)) &&
+ (selection_is_active_in_channel(cp)))
+ {
+ /* look for click at selection boundary */
+ mus_long_t pos;
+ double sr;
+ sr = (double)SND_SRATE(cp->sound);
+ pos = selection_beg(cp);
+ if ((pos >= ap->losamp) &&
+ (pos <= ap->hisamp))
+ {
+ mus_long_t x0_pos, x1_pos;
+ x0_pos = snd_round_mus_long_t(ungrf_x(cp->axis, x0) * sr);
+ x1_pos = snd_round_mus_long_t(ungrf_x(cp->axis, x1) * sr);
+ if ((pos > x0_pos) && (pos < x1_pos))
+ return(CLICK_SELECTION_LEFT); /* "click" is a misnomer -- we have moved to the portion where we can grab the selection and resize it */
+ }
+ pos = selection_end(cp);
+ if ((pos >= ap->losamp) &&
+ (pos <= ap->hisamp))
+ {
+ mus_long_t x0_pos, x1_pos;
+ x0_pos = snd_round_mus_long_t(ungrf_x(cp->axis, x0) * sr);
+ x1_pos = snd_round_mus_long_t(ungrf_x(cp->axis, x1) * sr);
+ if ((pos > x0_pos) && (pos < x1_pos))
+ return(CLICK_SELECTION_RIGHT);
+ }
+ }
+
+ if (hit_mix(cp, x, y) != NO_MIX_TAG)
+ return(CLICK_MIX);
+
+ if (hit_mark(cp, x, y, 0) != NULL)
+ return(CLICK_MARK);
+
+ return(CLICK_WAVE);
+ }
}
if (((cp->graph_lisp_p) ||
@@ -4646,6 +4628,42 @@ static click_loc_t within_graph(chan_info *cp, int x, int y)
}
+void check_cursor_shape(chan_info *cp, int x, int y)
+{
+ click_loc_t where;
+ chan_info *ncp;
+
+ if ((!cp) || (!cp->sound) || (cp->active == CHANNEL_INACTIVE)) return;
+
+ if (cp->sound->channel_style == CHANNELS_COMBINED)
+ ncp = which_channel(cp->sound, y);
+ else ncp = cp;
+
+ where = within_graph(ncp, x, y);
+
+ if ((where == CLICK_SELECTION_LEFT) ||
+ (where == CLICK_SELECTION_RIGHT) ||
+ (where == CLICK_MIX) ||
+ (where == CLICK_MARK) ||
+ (where == CLICK_FFT_AXIS))
+ {
+ if (cp->cgx->current_cursor != ss->sgx->bounds_cursor)
+ {
+ cp->cgx->current_cursor = ss->sgx->bounds_cursor;
+ GUI_SET_CURSOR(channel_graph(cp), ss->sgx->bounds_cursor);
+ }
+ }
+ else
+ {
+ if (cp->cgx->current_cursor != ss->sgx->graph_cursor)
+ {
+ cp->cgx->current_cursor = ss->sgx->graph_cursor;
+ GUI_SET_CURSOR(channel_graph(cp), ss->sgx->graph_cursor);
+ }
+ }
+}
+
+
static char *describe_fft_point(chan_info *cp, int x, int y)
{
mus_float_t xf, yf;
@@ -4979,6 +4997,7 @@ void graph_button_press_callback(chan_info *cp, int x, int y, int key_state, int
}
else fft_axis_start = y;
break;
+
case CLICK_LISP:
if (XEN_HOOKED(mouse_press_hook))
run_hook(mouse_press_hook,
@@ -4990,11 +5009,33 @@ void graph_button_press_callback(chan_info *cp, int x, int y, int key_state, int
C_TO_XEN_DOUBLE(ungrf_y(cp->lisp_info->axis, y))),
S_mouse_press_hook);
break;
+
+ case CLICK_MIX:
+ case CLICK_MARK:
case CLICK_WAVE:
if ((mouse_mark == NULL) &&
(play_mark == NULL))
mix_tag = hit_mix(cp, x, y);
break;
+
+ case CLICK_SELECTION_LEFT:
+ case CLICK_SELECTION_RIGHT:
+
+#if 0
+ if ((mouse_mark == NULL) &&
+ (play_mark == NULL))
+ mix_tag = hit_mix(cp, x, y);
+
+ if (mix_tag == NO_MIX_TAG)
+ {
+ dragged = true;
+ /* start adjustment of selection bounds */
+ }
+#endif
+ dragged = true;
+ restart_selection_creation(cp, click_within_graph == CLICK_SELECTION_RIGHT);
+ break;
+
case CLICK_NOGRAPH:
case CLICK_FFT_MAIN:
break;
@@ -5063,21 +5104,23 @@ void graph_button_release_callback(chan_info *cp, int x, int y, int key_state, i
C_TO_XEN_INT(key_state),
C_TO_XEN_INT(x),
C_TO_XEN_INT(y),
- C_TO_XEN_INT((int)((actax == CLICK_WAVE) ?
- TIME_AXIS_INFO : ((actax == CLICK_LISP) ?
- LISP_AXIS_INFO : TRANSFORM_AXIS_INFO)))),
+ C_TO_XEN_INT((int)(((actax == CLICK_FFT_AXIS) || (actax == CLICK_FFT_MAIN)) ?
+ TRANSFORM_AXIS_INFO : ((actax == CLICK_LISP) ?
+ LISP_AXIS_INFO : TIME_AXIS_INFO)))),
S_mouse_click_hook))))
return;
switch (actax)
{
+ case CLICK_SELECTION_LEFT:
+ case CLICK_SELECTION_RIGHT:
+ case CLICK_MIX:
+ case CLICK_MARK:
case CLICK_WAVE:
if (button == BUTTON_2) /* the middle button */
{
cp->cursor_on = true;
- cursor_moveto(cp,
- snd_round_mus_long_t(ungrf_x(cp->axis, x) *
- (double)SND_SRATE(sp)));
+ cursor_moveto(cp, snd_round_mus_long_t(ungrf_x(cp->axis, x) * (double)SND_SRATE(sp)));
paste_region(region_list_position_to_id(0), cp);
}
else
@@ -5096,9 +5139,7 @@ void graph_button_release_callback(chan_info *cp, int x, int y, int key_state, i
if (key_state & snd_MetaMask) ap->zx *= .5;
if (ap->x_ambit != 0.0)
ap->sx = (((double)(CURSOR(cp)) / (double)SND_SRATE(sp) -
- ap->zx * 0.5 * (ap->xmax - ap->xmin)) -
- ap->xmin) /
- ap->x_ambit;
+ ap->zx * 0.5 * (ap->xmax - ap->xmin)) - ap->xmin) / ap->x_ambit;
apply_x_axis_change(ap, cp);
resize_sx_and_zx(cp);
}
@@ -5106,9 +5147,7 @@ void graph_button_release_callback(chan_info *cp, int x, int y, int key_state, i
else
{
cp->cursor_on = true;
- cursor_moveto(cp,
- snd_round_mus_long_t(ungrf_x(cp->axis, x) *
- (double)SND_SRATE(sp)));
+ cursor_moveto(cp, snd_round_mus_long_t(ungrf_x(cp->axis, x) * (double)SND_SRATE(sp)));
if (mouse_mark)
{
XEN res = XEN_FALSE;
@@ -5117,9 +5156,25 @@ void graph_button_release_callback(chan_info *cp, int x, int y, int key_state, i
XEN_LIST_1(new_xen_mark(mark_to_int(mouse_mark))),
S_mark_click_hook);
if (!(XEN_TRUE_P(res)))
- report_in_minibuffer(sp, _("mark %d at sample " MUS_LD),
- mark_to_int(mouse_mark),
- mark_sample(mouse_mark));
+ {
+ mus_long_t samp;
+ int sync;
+ samp = mark_sample(mouse_mark);
+ sync = mark_sync(mouse_mark);
+ if (sync == 0)
+ report_in_minibuffer(sp, _("mark %d at sample " MUS_LD " (%3f secs): %3f"),
+ mark_to_int(mouse_mark),
+ samp,
+ (double)samp / (double)(SND_SRATE(sp)),
+ chn_sample(samp, cp, cp->edit_ctr));
+ else
+ report_in_minibuffer(sp, _("mark %d at sample " MUS_LD " (%3f secs): %3f, (sync: %d)"),
+ mark_to_int(mouse_mark),
+ samp,
+ (double)samp / (double)(SND_SRATE(sp)),
+ chn_sample(samp, cp, cp->edit_ctr),
+ sync);
+ }
}
else
{
@@ -5133,8 +5188,8 @@ void graph_button_release_callback(chan_info *cp, int x, int y, int key_state, i
S_mix_click_hook);
if (!(XEN_TRUE_P(res)))
{
+ make_mix_dialog();
reflect_mix_change(mix_tag);
- report_in_minibuffer(sp, _("mix %d "), mix_tag);
}
}
}
@@ -5184,7 +5239,11 @@ void graph_button_release_callback(chan_info *cp, int x, int y, int key_state, i
}
else
{
- if (click_within_graph == CLICK_WAVE)
+ if ((click_within_graph == CLICK_WAVE) ||
+ (click_within_graph == CLICK_SELECTION_LEFT) ||
+ (click_within_graph == CLICK_SELECTION_RIGHT) ||
+ (click_within_graph == CLICK_MIX) ||
+ (click_within_graph == CLICK_MARK))
{
cancel_selection_watch();
finish_selection_creation();
@@ -5207,9 +5266,9 @@ static oclock_t first_time = 0;
static mus_long_t mouse_cursor = 0;
static XEN mark_drag_triangle_hook;
-
void graph_button_motion_callback(chan_info *cp, int x, int y, oclock_t time)
{
+ /* this refers to mouse drag, not just any motion */
snd_info *sp;
oclock_t mouse_time;
/* this needs to be a little slow about deciding that we are dragging, as opposed to a slow click */
@@ -5232,13 +5291,10 @@ void graph_button_motion_callback(chan_info *cp, int x, int y, oclock_t time)
else cp = which_channel(sp, y);
}
- /*
- select_channel(sp, cp->chan);
- */
-
if (mouse_mark)
{
move_mark(cp, mouse_mark, x);
+ report_in_minibuffer(sp, "%.4f", ungrf_x(cp->axis, x));
dragged = true;
}
else
@@ -5284,7 +5340,14 @@ void graph_button_motion_callback(chan_info *cp, int x, int y, oclock_t time)
mus_float_t old_cutoff;
switch (click_within_graph)
{
+ case CLICK_SELECTION_LEFT:
+ case CLICK_SELECTION_RIGHT:
+ case CLICK_MIX:
+ case CLICK_MARK:
case CLICK_WAVE:
+ if (dragged)
+ report_in_minibuffer(sp, "%.4f", ungrf_x(cp->axis, x));
+
if (mix_tag != NO_MIX_TAG)
{
move_mix_tag(mix_tag, x, y);
@@ -5346,7 +5409,6 @@ void graph_button_motion_callback(chan_info *cp, int x, int y, oclock_t time)
}
else
{
- /* fprintf(stderr,"cp: %d %f\n", cp->chan, new_cutoff); */
cp->spectrum_end = new_cutoff;
if (cp->transform_graph_type != GRAPH_ONCE)
sono_update(cp);
@@ -5636,10 +5698,10 @@ static XEN channel_get(XEN snd, XEN chn_n, cp_field_t fld, const char *caller)
case CP_FFT_LOG_MAGNITUDE: return(C_TO_XEN_BOOLEAN(cp->fft_log_magnitude)); break;
case CP_FFT_WITH_PHASES: return(C_TO_XEN_BOOLEAN(cp->fft_with_phases)); break;
case CP_SPECTRO_HOP: return(C_TO_XEN_INT(cp->spectro_hop)); break;
- case CP_TRANSFORM_SIZE: return(C_TO_XEN_INT64_T(cp->transform_size)); break;
+ case CP_TRANSFORM_SIZE: return(C_TO_XEN_INT64_T(cp->transform_size)); break;
case CP_TRANSFORM_GRAPH_TYPE: return(C_TO_XEN_INT((int)(cp->transform_graph_type))); break;
case CP_FFT_WINDOW: return(C_TO_XEN_INT((int)(cp->fft_window))); break;
- case CP_TRANSFORM_TYPE: return(C_TO_XEN_INT(cp->transform_type)); break;
+ case CP_TRANSFORM_TYPE: return(C_INT_TO_XEN_TRANSFORM(cp->transform_type)); break;
case CP_TRANSFORM_NORMALIZATION: return(C_TO_XEN_INT((int)(cp->transform_normalization))); break;
case CP_SHOW_MIX_WAVEFORMS: return(C_TO_XEN_BOOLEAN(cp->show_mix_waveforms)); break;
case CP_TIME_GRAPH_STYLE: return(C_TO_XEN_INT(cp->time_graph_style)); break;
@@ -6048,9 +6110,9 @@ static XEN channel_set(XEN snd, XEN chn_n, XEN on, cp_field_t fld, const char *c
break;
case CP_TRANSFORM_TYPE:
- cp->transform_type = XEN_TO_C_INT(on); /* range already checked */
+ cp->transform_type = XEN_TRANSFORM_TO_C_INT(on);
calculate_fft(cp);
- return(C_TO_XEN_INT(cp->transform_type));
+ return(C_INT_TO_XEN_TRANSFORM(cp->transform_type));
break;
case CP_TRANSFORM_NORMALIZATION:
@@ -6482,14 +6544,14 @@ static XEN g_cursor_position(XEN snd, XEN chn)
}
-XEN g_frames(XEN snd, XEN chn_n, XEN edpos)
+XEN g_frames(XEN snd, XEN chn, XEN edpos)
{
#define H_frames "(" S_frames " :optional snd-or-object chn edpos): number of frames of data in the given object or channel"
- if (!(XEN_BOUND_P(chn_n)))
+ if (!(XEN_BOUND_P(chn)))
{
- if (XEN_SOUND_P(snd))
- return(channel_get(snd, chn_n, CP_FRAMES, S_frames));
+ if ((XEN_SOUND_P(snd)) || (!XEN_BOUND_P(snd)))
+ return(channel_get(snd, chn, CP_FRAMES, S_frames));
if (XEN_STRING_P(snd))
return(g_mus_sound_frames(snd)); /* mus-sound-frames */
@@ -6517,6 +6579,9 @@ XEN g_frames(XEN snd, XEN chn_n, XEN edpos)
}
}
+ if (XEN_SELECTION_P(snd))
+ return(g_selection_frames(chn, edpos));
+
if (XEN_BOUND_P(edpos))
{
XEN res;
@@ -6524,13 +6589,13 @@ XEN g_frames(XEN snd, XEN chn_n, XEN edpos)
snd_unprotect_at(cp_edpos_loc);
cp_edpos = edpos;
cp_edpos_loc = snd_protect(cp_edpos);
- res = channel_get(snd, chn_n, CP_EDPOS_FRAMES, S_frames);
+ res = channel_get(snd, chn, CP_EDPOS_FRAMES, S_frames);
snd_unprotect_at(cp_edpos_loc);
cp_edpos_loc = NOT_A_GC_LOC;
return(res);
}
- return(channel_get(snd, chn_n, CP_FRAMES, S_frames));
+ return(channel_get(snd, chn, CP_FRAMES, S_frames));
}
@@ -6620,6 +6685,9 @@ static XEN g_maxamp(XEN snd, XEN chn_n, XEN edpos)
return(g_list_maxamp(snd));
}
+ if (XEN_SELECTION_P(snd)) /* selection-maxamp where chn=snd and edpos=chn */
+ return(g_selection_maxamp(chn_n, edpos));
+
if (XEN_BOUND_P(edpos))
{
XEN res;
@@ -6632,7 +6700,31 @@ static XEN g_maxamp(XEN snd, XEN chn_n, XEN edpos)
cp_edpos_loc = NOT_A_GC_LOC;
return(res);
}
- return(channel_get(snd, chn_n, CP_MAXAMP, S_maxamp));
+
+ if ((XEN_BOUND_P(chn_n)) ||
+ (XEN_TRUE_P(snd)))
+ return(channel_get(snd, chn_n, CP_MAXAMP, S_maxamp));
+
+ ASSERT_SOUND(S_maxamp, snd, 0);
+ {
+ snd_info *sp;
+ sp = get_sp(snd);
+ if (sp)
+ {
+ int i;
+ mus_float_t mx = 0.0;
+ for (i = 0; i < sp->nchans; i++)
+ {
+ mus_float_t cur_mx;
+ cur_mx = channel_maxamp(sp->chans[i], sp->chans[i]->edit_ctr);
+ if (cur_mx > mx)
+ mx = cur_mx;
+ }
+ return(C_TO_XEN_DOUBLE(mx));
+ }
+ else snd_no_such_sound_error(S_maxamp, snd);
+ }
+ return(XEN_ZERO);
}
static XEN g_set_maxamp(XEN on, XEN snd, XEN chn_n)
@@ -7572,24 +7664,27 @@ static XEN g_transform_type(XEN snd, XEN chn)
{
#define H_transform_type "(" S_transform_type " :optional snd chn): transform type; can be one of " S_fourier_transform ", \
" S_wavelet_transform ", " S_haar_transform ", " S_autocorrelation ", " S_walsh_transform ", \
-" S_cepstrum ", or an index corresponding to an added transform."
+" S_cepstrum ", or an added transform (see " S_add_transform ")."
if (XEN_BOUND_P(snd))
return(channel_get(snd, chn, CP_TRANSFORM_TYPE, S_transform_type));
- return(C_TO_XEN_INT(transform_type(ss)));
+ return(C_INT_TO_XEN_TRANSFORM(transform_type(ss)));
}
static XEN g_set_transform_type(XEN val, XEN snd, XEN chn)
{
int type;
- XEN_ASSERT_TYPE(XEN_INTEGER_P(val), val, XEN_ARG_1, S_setB S_transform_type, "an integer");
- type = XEN_TO_C_INT(val);
+ XEN_ASSERT_TYPE(XEN_TRANSFORM_P(val), val, XEN_ARG_1, S_setB S_transform_type, "a transform object");
+ type = XEN_TRANSFORM_TO_C_INT(val);
if (!(transform_p(type)))
- XEN_OUT_OF_RANGE_ERROR(S_setB S_transform_type, 1, val, "~A: unknown transform type");
+ XEN_OUT_OF_RANGE_ERROR(S_setB S_transform_type, 1, val, "~A: unknown transform");
+
if (XEN_BOUND_P(snd))
return(channel_set(snd, chn, val, CP_TRANSFORM_TYPE, S_setB S_transform_type));
+
set_transform_type(type);
- return(C_TO_XEN_INT(transform_type(ss)));
+
+ return(C_INT_TO_XEN_TRANSFORM(transform_type(ss)));
}
WITH_THREE_SETTER_ARGS(g_set_transform_type_reversed, g_set_transform_type)
@@ -8237,137 +8332,6 @@ static XEN g_edits(XEN snd, XEN chn_n)
}
-static XEN g_x_bounds(XEN snd, XEN chn_n)
-{
- #define H_x_bounds "(" S_x_bounds " :optional snd chn): a list (x0 x1) giving the current x axis bounds of snd channel chn"
- chan_info *cp;
- ASSERT_CHANNEL(S_x_bounds, snd, chn_n, 1);
- cp = get_cp(snd, chn_n, S_x_bounds);
- if (!cp) return(XEN_FALSE);
- return(XEN_LIST_2(C_TO_XEN_DOUBLE(cp->axis->x0),
- C_TO_XEN_DOUBLE(cp->axis->x1)));
- /* wavogram settings depend on context -- no easy way to map back to user's notion of bounds */
-}
-
-static XEN g_set_x_bounds(XEN bounds, XEN snd, XEN chn_n)
-{
- chan_info *cp;
-
- ASSERT_CHANNEL(S_setB S_x_bounds, snd, chn_n, 2);
- XEN_ASSERT_TYPE(XEN_LIST_P(bounds) && (XEN_LIST_LENGTH(bounds) == 2), bounds, XEN_ARG_1, S_setB S_x_bounds, "a list: (x0 x1)");
-
- cp = get_cp(snd, chn_n, S_setB S_x_bounds);
- if (!cp) return(XEN_FALSE);
- if (cp->time_graph_type == GRAPH_ONCE)
- {
- mus_float_t x0, x1;
- x0 = XEN_TO_C_DOUBLE(XEN_CAR(bounds));
- x1 = XEN_TO_C_DOUBLE(XEN_CADR(bounds));
- if (x1 > x0)
- {
- snd_info *sp;
- set_x_axis_x0x1(cp, x0, x1);
- sp = cp->sound;
- if (sp->nchans > 1)
- {
- if ((XEN_NOT_BOUND_P(chn_n)) && (cp->sound->channel_style == CHANNELS_COMBINED))
- {
- int i;
- for (i = 0; i < sp->nchans; i++)
- if (i != cp->chan)
- set_x_axis_x0x1(sp->chans[i], x0, x1);
- /* y-bounds are already tied together in the channels-combined case */
- }
- }
- }
- else XEN_OUT_OF_RANGE_ERROR(S_setB S_x_bounds, 1, bounds, "~A: x1 > x0?");
- }
- return(bounds);
-}
-
-WITH_THREE_SETTER_ARGS(g_set_x_bounds_reversed, g_set_x_bounds)
-
-
-
-static XEN g_y_bounds(XEN snd, XEN chn_n)
-{
- #define H_y_bounds "(" S_y_bounds " :optional snd chn): a list (y0 y1) giving the current y axis bounds of snd channel chn"
- chan_info *cp;
- ASSERT_CHANNEL(S_y_bounds, snd, chn_n, 1);
- cp = get_cp(snd, chn_n, S_y_bounds);
- if (!cp) return(XEN_FALSE);
- return(XEN_LIST_2(C_TO_XEN_DOUBLE(cp->axis->y0),
- C_TO_XEN_DOUBLE(cp->axis->y1)));
-}
-
-static XEN g_set_y_bounds(XEN bounds, XEN snd, XEN chn_n)
-{
- chan_info *cp;
- mus_float_t low, hi;
- int len = 0;
- XEN y0 = XEN_UNDEFINED, y1 = XEN_UNDEFINED;
-
- ASSERT_CHANNEL(S_setB S_y_bounds, snd, chn_n, 2);
- XEN_ASSERT_TYPE(XEN_LIST_P_WITH_LENGTH(bounds, len), bounds, XEN_ARG_1, S_setB S_y_bounds, "a list");
-
- cp = get_cp(snd, chn_n, S_setB S_y_bounds);
- if (!cp) return(XEN_FALSE);
-
- if (len > 0)
- {
- y0 = XEN_CAR(bounds);
- if (len > 1)
- y1 = XEN_CADR(bounds);
- }
-
- if (XEN_NUMBER_P(y0))
- {
- low = XEN_TO_C_DOUBLE(y0);
- if (XEN_NUMBER_P(y1))
- hi = XEN_TO_C_DOUBLE(y1);
- else
- {
- if (low < 0.0)
- hi = -low;
- else
- {
- hi = low;
- low = -low;
- }
- }
- }
- else
- {
- /* if no bounds given, use maxamp */
- hi = channel_maxamp(cp, AT_CURRENT_EDIT_POSITION);
- if (hi < 0.0) hi = -hi;
- if (hi == 0.0) hi = .001;
- low = -hi;
- }
-
- if (hi > low)
- {
- axis_info *ap;
- ap = cp->axis;
- ap->ymin = low;
- ap->ymax = hi;
- ap->y_ambit = (ap->ymax - ap->ymin);
- ap->y0 = low;
- ap->y1 = hi;
- ap->zy = 1.0;
- ap->sy = 0.0;
- resize_sy_and_zy(cp);
- apply_y_axis_change(ap, cp);
- }
- else XEN_OUT_OF_RANGE_ERROR(S_setB S_y_bounds, 1, bounds, "~A: y1 < y0?");
-
- return(bounds);
-}
-
-WITH_THREE_SETTER_ARGS(g_set_y_bounds_reversed, g_set_y_bounds)
-
-
-
static XEN g_graph(XEN ldata, XEN xlabel, XEN x0, XEN x1, XEN y0, XEN y1, XEN snd, XEN chn_n, XEN force_display, XEN show_axes)
{
#define H_graph "(" S_graph " data :optional xlabel (x0 0.0) (x1 1.0) y0 y1 snd chn (force-display " PROC_TRUE ") show-axes): \
@@ -8905,10 +8869,6 @@ XEN_ARGIFY_2(g_show_axes_w, g_show_axes)
XEN_ARGIFY_3(g_set_show_axes_w, g_set_show_axes)
XEN_ARGIFY_2(g_graphs_horizontal_w, g_graphs_horizontal)
XEN_ARGIFY_3(g_set_graphs_horizontal_w, g_set_graphs_horizontal)
-XEN_ARGIFY_2(g_x_bounds_w, g_x_bounds)
-XEN_ARGIFY_3(g_set_x_bounds_w, g_set_x_bounds)
-XEN_ARGIFY_2(g_y_bounds_w, g_y_bounds)
-XEN_ARGIFY_3(g_set_y_bounds_w, g_set_y_bounds)
XEN_ARGIFY_2(g_update_time_graph_w, g_update_time_graph)
XEN_ARGIFY_2(g_update_lisp_graph_w, g_update_lisp_graph)
XEN_ARGIFY_2(g_update_transform_graph_w, g_update_transform_graph)
@@ -9058,10 +9018,6 @@ XEN_NARGIFY_1(g_set_with_gl_w, g_set_with_gl)
#define g_set_show_axes_w g_set_show_axes
#define g_graphs_horizontal_w g_graphs_horizontal
#define g_set_graphs_horizontal_w g_set_graphs_horizontal
-#define g_x_bounds_w g_x_bounds
-#define g_set_x_bounds_w g_set_x_bounds
-#define g_y_bounds_w g_y_bounds
-#define g_set_y_bounds_w g_set_y_bounds
#define g_update_time_graph_w g_update_time_graph
#define g_update_lisp_graph_w g_update_lisp_graph
#define g_update_transform_graph_w g_update_transform_graph
@@ -9362,12 +9318,6 @@ void g_init_chn(void)
XEN_DEFINE_PROCEDURE_WITH_REVERSED_SETTER(S_graphs_horizontal, g_graphs_horizontal_w, H_graphs_horizontal,
S_setB S_graphs_horizontal, g_set_graphs_horizontal_w, g_set_graphs_horizontal_reversed, 0, 2, 1, 2);
- XEN_DEFINE_PROCEDURE_WITH_REVERSED_SETTER(S_x_bounds, g_x_bounds_w, H_x_bounds,
- S_setB S_x_bounds, g_set_x_bounds_w, g_set_x_bounds_reversed, 0, 2, 1, 2);
-
- XEN_DEFINE_PROCEDURE_WITH_REVERSED_SETTER(S_y_bounds, g_y_bounds_w, H_y_bounds,
- S_setB S_y_bounds, g_set_y_bounds_w, g_set_y_bounds_reversed, 0, 2, 1, 2);
-
#define H_zoom_focus_left "The value for " S_zoom_focus_style " that causes zooming to maintain the left edge steady"
#define H_zoom_focus_right "The value for " S_zoom_focus_style " that causes zooming to maintain the right edge steady"
#define H_zoom_focus_middle "The value for " S_zoom_focus_style " that causes zooming to focus on the middle sample"
diff --git a/snd-completion.c b/snd-completion.c
index 3f397ca..e241fc0 100644
--- a/snd-completion.c
+++ b/snd-completion.c
@@ -252,7 +252,7 @@ bool separator_char_p(char c)
(c != '!') &&
(c != '_') &&
#endif
-#if HAVE_SCHEME || HAVE_CL
+#if HAVE_SCHEME
(c != '-') &&
(c != '_') &&
(c != '>') &&
diff --git a/snd-contents.html b/snd-contents.html
index 5c6b066..be7e43a 100644
--- a/snd-contents.html
+++ b/snd-contents.html
@@ -234,8 +234,7 @@ var olData = {childNodes:
{item:new outlineItem("Libxm", "libxm.html#xm")},
{item:new outlineItem("Index", "index.html"),
childNodes:
- [{item:new outlineInnerItem("Snd Index", "snd.html#index")},
- {item:new outlineInnerItem("CLM Index", "sndclm.html#clmindex")}]}]};
+ [{item:new outlineInnerItem("CLM Index", "sndclm.html#clmindex")}]}]};
function swapState(currState, currVal, n) {
var newState = currState.substring(0, n);
@@ -432,7 +431,6 @@ function initExpMenu() {
<small><a href="grfsnd.html#sndandgsl" target="snd1">Snd and GSL</a></small>
<small><a href="grfsnd.html#sndandgmp" target="snd1">Snd and multiprecision arithmetic</a></small>
<small><a href="index.html" target="snd1">Index</a></small>
-<a href="snd.html#index" target="snd1">Snd Index</a>
<a href="sndlib.html#introduction" target="snd1">Sndlib</a>
<small><a href="sndlib.html#headers" target="snd1">Headers</a></small>
<small><a href="sndlib.html#data" target="snd1">Data</a></small>
diff --git a/snd-dac.c b/snd-dac.c
index d577208..baeb97b 100644
--- a/snd-dac.c
+++ b/snd-dac.c
@@ -1,4 +1,5 @@
#include "snd.h"
+#include "clm2xen.h"
/*
* each channel currently being played has an associated dac_info struct
@@ -58,6 +59,12 @@ static mus_float_t dac_read_sample(struct dac_info *dp)
}
+static mus_float_t dac_no_sample(struct dac_info *dp)
+{
+ return(0.0);
+}
+
+
static mus_float_t dac_xen_sample(struct dac_info *dp)
{
XEN result;
@@ -629,6 +636,7 @@ static void stop_playing_with_toggle(dac_info *dp, dac_toggle_t toggle, with_hoo
else sp = NULL; /* don't free it as a player below */
play_list[dp->slot] = NULL;
play_list_members--;
+
if (toggle == WITH_TOGGLE)
{
switch (dp->type)
@@ -650,6 +658,7 @@ static void stop_playing_with_toggle(dac_info *dp, dac_toggle_t toggle, with_hoo
break;
}
}
+
if (dp->slot == max_active_slot) max_active_slot--;
if (with_hook == WITH_HOOK)
{
@@ -880,17 +889,22 @@ static dac_info *make_dac_info(int slot, chan_info *cp, snd_info *sp, snd_fd *fd
dp->mix_id = INVALID_MIX_ID;
dp->direction = 1;
dp->type = type; /* dac needs to know how to get input before calling mus_make_src below */
- if (type == DAC_XEN)
- {
- dp->dac_sample = dac_xen_sample;
- dp->func = func;
- dp->func_gc_loc = snd_protect(func);
- }
- else
+ if (type == DAC_NOTHING)
+ dp->dac_sample = dac_no_sample;
+ else
{
- dp->dac_sample = dac_read_sample;
- dp->func = XEN_FALSE;
- dp->func_gc_loc = NOT_A_GC_LOC;
+ if (type == DAC_XEN)
+ {
+ dp->dac_sample = dac_xen_sample;
+ dp->func = func;
+ dp->func_gc_loc = snd_protect(func);
+ }
+ else
+ {
+ dp->dac_sample = dac_read_sample;
+ dp->func = XEN_FALSE;
+ dp->func_gc_loc = NOT_A_GC_LOC;
+ }
}
dp->a = NULL;
dp->a_size = 0;
@@ -975,11 +989,14 @@ static void start_dac(int srate, int channels, play_process_t background, mus_fl
(dp->sp) &&
(global_rev == NULL))
make_reverb(dp->sp, channels);
- if (dp->audio_chan >= channels) /* if dac_running, the number of channels has already been set and won't change */
+ if (snd_dacp)
{
- if (dac_combines_channels(ss))
- dp->audio_chan %= channels;
- else stop_playing(dp, WITHOUT_HOOK, PLAY_NO_CHANNEL);
+ if (dp->audio_chan >= snd_dacp->channels) /* if dac_running, the number of channels has already been set and won't change */
+ {
+ if (dac_combines_channels(ss))
+ dp->audio_chan %= snd_dacp->channels;
+ else stop_playing(dp, WITHOUT_HOOK, PLAY_NO_CHANNEL);
+ }
}
}
}
@@ -1124,7 +1141,7 @@ void play_region(int region, play_process_t background)
}
-bool add_mix_to_play_list(mix_state *ms, chan_info *cp, mus_long_t beg_within_mix)
+bool add_mix_to_play_list(mix_state *ms, chan_info *cp, mus_long_t beg_within_mix, bool start_playing)
{
int slot;
slot = find_slot_to_play();
@@ -1139,7 +1156,8 @@ bool add_mix_to_play_list(mix_state *ms, chan_info *cp, mus_long_t beg_within_mi
if (dp)
{
dp->mix_id = ms->index; /* any valid mix id will do */
- start_dac(SND_SRATE(cp->sound), 1, NOT_IN_BACKGROUND, DEFAULT_REVERB_CONTROL_DECAY);
+ if (start_playing)
+ start_dac(SND_SRATE(cp->sound), 1, NOT_IN_BACKGROUND, DEFAULT_REVERB_CONTROL_DECAY);
return(true);
}
}
@@ -1158,8 +1176,28 @@ bool add_mix_to_play_list(mix_state *ms, chan_info *cp, mus_long_t beg_within_mi
(begin
(set! samp (1+ samp))
(* .5 (oscil osc))))))) ; you can use explicit control panel accessors
+
+ (play (lambda () (if (c-g?) #f 0.0)))
*/
+static bool add_zeros_to_play_list(int srate, int chans)
+{
+ int slot;
+ slot = find_slot_to_play();
+ if (slot != -1)
+ {
+ dac_info *dp;
+ dp = make_dac_info(slot, NULL, NULL, NULL, NO_END_SPECIFIED, 0, DAC_NOTHING, XEN_FALSE);
+ if (dp)
+ {
+ start_dac(srate, chans, IN_BACKGROUND, DEFAULT_REVERB_CONTROL_DECAY);
+ return(true);
+ }
+ }
+ return(false);
+}
+
+
static bool add_xen_to_play_list(XEN func)
{
int slot;
@@ -1170,7 +1208,7 @@ static bool add_xen_to_play_list(XEN func)
dp = make_dac_info(slot, NULL, NULL, NULL, NO_END_SPECIFIED, 0, DAC_XEN, func);
if (dp)
{
- start_dac((int)mus_srate(), 1, NOT_IN_BACKGROUND, DEFAULT_REVERB_CONTROL_DECAY);
+ start_dac((int)mus_srate(), 1, IN_BACKGROUND, DEFAULT_REVERB_CONTROL_DECAY);
return(true);
}
}
@@ -2647,7 +2685,7 @@ static char *xen_player_to_string(xen_player *v)
char *buf;
if (v == NULL) return(NULL);
buf = (char *)calloc(XEN_PLAYER_PRINT_BUFFER_SIZE, sizeof(char));
- sprintf(buf, "#<player %d>", v->n);
+ snprintf(buf, XEN_PLAYER_PRINT_BUFFER_SIZE, "#<player %d>", v->n);
return(buf);
}
@@ -2761,129 +2799,54 @@ static void init_xen_player(void)
/* -------------------------------------------------------------------------------- */
-
-static XEN g_play_1(XEN samp_n, XEN snd, XEN chn_n, bool back, bool syncd, XEN end_n, XEN edpos,
- const char *caller, int arg_pos, XEN stop_proc, XEN out_chan)
+static XEN play_file(const char *play_name, mus_long_t start, mus_long_t end, int in_channel, int out_channel, play_process_t background, XEN stop_func)
{
- /* all chans if chn_n omitted, arbitrary file if snd is name */
snd_info *sp;
- chan_info *cp = NULL;
- sync_info *si = NULL;
- static char *play_name = NULL;
- int i;
- mus_long_t samp = 0;
- mus_long_t end = NO_END_SPECIFIED;
- mus_long_t *ends = NULL;
- play_process_t background;
-
- if (XEN_PROCEDURE_P(samp_n))
- return(C_TO_XEN_BOOLEAN(add_xen_to_play_list(samp_n)));
-
- if (XEN_INT64_T_P(end_n)) end = XEN_TO_C_INT64_T(end_n);
-
-#if USE_NO_GUI
- background = NOT_IN_BACKGROUND;
-#else
- if (back) background = IN_BACKGROUND; else background = NOT_IN_BACKGROUND;
-#endif
-
- XEN_ASSERT_TYPE(((XEN_PROCEDURE_P(stop_proc)) && (procedure_arity_ok(stop_proc, 1))) ||
- (XEN_NOT_BOUND_P(stop_proc)) ||
- (XEN_FALSE_P(stop_proc)),
- stop_proc, arg_pos + 1, caller, "a procedure of 1 arg");
-
- if (play_name) {free(play_name); play_name = NULL;}
-
- /* if even samp_n is XEN_UNDEFINED, start_dac? */
-
- if (XEN_STRING_P(samp_n))
- {
- /* filename beg end background syncd ignored */
- samp = beg_to_sample(snd, caller);
- if (samp < 0) XEN_ERROR(NO_SUCH_SAMPLE,
- XEN_LIST_2(C_TO_XEN_STRING(caller),
- snd));
-
- play_name = mus_expand_filename(XEN_TO_C_STRING(samp_n));
-
- if (!(mus_file_probe(play_name)))
- return(snd_no_such_file_error(caller, samp_n));
-
- if (!(mus_header_type_p(mus_sound_header_type(play_name))))
- XEN_ERROR(BAD_HEADER,
- XEN_LIST_3(C_TO_XEN_STRING(caller),
- samp_n,
- C_TO_XEN_STRING(mus_header_type_name(mus_header_type()))));
-
- if (!(mus_data_format_p(mus_sound_data_format(play_name))))
- XEN_ERROR(XEN_ERROR_TYPE("bad-format"),
- XEN_LIST_3(C_TO_XEN_STRING(caller),
- samp_n,
- C_TO_XEN_STRING(mus_header_original_format_name(mus_sound_original_format(play_name),
- mus_sound_header_type(play_name)))));
- sp = make_sound_readable(play_name, false);
- sp->short_filename = filename_without_directory(play_name);
- sp->filename = NULL;
- sp->delete_me = (struct dialog_play_info *)1;
- if (XEN_INT64_T_P(chn_n)) end = XEN_TO_C_INT64_T(chn_n);
- play_sound_1(sp, samp, end, background, edpos, stop_proc, caller, arg_pos);
- return(XEN_FALSE);
- }
-
- XEN_ASSERT_TYPE(XEN_NUMBER_IF_BOUND_P(samp_n), samp_n, XEN_ARG_1, caller, "a number");
- samp = beg_to_sample(samp_n, caller);
- if (samp < 0) XEN_ERROR(NO_SUCH_SAMPLE,
- XEN_LIST_2(C_TO_XEN_STRING(caller),
- samp_n));
-
- if (XEN_PLAYER_P(snd))
- sp = get_player_sound(snd);
- else
- {
- ASSERT_CHANNEL(caller, snd, chn_n, 2);
- sp = get_sp(snd);
- }
- if (sp == NULL)
- return(snd_no_such_sound_error(caller, snd));
-
- if ((syncd) &&
- (sp->sync != 0) &&
- (!(IS_PLAYER_SOUND(sp))))
- {
- si = snd_sync(sp->sync);
- if (end != NO_END_SPECIFIED)
- {
- ends = (mus_long_t *)calloc(si->chans, sizeof(mus_long_t));
- for (i = 0; i < si->chans; i++) ends[i] = end;
- }
- for (i = 0; i < si->chans; i++) si->begs[i] = samp;
- play_channels_1(si->cps, si->chans, si->begs, ends, background, edpos, false, stop_proc, caller, arg_pos);
- si = free_sync_info(si);
- if (ends) free(ends);
- return(XEN_FALSE);
- }
-
- if (!(XEN_INTEGER_P(chn_n)))
- play_sound_1(sp, samp, end, background, edpos, stop_proc, caller, arg_pos);
- else
- {
- int ochan = -1, pos;
- cp = get_cp(snd, chn_n, caller);
- XEN_ASSERT_TYPE(XEN_INTEGER_IF_BOUND_P(out_chan), out_chan, arg_pos + 2, caller, "an integer");
- if (XEN_INTEGER_P(out_chan)) ochan = XEN_TO_C_INT(out_chan);
- if (ochan < 0) ochan = cp->chan;
- pos = to_c_edit_position(cp, edpos, caller, arg_pos);
- if (cp) play_channel_1(cp, samp, end, background, pos, stop_proc, ochan);
- }
+ if (!(mus_file_probe(play_name)))
+ return(snd_no_such_file_error(S_play, C_TO_XEN_STRING(play_name)));
+
+ if (!(mus_header_type_p(mus_sound_header_type(play_name))))
+ XEN_ERROR(BAD_HEADER,
+ XEN_LIST_3(C_TO_XEN_STRING(S_play),
+ C_TO_XEN_STRING(play_name),
+ C_TO_XEN_STRING(mus_header_type_name(mus_header_type()))));
+
+ if (!(mus_data_format_p(mus_sound_data_format(play_name))))
+ XEN_ERROR(XEN_ERROR_TYPE("bad-format"),
+ XEN_LIST_3(C_TO_XEN_STRING(S_play),
+ C_TO_XEN_STRING(play_name),
+ C_TO_XEN_STRING(mus_header_original_format_name(mus_sound_original_format(play_name),
+ mus_sound_header_type(play_name)))));
+ sp = make_sound_readable(play_name, false);
+ sp->short_filename = filename_without_directory(play_name);
+ sp->filename = NULL;
+ sp->delete_me = (struct dialog_play_info *)1;
+ if (in_channel != -1)
+ play_channel_1(sp->chans[in_channel], start, end, background, 0, stop_func, (out_channel < 0) ? 0 : out_channel);
+ else play_sound_1(sp, start, end, background, XEN_ZERO, stop_func, S_play, -1);
+
return(XEN_FALSE);
}
-#define TO_C_BOOLEAN_OR_FALSE(a) (XEN_TRUE_P(a) || ((XEN_INTEGER_P(a)) && (XEN_TO_C_INT(a) == 1)))
+static XEN kw_start, kw_end, kw_channel, kw_wait, kw_edit_position, kw_stop, kw_out_channel, kw_with_sync, kw_srate, kw_channels;
+static void init_play_keywords(void)
+{
+ kw_start = XEN_MAKE_KEYWORD("start");
+ kw_end = XEN_MAKE_KEYWORD("end");
+ kw_wait = XEN_MAKE_KEYWORD("wait");
+ kw_channel = XEN_MAKE_KEYWORD("channel");
+ kw_out_channel = XEN_MAKE_KEYWORD("out-channel");
+ kw_edit_position = XEN_MAKE_KEYWORD("edit-position");
+ kw_stop = XEN_MAKE_KEYWORD("stop");
+ kw_with_sync = XEN_MAKE_KEYWORD("with-sync");
+ kw_srate = XEN_MAKE_KEYWORD("srate");
+ kw_channels = XEN_MAKE_KEYWORD("channels");
+}
-static XEN g_play(XEN samp_n, XEN snd, XEN chn_n, XEN syncd, XEN end_n, XEN edpos, XEN stop_proc, XEN out_chan)
+static XEN g_play(XEN arglist)
{
#if HAVE_SCHEME
#define play_example "(play \"oboe.snd\")"
@@ -2895,91 +2858,179 @@ static XEN g_play(XEN samp_n, XEN snd, XEN chn_n, XEN syncd, XEN end_n, XEN edpo
#define play_example "\"oboe.snd\" play"
#endif
- #define H_play "(" S_play " :optional (start 0) snd chn sync end (pos -1) stop-proc out-chan): play snd or snd's channel chn starting at start. \
-'start' can also be a function or a filename: " play_example ". If 'sync' is true, all sounds syncd to snd are played. \
-If 'end' is not given, " S_play " plays to the end of the sound. If 'pos' is -1 or not given, the current edit position is \
-played."
+ #define H_play "(" S_play " object :start :end :channel :edit-position :out-channel :with-sync :wait :stop): \
+play the object from start to end. If channel is not given, play all channels. If with-sync, play all objects sync'd \
+to the current object. If wait, wait for the play process to finish before going on. If out-channel, send the samples \
+to that DAC channel. If edit-position, play that member of the edit list, otherwise play the current state of the object. \
+If stop, call that function when the play process finishes. \
+If object is a string, it is assumed to be a file name: \n " play_example "\n."
+
+ XEN object = XEN_UNDEFINED;
+ mus_long_t start = 0, end = NO_END_SPECIFIED;
+ int channel = -1, out_channel = -1, srate = 44100, channels = 2, edpos_argpos = 0, channel_argpos = 0;
+ bool with_sync = false, wait = false;
+ XEN stop_func = XEN_FALSE, edit_position = XEN_FALSE, channel_arg = XEN_FALSE;
+ play_process_t background;
+ snd_info *sp;
- return(g_play_1(samp_n, snd, chn_n, true, TO_C_BOOLEAN_OR_FALSE(syncd), end_n, edpos, S_play, 6, stop_proc, out_chan));
-}
+ if (XEN_NOT_NULL_P(arglist))
+ {
+ XEN args[20];
+ XEN keys[10];
+ int orig_arg[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ int vals, i, arglist_len;
+ object = XEN_CAR(arglist);
+ arglist = XEN_CDR(arglist);
-static XEN g_play_channel(XEN beg, XEN dur, XEN snd, XEN chn_n, XEN edpos, XEN stop_proc, XEN out_chan)
-{
- #define H_play_channel "(" S_play_channel " :optional (beg 0) (dur len) snd chn (pos -1) stop-proc out-chan): \
-play snd or snd's channel chn starting at beg for dur samps."
- XEN end = XEN_FALSE;
- XEN_ASSERT_TYPE(XEN_NUMBER_IF_BOUND_P(beg), beg, XEN_ARG_1, S_play_channel, "a number");
- if (XEN_INTEGER_P(dur))
+ keys[0] = kw_start;
+ keys[1] = kw_end;
+ keys[2] = kw_channel;
+ keys[3] = kw_edit_position;
+ keys[4] = kw_out_channel;
+ keys[5] = kw_with_sync;
+ keys[6] = kw_wait;
+ keys[7] = kw_stop;
+ keys[8] = kw_srate;
+ keys[9] = kw_channels;
+
+ for (i = 0; i < 16; i++) args[i] = XEN_UNDEFINED;
+ arglist_len = XEN_LIST_LENGTH(arglist);
+
+ for (i = 0; i < arglist_len; i++) args[i] = XEN_LIST_REF(arglist, i);
+ vals = mus_optkey_unscramble(S_play, 8, keys, args, orig_arg);
+
+ if (vals > 0)
+ {
+ start = mus_optkey_to_mus_long_t(keys[0], S_play, orig_arg[0], start);
+ if (start < 0)
+ XEN_OUT_OF_RANGE_ERROR(S_play, orig_arg[0], keys[0], "start ~A is negative?");
+
+ end = mus_optkey_to_mus_long_t(keys[1], S_play, orig_arg[1], end);
+ if (end < -1)
+ XEN_OUT_OF_RANGE_ERROR(S_play, orig_arg[1], keys[1], "end ~A is negative?");
+
+ channel = mus_optkey_to_int(keys[2], S_play, orig_arg[2], channel);
+ channel_argpos = orig_arg[2];
+ channel_arg = keys[2];
+
+ if (!(XEN_KEYWORD_P(keys[3])))
+ {
+ edit_position = keys[3];
+ edpos_argpos = orig_arg[3];
+ }
+ out_channel = mus_optkey_to_int(keys[4], S_play, orig_arg[4], out_channel);
+
+ with_sync = mus_optkey_to_bool(keys[5], S_play, orig_arg[5], with_sync);
+ wait = mus_optkey_to_bool(keys[6], S_play, orig_arg[6], wait);
+ stop_func = mus_optkey_to_procedure(keys[7], S_play, orig_arg[7], stop_func, 1, "play stop function takes 1 argument");
+
+ srate = mus_optkey_to_int(keys[8], S_play, orig_arg[8], srate);
+ if (srate <= 0)
+ XEN_OUT_OF_RANGE_ERROR(S_play, orig_arg[8], keys[8], "srate ~A <= 0?");
+
+ channels = mus_optkey_to_int(keys[9], S_play, orig_arg[9], channels);
+ if (channels <= 0)
+ XEN_OUT_OF_RANGE_ERROR(S_play, orig_arg[9], keys[9], "channels ~A <= 0?");
+ }
+ }
+
+ /* unspecified object means the current sound, all chans, all samps, with sync, without wait, current edpos */
+ if (XEN_NOT_BOUND_P(object))
{
- mus_long_t len;
- len = XEN_TO_C_INT64_T(dur);
- if (len <= 0) return(XEN_FALSE);
- end = C_TO_XEN_INT64_T(beg_to_sample(beg, S_play_channel) + len);
+ sp = any_selected_sound();
+ if (sp) play_sound(sp, start, end);
+ return(XEN_FALSE);
}
- return(g_play_1(beg, snd, chn_n, true, false, end, edpos, S_play_channel, 5, stop_proc, out_chan));
-}
+ /* #f object means start sending out zeros */
+ if (XEN_FALSE_P(object))
+ return(C_TO_XEN_BOOLEAN(add_zeros_to_play_list(srate, channels)));
-static XEN g_play_selection(XEN wait, XEN stop_proc)
-{
- #define H_play_selection "(" S_play_selection " :optional wait stop-proc): play the selection. \
-'wait', if " PROC_TRUE ", causes " S_play_selection " to wait until the playing is finished \
-before returning."
+ /* procedure object means add that function to the play list */
+ if (XEN_PROCEDURE_P(object))
+ return(C_TO_XEN_BOOLEAN(add_xen_to_play_list(object)));
- XEN_ASSERT_TYPE(XEN_BOOLEAN_IF_BOUND_P(wait), wait, XEN_ARG_1, S_play_selection, "a boolean");
- XEN_ASSERT_TYPE(((XEN_PROCEDURE_P(stop_proc)) && (procedure_arity_ok(stop_proc, 1))) ||
- (XEN_NOT_BOUND_P(stop_proc)) ||
- (XEN_FALSE_P(stop_proc)),
- stop_proc, XEN_ARG_3, S_play_selection, "a procedure of 1 arg");
+ /* mix object */
+ if (XEN_MIX_P(object))
+ return(g_play_mix(object, start));
- if (selection_is_active())
- {
- play_process_t background;
-#if (!USE_NO_GUI)
- bool back = false;
- back = (!(TO_C_BOOLEAN_OR_FALSE(wait)));
- if (back) background = IN_BACKGROUND; else background = NOT_IN_BACKGROUND;
+#if USE_NO_GUI
+ background = NOT_IN_BACKGROUND;
#else
- background = NOT_IN_BACKGROUND;
+ if (wait) background = IN_BACKGROUND; else background = NOT_IN_BACKGROUND;
#endif
- play_selection_1(background, stop_proc);
- return(XEN_FALSE);
+
+ /* selection object */
+ if (XEN_SELECTION_P(object))
+ {
+ if (selection_is_active())
+ play_selection_1(background, stop_func);
+ return(object);
}
- return(snd_no_active_selection_error(S_play_selection));
-}
+ /* region object */
+ if (XEN_REGION_P(object))
+ return(g_play_region(object, background, stop_func));
-static XEN g_play_and_wait(XEN samp_n, XEN snd, XEN chn_n, XEN syncd, XEN end_n, XEN edpos, XEN stop_proc, XEN out_chan)
-{
- XEN result;
+ /* string object = filename */
+ if (XEN_STRING_P(object))
+ {
+ char *name;
+ name = mus_expand_filename(XEN_TO_C_STRING(object));
+ play_file((const char *)name, start, end, channel, out_channel, background, stop_func);
+ free(name);
+ return(object);
+ }
- #if HAVE_SCHEME
- #define play_and_wait_example "(play-and-wait \"oboe.snd\")"
- #endif
- #if HAVE_RUBY
- #define play_and_wait_example "play_and_wait(\"oboe.snd\")"
- #endif
- #if HAVE_FORTH
- #define play_and_wait_example "\"oboe.snd\" play-and-wait"
- #endif
+ /* otherwise object is either a player or a sound */
+ if (XEN_PLAYER_P(object))
+ sp = get_player_sound(object);
+ else sp = get_sp(object);
- #define H_play_and_wait "(" S_play_and_wait " (start 0) snd chn syncd end (pos -1) stop-proc out-chan): \
-play snd or snd's channel chn starting at start \
-and wait for the play to complete before returning. 'start' can also be a function or a filename:\n " play_and_wait_example
+ if (sp == NULL)
+ return(snd_no_such_sound_error(S_play, object));
- result = g_play_1(samp_n, snd, chn_n, false, TO_C_BOOLEAN_OR_FALSE(syncd), end_n, edpos, S_play_and_wait, 6, stop_proc, out_chan);
+ if ((with_sync) &&
+ (sp->sync != 0) &&
+ (!(IS_PLAYER_SOUND(sp))))
+ {
+ sync_info *si;
+ mus_long_t *ends = NULL;
+ int i;
- /* dac-hook might call c-g! leaving these flags set -- this can cause confusion (much) later.
- * the problem is that one or both of these flags is set by c-g!, but if not cleared, anything
- * might call (c-g?) later which will see the (long previous) c-g! -- I'd clear the flags
- * before calling check-for-event in g_abortq (snd-main.c), but that assumes no one else
- * called it earlier. c-g! appears to be problematic...
- */
+ si = snd_sync(sp->sync);
+ if (end != NO_END_SPECIFIED)
+ {
+ ends = (mus_long_t *)calloc(si->chans, sizeof(mus_long_t));
+ for (i = 0; i < si->chans; i++) ends[i] = end;
+ }
+ for (i = 0; i < si->chans; i++) si->begs[i] = start;
+ play_channels_1(si->cps, si->chans, si->begs, ends, background, edit_position, false, stop_func, S_play, edpos_argpos);
- ss->stopped_explicitly = false;
- ss->cg_seen = false;
- return(result);
+ si = free_sync_info(si);
+ if (ends) free(ends);
+ return(XEN_FALSE);
+ }
+
+ if (channel == -1)
+ play_sound_1(sp, start, end, background, edit_position, stop_func, S_play, edpos_argpos);
+ else
+ {
+ if ((channel < sp->nchans) &&
+ (channel >= 0))
+ {
+ int pos;
+ chan_info *cp;
+ cp = sp->chans[channel];
+ if (out_channel < 0) out_channel = channel;
+ pos = to_c_edit_position(cp, edit_position, S_play, edpos_argpos);
+ play_channel_1(cp, start, end, background, pos, stop_func, out_channel);
+ }
+ else XEN_OUT_OF_RANGE_ERROR(S_play, channel_argpos, channel_arg, "channel ~A does not exist?");
+ }
+
+ return(object);
}
@@ -3324,10 +3375,7 @@ static XEN g_set_cursor_location_offset(XEN val)
#ifdef XEN_ARGIFY_1
-XEN_ARGIFY_8(g_play_w, g_play)
-XEN_ARGIFY_7(g_play_channel_w, g_play_channel)
-XEN_ARGIFY_2(g_play_selection_w, g_play_selection)
-XEN_ARGIFY_8(g_play_and_wait_w, g_play_and_wait)
+XEN_VARGIFY(g_play_w, g_play)
XEN_ARGIFY_1(g_stop_playing_w, g_stop_playing)
XEN_ARGIFY_2(g_make_player_w, g_make_player)
XEN_ARGIFY_6(g_add_player_w, g_add_player)
@@ -3351,9 +3399,6 @@ XEN_NARGIFY_0(g_cursor_location_offset_w, g_cursor_location_offset)
XEN_NARGIFY_1(g_set_cursor_location_offset_w, g_set_cursor_location_offset)
#else
#define g_play_w g_play
-#define g_play_channel_w g_play_channel
-#define g_play_selection_w g_play_selection
-#define g_play_and_wait_w g_play_and_wait
#define g_stop_playing_w g_stop_playing
#define g_make_player_w g_make_player
#define g_add_player_w g_add_player
@@ -3380,11 +3425,9 @@ XEN_NARGIFY_1(g_set_cursor_location_offset_w, g_set_cursor_location_offset)
void g_init_dac(void)
{
init_xen_player();
+ init_play_keywords();
- XEN_DEFINE_PROCEDURE(S_play, g_play_w, 0, 8, 0, H_play);
- XEN_DEFINE_PROCEDURE(S_play_channel, g_play_channel_w, 0, 7, 0, H_play_channel);
- XEN_DEFINE_PROCEDURE(S_play_selection, g_play_selection_w, 0, 2, 0, H_play_selection);
- XEN_DEFINE_PROCEDURE(S_play_and_wait, g_play_and_wait_w, 0, 8, 0, H_play_and_wait);
+ XEN_DEFINE_PROCEDURE(S_play, g_play_w, 0, 0, 1, H_play);
XEN_DEFINE_PROCEDURE(S_stop_playing, g_stop_playing_w, 0, 1, 0, H_stop_playing);
XEN_DEFINE_PROCEDURE_WITH_SETTER(S_pausing, g_pausing_w, H_pausing, S_setB S_pausing, g_set_pausing_w, 0, 0, 1, 0);
@@ -3430,4 +3473,164 @@ If it returns " PROC_TRUE ", the sound is not played."
sdobj = XEN_FALSE;
sdobj_loc = NOT_A_GC_LOC;
+
+
+#ifndef SND_DISABLE_DEPRECATED
+#if HAVE_S7
+ XEN_EVAL_C_STRING("(define* (play-region reg wait stop-func)\
+ (play (if (integer? reg) (integer->region reg) reg) :wait wait :stop stop-func))");
+
+ XEN_EVAL_C_STRING("(define* (play-selection wait stop-func)\
+ (play (selection) :wait wait :stop stop-func))");
+
+ XEN_EVAL_C_STRING("(define* (play-mix id (beg 0))\
+ (play (if (integer? id) (integer->mix id) id) beg))");
+
+ XEN_EVAL_C_STRING("(define* (play-and-wait (start 0) snd chn syncd end (pos -1) stop-proc)\
+ (if (string? start)\
+ (play start (or snd 0) :end (or chn -1) :wait #t) \
+ (play (if (integer? snd) (integer->sound snd)\
+ (if (sound? snd) snd\
+ (or (selected-sound) (car (sounds)))))\
+ :channel (or chn -1) :wait #t :with-sync syncd :start start :end (or end -1) \
+ :stop stop-proc :edit-position pos)))");
+
+ XEN_EVAL_C_STRING("(define* (old-play (start 0) snd chn syncd end (pos -1) stop-proc (out-chan -1))\
+ (play (if (integer? snd) (integer->sound snd)\
+ (if (sound? snd) snd\
+ (or (selected-sound) (car (sounds)))))\
+ :channel (or chn -1) :with-sync syncd :start start :end (or end -1) \
+ :stop stop-proc :out-channel out-chan :edit-position pos))");
+
+ XEN_EVAL_C_STRING("(define* (play-channel (beg 0) dur snd chn (pos -1) stop-proc (out-chan -1))\
+ (play (if (integer? snd) (integer->sound snd)\
+ (if (sound? snd) snd\
+ (or (selected-sound) (car (sounds)))))\
+ :channel (or chn -1) :with-sync #f :start beg :end (if dur (+ beg dur) -1) \
+ :stop stop-proc :out-channel out-chan :edit-position pos))");
+#endif
+
+#if HAVE_RUBY
+ XEN_EVAL_C_STRING("def play_region(reg, wait = false, stop_proc = false)\n\
+ play(reg.kind_of?(Fixnum) ? integer2region(reg) : reg, :wait, wait, :stop, stop_proc)\n\
+ end");
+
+ XEN_EVAL_C_STRING("def play_selection(wait = false, stop_proc = false)\n\
+ play(selection(), :wait, wait, :stop, stop_proc)\n\
+ end");
+
+ XEN_EVAL_C_STRING("def play_mix(id, beg = 0)\n\
+ play(id.kind_of?(Fixnum) ? integer2mix(id) : id, :start, beg)\n\
+ end");
+
+ /* "end" is a reserved word in Ruby, so we'll use "samps" instead */
+ XEN_EVAL_C_STRING("def play_and_wait(start, snd, chn = -1, syncd = false, samps = -1, pos = -1, stop_proc = false, out_chan = -1)\n\
+ play(snd.kind_of?(Fixnum) ? integer2sound(snd) : snd, :channel, chn, :with_sync, syncd, :wait, true, \n\
+ :start, start, :end, samps, :stop, stop_proc, :out_channel, out_chan, :edit_position, pos)\n\
+ end");
+
+ XEN_EVAL_C_STRING("def old_play(start, snd, chn = -1, syncd = false, samps = -1, pos = -1, stop_proc = false, out_chan = -1)\n\
+ play(snd.kind_of?(Fixnum) ? integer2sound(snd) : snd, :channel, chn, :with_sync, syncd, \n\
+ :start, start, :end, samps, :stop, stop_proc, :out_channel, out_chan, :edit_position, pos)\n\
+ end");
+
+ XEN_EVAL_C_STRING("def play_channel(start, dur, snd, chn = 0, pos = -1, stop_proc = false, out_chan = -1)\n\
+ play(snd.kind_of?(Fixnum) ? integer2sound(snd) : snd, :channel, chn, \n\
+ :start, start, :end, dur.kind_of?(Fixnum) ? (start + dur) : -1, \n\
+ :stop, stop_proc, :out_channel, out_chan, :edit_position, pos)\n\
+ end");
+#endif
+
+#if HAVE_FORTH
+ XEN_EVAL_C_STRING(": play-region <{ reg :optional wait #f stop-proc #f -- val }>\n\
+ reg fixnum? if reg integer->region else reg then :wait wait :stop stop-proc play ;");
+
+ XEN_EVAL_C_STRING(": play-selection <{ :optional wait #f stop-proc #f -- val }>\n\
+ selection :wait wait :stop stop-proc play ;");
+
+ XEN_EVAL_C_STRING(": play-mix <{ id :optional beg 0 -- }>\n\
+ id fixnum? if id integer->mix else id then :start beg play ;");
+
+ XEN_EVAL_C_STRING(": play-and-wait <{ start\n\
+ :optional snd #f chn -1 syncd #f end -1 pos 0 stop-proc #f -- val }>\n\
+ start string? if\n\
+ start snd :channel chn :end end :wait #t play\n\
+ else\n\
+ snd fixnum? if\n\
+ snd integer->sound\n\
+ else\n\
+ snd sound? if\n\
+ snd\n\
+ else\n\
+ selected-sound sounds car ||\n\
+ then\n\
+ then :channel chn :wait #t :with-sync syncd\n\
+ :start start :end end :stop stop-proc :edit-position pos play\n\
+ then ;");
+
+ XEN_EVAL_C_STRING(": old-play <{ :optional start 0 snd #f chn -1 syncd #f end -1 pos 0 stop-proc #f out-chan -1 -- val }>\n\
+ snd fixnum? if\n\
+ snd integer->sound\n\
+ else\n\
+ snd sound? if\n\
+ snd\n\
+ else\n\
+ selected-sound sounds car ||\n\
+ then\n\
+ then :channel chn :with-sync syncd :start start :end end :stop stop-proc\n\
+ :out-channel out-chan :edit-position pos play ;");
+
+ XEN_EVAL_C_STRING(": play-channel <{ :optional beg 0 dur #f snd #f chn -1 pos 0 stop-proc #f out-chan -1 -- val }>\n\
+ snd fixnum? if\n\
+ snd integer->sound\n\
+ else\n\
+ snd sound? if\n\
+ snd\n\
+ else\n\
+ selected-sound sounds car ||\n\
+ then\n\
+ then :channel chn :with-sync #f :start beg :end dur fixnum? if beg dur d+ else -1 then\n\
+ :stop stop-proc :out-channel out-chan :edit-position pos play ;");
+#endif
+
+#if HAVE_GUILE
+ XEN_EVAL_C_STRING("(use-modules (ice-9 optargs))");
+
+ XEN_EVAL_C_STRING("(define* (play-region reg #:optional (wait #f) (stop-func #f))\
+ (play (if (integer? reg) (integer->region reg) reg) #:wait wait #:stop stop-func))");
+
+ XEN_EVAL_C_STRING("(define* (play-selection #:optional (wait #f) (stop-func #f))\
+ (play (selection) #:wait wait #:stop stop-func))");
+
+ XEN_EVAL_C_STRING("(define* (play-mix id #:optional (beg 0))\
+ (play (if (integer? id) (integer->mix id) id) beg))");
+
+ XEN_EVAL_C_STRING("(define* (play-and-wait #:optional (start 0) (snd #f) (chn #f) (syncd #f) (end -1) (pos -1) (stop-proc #f))\
+ (if (string? start)\
+ (play start (or snd 0) #:end (or chn -1) #:wait #t) \
+ (play (if (integer? snd) (integer->sound snd)\
+ (if (sound? snd) snd\
+ (or (selected-sound) (car (sounds)))))\
+ #:channel (or chn -1) #:wait #t #:with-sync syncd #:start start #:end (or end -1) \
+ #:stop stop-proc #:edit-position pos)))");
+
+ XEN_EVAL_C_STRING("(define* (old-play #:optional (start 0) (snd #f) (chn #f) (syncd #f) (end -1) (pos -1) (stop-proc #f) (out-chan -1))\
+ (play (if (integer? snd) (integer->sound snd)\
+ (if (sound? snd) snd\
+ (or (selected-sound) (car (sounds)))))\
+ #:channel (or chn -1) #:with-sync syncd #:start start #:end (or end -1) \
+ #:stop stop-proc #:out-channel out-chan #:edit-position pos))");
+
+ XEN_EVAL_C_STRING("(define* (play-channel #:optional (beg 0) (dur #f) (snd #f) (chn #f) (pos -1) (stop-proc #f) (out-chan -1))\
+ (play (if (integer? snd) (integer->sound snd)\
+ (if (sound? snd) snd\
+ (or (selected-sound) (car (sounds)))))\
+ #:channel (or chn -1) #:with-sync #f #:start beg #:end (if dur (+ beg dur) -1) \
+ #:stop stop-proc #:out-channel out-chan #:edit-position pos))");
+#endif
+#endif
+
+ /* TODO: fixup play-* refs in all fs files */
+ /* SOMEDAY: extend rest of play args to other cases like play-region */
+
}
diff --git a/snd-edits.c b/snd-edits.c
index 735f119..b575cb4 100644
--- a/snd-edits.c
+++ b/snd-edits.c
@@ -7728,7 +7728,7 @@ char *sampler_to_string(snd_fd *fd)
desc = (char *)calloc(PRINT_BUFFER_SIZE, sizeof(char));
#endif
if (fd == NULL)
- sprintf(desc, "#<sampler: null>");
+ snprintf(desc, PRINT_BUFFER_SIZE, "#<sampler: null>");
else
{
const char *name = NULL;
@@ -8425,24 +8425,6 @@ static void finish_as_one_edit(chan_info *cp)
}
-#if HAVE_GUILE_DYNAMIC_WIND
-static void before_as_one_edit(void *context)
-{
- for_each_normal_chan(init_as_one_edit);
-}
-
-static XEN as_one_edit_body(void *context)
-{
- return(XEN_CALL_0_NO_CATCH((XEN)context));
-}
-
-static void after_as_one_edit(void *context)
-{
- for_each_normal_chan(finish_as_one_edit);
-}
-#endif
-
-
static XEN g_as_one_edit(XEN proc, XEN origin)
{
#define H_as_one_edit "(" S_as_one_edit " thunk :optional origin): evaluate thunk, collecting all edits into one from the edit history's point of view"
@@ -8466,13 +8448,7 @@ static XEN g_as_one_edit(XEN proc, XEN origin)
if (XEN_STRING_P(origin))
as_one_edit_origin = mus_strdup(XEN_TO_C_STRING(origin));
else as_one_edit_origin = NULL;
-#if HAVE_GUILE_DYNAMIC_WIND
- result = scm_internal_dynamic_wind((scm_t_guard)before_as_one_edit,
- (scm_t_inner)as_one_edit_body,
- (scm_t_guard)after_as_one_edit,
- (void *)proc,
- (void *)proc);
-#else
+
for_each_normal_chan(init_as_one_edit);
result = XEN_CALL_0_NO_CATCH(proc);
#if HAVE_S7
@@ -8482,7 +8458,6 @@ static XEN g_as_one_edit(XEN proc, XEN origin)
*/
#endif
for_each_normal_chan(finish_as_one_edit);
-#endif
if (as_one_edit_origin)
{
@@ -8547,6 +8522,7 @@ scale samples in the given sound/channel between beg and beg + num to norm."
pos = to_c_edit_position(cp, edpos, S_normalize_channel, 6);
samps = dur_to_samples(num, samp, cp, pos, 3, S_normalize_channel);
+ /* in order to normalize the data, we need its current maxamp */
#if HAVE_FORTH
if ((samp == 0) && (samps == cp->edits[pos]->samples))
{
@@ -8611,6 +8587,7 @@ mus_float_t channel_local_maxamp(chan_info *cp, mus_long_t beg, mus_long_t num,
string_to_minibuffer(cp->sound, _("maxamp check interrupted..."));
break;
}
+ j = 0;
}
}
}
diff --git a/snd-env.c b/snd-env.c
index 1fd9c57..84ac0cb 100644
--- a/snd-env.c
+++ b/snd-env.c
@@ -1349,6 +1349,7 @@ env *name_to_env(const char *str)
{
env *e;
int pos;
+ if (!str) return(NULL);
pos = find_env(str);
if (pos >= 0) return(copy_env(all_envs[pos]));
#if HAVE_SCHEME || HAVE_FORTH
diff --git a/snd-fft.c b/snd-fft.c
index 8a0dde6..892017d 100644
--- a/snd-fft.c
+++ b/snd-fft.c
@@ -1878,37 +1878,58 @@ void c_convolve(const char *fname, mus_float_t amp, int filec, mus_long_t filehd
}
-static XEN g_add_transform(XEN name, XEN xlabel, XEN lo, XEN hi, XEN proc)
+/* -------------------------------------------------------------------------------- */
+
+static void update_log_freq_fft_graph(chan_info *cp)
{
- #define H_add_transform "(" S_add_transform " name x-label low high func): add the transform func \
-to the transform lists; func should be a function of two arguments, the length of the transform \
-and a sampler to get the data, and should return a vct containing the transform results. \
-name is the transform's name, x-label is its x-axis label, and the relevant returned data \
-to be displayed goes from low to high (normally 0.0 to 1.0)"
+ if ((cp->active < CHANNEL_HAS_AXES) ||
+ (cp->cgx == NULL) ||
+ (cp->sounds == NULL) ||
+ (cp->sounds[cp->sound_ctr] == NULL) ||
+ (!(cp->graph_transform_p)) ||
+ (!(cp->fft_log_frequency)) ||
+ (chan_fft_in_progress(cp)))
+ return;
+ calculate_fft(cp);
+}
- char *errmsg;
- errmsg = procedure_ok(proc, 2, S_add_transform, "transform", 5);
- if (errmsg)
- {
- XEN errstr;
- errstr = C_TO_XEN_STRING(errmsg);
- free(errmsg);
- return(snd_bad_arity_error(S_add_transform, errstr, proc));
- }
-#if HAVE_SCHEME
- if ((mus_xen_p(proc)) || (sound_data_p(proc))) /* happens a lot in snd-test.scm, so add a check */
- XEN_WRONG_TYPE_ARG_ERROR(S_add_transform, XEN_ARG_5, proc, "a procedure");
-#endif
- XEN_ASSERT_TYPE(XEN_STRING_P(name), name, XEN_ARG_1, S_add_transform, "a string");
- XEN_ASSERT_TYPE(XEN_STRING_P(xlabel), xlabel, XEN_ARG_2, S_add_transform, "a string");
- XEN_ASSERT_TYPE(XEN_NUMBER_P(lo), lo, XEN_ARG_3, S_add_transform, "a number");
- XEN_ASSERT_TYPE(XEN_NUMBER_P(hi), hi, XEN_ARG_4, S_add_transform, "a number");
- XEN_ASSERT_TYPE(XEN_PROCEDURE_P(proc), proc, XEN_ARG_5, S_add_transform, "a procedure");
- return(C_TO_XEN_INT(add_transform(XEN_TO_C_STRING(name),
- XEN_TO_C_STRING(xlabel),
- XEN_TO_C_DOUBLE(lo),
- XEN_TO_C_DOUBLE(hi),
- proc)));
+
+void set_log_freq_start(mus_float_t base)
+{
+ in_set_log_freq_start(base);
+ for_each_chan(update_log_freq_fft_graph);
+}
+
+
+static XEN g_log_freq_start(void) {return(C_TO_XEN_DOUBLE(log_freq_start(ss)));}
+
+static XEN g_set_log_freq_start(XEN val)
+{
+ mus_float_t base;
+ #define H_log_freq_start "(" S_log_freq_start "): log freq base (default: 25.0)"
+
+ XEN_ASSERT_TYPE(XEN_NUMBER_P(val), val, XEN_ONLY_ARG, S_setB S_log_freq_start, "a number");
+ base = XEN_TO_C_DOUBLE(val);
+ if (base < 0.0)
+ XEN_OUT_OF_RANGE_ERROR(S_log_freq_start, XEN_ONLY_ARG, val, "a number >= 0.0");
+ if (base > 100000.0)
+ XEN_OUT_OF_RANGE_ERROR(S_log_freq_start, XEN_ONLY_ARG, val, "a number < srate/2");
+
+ set_log_freq_start(base);
+ reflect_log_freq_start_in_transform_dialog();
+
+ return(C_TO_XEN_DOUBLE(log_freq_start(ss)));
+}
+
+
+static XEN g_show_selection_transform(void) {return(C_TO_XEN_BOOLEAN(show_selection_transform(ss)));}
+
+static XEN g_set_show_selection_transform(XEN val)
+{
+ #define H_show_selection_transform "(" S_show_selection_transform "): " PROC_TRUE " if transform display reflects selection, not time-domain window"
+ XEN_ASSERT_TYPE(XEN_BOOLEAN_P(val), val, XEN_ONLY_ARG, S_setB S_show_selection_transform, "a boolean");
+ set_show_selection_transform(XEN_TO_C_BOOLEAN(val));
+ return(C_TO_XEN_BOOLEAN(show_selection_transform(ss)));
}
@@ -1948,6 +1969,7 @@ return the current transform sample at bin and slice in snd channel chn (assumin
XEN_ASSERT_TYPE(XEN_INT64_T_IF_BOUND_P(bin), bin, XEN_ARG_1, S_transform_sample, "an integer");
XEN_ASSERT_TYPE(XEN_INT64_T_IF_BOUND_P(slice), slice, XEN_ARG_2, S_transform_sample, "an integer");
+
ASSERT_CHANNEL(S_transform_sample, snd, chn_n, 3);
cp = get_cp(snd, chn_n, S_transform_sample);
if (!cp) return(XEN_FALSE);
@@ -1969,8 +1991,10 @@ return the current transform sample at bin and slice in snd channel chn (assumin
{
mus_long_t fslice;
sono_info *si;
+
fslice = XEN_TO_C_INT64_T_OR_ELSE(slice, 0);
si = cp->sonogram_data;
+
if ((si) &&
(fbin < si->target_bins) &&
(fslice < si->active_slices))
@@ -2060,10 +2084,182 @@ return a vct (obj if it's passed), with the current transform data from snd's ch
}
+
+/* ---------------------------------------- transform objects ---------------------------------------- */
+
+typedef struct {
+ int n;
+} xen_transform;
+
+
+#define XEN_TO_XEN_TRANSFORM(arg) ((xen_transform *)XEN_OBJECT_REF(arg))
+
+int xen_transform_to_int(XEN n)
+{
+ xen_transform *col;
+ col = XEN_TO_XEN_TRANSFORM(n);
+ return(col->n);
+}
+
+
+static XEN_OBJECT_TYPE xen_transform_tag;
+
+bool xen_transform_p(XEN obj)
+{
+ return(XEN_OBJECT_TYPE_P(obj, xen_transform_tag));
+}
+
+
+static void xen_transform_free(xen_transform *v) {if (v) free(v);}
+
+XEN_MAKE_OBJECT_FREE_PROCEDURE(xen_transform, free_xen_transform, xen_transform_free)
+
+
+static char *xen_transform_to_string(xen_transform *v)
+{
+ #define XEN_TRANSFORM_PRINT_BUFFER_SIZE 64
+ char *buf;
+ if (v == NULL) return(NULL);
+ buf = (char *)calloc(XEN_TRANSFORM_PRINT_BUFFER_SIZE, sizeof(char));
+ snprintf(buf, XEN_TRANSFORM_PRINT_BUFFER_SIZE, "#<transform %s>", transform_name(v->n));
+ return(buf);
+}
+
+XEN_MAKE_OBJECT_PRINT_PROCEDURE(xen_transform, print_xen_transform, xen_transform_to_string)
+
+
+#if HAVE_FORTH || HAVE_RUBY
+static XEN g_xen_transform_to_string(XEN obj)
+{
+ char *vstr;
+ XEN result;
+ #define S_xen_transform_to_string "transform->string"
+
+ XEN_ASSERT_TYPE(XEN_TRANSFORM_P(obj), obj, XEN_ONLY_ARG, S_xen_transform_to_string, "a transform");
+
+ vstr = xen_transform_to_string(XEN_TO_XEN_TRANSFORM(obj));
+ result = C_TO_XEN_STRING(vstr);
+ free(vstr);
+ return(result);
+}
+#endif
+
+
+#if (!HAVE_S7)
+static bool xen_transform_equalp(xen_transform *v1, xen_transform *v2)
+{
+ return((v1 == v2) ||
+ (v1->n == v2->n));
+}
+
+static XEN equalp_xen_transform(XEN obj1, XEN obj2)
+{
+ if ((!(XEN_TRANSFORM_P(obj1))) || (!(XEN_TRANSFORM_P(obj2)))) return(XEN_FALSE);
+ return(xen_return_first(C_TO_XEN_BOOLEAN(xen_transform_equalp(XEN_TO_XEN_TRANSFORM(obj1), XEN_TO_XEN_TRANSFORM(obj2))), obj1, obj2));
+}
+#endif
+
+
+static xen_transform *xen_transform_make(int n)
+{
+ xen_transform *new_v;
+ new_v = (xen_transform *)malloc(sizeof(xen_transform));
+ new_v->n = n;
+ return(new_v);
+}
+
+
+XEN new_xen_transform(int n)
+{
+ xen_transform *mx;
+ if (n < 0)
+ return(XEN_FALSE);
+
+ mx = xen_transform_make(n);
+ XEN_MAKE_AND_RETURN_OBJECT(xen_transform_tag, mx, 0, free_xen_transform);
+}
+
+#define C_INT_TO_XEN_TRANSFORM(Val) new_xen_transform(Val)
+
+
+#if HAVE_S7
+static bool s7_xen_transform_equalp(void *obj1, void *obj2)
+{
+ return((obj1 == obj2) ||
+ (((xen_transform *)obj1)->n == ((xen_transform *)obj2)->n));
+}
+
+
+static XEN s7_xen_transform_length(s7_scheme *sc, XEN obj)
+{
+ return(C_TO_XEN_INT(transform_size(ss)));
+}
+#endif
+
+
+static void init_xen_transform(void)
+{
+#if HAVE_S7
+ xen_transform_tag = XEN_MAKE_OBJECT_TYPE("<transform>", print_xen_transform, free_xen_transform, s7_xen_transform_equalp,
+ NULL, NULL, NULL, s7_xen_transform_length, NULL, NULL);
+#else
+#if HAVE_RUBY
+ xen_transform_tag = XEN_MAKE_OBJECT_TYPE("XenTransform", sizeof(xen_transform));
+#else
+ xen_transform_tag = XEN_MAKE_OBJECT_TYPE("Transform", sizeof(xen_transform));
+#endif
+#endif
+
+#if HAVE_GUILE
+ scm_set_smob_print(xen_transform_tag, print_xen_transform);
+ scm_set_smob_free(xen_transform_tag, free_xen_transform);
+ scm_set_smob_equalp(xen_transform_tag, equalp_xen_transform);
+#endif
+
+#if HAVE_FORTH
+ fth_set_object_inspect(xen_transform_tag, print_xen_transform);
+ fth_set_object_dump(xen_transform_tag, g_xen_transform_to_string);
+ fth_set_object_equal(xen_transform_tag, equalp_xen_transform);
+ fth_set_object_free(xen_transform_tag, free_xen_transform);
+#endif
+
+#if HAVE_RUBY
+ rb_define_method(xen_transform_tag, "to_s", XEN_PROCEDURE_CAST print_xen_transform, 0);
+ rb_define_method(xen_transform_tag, "eql?", XEN_PROCEDURE_CAST equalp_xen_transform, 1);
+ rb_define_method(xen_transform_tag, "==", XEN_PROCEDURE_CAST equalp_xen_transform, 1);
+ rb_define_method(xen_transform_tag, "to_str", XEN_PROCEDURE_CAST g_xen_transform_to_string, 0);
+#endif
+}
+
+
+static XEN g_integer_to_transform(XEN n)
+{
+ #define H_integer_to_transform "(" S_integer_to_transform " n) returns a transform object corresponding to the given integer"
+ XEN_ASSERT_TYPE(XEN_INTEGER_P(n), n, XEN_ONLY_ARG, S_integer_to_transform, "an integer");
+ return(new_xen_transform(XEN_TO_C_INT(n)));
+}
+
+
+static XEN g_transform_to_integer(XEN n)
+{
+ #define H_transform_to_integer "(" S_transform_to_integer " id) returns the integer corresponding to the given transform"
+ XEN_ASSERT_TYPE(XEN_TRANSFORM_P(n), n, XEN_ONLY_ARG, S_transform_to_integer, "a transform");
+ return(C_TO_XEN_INT(xen_transform_to_int(n)));
+}
+
+
+static XEN g_transform_p(XEN type)
+{
+ #define H_transform_p "(" S_transform_p " obj): " PROC_TRUE " if 'obj' is a transform object."
+ return(C_TO_XEN_BOOLEAN(XEN_TRANSFORM_P(type) &&
+ transform_p(XEN_TRANSFORM_TO_C_INT(type))));
+}
+
+
static XEN g_snd_transform(XEN type, XEN data, XEN hint)
{
#define H_snd_transform "(snd-transform type data choice) calls whatever FFT is being used by the \
-display. 'type': fourier (0), wavelet (1), etc (snd-0.h); 'data' is a vct. In the wavelet case, \
+display. 'type' is a transform object such as " S_fourier_transform "; 'data' is a vct. In the wavelet case, \
'choice' is the wavelet to use."
int trf, hnt;
@@ -2071,12 +2267,13 @@ display. 'type': fourier (0), wavelet (1), etc (snd-0.h); 'data' is a vct. In t
vct *v;
mus_float_t *dat;
- XEN_ASSERT_TYPE(XEN_INTEGER_P(type), type, XEN_ARG_1, "snd-transform", "an integer");
+ XEN_ASSERT_TYPE(XEN_TRANSFORM_P(type), type, XEN_ARG_1, "snd-transform", "a transform object");
XEN_ASSERT_TYPE(MUS_VCT_P(data), data, XEN_ARG_2, "snd-transform", "a vct");
- trf = XEN_TO_C_INT(type);
+ trf = XEN_TRANSFORM_TO_C_INT(type);
if ((trf < 0) || (trf > HAAR))
XEN_OUT_OF_RANGE_ERROR("snd-transform", 1, type, "~A: invalid transform choice");
+
v = XEN_TO_VCT(data);
switch (trf)
@@ -2121,11 +2318,40 @@ display. 'type': fourier (0), wavelet (1), etc (snd-0.h); 'data' is a vct. In t
}
-static XEN g_transform_p(XEN type)
+static XEN g_add_transform(XEN name, XEN xlabel, XEN lo, XEN hi, XEN proc)
{
- #define H_transform_p "(" S_transform_p " type): " PROC_TRUE " if 'type' is a legit transform type."
- XEN_ASSERT_TYPE(XEN_INTEGER_P(type), type, XEN_ONLY_ARG, S_transform_p, "an integer");
- return(C_TO_XEN_BOOLEAN(transform_p(XEN_TO_C_INT(type))));
+ #define H_add_transform "(" S_add_transform " name x-label low high func): add the transform func \
+to the transform lists; func should be a function of two arguments, the length of the transform \
+and a sampler to get the data, and should return a vct containing the transform results. \
+name is the transform's name, x-label is its x-axis label, and the relevant returned data \
+to be displayed goes from low to high (normally 0.0 to 1.0). " S_add_transform " returns the new transform object."
+
+ char *errmsg;
+ errmsg = procedure_ok(proc, 2, S_add_transform, "transform", 5);
+ if (errmsg)
+ {
+ XEN errstr;
+ errstr = C_TO_XEN_STRING(errmsg);
+ free(errmsg);
+ return(snd_bad_arity_error(S_add_transform, errstr, proc));
+ }
+
+#if HAVE_SCHEME
+ if ((mus_xen_p(proc)) || (sound_data_p(proc))) /* happens a lot in snd-test.scm, so add a check */
+ XEN_WRONG_TYPE_ARG_ERROR(S_add_transform, XEN_ARG_5, proc, "a procedure");
+#endif
+
+ XEN_ASSERT_TYPE(XEN_STRING_P(name), name, XEN_ARG_1, S_add_transform, "a string");
+ XEN_ASSERT_TYPE(XEN_STRING_P(xlabel), xlabel, XEN_ARG_2, S_add_transform, "a string");
+ XEN_ASSERT_TYPE(XEN_NUMBER_P(lo), lo, XEN_ARG_3, S_add_transform, "a number");
+ XEN_ASSERT_TYPE(XEN_NUMBER_P(hi), hi, XEN_ARG_4, S_add_transform, "a number");
+ XEN_ASSERT_TYPE(XEN_PROCEDURE_P(proc), proc, XEN_ARG_5, S_add_transform, "a procedure");
+
+ return(C_INT_TO_XEN_TRANSFORM(add_transform(XEN_TO_C_STRING(name),
+ XEN_TO_C_STRING(xlabel),
+ XEN_TO_C_DOUBLE(lo),
+ XEN_TO_C_DOUBLE(hi),
+ proc)));
}
@@ -2141,11 +2367,14 @@ static XEN g_delete_transform(XEN type)
{
int typ;
added_transform *af;
- #define H_delete_transform "(" S_delete_transform " type) deletes the specified transform if it was created via " S_add_transform "."
- XEN_ASSERT_TYPE(XEN_INTEGER_P(type), type, XEN_ONLY_ARG, S_delete_transform, "an integer");
- typ = XEN_TO_C_INT(type);
+ #define H_delete_transform "(" S_delete_transform " obj) deletes the specified transform if it was created via " S_add_transform "."
+
+ XEN_ASSERT_TYPE(XEN_TRANSFORM_P(type), type, XEN_ONLY_ARG, S_delete_transform, "a transform");
+
+ typ = XEN_TRANSFORM_TO_C_INT(type);
if ((typ < NUM_BUILTIN_TRANSFORM_TYPES) || (!transform_p(typ)))
XEN_OUT_OF_RANGE_ERROR(S_delete_transform, XEN_ONLY_ARG, type, "an integer (an active added transform)");
+
af = type_to_transform(typ);
if (af)
{
@@ -2165,57 +2394,6 @@ static XEN g_delete_transform(XEN type)
}
-static void update_log_freq_fft_graph(chan_info *cp)
-{
- if ((cp->active < CHANNEL_HAS_AXES) ||
- (cp->cgx == NULL) ||
- (cp->sounds == NULL) ||
- (cp->sounds[cp->sound_ctr] == NULL) ||
- (!(cp->graph_transform_p)) ||
- (!(cp->fft_log_frequency)) ||
- (chan_fft_in_progress(cp)))
- return;
- calculate_fft(cp);
-}
-
-
-void set_log_freq_start(mus_float_t base)
-{
- in_set_log_freq_start(base);
- for_each_chan(update_log_freq_fft_graph);
-}
-
-
-static XEN g_log_freq_start(void) {return(C_TO_XEN_DOUBLE(log_freq_start(ss)));}
-
-static XEN g_set_log_freq_start(XEN val)
-{
- mus_float_t base;
- #define H_log_freq_start "(" S_log_freq_start "): log freq base (default: 25.0)"
- XEN_ASSERT_TYPE(XEN_NUMBER_P(val), val, XEN_ONLY_ARG, S_setB S_log_freq_start, "a number");
- base = XEN_TO_C_DOUBLE(val);
- if (base < 0.0)
- XEN_OUT_OF_RANGE_ERROR(S_log_freq_start, XEN_ONLY_ARG, val, "a number >= 0.0");
- if (base > 100000.0)
- XEN_OUT_OF_RANGE_ERROR(S_log_freq_start, XEN_ONLY_ARG, val, "a number < srate/2");
- set_log_freq_start(base);
- reflect_log_freq_start_in_transform_dialog();
- return(C_TO_XEN_DOUBLE(log_freq_start(ss)));
-}
-
-
-static XEN g_show_selection_transform(void) {return(C_TO_XEN_BOOLEAN(show_selection_transform(ss)));}
-
-static XEN g_set_show_selection_transform(XEN val)
-{
- #define H_show_selection_transform "(" S_show_selection_transform "): " PROC_TRUE " if transform display reflects selection, not time-domain window"
- XEN_ASSERT_TYPE(XEN_BOOLEAN_P(val), val, XEN_ONLY_ARG, S_setB S_show_selection_transform, "a boolean");
- set_show_selection_transform(XEN_TO_C_BOOLEAN(val));
- return(C_TO_XEN_BOOLEAN(show_selection_transform(ss)));
-}
-
-
-
#ifdef XEN_ARGIFY_1
XEN_ARGIFY_2(g_transform_frames_w, g_transform_frames)
XEN_ARGIFY_4(g_transform_sample_w, g_transform_sample)
@@ -2228,6 +2406,8 @@ XEN_NARGIFY_0(g_log_freq_start_w, g_log_freq_start)
XEN_NARGIFY_1(g_set_log_freq_start_w, g_set_log_freq_start)
XEN_NARGIFY_0(g_show_selection_transform_w, g_show_selection_transform)
XEN_NARGIFY_1(g_set_show_selection_transform_w, g_set_show_selection_transform)
+XEN_NARGIFY_1(g_integer_to_transform_w, g_integer_to_transform)
+XEN_NARGIFY_1(g_transform_to_integer_w, g_transform_to_integer)
#else
#define g_transform_frames_w g_transform_frames
#define g_transform_sample_w g_transform_sample
@@ -2240,8 +2420,13 @@ XEN_NARGIFY_1(g_set_show_selection_transform_w, g_set_show_selection_transform)
#define g_set_log_freq_start_w g_set_log_freq_start
#define g_show_selection_transform_w g_show_selection_transform
#define g_set_show_selection_transform_w g_set_show_selection_transform
+#define g_integer_to_transform_w g_integer_to_transform
+#define g_transform_to_integer_w g_transform_to_integer
#endif
+
+static XEN transform_temp[6]; /* static for Ruby's sake */
+
void g_init_fft(void)
{
#if HAVE_SCHEME
@@ -2257,10 +2442,12 @@ of a moving mark:\n\
(set! transform-position (" S_mark_sample " id))\n\
(" S_update_transform_graph ")))"
#endif
+
#if HAVE_RUBY
#define H_before_transform_hook S_before_transform_hook " (snd chn): called just before a transform is calculated. If it returns \
an integer, it is used as the starting point of the transform."
#endif
+
#if HAVE_FORTH
#define H_before_transform_hook S_before_transform_hook " (snd chn): called just before a transform is calculated. If it returns \
an integer, it is used as the starting point of the transform. The following \
@@ -2274,21 +2461,16 @@ of a moving mark:\n\
; add-hook!"
#endif
- before_transform_hook = XEN_DEFINE_HOOK(S_before_transform_hook, 2, H_before_transform_hook); /* args = snd chn */
+ init_xen_transform();
- #define H_fourier_transform S_transform_type " value for Fourier transform (sinusoid basis)"
- #define H_wavelet_transform S_transform_type " value for wavelet transform (" S_wavelet_type " chooses wavelet)"
- #define H_haar_transform S_transform_type " value for Haar transform"
- #define H_cepstrum S_transform_type " value for cepstrum (log of power spectrum)"
- #define H_walsh_transform S_transform_type " value for Walsh transform (step function basis)"
- #define H_autocorrelation S_transform_type " value for autocorrelation (ifft of spectrum)"
+ before_transform_hook = XEN_DEFINE_HOOK(S_before_transform_hook, 2, H_before_transform_hook); /* args = snd chn */
- XEN_DEFINE_CONSTANT(S_fourier_transform, FOURIER, H_fourier_transform);
- XEN_DEFINE_CONSTANT(S_wavelet_transform, WAVELET, H_wavelet_transform);
- XEN_DEFINE_CONSTANT(S_haar_transform, HAAR, H_haar_transform);
- XEN_DEFINE_CONSTANT(S_cepstrum, CEPSTRUM, H_cepstrum);
- XEN_DEFINE_CONSTANT(S_walsh_transform, WALSH, H_walsh_transform);
- XEN_DEFINE_CONSTANT(S_autocorrelation, AUTOCORRELATION, H_autocorrelation);
+ XEN_DEFINE_VARIABLE(S_fourier_transform, transform_temp[0], C_INT_TO_XEN_TRANSFORM(FOURIER));
+ XEN_DEFINE_VARIABLE(S_wavelet_transform, transform_temp[1], C_INT_TO_XEN_TRANSFORM(WAVELET));
+ XEN_DEFINE_VARIABLE(S_haar_transform, transform_temp[2], C_INT_TO_XEN_TRANSFORM(HAAR));
+ XEN_DEFINE_VARIABLE(S_cepstrum, transform_temp[3], C_INT_TO_XEN_TRANSFORM(CEPSTRUM));
+ XEN_DEFINE_VARIABLE(S_walsh_transform, transform_temp[4], C_INT_TO_XEN_TRANSFORM(WALSH));
+ XEN_DEFINE_VARIABLE(S_autocorrelation, transform_temp[5], C_INT_TO_XEN_TRANSFORM(AUTOCORRELATION));
#define H_dont_normalize "The value for " S_transform_normalization " that causes the transform to display raw data"
#define H_normalize_by_channel "The value for " S_transform_normalization " that causes the transform to be normalized in each channel independently"
@@ -2310,8 +2492,12 @@ of a moving mark:\n\
XEN_DEFINE_PROCEDURE_WITH_SETTER(S_log_freq_start, g_log_freq_start_w, H_log_freq_start,
S_setB S_log_freq_start, g_set_log_freq_start_w, 0, 0, 1, 0);
+
XEN_DEFINE_PROCEDURE_WITH_SETTER(S_show_selection_transform, g_show_selection_transform_w, H_show_selection_transform,
S_setB S_show_selection_transform, g_set_show_selection_transform_w, 0, 0, 1, 0);
+
+ XEN_DEFINE_PROCEDURE(S_integer_to_transform, g_integer_to_transform_w, 1, 0, 0, H_integer_to_transform);
+ XEN_DEFINE_PROCEDURE(S_transform_to_integer, g_transform_to_integer_w, 1, 0, 0, H_transform_to_integer);
}
/* display by wavelength is not so useful in the context of sound because
diff --git a/snd-file.c b/snd-file.c
index b0a0b57..0904aaf 100644
--- a/snd-file.c
+++ b/snd-file.c
@@ -761,7 +761,7 @@ bool sound_file_p(const char *name)
{
int i, dot_loc = -1, len;
if (!name) return(false);
- len = strlen(name);
+ len = mus_strlen(name);
for (i = 0; i < len; i++)
if (name[i] == '.')
dot_loc = i;
@@ -772,7 +772,7 @@ bool sound_file_p(const char *name)
const char *ext;
ext = (const char *)(name + dot_loc + 1);
for (i = 0; i < sound_file_extensions_end; i++)
- if (strcmp(ext, sound_file_extensions[i]) == 0)
+ if (mus_strcmp(ext, sound_file_extensions[i]))
return(true);
}
return(false);
@@ -1452,34 +1452,6 @@ char *output_name(const char *current_name)
}
-#if HAVE_GUILE_DYNAMIC_WIND
-/* cleanup even if error in file lookup process */
-typedef struct {
- char *filename;
- read_only_t read_only;
- file_info *hdr;
-} open_file_context;
-
-static snd_info *open_file_sp = NULL;
-static void before_open_file(void *context) {}
-
-
-static XEN open_file_body(void *context)
-{
- open_file_context *sc = (open_file_context *)context;
- open_file_sp = add_sound_window(sc->filename, sc->read_only, sc->hdr); /* snd-xsnd.c -> make_file_info (in this file) */
- return(XEN_FALSE);
-}
-
-
-static void after_open_file(void *context)
-{
- open_file_context *sc = (open_file_context *)context;
- free(sc);
-}
-#endif
-
-
snd_info *finish_opening_sound(snd_info *sp, bool selected)
{
if (sp)
@@ -1488,7 +1460,7 @@ snd_info *finish_opening_sound(snd_info *sp, bool selected)
XEN_VARIABLE_SET(S_snd_opened_sound, C_INT_TO_XEN_SOUND(sp->index));
#endif
-#if HAVE_GUILE || HAVE_S7
+#if HAVE_SCHEME
XEN_VARIABLE_SET(snd_opened_sound, C_INT_TO_XEN_SOUND(sp->index));
#endif
@@ -1566,23 +1538,8 @@ snd_info *snd_open_file(const char *filename, read_only_t read_only)
return(NULL);
}
-#if HAVE_GUILE_DYNAMIC_WIND
- {
- open_file_context *ofc;
- ofc = (open_file_context *)calloc(1, sizeof(open_file_context));
- ofc->filename = mcf;
- ofc->read_only = read_only;
- ofc->hdr = hdr;
- scm_internal_dynamic_wind((scm_t_guard)before_open_file,
- (scm_t_inner)open_file_body,
- (scm_t_guard)after_open_file,
- (void *)ofc,
- (void *)ofc);
- sp = open_file_sp; /* has to be global since we free sc during the unwind */
- }
-#else
sp = add_sound_window(mcf, read_only, hdr);
-#endif
+
if (mcf) {free(mcf); mcf = NULL;}
return(finish_opening_sound(sp, FILE_SELECTED));
}
@@ -3587,11 +3544,7 @@ void view_files_reflect_sort_items(void)
set_menu_label(vdat->sort_items[j],
XEN_TO_C_STRING(XEN_CAR(ref)));
{
-#if (SIZEOF_INT == SIZEOF_VOID_P)
- int data;
-#else
- long data;
-#endif
+ pointer_or_int_t data;
data = i + SORT_XEN;
set_user_data(G_OBJECT(vdat->sort_items[j]),
(gpointer)data); /* this is an index into the file_sorters list, not the widget list */
diff --git a/snd-forth-docs.fs b/snd-forth-docs.fs
new file mode 100644
index 0000000..ccfce9f
--- /dev/null
+++ b/snd-forth-docs.fs
@@ -0,0 +1,324 @@
+\ snd-forth-docs.fs -- examples from sndclm.html
+
+\ Usage: snd-forth-nogui -noinit snd-forth-docs.fs
+
+require clm
+require examp
+
+\ OSCIL
+lambda: ( -- )
+ 440.0 make-oscil { gen }
+ 44100 0 do
+ i gen 0 0 oscil f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ ENV
+lambda: ( -- )
+ 440.0 make-oscil { gen }
+ '( 0 0 0.01 1 0.25 0.1 0.5 0.01 1 0 )
+ :scaler 0.5 :length 44100 make-env { ampf }
+ 44100 0 do
+ i gen 0 0 oscil ampf env f* *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ TABLE-LOOKUP
+lambda: ( -- )
+ 440.0 :wave '( 1 0.5 2 0.5 ) #f #f partials->wave make-table-lookup { gen }
+ 44100 0 do
+ i gen 0 table-lookup f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ POLYWAVE
+lambda: ( -- )
+ 440.0 :partials '( 1 0.5 2 0.5 ) make-polywave { gen }
+ 44100 0 do
+ i gen 0 polywave f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ TRIANBLE-WAVE
+lambda: ( -- )
+ 440.0 make-triangle-wave { gen }
+ 44100 0 do
+ i gen 0 triangle-wave f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ NCOS
+lambda: ( -- )
+ 440.0 10 make-ncos { gen }
+ 44100 0 do
+ i gen 0 ncos f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ NRXYCOS
+lambda: ( -- )
+ 440.0 :n 10 make-nrxycos { gen }
+ 44100 0 ?do
+ i gen 0 nrxycos f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ SSB-AM
+lambda: ( -- )
+ 440.0 20 make-ssb-am { shifter }
+ 440.0 make-oscil { osc }
+ 44100 0 ?do
+ i shifter osc 0 0 oscil 0 ssb-am f2/ *output* outa drop
+ loop
+; :play #t :statistics #t :srate 44100 with-sound drop
+
+\ WAVE-TRAIN
+lambda: ( -- )
+ 400 10 make-ncos { g }
+ g -0.5 pi f* set-mus-phase drop
+ 64 make-vct map! g 0 ncos end-map { v }
+ 440.0 :wave v make-wave-train { gen }
+ 44100 0 do
+ i gen 0 wave-train f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ RAND
+lambda: ( -- )
+ 5.0 220.0 hz->radians make-rand { ran1 }
+ 5.0 330.0 hz->radians make-rand-interp { ran2 }
+ 440.0 make-oscil { osc1 }
+ 1320.0 make-oscil { osc2 }
+ 88200 0 do
+ i osc1 ran1 0 rand 0 oscil f2/ *output* outa drop
+ i osc2 ran2 0 rand-interp 0 oscil f2/ *output* outb drop
+ loop
+; :channels 2 :play #t with-sound drop
+
+\ TWO-POLE
+lambda: ( -- )
+ 1000.0 0.999 make-two-pole { flt }
+ 10000.0 0.002 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand two-pole f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ FIRMANT
+lambda: ( -- )
+ 1000.0 0.999 make-firmant { flt }
+ 10000.0 5.0 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand #f firmant f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ IIR-FILTER
+lambda: ( -- )
+ 3 vct( 0.0 -1.978 0.998 ) make-iir-filter { flt }
+ 10000.0 0.002 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand iir-filter f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ DELAY
+lambda: ( -- )
+ 0.5 seconds->samples make-delay { dly }
+ 440.0 make-oscil { osc1 }
+ 660.0 make-oscil { osc2 }
+ 44100 0 do
+ i
+ osc1 0 0 oscil
+ dly osc2 0 0 oscil 0 delay f+
+ f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ COMB
+lambda: ( -- )
+ 0.4 0.4 seconds->samples make-comb { cmb }
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 2 1 3 0 ) :length 4410 make-env { ampf }
+ 88200 0 do
+ i
+ cmb ( gen )
+ ampf env osc 0 0 oscil f* ( val )
+ 0 ( pm )
+ comb f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ ALL-PASS
+lambda: ( -- )
+ -0.4 0.4 0.4 seconds->samples make-all-pass { alp }
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 2 1 3 0 ) :length 4410 make-env { ampf }
+ 88200 0 do
+ i
+ alp ( gen )
+ ampf env osc 0 0 oscil f* ( val )
+ 0 ( pm )
+ all-pass f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ MOVING-AVERAGE
+lambda: ( -- )
+ 4410 make-moving-average { avg }
+ 440.0 make-oscil { osc }
+ 44100 4410 - { stop }
+ 0.0 { val }
+ stop 0 do
+ osc 0 0 oscil to val
+ i avg val fabs moving-average val f* *output* outa drop
+ loop
+ 44100 stop do
+ i avg 0.0 moving-average osc 0 0 oscil f* *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ SRC1
+lambda: ( -- )
+ "oboe.snd" make-readin { rd }
+ rd 0.5 make-src { sr }
+ "oboe.snd" mus-sound-frames 2* ( len ) 0 do
+ i sr 0 #f src *output* outa drop
+ loop
+; :play #t :srate 22050 with-sound drop
+
+\ SRC2
+: make-src-proc { osc -- prc; dir self -- val }
+ 1 proc-create osc , ( prc )
+ does> { dir self -- val }
+ self @ ( osc ) 0 0 oscil
+;
+
+lambda: ( -- )
+ 440.0 make-oscil { osc }
+ osc make-src-proc { prc }
+ :srate 2.0 make-src { sr }
+ 44100 0 do
+ i sr 0 prc src *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ CONVOLVE1
+lambda: ( -- )
+ "pistol.snd" make-readin ( rd )
+ "oboe.snd" file->vct ( v ) make-convolve { cnv }
+ 88200 0 do
+ i cnv #f convolve 0.25 f* *output* outa drop
+ loop
+; :play #t :statistics #t with-sound drop
+
+\ CONVOLVE2
+lambda: ( -- )
+ "oboe.snd" "pistol.snd" 0.5 "convolved.snd" convolve-files { tempfile }
+ tempfile make-readin { reader }
+ tempfile mus-sound-frames ( len ) 0 do
+ i reader readin *output* outa drop
+ loop
+ tempfile file-delete
+; :play #t with-sound drop
+
+\ GRANULATE1
+lambda: ( -- )
+ "oboe.snd" make-readin 2.0 make-granulate { grn }
+ 44100 0 do
+ i grn #f #f granulate *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ GRANULATE2
+: make-granulate-proc { osc sweep -- prc; dir self -- val }
+ 1 proc-create osc , sweep , ( prc )
+ does> { dir self -- val }
+ self @ ( osc ) self cell+ @ ( sweep ) env 0 oscil 0.2 f*
+;
+
+lambda: ( -- )
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 ) :scaler 440.0 hz->radians :length 44100 make-env { sweep }
+ osc sweep make-granulate-proc :expansion 2.0 :length 0.5 make-granulate { grn }
+ 88200 0 do
+ i grn #f #f granulate *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ PHASE-VOCODER1
+lambda: ( -- )
+ "oboe.snd" make-readin :pitch 2.0 make-phase-vocoder { pv }
+ 44100 0 do
+ i pv #f #f #f #f phase-vocoder *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ PHASE-VOCODER2
+lambda: ( -- )
+ "oboe.snd" make-readin :interp 256 make-phase-vocoder { pv }
+ "oboe.snd" mus-sound-frames 2* ( samps ) 0 do
+ i pv #f #f #f #f phase-vocoder *output* outa drop
+ loop
+; :play #t :srate 22050 with-sound drop
+
+\ ASYMMETRIC-FM
+lambda: ( -- )
+ 440.0 0.0 0.9 0.5 make-asymmetric-fm { fm }
+ 44100 0 do
+ i fm 1.0 0 asymmetric-fm f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ FILE->FRAME->FILE
+lambda: ( -- )
+ "stereo.snd" make-file->frame { input }
+ 2 make-frame { frm }
+ "stereo.snd" mus-sound-frames ( len ) 0 do
+ input i frm file->frame ( frm ) 1 frame-ref ( val1 )
+ frm 0 frame-ref ( val0 ) frm 1 rot frame-set! drop
+ ( val1 ) frm 0 rot frame-set! drop
+ *output* i frm frame->file drop
+ loop
+; :channels 2 :play #t with-sound drop
+
+\ READIN
+lambda: ( -- )
+ "oboe.snd" make-readin { reader }
+ 44100 0 do
+ i reader readin f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+\ IN-OUT-ANY
+lambda: ( -- )
+ "oboe.snd" make-file->sample { infile }
+ 44100 0 do
+ i i 0 infile in-any 0 *output* out-any drop
+ loop
+; :play #t with-sound drop
+
+\ LOCSIG
+lambda: ( -- )
+ 60.0 make-locsig { loc }
+ 440.0 make-oscil { osc }
+ 44100 0 do
+ loc i osc 0 0 oscil f2/ locsig drop
+ loop
+; :play #t :channels 2 with-sound drop
+
+\ AMPLITUDE-MODULATE
+lambda: ( -- )
+ 440.0 make-oscil { osc1 }
+ 220.0 make-oscil { osc2 }
+ 44100 0 do
+ i
+ 0.3 ( car )
+ osc1 0 0 oscil ( in1 )
+ osc2 0 0 oscil ( in2 ) amplitude-modulate f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+
+bye
+
+\ snd-forth-docs.fs ends here
diff --git a/snd-forth-init.fs b/snd-forth-init.fs
index e0b2b19..5243bd9 100644
--- a/snd-forth-init.fs
+++ b/snd-forth-init.fs
@@ -62,12 +62,6 @@ hostname value *hostname*
#f value __lisp-graph__
#t set-show-listener drop
-\ defined in snd/snd-xen.c
-[ifundef] clm-print <'> fth-print alias clm-print [then]
-: clm-message { fmt args -- str } ." \ " fmt args format .string cr ;
-
-*fth-verbose* [if] $" loading %S" #( *filename* ) clm-message [then]
-
before-load-hook reset-hook!
before-load-hook lambda: <{ fname -- f }>
*fth-verbose* if $" loading %S" #( fname ) clm-message then
@@ -83,8 +77,8 @@ mus-lfloat set-default-output-data-format drop
1024 1024 * set-mus-file-buffer-size drop
512 set-dac-size drop
mus-audio-default set-audio-output-device drop
-#t set-mus-clipping set-clipping drop
-512 set-clm-table-size drop
+#t set-mus-clipping drop
+#t set-clipping drop
50 set-mus-array-print-length drop
50 set-object-print-length
@@ -235,7 +229,7 @@ output-comment-hook lambda: <{ str1 -- str2 }>
"%EI:%EM%p" current-time strftime string-downcase! { tm }
"(/usr)?" *home* $+ make-regexp file-pwd "~" regexp-replace { path }
$" (%s:%s)\n[%s %s] (%d)> " #( *short-hostname* path *program-name* tm pos ) string-format
- ; add-hook!
+ ;
[then] add-hook!
[else] \ not snd-nogui
require draw
@@ -257,7 +251,7 @@ output-comment-hook lambda: <{ str1 -- str2 }>
; #t $" close sound and jump to next open [ms]" dup bind-key drop
\ C-x x
<char> x 0 lambda: <{ -- val }>
- selection? if
+ undef selection? if
$" selection-eval:" <'> eval-over-selection #f #f prompt-in-minibuffer
else
$" no selection" #f #f report-in-minibuffer
@@ -372,7 +366,4 @@ $" Snd of %s (Fth %s)" #( snd-version fth-version ) clm-message
#t show-listener drop
'snd-nogui provided? [if] stack-reset [else] #f set-show-controls drop [then]
-\ local variables:
-\ eval: (setq inf-snd-forth-program-name "snd-fth")
-\ end:
\ .snd_forth ends here
diff --git a/snd-g0.h b/snd-g0.h
index 69f34b9..e9340f6 100644
--- a/snd-g0.h
+++ b/snd-g0.h
@@ -8,11 +8,6 @@
#include <cairo/cairo.h>
#endif
-#if HAVE_GL
- #include <gtk/gtkgl.h>
- #include <GL/gl.h>
-#endif
-
#define LOTSA_PIXELS 10000
#define BACKGROUND_QUIT false
@@ -212,6 +207,7 @@ typedef struct {
bool sono_cursor_pix_ready;
mus_float_t progress_pct;
#endif
+ GdkCursor *current_cursor;
} chan_context;
typedef struct {
@@ -280,7 +276,7 @@ typedef struct {
GtkWidget *requestor_dialog;
mus_float_t bg_gradient;
- GdkCursor *arrow_cursor, *wait_cursor, *graph_cursor;
+ GdkCursor *arrow_cursor, *wait_cursor, *graph_cursor, *bounds_cursor;
gint fam_port;
GtkWidget **mw, **pw;
bool axis_color_set;
diff --git a/snd-gchn.c b/snd-gchn.c
index 95cf777..ab493e8 100644
--- a/snd-gchn.c
+++ b/snd-gchn.c
@@ -493,7 +493,7 @@ static void remake_edit_history(chan_info *cp)
if ((ncp) && (ncp->sound))
{
ncp->edhist_base = ed++;
- sprintf(title, "chan %d: %s", k + 1, sp->filename);
+ snprintf(title, filelen, "chan %d: %s", k + 1, sp->filename);
slist_append(lst, title);
eds = ncp->edit_ctr;
while ((eds < (ncp->edit_size - 1)) && (ncp->edits[eds + 1])) eds++;
@@ -659,34 +659,23 @@ static gboolean graph_scroll(GtkWidget *w, GdkEventScroll *ev, gpointer data)
static gboolean graph_button_motion(GtkWidget *w, GdkEventMotion *ev, gpointer data)
{
- if (BUTTON1_PRESSED(EVENT_STATE(ev)))
+ int x, y;
+ GdkModifierType state;
+
+ if (EVENT_IS_HINT(ev))
+ gdk_window_get_pointer(EVENT_WINDOW(ev), &x, &y, &state);
+ else
{
- int x, y;
- GdkModifierType state;
- if (EVENT_IS_HINT(ev))
- gdk_window_get_pointer(EVENT_WINDOW(ev), &x, &y, &state);
- else
- {
- x = (int)(EVENT_X(ev));
- y = (int)(EVENT_Y(ev));
- }
- graph_button_motion_callback((chan_info *)data, x, y, EVENT_TIME(ev));
+ x = (int)(EVENT_X(ev));
+ y = (int)(EVENT_Y(ev));
}
- return(false);
-}
+ if (BUTTON1_PRESSED(EVENT_STATE(ev)))
+ graph_button_motion_callback((chan_info *)data, x, y, EVENT_TIME(ev));
+ else check_cursor_shape((chan_info *)data, x, y);
-#if HAVE_GL
-static const gint config_attributes[] = {
- GDK_GL_DOUBLEBUFFER,
- GDK_GL_RGBA,
- GDK_GL_RED_SIZE, 1,
- GDK_GL_GREEN_SIZE, 1,
- GDK_GL_BLUE_SIZE, 1,
- GDK_GL_DEPTH_SIZE, 12,
- GDK_GL_ATTRIB_LIST_NONE
-};
-#endif
+ return(false);
+}
static void channel_drop_watcher(GtkWidget *w, const char *filename, int x, int y, void *data)
@@ -783,13 +772,6 @@ int add_channel_window(snd_info *sp, int channel, int chan_y, int insertion, Gtk
gtk_widget_set_size_request(cw[W_graph_window], -1, chan_y);
cw[W_graph] = gtk_drawing_area_new();
-#if HAVE_GL
- #if HAVE_GDK_GL_CONTEXT_COPY
- gtk_widget_set_gl_capability(GTK_WIDGET(cw[W_graph]), gdk_gl_config_new(&config_attributes[0]), NULL, true, GDK_GL_RGBA_TYPE);
- #else
- gtk_widget_set_gl_capability(GTK_WIDGET(cw[W_graph]), gdk_gl_config_new(&config_attributes[0]), GDK_GL_RGBA_TYPE, NULL, true);
- #endif
-#endif
add_drag_and_drop(cw[W_graph], channel_drop_watcher, channel_drag_watcher, NULL);
set_user_int_data(G_OBJECT(cw[W_graph]), PACK_SOUND_AND_CHANNEL(sp->index, cp->chan));
gtk_widget_set_events(cw[W_graph], GDK_ALL_EVENTS_MASK);
diff --git a/snd-gdraw.c b/snd-gdraw.c
index c6ac614..5cf4e6d 100644
--- a/snd-gdraw.c
+++ b/snd-gdraw.c
@@ -886,10 +886,6 @@ static void check_orientation_hook(void)
static GtkWidget *oid_dialog = NULL, *oid_ax, *oid_ay, *oid_az, *oid_sx, *oid_sy, *oid_sz, *oid_hop;
static GtkObject *oid_ax_adj, *oid_az_adj, *oid_ay_adj, *oid_sx_adj, *oid_sz_adj, *oid_sy_adj, *oid_hop_adj;
-#if HAVE_GL
- static GtkWidget *oid_glbutton;
-#endif
-
static void ax_orientation_callback(GtkAdjustment *adj, gpointer context)
{
@@ -1077,27 +1073,9 @@ static void reset_color_orientation_callback(GtkWidget *w, gpointer context)
}
-#if HAVE_GL
-static void glbutton_callback(GtkWidget *w, gpointer context)
-{
- sgl_save_currents();
- in_set_with_gl(TOGGLE_BUTTON_ACTIVE(w));
- sgl_set_currents(true);
- /* for_each_chan(update_graph); */
-}
-#endif
-
void set_with_gl(bool val, bool with_dialogs)
{
-#if HAVE_GL
- sgl_save_currents();
-#endif
in_set_with_gl(val);
-#if HAVE_GL
- sgl_set_currents(with_dialogs);
- if ((oid_dialog) && (with_dialogs))
- set_toggle_button(oid_glbutton, val, false, NULL);
-#endif
}
@@ -1453,15 +1431,6 @@ GtkWidget *start_color_orientation_dialog(bool managed)
gtk_box_pack_start(GTK_BOX(hop_box), oid_hop, true, true, 0);
gtk_widget_show(oid_hop);
-
-#if HAVE_GL
- oid_glbutton = gtk_check_button_new_with_label(_("use OpenGL"));
- gtk_box_pack_start(GTK_BOX(orientbox), oid_glbutton, false, false, 0);
- gtk_widget_show(oid_glbutton);
- SG_SIGNAL_CONNECT(oid_glbutton, "toggled", glbutton_callback, NULL);
- set_toggle_button(oid_glbutton, with_gl(ss), false, NULL);
-#endif
-
sep5 = gtk_vseparator_new();
gtk_box_pack_start(GTK_BOX(orientbox), sep5, false, false, 3);
widget_modify_bg(sep5, GTK_STATE_NORMAL, ss->sgx->basic_color);
diff --git a/snd-ghelp.c b/snd-ghelp.c
index 6af8d2c..daf413d 100644
--- a/snd-ghelp.c
+++ b/snd-ghelp.c
@@ -233,6 +233,7 @@ static gboolean text_release_callback(GtkTreeSelection *selection, gpointer *gp)
/* this needs to be bool return false -- otherwise, apparently, the mouse-drag->selection never gets turned off! */
GtkTextIter start, end;
#define HELP_BUFFER gtk_text_view_get_buffer(GTK_TEXT_VIEW(help_text))
+
if (gtk_text_buffer_get_selection_bounds(HELP_BUFFER, &start, &end))
{
char *txt;
@@ -253,6 +254,7 @@ static gboolean text_release_callback(GtkTreeSelection *selection, gpointer *gp)
g_free(txt);
}
}
+
return(false);
}
@@ -332,11 +334,16 @@ GtkWidget *snd_help(const char *subject, const char *helpstr, with_word_wrap_t w
{
/* place help string in scrollable help window */
/* if window is already active, add this help at the top and reposition */
+
outer_with_wrap = with_wrap;
- if (!(help_dialog)) create_help_monolog(); else raise_dialog(help_dialog);
+ if (!(help_dialog))
+ create_help_monolog();
+ else raise_dialog(help_dialog);
+
gtk_window_set_title(GTK_WINDOW(help_dialog), subject);
original_help_text = (char *)helpstr;
gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(help_text)), "", 0);
+
if (with_wrap == WITH_WORD_WRAP)
{
char *new_help = NULL;
@@ -345,6 +352,7 @@ GtkWidget *snd_help(const char *subject, const char *helpstr, with_word_wrap_t w
if (new_help) free(new_help);
}
else add_help_text(help_text, helpstr);
+
if (help_needed) add_pattern_to_help_history(subject);
slist_clear(related_items); /* this can clobber "subject"! */
gtk_widget_set_sensitive(help_next_button, (help_history_pos < help_history_size) && (help_history[help_history_pos]));
diff --git a/snd-gmain.c b/snd-gmain.c
index ccfe57d..b0af14b 100644
--- a/snd-gmain.c
+++ b/snd-gmain.c
@@ -438,6 +438,7 @@ static idle_func_t startup_funcs(gpointer context)
ss->sgx->graph_cursor = gdk_cursor_new((GdkCursorType)in_graph_cursor(ss));
ss->sgx->wait_cursor = gdk_cursor_new(GDK_WATCH);
+ ss->sgx->bounds_cursor = gdk_cursor_new(GDK_SB_H_DOUBLE_ARROW);
ss->sgx->arrow_cursor = gdk_cursor_new(GDK_LEFT_PTR);
break;
@@ -627,12 +628,6 @@ void snd_doit(int argc, char **argv)
gdk_set_locale();
#endif
-#if HAVE_GL && USE_GTK
- /* gtkglext can kill the X server somehow -- I can't see how, and the net gossip about it is not helpful. */
- if (!(gtk_gl_init_check(&argc, &argv)))
- fprintf(stderr, "gtkglext is unhappy!");
-#endif
-
#endif
ss->channel_min_height = CHANNEL_MIN_HEIGHT;
diff --git a/snd-gmix.c b/snd-gmix.c
index f5bb865..7bc1f79 100644
--- a/snd-gmix.c
+++ b/snd-gmix.c
@@ -3,7 +3,7 @@
/* ---------------- mix dialog ---------------- */
static GtkWidget *mix_dialog = NULL;
-static int mix_dialog_id = INVALID_MIX_ID;
+static int mix_dialog_id = INVALID_MIX_ID, old_mix_dialog_id = INVALID_MIX_ID;
static env *dialog_env = NULL;
static bool dragging = false;
@@ -21,6 +21,7 @@ static void start_dragging(int mix_id)
dragging = true;
drag_beg = mix_position_from_id(mix_id);
drag_end = drag_beg + mix_length_from_id(mix_id);
+ start_dragging_syncd_mixes(mix_id);
}
@@ -29,6 +30,7 @@ static void keep_dragging(int mix_id)
chan_info *cp;
cp = mix_chan_info_from_id(mix_id);
cp->edit_ctr = edpos_before_drag;
+ keep_dragging_syncd_mixes(mix_id);
}
@@ -39,6 +41,7 @@ static void stop_dragging(int mix_id)
undo_edit(cp, 1);
cp->hookable = hookable_before_drag;
dragging = false;
+ stop_dragging_syncd_mixes(mix_id);
}
@@ -95,7 +98,9 @@ static gboolean speed_click_callback(GtkWidget *w, GdkEventButton *ev, gpointer
speed_dragged = false;
if (!(mix_is_active(mix_dialog_id))) return(false);
mix_set_speed_edit(mix_dialog_id, 1.0);
+ syncd_mix_set_speed(mix_dialog_id, 1.0);
after_mix_edit(mix_dialog_id);
+ after_syncd_mix_edit(mix_dialog_id);
reflect_mix_speed(1.0);
return(false);
}
@@ -121,27 +126,47 @@ static gboolean speed_label_click_callback(GtkWidget *w, GdkEventButton *ev, gpo
static gboolean speed_motion_callback(GtkWidget *w, GdkEventMotion *ev, gpointer data)
{
+ mus_float_t speed;
+ mus_long_t beg, end;
+
if (!speed_pressed) {speed_dragged = false; return(false);}
speed_dragged = true;
+
if (!(mix_is_active(mix_dialog_id))) return(false);
if (!dragging)
start_dragging(mix_dialog_id);
else keep_dragging(mix_dialog_id);
- mix_set_speed_edit(mix_dialog_id, set_speed_label(w_speed_number, scrollbar_to_speed(ADJUSTMENT_VALUE(w_speed_adj))));
+
+ speed = set_speed_label(w_speed_number, scrollbar_to_speed(ADJUSTMENT_VALUE(w_speed_adj)));
+ mix_set_speed_edit(mix_dialog_id, speed);
+
+ beg = mix_position_from_id(mix_dialog_id);
+ end = beg + mix_length_from_id(mix_dialog_id);
+ if (drag_beg > beg) drag_beg = beg;
+ if (drag_end < end) drag_end = end;
+
mix_display_during_drag(mix_dialog_id, drag_beg, drag_end);
+ syncd_mix_set_speed(mix_dialog_id, speed);
return(false);
}
static gboolean speed_release_callback(GtkWidget *w, GdkEventButton *ev, gpointer data)
{
+ mus_float_t speed;
+
speed_pressed = false;
speed_dragged = false;
+
if (!(mix_is_active(mix_dialog_id))) return(false);
if (dragging)
stop_dragging(mix_dialog_id);
- mix_set_speed_edit(mix_dialog_id, set_speed_label(w_speed_number, scrollbar_to_speed(ADJUSTMENT_VALUE(w_speed_adj))));
+
+ speed = set_speed_label(w_speed_number, scrollbar_to_speed(ADJUSTMENT_VALUE(w_speed_adj)));
+ mix_set_speed_edit(mix_dialog_id, speed);
+ syncd_mix_set_speed(mix_dialog_id, speed);
after_mix_edit(mix_dialog_id);
+ after_syncd_mix_edit(mix_dialog_id);
return(false);
}
@@ -190,7 +215,9 @@ static gboolean amp_click_callback(GtkWidget *w, GdkEventButton *ev, gpointer da
if (!(mix_is_active(mix_dialog_id))) return(false);
reflect_mix_amp(1.0);
mix_set_amp_edit(mix_dialog_id, 1.0);
+ syncd_mix_set_amp(mix_dialog_id, 1.0);
after_mix_edit(mix_dialog_id);
+ after_syncd_mix_edit(mix_dialog_id);
ADJUSTMENT_SET_VALUE(w_amp_adj, amp_to_scroll(amp_control_min(ss), 1.0, amp_control_max(ss)));
/* gtk_adjustment_value_changed(GTK_ADJUSTMENT(w_amp_adj)); */
return(false);
@@ -199,34 +226,37 @@ static gboolean amp_click_callback(GtkWidget *w, GdkEventButton *ev, gpointer da
static gboolean amp_motion_callback(GtkWidget *w, GdkEventMotion *ev, gpointer data)
{
- mus_float_t scrollval;
+ mus_float_t amp;
if (!amp_pressed) {amp_dragged = false; return(false);}
amp_dragged = true;
if (!(mix_is_active(mix_dialog_id))) return(false);
if (!dragging)
start_dragging(mix_dialog_id);
else keep_dragging(mix_dialog_id);
- scrollval = ADJUSTMENT_VALUE(w_amp_adj);
- reflect_mix_amp(scrollbar_to_amp(scrollval));
- mix_set_amp_edit(mix_dialog_id, scrollbar_to_amp(scrollval));
+ amp = scrollbar_to_amp(ADJUSTMENT_VALUE(w_amp_adj));
+ reflect_mix_amp(amp);
+ mix_set_amp_edit(mix_dialog_id, amp);
mix_display_during_drag(mix_dialog_id, drag_beg, drag_end);
+ syncd_mix_set_amp(mix_dialog_id, amp);
return(false);
}
static gboolean amp_release_callback(GtkWidget *w, GdkEventButton *ev, gpointer data)
{
- mus_float_t scrollval;
+ mus_float_t amp;
dragging = false;
amp_pressed = false;
amp_dragged = false;
if (!(mix_is_active(mix_dialog_id))) return(false);
if (dragging)
stop_dragging(mix_dialog_id);
- scrollval = ADJUSTMENT_VALUE(w_amp_adj);
- reflect_mix_amp(scrollbar_to_amp(scrollval));
- mix_set_amp_edit(mix_dialog_id, scrollbar_to_amp(scrollval));
+ amp = scrollbar_to_amp(ADJUSTMENT_VALUE(w_amp_adj));
+ reflect_mix_amp(amp);
+ mix_set_amp_edit(mix_dialog_id, amp);
+ syncd_mix_set_amp(mix_dialog_id, amp);
after_mix_edit(mix_dialog_id);
+ after_syncd_mix_edit(mix_dialog_id);
return(false);
}
@@ -437,7 +467,13 @@ static void beg_activated(GtkWidget *w, gpointer context)
beg = string_to_mus_float_t(up_to_colon, 0.0, "begin time");
redirect_errors_to(NULL, NULL);
if (beg >= 0.0)
- mix_set_position_edit(mix_dialog_id, (mus_long_t)(beg * SND_SRATE(cp->sound)));
+ {
+ mus_long_t pos, old_pos;
+ old_pos = mix_position_from_id(mix_dialog_id);
+ pos = (mus_long_t)(beg * SND_SRATE(cp->sound));
+ mix_set_position_edit(mix_dialog_id, pos);
+ syncd_mix_change_position(mix_dialog_id, pos - old_pos);
+ }
after_mix_edit(mix_dialog_id);
free(up_to_colon);
}
@@ -452,6 +488,13 @@ static void widget_mix_to_text(GtkWidget *w, int id)
}
+static gboolean copy_mix_callback(GtkWidget *w, GdkEventButton *ev, gpointer data)
+{
+ copy_mix(mix_dialog_id);
+ after_mix_edit(mix_dialog_id);
+ return(false);
+}
+
/* -------- mix play -------- */
@@ -473,12 +516,14 @@ static void mix_play_callback(GtkWidget *w, gpointer context)
else
{
if (!(mix_exists(mix_dialog_id))) return;
- mix_playing = play_mix_from_id(mix_dialog_id);
- if ((mix_play_ax) && (mix_playing))
+ if (mix_play_ax)
{
mix_speaker_pix = speaker_on_pix;
draw_picture(mix_play_ax, mix_speaker_pix, 0, 0, 2, 4, 12, 12);
}
+ syncd_mix_play(mix_dialog_id);
+ mix_playing = true;
+ play_mix_from_id(mix_dialog_id);
}
}
@@ -497,6 +542,30 @@ static void mix_dB_callback(GtkWidget *w, gpointer context)
}
+static void mix_sync_callback(GtkWidget *w, gpointer context)
+{
+ bool cb_set;
+ cb_set = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
+ if ((cb_set) &&
+ (mix_sync_from_id(mix_dialog_id) == 0))
+ {
+ mix_set_sync_from_id(mix_dialog_id, GET_ORIGINAL_SYNC); /* choose a new sync val or return to previous */
+ /* check for resync */
+ syncd_mix_set_color(mix_dialog_id, ss->sgx->red);
+ }
+ else
+ {
+ if ((!(cb_set)) &&
+ (mix_sync_from_id(mix_dialog_id) != 0))
+ {
+ syncd_mix_unset_color(mix_dialog_id); /* unset colors of any syncd mixes */
+ mix_set_sync_from_id(mix_dialog_id, 0);
+ }
+ }
+ for_each_normal_chan(display_channel_mixes);
+}
+
+
static void mix_clip_callback(GtkWidget *w, gpointer context)
{
spf->clip_p = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
@@ -511,15 +580,22 @@ static void mix_wave_callback(GtkWidget *w, gpointer context)
}
-static void apply_mix_dialog(GtkWidget *w, gpointer context)
+static void apply_env_callback(GtkWidget *w, gpointer context)
{
/* set all mix amp envs, last one should remix */
if (!(mix_is_active(mix_dialog_id))) return;
if ((dialog_env) &&
(!(default_env_p(dialog_env))))
- mix_set_amp_env_edit(mix_dialog_id, dialog_env);
- else mix_set_amp_env_edit(mix_dialog_id, NULL);
+ {
+ mix_set_amp_env_edit(mix_dialog_id, dialog_env);
+ syncd_mix_set_amp_env(mix_dialog_id, dialog_env);
+ }
+ else
+ {
+ mix_set_amp_env_edit(mix_dialog_id, NULL);
+ syncd_mix_set_amp_env(mix_dialog_id, NULL);
+ }
after_mix_edit(mix_dialog_id);
mix_amp_env_resize(w_env);
}
@@ -621,12 +697,13 @@ void make_speaker_icons_transparent(const char *bg_line)
blue_speaker_xpm[1] = bg_line;
}
+static GtkWidget *w_sync;
GtkWidget *make_mix_dialog(void)
{
if (mix_dialog == NULL)
{
- GtkWidget *dismiss_button, *help_button, *rc, *mix_frame, *rc_top;
+ GtkWidget *dismiss_button, *help_button, *rc, *mix_frame, *rc_top, *copy_button;
GtkWidget *lo_hbox, *w_dB_frame, *w_dB, *w_clip, *w_wave, *w_dB_row, *mix_play_pix;
char amplab[LABEL_BUFFER_SIZE];
@@ -651,9 +728,15 @@ GtkWidget *make_mix_dialog(void)
apply_button = sg_button_new_from_stock_with_label(_("Apply Env"), GTK_STOCK_APPLY);
gtk_widget_set_name(apply_button, "doit_again_button");
gtk_box_pack_start(GTK_BOX(DIALOG_ACTION_AREA(mix_dialog)), apply_button, false, true, 10);
- SG_SIGNAL_CONNECT(apply_button, "clicked", apply_mix_dialog, NULL);
+ SG_SIGNAL_CONNECT(apply_button, "clicked", apply_env_callback, NULL);
gtk_widget_show(apply_button);
+ copy_button = sg_button_new_from_stock_with_label(_("Copy mix"), GTK_STOCK_COPY);
+ gtk_widget_set_name(copy_button, "reset_button");
+ gtk_box_pack_start(GTK_BOX(DIALOG_ACTION_AREA(mix_dialog)), copy_button, false, true, 10);
+ SG_SIGNAL_CONNECT(copy_button, "clicked", copy_mix_callback, NULL);
+ gtk_widget_show(copy_button);
+
help_button = gtk_button_new_from_stock(GTK_STOCK_HELP);
gtk_widget_set_name(help_button, "help_button");
gtk_box_pack_end(GTK_BOX(DIALOG_ACTION_AREA(mix_dialog)), help_button, true, true, 10);
@@ -781,7 +864,7 @@ GtkWidget *make_mix_dialog(void)
gtk_widget_show(w_amp_event);
SG_SIGNAL_CONNECT(w_amp_event, "button_press_event", amp_click_callback, NULL);
- mus_snprintf(amplab, LABEL_BUFFER_SIZE, _("amp:"));
+ mus_snprintf(amplab, LABEL_BUFFER_SIZE, "%s", _("amp:"));
w_amp_label = gtk_label_new(amplab);
gtk_container_add(GTK_CONTAINER(w_amp_event), w_amp_label);
gtk_widget_show(w_amp_label);
@@ -833,6 +916,11 @@ GtkWidget *make_mix_dialog(void)
gtk_box_pack_start(GTK_BOX(w_dB_row), w_dB, false, false, 0);
gtk_widget_show(w_dB);
+ w_sync = gtk_check_button_new_with_label(_("sync"));
+ SG_SIGNAL_CONNECT(w_sync, "toggled", mix_sync_callback, NULL);
+ gtk_box_pack_start(GTK_BOX(w_dB_row), w_sync, false, false, 0);
+ gtk_widget_show(w_sync);
+
/* GRAPH (drawing area) */
w_env = gtk_drawing_area_new();
gtk_widget_set_events(w_env, GDK_ALL_EVENTS_MASK);
@@ -848,7 +936,10 @@ GtkWidget *make_mix_dialog(void)
gtk_widget_show(mix_dialog);
set_dialog_widget(MIX_DIALOG, mix_dialog);
+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w_clip), true);
+ if (mix_sync_from_id(mix_dialog_id) != 0)
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w_sync), true);
mix_play_ax = (axis_context *)calloc(1, sizeof(axis_context));
mix_play_ax->wn = WIDGET_TO_WINDOW(mix_play_pix);
@@ -892,6 +983,16 @@ void reflect_mix_change(int mix_id)
mus_long_t beg, len;
cp = mix_chan_info_from_id(mix_dialog_id);
+ if (old_mix_dialog_id != INVALID_MIX_ID)
+ {
+ mix_unset_color_from_id(old_mix_dialog_id);
+ syncd_mix_unset_color(old_mix_dialog_id);
+ }
+ old_mix_dialog_id = mix_dialog_id;
+ mix_set_color_from_id(mix_dialog_id, ss->sgx->red);
+ syncd_mix_set_color(mix_dialog_id, ss->sgx->red);
+
+ for_each_normal_chan(display_channel_mixes);
if (!dragging)
{
@@ -933,6 +1034,8 @@ void reflect_mix_change(int mix_id)
if (!dialog_env)
dialog_env = default_env(1.0, 1.0);
mix_amp_env_resize(w_env);
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w_sync), (mix_sync_from_id(mix_dialog_id) != 0));
}
}
}
diff --git a/snd-gutils.c b/snd-gutils.c
index 1cdbf48..d1a6244 100644
--- a/snd-gutils.c
+++ b/snd-gutils.c
@@ -82,9 +82,6 @@ bool set_axis_label_font(const char *font)
in_set_axis_label_font(mus_strdup(font));
if (AXIS_LABEL_FONT(ss)) pango_font_description_free(AXIS_LABEL_FONT(ss));
AXIS_LABEL_FONT(ss) = fs;
-#if HAVE_GL
- reload_label_font();
-#endif
return(true);
}
return(false);
@@ -102,9 +99,6 @@ bool set_axis_numbers_font(const char *font)
in_set_axis_numbers_font(mus_strdup(font));
if (AXIS_NUMBERS_FONT(ss)) pango_font_description_free(AXIS_NUMBERS_FONT(ss));
AXIS_NUMBERS_FONT(ss) = fs;
-#if HAVE_GL
- reload_number_font();
-#endif
return(true);
}
return(false);
diff --git a/snd-gxcolormaps.c b/snd-gxcolormaps.c
index 7e47e62..e71302a 100644
--- a/snd-gxcolormaps.c
+++ b/snd-gxcolormaps.c
@@ -239,28 +239,39 @@ static mus_float_t **make_xen_colormap(int size, XEN lambda)
add_colormap_func_error_msg = NULL;
}
else str = XEN_FALSE;
+
XEN_ERROR(XEN_ERROR_TYPE("colormap-error"),
XEN_LIST_3(C_TO_XEN_STRING(S_add_colormap),
C_TO_XEN_STRING("function error:"),
str));
}
- if (XEN_LIST_P(xrgb))
+
+ if (!(XEN_LIST_P(xrgb)))
+ XEN_ERROR(XEN_ERROR_TYPE("colormap-error"),
+ XEN_LIST_3(C_TO_XEN_STRING(S_add_colormap),
+ C_TO_XEN_STRING("colormap func must return a list of 3 vcts"),
+ lambda));
+ else
{
vct *xr, *xg, *xb;
int i, gc_loc;
+
/* user-defined colormap func returns a list of 3 vcts (r g b) */
gc_loc = snd_protect(xrgb);
+
if (!(mus_vct_p(XEN_LIST_REF(xrgb, 0))))
XEN_ERROR(XEN_ERROR_TYPE("colormap-error"),
XEN_LIST_3(C_TO_XEN_STRING(S_add_colormap),
C_TO_XEN_STRING("function did not return a list of vcts!"),
xrgb));
+
xr = XEN_TO_VCT(XEN_LIST_REF(xrgb, 0));
if (xr->length < size)
XEN_ERROR(XEN_ERROR_TYPE("colormap-error"),
XEN_LIST_3(C_TO_XEN_STRING(S_add_colormap),
C_TO_XEN_STRING("function did not return a list of vcts of the correct size"),
xrgb));
+
xg = XEN_TO_VCT(XEN_LIST_REF(xrgb, 1));
xb = XEN_TO_VCT(XEN_LIST_REF(xrgb, 2));
rgb = make_base_rgb(size);
@@ -270,12 +281,9 @@ static mus_float_t **make_xen_colormap(int size, XEN lambda)
rgb[1][i] = xg->data[i];
rgb[2][i] = xb->data[i];
}
+
snd_unprotect_at(gc_loc);
}
- else XEN_ERROR(XEN_ERROR_TYPE("colormap-error"),
- XEN_LIST_3(C_TO_XEN_STRING(S_add_colormap),
- C_TO_XEN_STRING("colormap func must return a list of 3 vcts"),
- lambda));
return(rgb);
}
@@ -868,6 +876,180 @@ void phases_rgb(float x, rgb_t *r, rgb_t *g, rgb_t *b)
#endif
+/* ---------------------------------------- colormap objects ---------------------------------------- */
+
+typedef struct {
+ int n;
+} xen_colormap;
+
+
+#define XEN_TO_XEN_COLORMAP(arg) ((xen_colormap *)XEN_OBJECT_REF(arg))
+
+static int xen_colormap_to_int(XEN n)
+{
+ xen_colormap *col;
+ col = XEN_TO_XEN_COLORMAP(n);
+ return(col->n);
+}
+
+#define XEN_COLORMAP_TO_C_INT(n) xen_colormap_to_int(n)
+
+
+static XEN_OBJECT_TYPE xen_colormap_tag;
+
+static bool xen_colormap_p(XEN obj)
+{
+ return(XEN_OBJECT_TYPE_P(obj, xen_colormap_tag));
+}
+
+#define XEN_COLORMAP_P(Obj) xen_colormap_p(Obj)
+
+
+static void xen_colormap_free(xen_colormap *v) {if (v) free(v);}
+
+XEN_MAKE_OBJECT_FREE_PROCEDURE(xen_colormap, free_xen_colormap, xen_colormap_free)
+
+
+static char *xen_colormap_to_string(xen_colormap *v)
+{
+ #define XEN_COLORMAP_PRINT_BUFFER_SIZE 64
+ char *buf;
+ if (v == NULL) return(NULL);
+ buf = (char *)calloc(XEN_COLORMAP_PRINT_BUFFER_SIZE, sizeof(char));
+ snprintf(buf, XEN_COLORMAP_PRINT_BUFFER_SIZE, "#<colormap %s>", colormap_name(v->n));
+ return(buf);
+}
+
+XEN_MAKE_OBJECT_PRINT_PROCEDURE(xen_colormap, print_xen_colormap, xen_colormap_to_string)
+
+
+#if HAVE_FORTH || HAVE_RUBY
+static XEN g_xen_colormap_to_string(XEN obj)
+{
+ char *vstr;
+ XEN result;
+ #define S_xen_colormap_to_string "colormap->string"
+
+ XEN_ASSERT_TYPE(XEN_COLORMAP_P(obj), obj, XEN_ONLY_ARG, S_xen_colormap_to_string, "a colormap");
+
+ vstr = xen_colormap_to_string(XEN_TO_XEN_COLORMAP(obj));
+ result = C_TO_XEN_STRING(vstr);
+ free(vstr);
+ return(result);
+}
+#endif
+
+
+#if (!HAVE_S7)
+static bool xen_colormap_equalp(xen_colormap *v1, xen_colormap *v2)
+{
+ return((v1 == v2) ||
+ (v1->n == v2->n));
+}
+
+static XEN equalp_xen_colormap(XEN obj1, XEN obj2)
+{
+ if ((!(XEN_COLORMAP_P(obj1))) || (!(XEN_COLORMAP_P(obj2)))) return(XEN_FALSE);
+ return(xen_return_first(C_TO_XEN_BOOLEAN(xen_colormap_equalp(XEN_TO_XEN_COLORMAP(obj1), XEN_TO_XEN_COLORMAP(obj2))), obj1, obj2));
+}
+#endif
+
+
+static xen_colormap *xen_colormap_make(int n)
+{
+ xen_colormap *new_v;
+ new_v = (xen_colormap *)malloc(sizeof(xen_colormap));
+ new_v->n = n;
+ return(new_v);
+}
+
+
+static XEN new_xen_colormap(int n)
+{
+ xen_colormap *mx;
+ if (n < 0)
+ return(XEN_FALSE);
+
+ mx = xen_colormap_make(n);
+ XEN_MAKE_AND_RETURN_OBJECT(xen_colormap_tag, mx, 0, free_xen_colormap);
+}
+
+#define C_INT_TO_XEN_COLORMAP(Val) new_xen_colormap(Val)
+
+
+#if HAVE_S7
+static bool s7_xen_colormap_equalp(void *obj1, void *obj2)
+{
+ return((obj1 == obj2) ||
+ (((xen_colormap *)obj1)->n == ((xen_colormap *)obj2)->n));
+}
+
+
+static XEN s7_xen_colormap_length(s7_scheme *sc, XEN obj)
+{
+ return(C_TO_XEN_INT(color_map_size(ss)));
+}
+
+
+static XEN g_colormap_ref(XEN map, XEN pos);
+static XEN s7_colormap_apply(s7_scheme *sc, XEN obj, XEN args)
+{
+ return(g_colormap_ref(obj, XEN_CAR(args)));
+}
+#endif
+
+
+static void init_xen_colormap(void)
+{
+#if HAVE_S7
+ xen_colormap_tag = XEN_MAKE_OBJECT_TYPE("<colormap>", print_xen_colormap, free_xen_colormap, s7_xen_colormap_equalp,
+ NULL, s7_colormap_apply, NULL, s7_xen_colormap_length, NULL, NULL);
+#else
+#if HAVE_RUBY
+ xen_colormap_tag = XEN_MAKE_OBJECT_TYPE("XenColormap", sizeof(xen_colormap));
+#else
+ xen_colormap_tag = XEN_MAKE_OBJECT_TYPE("Colormap", sizeof(xen_colormap));
+#endif
+#endif
+
+#if HAVE_GUILE
+ scm_set_smob_print(xen_colormap_tag, print_xen_colormap);
+ scm_set_smob_free(xen_colormap_tag, free_xen_colormap);
+ scm_set_smob_equalp(xen_colormap_tag, equalp_xen_colormap);
+#endif
+
+#if HAVE_FORTH
+ fth_set_object_inspect(xen_colormap_tag, print_xen_colormap);
+ fth_set_object_dump(xen_colormap_tag, g_xen_colormap_to_string);
+ fth_set_object_equal(xen_colormap_tag, equalp_xen_colormap);
+ fth_set_object_free(xen_colormap_tag, free_xen_colormap);
+#endif
+
+#if HAVE_RUBY
+ rb_define_method(xen_colormap_tag, "to_s", XEN_PROCEDURE_CAST print_xen_colormap, 0);
+ rb_define_method(xen_colormap_tag, "eql?", XEN_PROCEDURE_CAST equalp_xen_colormap, 1);
+ rb_define_method(xen_colormap_tag, "==", XEN_PROCEDURE_CAST equalp_xen_colormap, 1);
+ rb_define_method(xen_colormap_tag, "to_str", XEN_PROCEDURE_CAST g_xen_colormap_to_string, 0);
+#endif
+}
+
+
+/* -------------------------------------------------------------------------------- */
+
+static XEN g_integer_to_colormap(XEN n)
+{
+ #define H_integer_to_colormap "(" S_integer_to_colormap " n) returns a colormap object corresponding to the given integer"
+ XEN_ASSERT_TYPE(XEN_INTEGER_P(n), n, XEN_ONLY_ARG, S_integer_to_colormap, "an integer");
+ return(new_xen_colormap(XEN_TO_C_INT(n)));
+}
+
+
+static XEN g_colormap_to_integer(XEN n)
+{
+ #define H_colormap_to_integer "(" S_colormap_to_integer " id) returns the integer corresponding to the given colormap"
+ XEN_ASSERT_TYPE(XEN_COLORMAP_P(n), n, XEN_ONLY_ARG, S_colormap_to_integer, "a colormap");
+ return(C_TO_XEN_INT(xen_colormap_to_int(n)));
+}
@@ -875,45 +1057,52 @@ static XEN g_colormap_ref(XEN map, XEN pos)
{
int index;
mus_float_t x;
- #define H_colormap_ref "(" S_colormap_ref " index pos): (list r g b). Index is the colormap \
-index (the value of " S_colormap " for example). Pos is between 0.0 and 1.0."
rgb_t r = 0, g = 0, b = 0;
- XEN_ASSERT_TYPE(XEN_INTEGER_P(map), map, XEN_ARG_1, S_colormap_ref, "an integer");
+
+ #define H_colormap_ref "(" S_colormap_ref " colormap pos): (list r g b). Pos is between 0.0 and 1.0."
+
+ XEN_ASSERT_TYPE(XEN_COLORMAP_P(map), map, XEN_ARG_1, S_colormap_ref, "a colormap object");
XEN_ASSERT_TYPE(XEN_NUMBER_P(pos), pos, XEN_ARG_2, S_colormap_ref, "a number between 0.0 and 1.0");
- index = XEN_TO_C_INT(map);
+
+ index = XEN_COLORMAP_TO_C_INT(map);
if (!(is_colormap(index)))
XEN_ERROR(NO_SUCH_COLORMAP,
XEN_LIST_2(C_TO_XEN_STRING(S_colormap_ref),
map));
+
x = XEN_TO_C_DOUBLE(pos);
if ((x < 0.0) || (x > 1.0))
XEN_OUT_OF_RANGE_ERROR(S_colormap_ref, 2, pos, "x must be between 0.0 and 1.0: ~A");
+
get_current_color(index, (int)(color_map_size(ss) * x + 0.5), &r, &g, &b);
return(XEN_LIST_3(C_TO_XEN_DOUBLE(RGB_TO_FLOAT(r)),
C_TO_XEN_DOUBLE(RGB_TO_FLOAT(g)),
C_TO_XEN_DOUBLE(RGB_TO_FLOAT(b))));
}
-
/* can't use Colormap -- it's the X type name */
-static XEN g_colormap(void) {return(C_TO_XEN_INT(color_map(ss)));}
+
+static XEN g_colormap(void)
+{
+ #define H_colormap "(" S_colormap "): current colormap choice."
+ return(C_INT_TO_XEN_COLORMAP(color_map(ss)));
+}
static XEN g_set_colormap(XEN val)
{
int index;
- #define H_colormap "(" S_colormap "): current colormap choice. \
-This should be an integer between 0 and the current colormap table top (default: 0). The maps (from 0 to 14) are: \
-black-and-white, gray, hot, cool, bone, copper, pink, jet, prism, autumn, winter, \
-spring, summer, rainbow, and flag. These names are defined in rgb.scm."
- XEN_ASSERT_TYPE(XEN_INTEGER_P(val), val, XEN_ONLY_ARG, S_setB S_colormap, "an integer");
- index = XEN_TO_C_INT(val);
+
+ XEN_ASSERT_TYPE(XEN_COLORMAP_P(val), val, XEN_ONLY_ARG, S_setB S_colormap, "a colormap");
+
+ index = XEN_COLORMAP_TO_C_INT(val);
if (!(is_colormap(index)))
XEN_ERROR(NO_SUCH_COLORMAP,
XEN_LIST_2(C_TO_XEN_STRING(S_colormap),
val));
+
set_color_map(index); /* this normally redisplays */
- return(C_TO_XEN_INT(color_map(ss)));
+ return(val);
}
@@ -921,56 +1110,67 @@ static XEN g_colormap_size(void) {return(C_TO_XEN_INT(color_map_size(ss)));}
static XEN g_set_colormap_size(XEN val)
{
- int maps;
+ int size;
#define H_colormap_size "(" S_colormap_size "): current colormap size; default is 512."
+
XEN_ASSERT_TYPE(XEN_INTEGER_P(val), val, XEN_ONLY_ARG, S_setB S_colormap_size, "an integer");
- maps = XEN_TO_C_INT(val);
- if (maps < 0)
+
+ size = XEN_TO_C_INT(val);
+ if (size < 0)
XEN_OUT_OF_RANGE_ERROR(S_setB S_colormap_size, 1, val, "size ~A < 0?");
- if (maps > (1 << 26))
+ if (size > (1 << 26))
XEN_OUT_OF_RANGE_ERROR(S_setB S_colormap_size, 1, val, "size ~A too large");
- set_color_map_size(maps);
+
+ set_color_map_size(size);
check_colormap_sizes(color_map_size(ss));
+
return(C_TO_XEN_INT(color_map_size(ss)));
}
-static XEN g_colormap_name(XEN index)
+static XEN g_colormap_name(XEN col)
{
int map;
- #define H_colormap_name "(" S_colormap_name " index) returns the colormap's name."
- XEN_ASSERT_TYPE(XEN_INTEGER_P(index), index, XEN_ONLY_ARG, S_colormap_name, "an integer");
- map = XEN_TO_C_INT(index);
+ #define H_colormap_name "(" S_colormap_name " colormap) returns the colormap's name (used in the Color/Orientation dialog)."
+
+ XEN_ASSERT_TYPE(XEN_COLORMAP_P(col), col, XEN_ONLY_ARG, S_colormap_name, "a colormap");
+
+ map = XEN_COLORMAP_TO_C_INT(col);
if (!(is_colormap(map)))
XEN_ERROR(NO_SUCH_COLORMAP,
XEN_LIST_2(C_TO_XEN_STRING(S_colormap_name),
- index));
+ col));
+
return(C_TO_XEN_STRING(cmaps[map]->name));
}
-static XEN g_colormap_p(XEN index)
+static XEN g_colormap_p(XEN obj)
{
- #define H_colormap_p "(" S_colormap_p " index) -> " PROC_TRUE " if index represents a usable colormap."
- XEN_ASSERT_TYPE(XEN_INTEGER_P(index), index, XEN_ONLY_ARG, S_colormap_p, "an integer");
- return(C_TO_XEN_BOOLEAN(is_colormap(XEN_TO_C_INT(index))));
+ #define H_colormap_p "(" S_colormap_p " obj) -> " PROC_TRUE " if 'obj' is a colormap."
+ return(C_TO_XEN_BOOLEAN(XEN_COLORMAP_P(obj) &&
+ is_colormap(XEN_COLORMAP_TO_C_INT(obj))));
}
-static XEN g_delete_colormap(XEN index)
+static XEN g_delete_colormap(XEN col)
{
int map;
- #define H_delete_colormap "(" S_delete_colormap " index) removes the specified colormap."
- XEN_ASSERT_TYPE(XEN_INTEGER_P(index), index, XEN_ONLY_ARG, S_delete_colormap, "an integer");
- map = XEN_TO_C_INT(index);
+ #define H_delete_colormap "(" S_delete_colormap " colormap) frees the specified colormap."
+
+ XEN_ASSERT_TYPE(XEN_COLORMAP_P(col), col, XEN_ONLY_ARG, S_delete_colormap, "a colormap");
+
+ map = XEN_COLORMAP_TO_C_INT(col);
if (!(is_colormap(map)))
XEN_ERROR(NO_SUCH_COLORMAP,
XEN_LIST_2(C_TO_XEN_STRING(S_delete_colormap),
- index));
+ col));
+
delete_cmap(map);
reflect_color_list(false);
if (color_map(ss) == map) set_color_map(DEFAULT_COLOR_MAP);
- return(index);
+
+ return(col);
}
@@ -980,16 +1180,20 @@ static XEN g_add_colormap(XEN name, XEN func)
{
int index;
#define H_add_colormap "(" S_add_colormap " name func) adds the colormap created by func to the colormap table, \
-returning the new index."
+returning the new colormap. 'name' is the colormap's name in the View:Color/Orientation dialog."
+
XEN_ASSERT_TYPE(XEN_STRING_P(name), name, XEN_ARG_1, S_add_colormap, "a string");
XEN_ASSERT_TYPE(XEN_PROCEDURE_P(func) && (!mus_xen_p(func)), func, XEN_ARG_2, S_add_colormap, "a function of 2 args");
+
if (!(procedure_arity_ok(func, 1)))
return(snd_bad_arity_error(S_add_colormap,
C_TO_XEN_STRING("func should take 1 arg"),
func));
+
index = add_colormap(XEN_TO_C_STRING(name), func);
reflect_color_list(false);
- return(C_TO_XEN_INT(index));
+
+ return(C_INT_TO_XEN_COLORMAP(index));
}
@@ -1003,6 +1207,8 @@ XEN_NARGIFY_1(g_set_colormap_size_w, g_set_colormap_size)
XEN_NARGIFY_1(g_colormap_name_w, g_colormap_name)
XEN_NARGIFY_1(g_delete_colormap_w, g_delete_colormap)
XEN_NARGIFY_2(g_add_colormap_w, g_add_colormap)
+XEN_NARGIFY_1(g_integer_to_colormap_w, g_integer_to_colormap)
+XEN_NARGIFY_1(g_colormap_to_integer_w, g_colormap_to_integer)
#else
#define g_colormap_ref_w g_colormap_ref
#define g_colormap_w g_colormap
@@ -1013,14 +1219,20 @@ XEN_NARGIFY_2(g_add_colormap_w, g_add_colormap)
#define g_colormap_name_w g_colormap_name
#define g_delete_colormap_w g_delete_colormap
#define g_add_colormap_w g_add_colormap
+#define g_integer_to_colormap_w g_integer_to_colormap
+#define g_colormap_to_integer_w g_colormap_to_integer
#endif
+static XEN colormap_temp[16]; /* static for Ruby's sake */
+
void g_init_gxcolormaps(void)
{
cmaps_size = NUM_BUILTIN_COLORMAPS;
cmaps = (cmap **)calloc(cmaps_size, sizeof(cmap *));
- /* these are just place-holders */
+
+ init_xen_colormap();
+
cmaps[BLACK_AND_WHITE_COLORMAP] = make_builtin_cmap(1, _("black-and-white"), make_black_and_white_colormap, black_and_white_rgb);
cmaps[GRAY_COLORMAP] = make_builtin_cmap(1, _("gray"), make_gray_colormap, gray_rgb);
cmaps[AUTUMN_COLORMAP] = make_builtin_cmap(1, _("autumn"), make_autumn_colormap, autumn_rgb);
@@ -1038,6 +1250,23 @@ void g_init_gxcolormaps(void)
cmaps[RAINBOW_COLORMAP] = make_builtin_cmap(1, _("rainbow"), make_rainbow_colormap, rainbow_rgb);
cmaps[PHASES_COLORMAP] = make_builtin_cmap(1, _("phases"), make_phases_colormap, phases_rgb);
+ XEN_DEFINE_VARIABLE("black-and-white-colormap", colormap_temp[0], C_INT_TO_XEN_COLORMAP(0));
+ XEN_DEFINE_VARIABLE("gray-colormap", colormap_temp[1], C_INT_TO_XEN_COLORMAP(1));
+ XEN_DEFINE_VARIABLE("hot-colormap", colormap_temp[2], C_INT_TO_XEN_COLORMAP(2));
+ XEN_DEFINE_VARIABLE("cool-colormap", colormap_temp[3], C_INT_TO_XEN_COLORMAP(3));
+ XEN_DEFINE_VARIABLE("bone-colormap", colormap_temp[4], C_INT_TO_XEN_COLORMAP(4));
+ XEN_DEFINE_VARIABLE("copper-colormap", colormap_temp[5], C_INT_TO_XEN_COLORMAP(5));
+ XEN_DEFINE_VARIABLE("pink-colormap", colormap_temp[6], C_INT_TO_XEN_COLORMAP(6));
+ XEN_DEFINE_VARIABLE("jet-colormap", colormap_temp[7], C_INT_TO_XEN_COLORMAP(7));
+ XEN_DEFINE_VARIABLE("prism-colormap", colormap_temp[8], C_INT_TO_XEN_COLORMAP(8));
+ XEN_DEFINE_VARIABLE("autumn-colormap", colormap_temp[9], C_INT_TO_XEN_COLORMAP(9));
+ XEN_DEFINE_VARIABLE("winter-colormap", colormap_temp[10], C_INT_TO_XEN_COLORMAP(10));
+ XEN_DEFINE_VARIABLE("spring-colormap", colormap_temp[11], C_INT_TO_XEN_COLORMAP(11));
+ XEN_DEFINE_VARIABLE("summer-colormap", colormap_temp[12], C_INT_TO_XEN_COLORMAP(12));
+ XEN_DEFINE_VARIABLE("rainbow-colormap", colormap_temp[13], C_INT_TO_XEN_COLORMAP(13));
+ XEN_DEFINE_VARIABLE("flag-colormap", colormap_temp[14], C_INT_TO_XEN_COLORMAP(14));
+ XEN_DEFINE_VARIABLE("phases-colormap", colormap_temp[15], C_INT_TO_XEN_COLORMAP(15));
+
XEN_DEFINE_PROCEDURE(S_colormap_p, g_colormap_p_w, 1, 0, 0, H_colormap_p);
XEN_DEFINE_PROCEDURE(S_colormap_ref, g_colormap_ref_w, 2, 0, 0, H_colormap_ref);
XEN_DEFINE_PROCEDURE(S_add_colormap, g_add_colormap_w, 2, 0, 0, H_add_colormap);
@@ -1046,4 +1275,7 @@ void g_init_gxcolormaps(void)
XEN_DEFINE_PROCEDURE_WITH_SETTER(S_colormap, g_colormap_w, H_colormap, S_setB S_colormap, g_set_colormap_w, 0, 0, 1, 0);
XEN_DEFINE_PROCEDURE_WITH_SETTER(S_colormap_size, g_colormap_size_w, H_colormap_size, S_setB S_colormap_size, g_set_colormap_size_w, 0, 0, 1, 0);
+
+ XEN_DEFINE_PROCEDURE(S_integer_to_colormap, g_integer_to_colormap_w, 1, 0, 0, H_integer_to_colormap);
+ XEN_DEFINE_PROCEDURE(S_colormap_to_integer, g_colormap_to_integer_w, 1, 0, 0, H_colormap_to_integer);
}
diff --git a/snd-gxutils.c b/snd-gxutils.c
index 32384fa..e243372 100644
--- a/snd-gxutils.c
+++ b/snd-gxutils.c
@@ -60,12 +60,16 @@ bool send_mozilla(const char *html_viewer, const char *url)
Window window;
Display *dpy;
char *command;
+ int len;
+
+ len = mus_strlen(url) + mus_strlen(html_viewer) + 32;
dpy = MAIN_DISPLAY(ss);
- command = (char *)calloc(mus_strlen(url) + mus_strlen(html_viewer) + 32, sizeof(char));
+ command = (char *)calloc(len, sizeof(char));
window = find_window(dpy, DefaultRootWindow(dpy), NS_VERSION, compare_window);
+
if (window)
{
- sprintf(command, "openURL(file:%s)", url);
+ snprintf(command, len, "openURL(file:%s)", url);
XChangeProperty(dpy,
window,
XInternAtom(dpy, NS_COMMAND, 0),
@@ -79,7 +83,7 @@ bool send_mozilla(const char *html_viewer, const char *url)
{
if (!(fork()))
{
- sprintf(command, "%s file:%s", html_viewer, url);
+ snprintf(command, len, "%s file:%s", html_viewer, url);
if (execl("/bin/sh", "/bin/sh", "-c", command, NULL) == -1)
{
free(command);
@@ -87,6 +91,7 @@ bool send_mozilla(const char *html_viewer, const char *url)
}
}
}
+
free(command);
return(true);
}
diff --git a/snd-help.c b/snd-help.c
index 4351232..be54957 100644
--- a/snd-help.c
+++ b/snd-help.c
@@ -169,10 +169,6 @@ static void main_snd_help(const char *subject, ...)
#if HAVE_FFTW3
#include <fftw3.h>
-#else
- #if HAVE_FFTW
- #include <fftw.h>
- #endif
#endif
#if MUS_PULSEAUDIO
@@ -281,13 +277,6 @@ static char *gl_version(void)
char *gl2ps_version(void); /* snd-print.c */
#endif
-#if USE_GTK
- #include <X11/Xlib.h>
- #include <X11/Xutil.h>
- #include <GL/gl.h>
- #include <GL/glx.h>
-#endif
-
static char *glx_version(void)
{
#define VERSION_SIZE 128
@@ -321,7 +310,6 @@ static char *glx_version(void)
#endif
}
-#if USE_MOTIF
if (MAIN_DISPLAY(ss) != NULL)
{
if (ss->sgx->cx)
@@ -335,15 +323,6 @@ static char *glx_version(void)
mus_snprintf(version, VERSION_SIZE, " %d.%d", major, minor);
}
}
-#else
- if (gdk_gl_query_extension() != 0)
- {
- /* can't get GL_VERSION here -- segfaults in FC6 x86_64 */
- gdk_gl_query_version(&major, &minor);
- mus_snprintf(version, VERSION_SIZE, " GtkGL version: %d.%d", major, minor);
- }
- else mus_snprintf(version, VERSION_SIZE, " gtkGL not supported?");
-#endif
if (snd_itoa_ctr < snd_itoa_size) snd_itoa_strs[snd_itoa_ctr++] = version;
return(version);
}
@@ -400,7 +379,7 @@ char *version_info(void)
" ", MUS_GSL_VERSION,
#endif
#endif
-#if HAVE_FFTW || HAVE_FFTW3
+#if HAVE_FFTW3
"\n ", fftw_version,
#endif
#if USE_MOTIF
@@ -432,14 +411,6 @@ char *version_info(void)
#if HAVE_GL
"\n OpenGL", glx_version(),
gl_version(),
- #if USE_GTK
- ", gtkglext ",
- #ifdef GTKGLEXT_MAJOR_VERSION
- snd_itoa(GTKGLEXT_MAJOR_VERSION), ".",
- snd_itoa(GTKGLEXT_MINOR_VERSION), ".",
- snd_itoa(GTKGLEXT_MICRO_VERSION),
- #endif
- #endif
#if MUS_WITH_GL2PS
", ", gl2ps_name = gl2ps_version(),
#endif
@@ -544,6 +515,13 @@ void about_snd_help(void)
info,
"\nRecent changes include:\n\
\n\
+30-Nov: Snd 11.1.\n\
+23-Nov: colormaps are objects now. integer->colormap, colormap->integer.\n\
+ transforms are also objects. integer->transform, transform->integer.\n\
+20-Nov: play is generic now, \"old-play\" is the previous form.\n\
+2-Nov: selection function/object. selection->mix.\n\
+28-Oct: pretty-print.scm.\n\
+22-Oct: Snd 11.0.\n\
16-Oct: clm.rb and grani.rb (thanks to Mike Scholz).\n\
12-Oct: generic length, srate, channels, frames, file-name, sync, maxamp.\n\
6-Oct: removed *snd-loaded-files* and *snd-remember-paths*.\n\
@@ -632,12 +610,6 @@ void find_help(void)
#define count_matches_example " >lambda: <{ y }> 0.1 y f< ; count-matches\n 2851"
#define search_procedure_example " >lambda: <{ y }> 0.1 y f< ; set-search-procedure"
#endif
- #if HAVE_CL
- #define basic_example "(lambda (y) (> y 0.1))"
- #define find_channel_example " >(find-channel (lambda (y) (> y .1)))\n (t 4423)"
- #define count_matches_example " >(count-matches (lambda (y) (> y .1)))\n 2851"
- #define search_procedure_example " >(setf (search-procedure) (lambda (y) (> y .1)))"
- #endif
snd_help_with_xrefs("Find",
@@ -705,11 +677,6 @@ void undo_help(void)
#define H_redo S_redo
#define edit_position_example "0 set-edit-position \\ revert channel"
#endif
- #if HAVE_CL
- #define H_undo S_undo
- #define H_redo S_redo
- #define edit_position_example "(setf (edit-position) 0) ; revert channel"
- #endif
snd_help_with_xrefs("Undo and Redo",
@@ -803,12 +770,6 @@ void sync_help(void)
#define H_channels_combined S_channels_combined
#define H_channels_superimposed S_channels_superimposed
#endif
- #if HAVE_CL
- #define channel_style_example "(setf (channel-style snd) channels-combined)"
- #define H_channels_separate S_channels_separate
- #define H_channels_combined S_channels_combined
- #define H_channels_superimposed S_channels_superimposed
- #endif
snd_help_with_xrefs("Sync",
@@ -877,9 +838,6 @@ void debug_help(void)
#if HAVE_FORTH
#define vardpy_reference "variable-display, which isn't written yet"
#endif
- #if HAVE_CL
- #define vardpy_reference "variable-display in snd-motif.cl??"
- #endif
snd_help_with_xrefs("Debugging",
@@ -916,7 +874,7 @@ about it! If possible, run Snd in gdb and send me the stack trace: \n\n\
void env_help(void)
{
- #if HAVE_SCHEME || HAVE_CL
+ #if HAVE_SCHEME
#define envelope_example "'(0 0 1 1 2 0)"
#define env_sound_example "(env-sound '(0 0 1 1 2 0))"
#endif
@@ -1009,19 +967,6 @@ void fft_help(void)
#define transform_normalizations "dont-normalize normalize-by-channel normalize-by-sound normalize-globally"
#define fft_windows " bartlett-window blackman2-window blackman3-window blackman4-window\n cauchy-window connes-window dolph-chebyshev-window exponential-window\n gaussian-window hamming-window hann-poisson-window hann-window\n kaiser-window parzen-window poisson-window rectangular-window\n riemann-window samaraki-window tukey-window ultraspherical-window\n welch-window bartlett-hann-window bohman-window flat-top-window blackman5..10-window"
#endif
- #if HAVE_CL
- #define transform_normalization_example "(setf (transform-normalization) dont-normalize)"
- #define transform_size_example "(setf (transform-size) 512)"
- #define transform_type_example "(setf (transform-type) autocorrelation)"
- #define fft_window_example "(setf (fft-window) rectangular-window)"
- #define transform_graph_example "(setf (transform-graph?) #t)"
- #define transform_graph_type_example "(setf (transform-graph-type) graph-as-sonogram)"
- #define transform_log_magnitude_example "(setf (transform-log-magnitude) #f)"
- #define transform_types "fourier-transform wavelet-transform haar-transform\n autocorrelation walsh-transform cepstrum"
- #define transform_graph_types "graph-once graph-as-sonogram graph-as-spectrogram"
- #define transform_normalizations "dont-normalize normalize-by-channel normalize-by-sound normalize-globally"
- #define fft_windows " bartlett-window blackman2-window blackman3-window blackman4-window\n cauchy-window connes-window dolph-chebyshev-window exponential-window\n gaussian-window hamming-window hann-poisson-window hann-window\n kaiser-window parzen-window poisson-window rectangular-window\n riemann-window samaraki-window tukey-window ultraspherical-window\n welch-window bartlett-hann-window bohman-window flat-top-window blackman5..10-window"
- #endif
snd_help_with_xrefs("FFT",
@@ -1154,11 +1099,6 @@ void controls_help(void)
#define amp_control_bounds_example "'( 0.0 20.0 ) set-amp-control-bounds"
#define speed_control_styles "speed-control-as-float speed-control-as-ratio speed-control-as-semitone"
#endif
- #if HAVE_CL
- #define amp_control_example "(setf (amp-control) 0.5)"
- #define amp_control_bounds_example "(setf (amp-control-bounds) (list 0.0 20.0))"
- #define speed_control_styles "speed-control-as-float speed-control-as-ratio speed-control-as-semitone"
- #endif
snd_help_with_xrefs("The Control Panel",
@@ -1278,10 +1218,6 @@ void marks_help(void)
#define add_mark_example "1234 add-mark"
#define mark_name_example "0 \"mark-0\" set-mark-name"
#endif
- #if HAVE_CL
- #define add_mark_example "(add-mark 1234)"
- #define mark_name_example "(setf (mark-name 0) \"mark-0\")"
- #endif
snd_help_with_xrefs("Marks",
@@ -1378,12 +1314,6 @@ void mix_help(void)
#define mix_amp_example "0 0.5 set-mix-amp"
#define mix_amp_env_example "0 '( 0.0 0.0 1.0 1.0 ) set-mix-amp-env"
#endif
- #if HAVE_CL
- #define mix_example "(mix \"oboe.snd\" 1234)"
- #define mix_vct_example "(mix-vct (vct 0 .1 .2) 1234)"
- #define mix_amp_example "(setf (mix-amp 0) .5)"
- #define mix_amp_env_example "(setf (mix-amp-env 0) '(0 0 1 1))"
- #endif
snd_help_with_xrefs("Mixing",
@@ -1441,7 +1371,7 @@ The main mix-related functions are:\n\
mix's length in samples\n\
\n\
Other such function include: " S_mix_waveform_height ", " S_with_mix_tags ", " S_mix_tag_width ",\n\
- " S_mix_tag_height ", " S_mix_tag_y ", " S_play_mix ", " S_mixes ".",
+ " S_mix_tag_height ", " S_mix_tag_y ", " S_mixes ".",
#else
"Since mixing is the most common and most useful editing operation performed on \
@@ -1676,9 +1606,6 @@ void key_binding_help(void)
#if HAVE_FORTH
#define bind_key_example "\"End\" 0\n lambda: <{ -- val }> doc\"view full sound\"\n '( 0.0 #f #f #f frames #f srate f/ ) #f #f set-x-bounds ; bind-key"
#endif
- #if HAVE_CL
- #define bind_key_example "(bind-key \"End\" 0\n #'(lambda () \"view full sound\"\n (setf (x-bounds) (list 0.0 (/ (frames) (srate))))))"
- #endif
int i;
@@ -1746,12 +1673,6 @@ void play_help(void)
#define play_previous_version_example "0 #f #f #f #f 0 0 edit-position 1- play"
#define H_cursor_line S_cursor_line
#endif
- #if HAVE_CL
- #define play_cursor_example "(play (cursor))"
- #define play_file_example "(play \"oboe.snd\")"
- #define play_previous_version_example "(play 0 nil nil nil nil (1- (edit-position)))"
- #define H_cursor_line S_cursor_line
- #endif
snd_help_with_xrefs("Play",
@@ -1771,27 +1692,7 @@ In a multichannel file, C-q plays all channels from the current channel's \
cursor if the sync button is on, and otherwise plays only the current channel. \
Except in the browsers, what is actually played depends on the control panel.\
\n\n\
-The following functions are related to playing sounds:\n\
-\n\
- " S_play " (:optional samp snd chn sync end edpos stop-proc out-chan)\n\
- To play from the cursor: " play_cursor_example "\n\
- To play a file: " play_file_example "\n\
- To play the previous version of a sound: \n\
- " play_previous_version_example "\n\
-\n\
- To get a \"tracking cursor\" (a moving line that tries to follow along)\n\
- set " S_with_tracking_cursor " to " PROC_TRUE ", and " S_tracking_cursor_style "\n\
- to " H_cursor_line ".\n\
-\n\
- " S_play_and_wait " (:optional samp snd chn sync end edpos stop-proc out-chan)\n\
- a version of 'play' that does not return until the playing is complete.\n\
-\n\
- " S_play_channel " (:optional beg dur snd chn edpos stop-proc out-chan)\n\
- " S_play_mix " (mix :optional beg)\n\
- " S_play_region " (:optional reg wait stop-func)\n\
- " S_play_selection " (:optional wait pos stop-proc)\n\
-\n\
- " S_pausing ": set to " PROC_TRUE " to pause output\n",
+Use the play function to play any object.",
#else
"To play a sound, click the 'play' button. If the sound has more channels than your DAC(s), Snd will (normally) try to mix the extra channels \
@@ -1837,11 +1738,6 @@ void reverb_help(void)
#define reverb_control_p_example "#t set-reverb-control?"
#define mention_hidden_controls ""
#endif
- #if HAVE_CL
- #define reverb_control_length_bounds_example "(setf (reverb-control-length-bounds) (list 0.0 10.0))"
- #define reverb_control_p_example "(setf (reverb-control?) #t)"
- #define mention_hidden_controls "\nThe lowpass and feedback controls are accessible from the \"Hidden controls\" dialog in snd-motif.cl??"
- #endif
snd_help_with_xrefs("Reverb",
@@ -1916,7 +1812,7 @@ If you want Snd to ask before overwriting a file in any case, set the variable "
void filter_help(void)
{
- #if HAVE_SCHEME || HAVE_CL
+ #if HAVE_SCHEME
#define filter_sound_env_example "(filter-sound '(0 1 1 0) 1024)"
#define filter_sound_vct_example "(filter-sound (vct .1 .2 .3 .3 .2 .1) 6)"
#define filter_sound_clm_example "(filter-sound (make-filter 2 (vct 1 -1) (vct 0 -0.99)))"
@@ -1990,7 +1886,7 @@ The control filter functions are:\n\
void resample_help(void)
{
- #if HAVE_SCHEME || HAVE_CL
+ #if HAVE_SCHEME
#define src_number_example "(src-channel 2.0) ; go twice as fast"
#define src_env_example "(src-channel '(0 1 1 2))"
#define src_clm_example "(src-channel (make-env '(0 1 1 2) :end (frames)))"
@@ -2158,7 +2054,7 @@ functions are:\n\
void region_help(void)
{
- #if HAVE_SCHEME || HAVE_CL
+ #if HAVE_SCHEME
#define region_to_vct_example "(region->vct 0 0 reg) ; len=0 => entire region"
#define save_region_example "(save-region reg :file \"reg0.snd\" :header-type mus-next)"
#endif
@@ -2196,9 +2092,6 @@ The main region-related functions are:\n\
" S_mix_region " (:optional samp reg snd chn reg-chan)\n\
mix in region 'reg' at sample 'samp' (defaults to the cursor sample)\n\
\n\
- " S_play_region " (:optional reg wait stop-func)\n\
- play region\n\
-\n\
" S_save_region " (reg :optional-key :file :header-type :data-format :comment)\n\
save region 'reg' in 'file' in data format (default is mus-bshort),\n\
header type (default is mus-next), and comment. Return the output\n\
@@ -2256,7 +2149,7 @@ continue the definition.",
void selection_help(void)
{
- #if HAVE_SCHEME || HAVE_CL
+ #if HAVE_SCHEME
#define env_selection_example "(env-selection '(0 0 1 1 2 0))"
#define save_selection_example "(save-selection \"sel.snd\" :channel 1)"
#define scale_selection_list_example "(scale-selection-by '(0.0 2.0))"
@@ -2303,9 +2196,6 @@ The primary selection-related functions are:\n\
" S_mix_selection " (:optional beg snd chn selection-chan)\n\
mix (add) selection starting at 'beg'\n\
\n\
- " S_play_selection " (:optional wait pos stop-proc)\n\
- play the selection\n\
-\n\
" S_reverse_selection "(): reverse selected portion\n\
\n\
" S_save_selection " (:optional-key :file (:header-type mus-next)\n\
@@ -2384,10 +2274,6 @@ void colors_help(void)
#define make_color_example ": blue 0 0 1 make-color ;"
#define set_basic_color_example "blue set-basic-color"
#endif
- #if HAVE_CL
- #define make_color_example "(defvar blue (make-color 0.0 0.0 1.0))"
- #define set_basic_color_example "(setf (basic-color) blue)"
- #endif
snd_help_with_xrefs("Colors",
@@ -2446,7 +2332,7 @@ The sonogram colors can be set in the View:Colors dialog.",
void envelope_editor_dialog_help(void)
{
- #if HAVE_SCHEME || HAVE_CL
+ #if HAVE_SCHEME
#define define_envelope_name "defvar, define, or define-envelope"
#define ramp_envelope_example "'(0 0 1 1)"
#define define_envelope_example " (defvar ramp '(0 0 1 1))\n (define-envelope pyramid '(0 0 1 1 2 0))"
@@ -2765,11 +2651,6 @@ void find_dialog_help(void)
#define zero_plus "zero+"
#define closure_example ": zero+ ( -- prc; n self -- val )\n lambda-create 0.0 ( lastn ) , latestxt 1 make-proc\n does> { n self -- val }\n self @ ( lastn ) f0< n f0>= && -1 && { rtn }\n n self ! ( lastn = n )\n rtn\n;"
#endif
- #if HAVE_CL
- #define find_example "(lambda (n) (> n .1))"
- #define zero_plus "zero+"
- #define closure_example " (defun zero+ ()\n (let ((lastn 0.0))\n (lambda (n)\n (let ((rtn (and (< lastn 0.0) (>= n 0.0) -1)))\n (set! lastn n)\n rtn)))"
- #endif
snd_help_with_xrefs("Global Find",
@@ -3307,11 +3188,6 @@ static char *snd_finder(const char *name, bool got_help)
#define TRAILER ""
const char *defines[NUM_DEFINES] = {": ", "instrument: ", "event: "};
#endif
-#if HAVE_CL
- #define NUM_DEFINES 3
- #define TRAILER " "
- const char *defines[NUM_DEFINES] = {"(defun (", "(defmacro ", "(definstrument ("};
-#endif
if (mus_strlen(FGREP_PROG) == 0) return(NULL); /* configure didn't find a plausible fgrep */
@@ -3456,7 +3332,7 @@ static bool strings_might_match(const char *a, const char *b, int len)
#if HAVE_RUBY
if (a[i] == '_') return(true);
#endif
-#if HAVE_SCHEME || HAVE_FORTH || HAVE_CL
+#if HAVE_SCHEME || HAVE_FORTH
if (a[i] == '-') return(true);
#endif
}
@@ -3655,9 +3531,11 @@ static char *html_directory(void)
if (html_dir(ss))
{
bool happy;
+ int len;
char *hd = NULL;
- hd = (char *)calloc(mus_strlen(html_dir(ss)) + 16, sizeof(char));
- sprintf(hd, "%s/snd.html", html_dir(ss));
+ len = mus_strlen(html_dir(ss)) + 16;
+ hd = (char *)calloc(len, sizeof(char));
+ snprintf(hd, len, "%s/snd.html", html_dir(ss));
happy = mus_file_probe(hd);
free(hd);
if (happy) return(mus_strdup(html_dir(ss)));
@@ -3687,18 +3565,20 @@ void url_to_html_viewer(const char *url)
if (program)
{
char *path;
- path = (char *)calloc(strlen(dir_path) + strlen(url) + 256, sizeof(char));
+ int len;
+ len = strlen(dir_path) + strlen(url) + 256;
+ path = (char *)calloc(len, sizeof(char));
if ((strcmp(program, "netscape") == 0) ||
(strcmp(program, "mozilla") == 0) ||
(strcmp(program, "firefox") == 0))
{
- sprintf(path, "%s/%s", dir_path, url);
+ snprintf(path, len, "%s/%s", dir_path, url);
send_mozilla(program, path);
}
else
{
int err;
- sprintf(path, "%s file:%s/%s", program, dir_path, url);
+ snprintf(path, len, "%s file:%s/%s", program, dir_path, url);
err = system(path);
if (err == -1)
fprintf(stderr, "can't start %s?", program);
@@ -3785,7 +3665,7 @@ XEN g_snd_help_with_search(XEN text, int widget_wid, bool search)
{
/* snd-help but no search for misspelled name if search=false */
- #if HAVE_SCHEME || HAVE_CL
+ #if HAVE_SCHEME
#define snd_help_example "(snd-help 'make-vct)"
#define snd_help_arg_type "can be a string, symbol, or in some cases, the object itself"
#endif
diff --git a/snd-ladspa.c b/snd-ladspa.c
index 0789609..9084d3b 100644
--- a/snd-ladspa.c
+++ b/snd-ladspa.c
@@ -909,7 +909,7 @@ Information about parameters can be acquired using " S_analyse_ladspa "."
#if HAVE_EXTENSION_LANGUAGE
-#if HAVE_SCHEME || HAVE_CL
+#if HAVE_SCHEME
#define FIELD_PREFIX "."
#endif
#if HAVE_RUBY
diff --git a/snd-main.c b/snd-main.c
index 54a6c5c..e3f2647 100644
--- a/snd-main.c
+++ b/snd-main.c
@@ -283,6 +283,17 @@ static const char *enved_target_name(enved_target_t choice)
static const char *b2s(bool val) {return((val) ? (char *)PROC_TRUE : (char *)PROC_FALSE);} /* cast needed by g++ > 3.4 */
+#if (!USE_NO_GUI)
+static char *colvarname = NULL;
+static char *colormap_variable_name(int col)
+{
+ if (colvarname) free(colvarname);
+ colvarname = (char *)calloc(64, sizeof(char));
+ snprintf(colvarname, 64, "%s-colormap", colormap_name(col));
+ return(colvarname);
+}
+#endif
+
#define white_space " "
static bool b_ok = false;
@@ -401,46 +412,6 @@ static void pcp_sl(FILE *fd, const char *name, mus_float_t val1, mus_float_t val
#endif
-#if HAVE_CL
-static void pss_ss(FILE *fd, const char *name, const char *val) {fprintf(fd, "(setf (%s) %s)\n", name, val);}
-static void pss_sq(FILE *fd, const char *name, const char *val) {fprintf(fd, "(setf (%s) \"%s\")\n", name, val);}
-static void pss_sd(FILE *fd, const char *name, int val) {fprintf(fd, "(setf (%s) %d)\n", name, val);}
-static void pss_sod(FILE *fd, const char *name, mus_long_t val) {fprintf(fd, "(setf (%s) " MUS_LD ")\n", name, val);}
-static void pss_sf(FILE *fd, const char *name, mus_float_t val) {fprintf(fd, "(setf (%s) %.4f)\n", name, val);}
-static void pss_sl(FILE *fd, const char *name, mus_float_t val1, mus_float_t val2) {fprintf(fd, "(setf (%s) (list %f %f))\n", name, val1, val2);}
-
-static void psp_ss(FILE *fd, const char *name, const char *val)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile) %s)\n", white_space, name, val);}
-
-static void psp_sd(FILE *fd, const char *name, int val)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile) %d)\n", white_space, name, val);}
-
-static void psp_sf(FILE *fd, const char *name, mus_float_t val)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile) %.4f)\n", white_space, name, val);}
-
-static void psp_sl(FILE *fd, const char *name, mus_float_t val1, mus_float_t val2)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile) (list %f %f))\n", white_space, name, val1, val2);}
-
-static void pcp_ss(FILE *fd, const char *name, const char *val, int chan)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile %d) %s)\n", white_space, name, chan, val);}
-
-static void pcp_sss(FILE *fd, const char *name, const char *val, int chan, const char *grf)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile %d %s) \"%s\")\n", white_space, name, chan, grf, val);}
-
-static void pcp_sd(FILE *fd, const char *name, int val, int chan)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile %d) %d)\n", white_space, name, chan, val);}
-
-static void pcp_sod(FILE *fd, const char *name, mus_long_t val, int chan)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile %d) " MUS_LD ")\n", white_space, name, chan, val);}
-
-static void pcp_sf(FILE *fd, const char *name, mus_float_t val, int chan)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile %d) %.4f)\n", white_space, name, chan, val);}
-
-static void pcp_sl(FILE *fd, const char *name, mus_float_t val1, mus_float_t val2, int chan)
- {b_ok = true; fprintf(fd, "%s(setf (%s sfile %d) (list %f %f))\n", white_space, name, chan, val1, val2);}
-#endif
-
-
static void save_options(FILE *fd)
{
char *locale = NULL;
@@ -495,8 +466,10 @@ static void save_options(FILE *fd)
if (wavo_hop(ss) != DEFAULT_WAVO_HOP) pss_sd(fd, S_wavo_hop, wavo_hop(ss));
if (wavo_trace(ss) != DEFAULT_WAVO_TRACE) pss_sd(fd, S_wavo_trace, wavo_trace(ss));
if (spectro_hop(ss) != DEFAULT_SPECTRO_HOP) pss_sd(fd, S_spectro_hop, spectro_hop(ss));
- if ((color_map(ss) != DEFAULT_COLOR_MAP) && (color_map(ss) <= 14)) pss_sd(fd, S_colormap, color_map(ss)); /* 14=top of built-in set; else we need (if (colormap? ...) ...) */
+#if (!USE_NO_GUI)
+ if ((color_map(ss) != DEFAULT_COLOR_MAP) && (color_map(ss) <= 15)) pss_ss(fd, S_colormap, TO_VAR_NAME(colormap_variable_name(color_map(ss))));
if (color_map_size(ss) != DEFAULT_COLOR_MAP_SIZE) pss_sd(fd, S_colormap_size, color_map_size(ss));
+#endif
if (wavelet_type(ss) != DEFAULT_WAVELET_TYPE) pss_sd(fd, S_wavelet_type, wavelet_type(ss));
if (cursor_style(ss) != DEFAULT_CURSOR_STYLE) pss_ss(fd, S_cursor_style, cursor_style_name(cursor_style(ss)));
if (tracking_cursor_style(ss) != DEFAULT_TRACKING_CURSOR_STYLE) pss_ss(fd, S_tracking_cursor_style, cursor_style_name(tracking_cursor_style(ss)));
@@ -640,12 +613,6 @@ static void save_options(FILE *fd)
chans,
mus_data_format_to_string(format));
#endif
-#if HAVE_CL
- fprintf(fd, "(setf (mus-header-raw-defaults) (list %d %d %s))\n",
- srate,
- chans,
- mus_data_format_to_string(format));
-#endif
#if HAVE_RUBY
fprintf(fd, "set_mus_header_raw_defaults([%d, %d, %s])\n",
srate,
@@ -975,14 +942,6 @@ void open_save_sound_block(snd_info *sp, FILE *fd, bool with_nth)
(sp->user_read_only == FILE_READ_ONLY) ? S_view_sound : S_open_sound,
sp->filename);
#endif
-#if HAVE_CL
- fprintf(fd, "(let ((sfile (or (%s \"%s\" %d) (%s \"%s\"))))\n (if sfile\n (progn\n",
- S_find_sound,
- sp->short_filename, /* short filename ok because find-sound searches for that name as well as the full filename */
- (with_nth) ? find_sound_nth(sp) : 0,
- (sp->user_read_only == FILE_READ_ONLY) ? S_view_sound : S_open_sound,
- sp->filename);
-#endif
#if HAVE_FORTH
fprintf(fd, "\"%s\" %d %s to sfile\nsfile false? [if] \"%s\" %s to sfile [then]\n",
sp->short_filename,
@@ -1004,9 +963,6 @@ void close_save_sound_block(FILE *fd, bool need_f)
fprintf(fd, " #f)))\n"); /* avoid empty begin if no field was output */
else fprintf(fd, " )))\n");
#endif
-#if HAVE_CL
- fprintf(fd, " )))\n");
-#endif
#if HAVE_FORTH
fprintf(fd, "\n");
#endif
@@ -1211,10 +1167,6 @@ static void save_sound_state(snd_info *sp, void *ptr)
fprintf(fd, "%s(set! _saved_snd_selected_sound_ sfile)\n", white_space);
fprintf(fd, "%s(set! _saved_snd_selected_channel_ %d)\n", white_space, cp->chan);
#endif
-#if HAVE_CL
- fprintf(fd, "%s(setf _saved_snd_selected_sound_ sfile)\n", white_space);
- fprintf(fd, "%s(setf _saved_snd_selected_channel_ %d)\n", white_space, cp->chan);
-#endif
#if HAVE_RUBY
fprintf(fd, "%ssaved_snd_selected_sound = sfile\n", white_space);
fprintf(fd, "%ssaved_snd_selected_channel = %d\n", white_space, cp->chan);
@@ -1275,10 +1227,6 @@ void save_state(const char *save_state_name)
fprintf(save_fd, "\n(define _saved_snd_selected_sound_ #f)\n");
fprintf(save_fd, "(define _saved_snd_selected_channel_ #f)\n");
#endif
-#if HAVE_CL
- fprintf(save_fd, "\n(defvar _saved_snd_selected_sound_ nil)\n");
- fprintf(save_fd, "(defvar _saved_snd_selected_channel_ nil)\n");
-#endif
#if HAVE_RUBY
fprintf(save_fd, "\nsaved_snd_selected_sound = -1\n");
fprintf(save_fd, "saved_snd_selected_channel = -1\n");
@@ -1298,12 +1246,6 @@ void save_state(const char *save_state_name)
fprintf(save_fd, " (%s _saved_snd_selected_sound_)\n", S_select_sound);
fprintf(save_fd, " (%s _saved_snd_selected_channel_)))\n", S_select_channel);
#endif
-#if HAVE_CL
- fprintf(save_fd, "(if _saved_snd_selected_sound_\n");
- fprintf(save_fd, " (progn\n");
- fprintf(save_fd, " (%s _saved_snd_selected_sound_)\n", S_select_sound);
- fprintf(save_fd, " (%s _saved_snd_selected_channel_)))\n", S_select_channel);
-#endif
#if HAVE_RUBY
fprintf(save_fd, "if saved_snd_selected_sound != -1\n");
fprintf(save_fd, " select_sound(saved_snd_selected_sound)\n");
diff --git a/snd-marks.c b/snd-marks.c
index bcec2ec..a2b381f 100644
--- a/snd-marks.c
+++ b/snd-marks.c
@@ -2038,7 +2038,7 @@ static char *xen_mark_to_string(xen_mark *v)
char *buf;
if (v == NULL) return(NULL);
buf = (char *)calloc(XEN_MARK_PRINT_BUFFER_SIZE, sizeof(char));
- sprintf(buf, "#<mark %d>", v->n);
+ snprintf(buf, XEN_MARK_PRINT_BUFFER_SIZE, "#<mark %d>", v->n);
return(buf);
}
@@ -2103,13 +2103,26 @@ static bool s7_xen_mark_equalp(void *obj1, void *obj2)
return((obj1 == obj2) ||
(((xen_mark *)obj1)->n == ((xen_mark *)obj2)->n));
}
+
+
+static XEN s7_xen_mark_copy(s7_scheme *sc, s7_pointer obj)
+{
+ int id;
+ mark *m, *new_m;
+ chan_info *cps[1];
+ id = xen_mark_to_int(obj);
+ m = find_mark_from_id(id, cps, AT_CURRENT_EDIT_POSITION);
+ new_m = add_mark(m->samp, m->name, cps[0]);
+ new_m->sync = m->sync;
+ return(new_xen_mark(new_m->id));
+}
#endif
static void init_xen_mark(void)
{
#if HAVE_S7
- xen_mark_tag = XEN_MAKE_OBJECT_TYPE("<mark>", print_xen_mark, free_xen_mark, s7_xen_mark_equalp, NULL, NULL, NULL, NULL, NULL, NULL);
+ xen_mark_tag = XEN_MAKE_OBJECT_TYPE("<mark>", print_xen_mark, free_xen_mark, s7_xen_mark_equalp, NULL, NULL, NULL, NULL, s7_xen_mark_copy, NULL);
#else
#if HAVE_RUBY
xen_mark_tag = XEN_MAKE_OBJECT_TYPE("XenMark", sizeof(xen_mark));
diff --git a/snd-mix.c b/snd-mix.c
index f7b2576..e38ca8d 100644
--- a/snd-mix.c
+++ b/snd-mix.c
@@ -25,106 +25,105 @@ static bool mix_vct_untagged(vct *v, chan_info *cp, mus_long_t beg, const char *
static bool mix_file_untagged(const char *filename, int in_chan, chan_info *cp, mus_long_t beg, mus_long_t num, file_delete_t auto_delete, const char *origin)
{
- if ((num > 0) && (editable_p(cp)))
+ file_info *ihdr, *ohdr;
+ char *ofile;
+ int ofd, ifd = -1;
+ io_error_t io_err = IO_NO_ERROR;
+ snd_fd *sf = NULL;
+ mus_long_t i, j, size, in_chans;
+ int err = 0;
+ mus_sample_t **data;
+ mus_sample_t *chandata;
+
+ if ((num <= 0) || (!editable_p(cp)))
+ return(false);
+
+ ihdr = make_file_info(filename, FILE_READ_ONLY, FILE_NOT_SELECTED);
+ if (!ihdr) return(false);
+
+ if (in_chan >= ihdr->chans)
+ {
+ free_file_info(ihdr);
+ return(false);
+ }
+
+ ofile = snd_tempnam();
+ ohdr = make_temp_header(ofile, SND_SRATE(cp->sound), 1, 0, (char *)origin);
+ ofd = open_temp_file(ofile, 1, ohdr, &io_err);
+ if (ofd == -1)
{
- file_info *ihdr;
- ihdr = make_file_info(filename, FILE_READ_ONLY, FILE_NOT_SELECTED);
- if ((ihdr) && (in_chan < ihdr->chans))
+ free_file_info(ihdr);
+ free_file_info(ohdr);
+ snd_error(_("%s mix temp file %s: %s"),
+ (io_err != IO_NO_ERROR) ? io_error_name(io_err) : "can't open",
+ ofile,
+ snd_open_strerror());
+ return(false);
+ }
+
+ if ((disk_space_p(num * mus_bytes_per_sample(ohdr->format), ofile)) != DISK_SPACE_OK)
+ return(false);
+
+ sf = init_sample_read(beg, cp, READ_FORWARD);
+ if (sf) ifd = snd_open_read(filename);
+ if ((!sf) || (ifd < 0))
+ {
+ if (sf) free_snd_fd(sf);
+ free_file_info(ihdr);
+ free_file_info(ohdr);
+ mus_file_close(ofd);
+ snd_remove(ofile, REMOVE_FROM_CACHE);
+ free(ofile);
+ return(false);
+ }
+
+ if (beg < 0) beg = 0;
+ in_chans = ihdr->chans;
+
+ snd_file_open_descriptors(ifd, filename,
+ ihdr->format,
+ ihdr->data_location,
+ ihdr->chans,
+ ihdr->type);
+ during_open(ifd, filename, SND_MIX_FILE);
+ if (num < MAX_BUFFER_SIZE) size = num; else size = MAX_BUFFER_SIZE;
+
+ data = (mus_sample_t **)calloc(in_chans, sizeof(mus_sample_t *));
+ data[in_chan] = (mus_sample_t *)calloc(size, sizeof(mus_sample_t));
+ chandata = data[in_chan];
+
+ lseek(ofd, ohdr->data_location, SEEK_SET);
+ lseek(ifd, ihdr->data_location, SEEK_SET);
+ mus_file_read_chans(ifd, 0, size - 1, in_chans, data, data);
+ for (i = 0, j = 0; i < num; i++)
+ {
+ if (j == size)
{
- char *ofile;
- file_info *ohdr;
- int ofd;
- io_error_t io_err = IO_NO_ERROR;
-
- ofile = snd_tempnam();
- ohdr = make_temp_header(ofile, SND_SRATE(cp->sound), 1, 0, (char *)origin);
- ofd = open_temp_file(ofile, 1, ohdr, &io_err);
- if (ofd == -1)
- {
- free_file_info(ihdr);
- free_file_info(ohdr);
- snd_error(_("%s mix temp file %s: %s"),
- (io_err != IO_NO_ERROR) ? io_error_name(io_err) : "can't open",
- ofile,
- snd_open_strerror());
- }
- else
- {
- if ((disk_space_p(num * mus_bytes_per_sample(ohdr->format), ofile)) == DISK_SPACE_OK)
- {
- snd_fd *sf = NULL;
- int ifd = 0;
- sf = init_sample_read(beg, cp, READ_FORWARD);
- if (sf)
- ifd = snd_open_read(filename);
- if ((!sf) || /* i.e. no space for temp, I guess */
- (ifd < 0)) /* maybe too many files open? */
- {
- free_file_info(ihdr);
- free_file_info(ohdr);
- mus_file_close(ofd);
- snd_remove(ofile, REMOVE_FROM_CACHE);
- free(ofile);
- }
- else
- {
- mus_long_t i, j, size, in_chans;
- int err = 0;
- mus_sample_t **data;
- mus_sample_t *chandata;
- if (beg < 0) beg = 0;
- in_chans = ihdr->chans;
-
- snd_file_open_descriptors(ifd, filename,
- ihdr->format,
- ihdr->data_location,
- ihdr->chans,
- ihdr->type);
- during_open(ifd, filename, SND_MIX_FILE);
- if (num < MAX_BUFFER_SIZE) size = num; else size = MAX_BUFFER_SIZE;
-
- data = (mus_sample_t **)calloc(in_chans, sizeof(mus_sample_t *));
- data[in_chan] = (mus_sample_t *)calloc(size, sizeof(mus_sample_t));
- chandata = data[in_chan];
-
- lseek(ofd, ohdr->data_location, SEEK_SET);
- lseek(ifd, ihdr->data_location, SEEK_SET);
- mus_file_read_chans(ifd, 0, size - 1, in_chans, data, data);
- for (i = 0, j = 0; i < num; i++)
- {
- if (j == size)
- {
- err = mus_file_write(ofd, 0, size - 1, 1, &chandata);
- mus_file_read_chans(ifd, 0, size - 1, in_chans, data, data);
- j = 0;
- if (err == -1) break;
- }
- chandata[j] += read_sample_to_mus_sample(sf);
- j++;
- }
- if (j > 0) mus_file_write(ofd, 0, j - 1, 1, &chandata);
-
- close_temp_file(ofile, ofd, ohdr->type, num * mus_bytes_per_sample(ohdr->format));
- mus_file_close(ifd);
- sf = free_snd_fd(sf);
- free(data[in_chan]);
- free(data);
- free_file_info(ihdr);
- free_file_info(ohdr);
- file_change_samples(beg, num, ofile, cp, 0, DELETE_ME, origin, cp->edit_ctr);
- if (ofile) free(ofile);
-
- if (auto_delete == DELETE_ME)
- snd_remove(filename, REMOVE_FROM_CACHE);
-
- update_graph(cp);
- return(true);
- }
- }
- }
+ err = mus_file_write(ofd, 0, size - 1, 1, &chandata);
+ mus_file_read_chans(ifd, 0, size - 1, in_chans, data, data);
+ j = 0;
+ if (err == -1) break;
}
+ chandata[j] += read_sample_to_mus_sample(sf);
+ j++;
}
- return(false);
+ if (j > 0) mus_file_write(ofd, 0, j - 1, 1, &chandata);
+
+ close_temp_file(ofile, ofd, ohdr->type, num * mus_bytes_per_sample(ohdr->format));
+ mus_file_close(ifd);
+ sf = free_snd_fd(sf);
+ free(data[in_chan]);
+ free(data);
+ free_file_info(ihdr);
+ free_file_info(ohdr);
+ file_change_samples(beg, num, ofile, cp, 0, DELETE_ME, origin, cp->edit_ctr);
+ if (ofile) free(ofile);
+
+ if (auto_delete == DELETE_ME)
+ snd_remove(filename, REMOVE_FROM_CACHE);
+
+ update_graph(cp);
+ return(true);
}
@@ -186,47 +185,6 @@ void drag_and_drop_mix_at_x_y(int data, const char *filename, int x, int y)
}
-#if HAVE_GUILE_DYNAMIC_WIND
-typedef struct {
- mus_long_t beg, len;
- int chans;
- chan_info **cps;
- const char *fullname;
- bool with_tag;
- file_delete_t auto_delete;
- sync_info *si;
- int old_sync;
- snd_info *sp;
-} mix_file_context;
-
-static void before_mix_file(void *ignore) {}
-
-
-static XEN mix_file_body(void *context)
-{
- mix_file_context *mx = (mix_file_context *)context;
- int id;
- id = mix_file(mx->beg, mx->len, mx->chans, mx->cps, mx->fullname, mx->auto_delete, NULL, mx->with_tag, 0);
- return(new_xen_mix(id));
-}
-
-
-static void after_mix_file(void *context)
-{
- mix_file_context *mx = (mix_file_context *)context;
- if (mx->si)
- mx->si = free_sync_info(mx->si);
- else
- {
- if (mx->cps)
- free(mx->cps);
- }
- mx->sp->sync = mx->old_sync;
- free(mx);
-}
-#endif
-
-
int mix_complete_file(snd_info *sp, mus_long_t beg, const char *fullname, bool with_tag, file_delete_t auto_delete, mix_sync_t all_chans, int *out_chans)
{
chan_info *cp;
@@ -261,29 +219,6 @@ int mix_complete_file(snd_info *sp, mus_long_t beg, const char *fullname, bool w
}
if (out_chans) (*out_chans) = chans;
-#if HAVE_GUILE_DYNAMIC_WIND
- {
- mix_file_context *mx;
- XEN result;
- mx = (mix_file_context *)calloc(1, sizeof(mix_file_context));
- mx->beg = beg;
- mx->len = len;
- mx->chans = chans;
- mx->cps = cps;
- mx->fullname = fullname;
- mx->si = si;
- mx->sp = sp;
- mx->with_tag = with_tag;
- mx->auto_delete = auto_delete;
- mx->old_sync = old_sync;
- result = scm_internal_dynamic_wind((scm_t_guard)before_mix_file,
- (scm_t_inner)mix_file_body,
- (scm_t_guard)after_mix_file,
- (void *)mx,
- (void *)mx);
- id = XEN_TO_C_INT(result);
- }
-#else
id = mix_file(beg, len, chans, cps, fullname, auto_delete, NULL, with_tag, 0);
if (si)
si = free_sync_info(si);
@@ -293,7 +228,7 @@ int mix_complete_file(snd_info *sp, mus_long_t beg, const char *fullname, bool w
free(cps);
}
sp->sync = old_sync;
-#endif
+
return(id);
}
@@ -522,6 +457,7 @@ static mix_state *ed_mix_state(ed_list *ed, int mix_id)
/* these are the nominally unchanging fields in a mix (they don't follow the edit lists) */
#define MIX_TAG_ERASED -1
+#define ORIGINAL_SYNC_UNSET -1
typedef struct {
int id;
@@ -532,12 +468,12 @@ typedef struct {
mus_long_t in_samps;
int in_chan;
int tag_x, tag_y;
- int sync;
+ int sync, original_sync;
file_delete_t temporary; /* in-filename was written by us and needs to be deleted when mix state is deleted */
peak_env_info *peak_env;
XEN properties;
int properties_gc_loc;
- color_t color;
+ color_t color, original_color;
int x, y; /* these are needed to know where to erase while dragging the tag */
} mix_info;
@@ -768,6 +704,7 @@ static mix_info *make_mix_info(chan_info *cp)
md->cp = cp;
md->temporary = DONT_DELETE_ME;
md->color = ss->sgx->mix_color;
+ md->original_color = md->color;
md->tag_y = 0;
md->tag_x = 0;
md->name = NULL;
@@ -775,6 +712,8 @@ static mix_info *make_mix_info(chan_info *cp)
md->peak_env = NULL;
md->properties_gc_loc = NOT_A_GC_LOC;
md->properties = XEN_FALSE;
+ md->sync = 0;
+ md->original_sync = ORIGINAL_SYNC_UNSET;
return(md);
}
@@ -789,7 +728,7 @@ mix_state *prepare_mix_state_for_channel(chan_info *cp, int mix_loc, mus_long_t
}
-static void map_over_channel_mixes(chan_info *cp, void (*func)(mix_info *umx))
+static void for_each_channel_mix(chan_info *cp, void (*func)(mix_info *umx))
{
int i;
for (i = 0; i < mix_infos_ctr; i++)
@@ -802,6 +741,26 @@ static void map_over_channel_mixes(chan_info *cp, void (*func)(mix_info *umx))
}
+static void for_each_syncd_mix(int current_mix_id, void (*func)(mix_info *md, void *data), void *udata)
+{
+ int i, sync;
+ sync = mix_sync_from_id(current_mix_id);
+ if (sync != 0)
+ {
+ for (i = 0; i < mix_infos_ctr; i++)
+ if ((i != current_mix_id) &&
+ (mix_is_active(i)))
+ {
+ mix_info *md;
+ md = mix_infos[i];
+ if ((md) &&
+ (md->sync == sync))
+ (*func)(md, udata);
+ }
+ }
+}
+
+
bool channel_has_mixes(chan_info *cp)
{
int i;
@@ -833,7 +792,7 @@ static void remove_temporary_mix_file(mix_info *md)
void delete_any_remaining_mix_temp_files_at_exit(chan_info *cp)
{
- map_over_channel_mixes(cp, remove_temporary_mix_file);
+ for_each_channel_mix(cp, remove_temporary_mix_file);
}
@@ -989,7 +948,7 @@ env *mix_amp_env_from_id(int id)
/* stable (not in edit list) */
-static int mix_sync_from_id(int id)
+int mix_sync_from_id(int id)
{
mix_info *md;
md = md_from_id(id);
@@ -1001,12 +960,32 @@ static int mix_sync_from_id(int id)
static int current_mix_sync_max = 0;
-static int mix_set_sync_from_id(int id, int new_sync)
+int mix_set_sync_from_id(int id, int new_sync)
{
mix_info *md;
md = md_from_id(id);
if (md)
{
+ if (new_sync == GET_NEW_SYNC)
+ {
+ new_sync = current_mix_sync_max + 1;
+ md->original_sync = new_sync;
+ }
+ else
+ {
+ if (new_sync == GET_ORIGINAL_SYNC)
+ {
+ if (md->original_sync == ORIGINAL_SYNC_UNSET)
+ new_sync = current_mix_sync_max + 1;
+ else new_sync = md->original_sync;
+ }
+ else
+ {
+ if (new_sync != 0)
+ md->original_sync = new_sync;
+ }
+ }
+
md->sync = new_sync;
if (new_sync > current_mix_sync_max)
current_mix_sync_max = new_sync;
@@ -1059,7 +1038,7 @@ static int mix_tag_y_from_id(int id)
return(0);
}
-#if (!USE_NO_GUI)
+
static color_t mix_color_from_id(int mix_id)
{
mix_info *md;
@@ -1068,10 +1047,9 @@ static color_t mix_color_from_id(int mix_id)
return(md->color);
return(ss->sgx->mix_color);
}
-#endif
-static color_t mix_set_color_from_id(int id, color_t new_color)
+color_t mix_set_color_from_id(int id, color_t new_color)
{
mix_info *md;
md = md_from_id(id);
@@ -1081,6 +1059,39 @@ static color_t mix_set_color_from_id(int id, color_t new_color)
}
+void mix_unset_color_from_id(int id)
+{
+ mix_info *md;
+ md = md_from_id(id);
+ if (md)
+ md->color = md->original_color;
+}
+
+
+static void syncd_mix_unset_color_1(mix_info *md, void *ignore)
+{
+ md->color = md->original_color;
+}
+
+
+void syncd_mix_unset_color(int id)
+{
+ for_each_syncd_mix(id, syncd_mix_unset_color_1, NULL);
+}
+
+
+static void syncd_mix_set_color_1(mix_info *md, void *ignore)
+{
+ /* assume red (this is from the mix dialog) */
+ md->color = ss->sgx->red;
+}
+
+
+void syncd_mix_set_color(int id, color_t col)
+{
+ for_each_syncd_mix(id, syncd_mix_set_color_1, NULL);
+}
+
bool mix_set_amp_edit(int id, mus_float_t amp)
{
@@ -1118,6 +1129,29 @@ bool mix_set_amp_edit(int id, mus_float_t amp)
}
+typedef struct {mus_float_t amp;} syncd_amp_info;
+
+static void syncd_mix_set_amp_1(mix_info *md, void *amp)
+{
+ mus_long_t beg, len;
+ syncd_amp_info *ai = (syncd_amp_info *)amp;
+ mix_set_amp_edit(md->id, ai->amp);
+ beg = mix_position_from_id(md->id);
+ len = mix_length_from_id(md->id);
+ mix_display_during_drag(md->id, beg, beg + len);
+}
+
+
+void syncd_mix_set_amp(int id, mus_float_t amp)
+{
+ syncd_amp_info *ai;
+ ai = (syncd_amp_info *)malloc(sizeof(syncd_amp_info));
+ ai->amp = amp;
+ for_each_syncd_mix(id, syncd_mix_set_amp_1, (void *)ai);
+ free(ai);
+}
+
+
static mus_float_t src_input(void *arg, int direction)
{
return(read_sample((snd_fd *)arg));
@@ -1310,6 +1344,24 @@ bool mix_set_amp_env_edit(int id, env *e)
}
+static void syncd_mix_set_amp_env_1(mix_info *md, void *e)
+{
+ mus_long_t beg, len;
+ env *amp_env = (env *)e;
+ mix_set_amp_env_edit(md->id, amp_env);
+ beg = mix_position_from_id(md->id);
+ len = mix_length_from_id(md->id);
+ mix_display_during_drag(md->id, beg, beg + len);
+}
+
+
+void syncd_mix_set_amp_env(int id, env *e)
+{
+ for_each_syncd_mix(id, syncd_mix_set_amp_env_1, (void *)e);
+}
+
+
+
bool mix_set_position_edit(int id, mus_long_t pos)
{
mix_info *md;
@@ -1398,6 +1450,33 @@ bool mix_set_speed_edit(int id, mus_float_t spd)
return(edited);
}
+
+typedef struct {mus_float_t speed;} syncd_speed_info;
+
+static void syncd_mix_set_speed_1(mix_info *md, void *speed)
+{
+ mus_long_t beg, len;
+ syncd_speed_info *ai = (syncd_speed_info *)speed;
+ mix_set_speed_edit(md->id, ai->speed);
+ beg = mix_position_from_id(md->id);
+ len = mix_length_from_id(md->id);
+ mix_display_during_drag(md->id, beg, beg + len);
+}
+
+
+void syncd_mix_set_speed(int id, mus_float_t speed)
+{
+ syncd_speed_info *ai;
+ ai = (syncd_speed_info *)malloc(sizeof(syncd_speed_info));
+ ai->speed = speed;
+ for_each_syncd_mix(id, syncd_mix_set_speed_1, (void *)ai);
+ free(ai);
+}
+
+
+
+
+
/* mix-samples/set-mix-samples?
* combine mix_set_amp_env_edit with remake_mix_data accepting either vct or filename
* one problem is how to handle md->peak_env: currently I think it is based on the original
@@ -1486,7 +1565,6 @@ int hit_mix(chan_info *cp, int x, int y) /* mix tag press in snd-chn.c */
}
-
/* mix display */
void channel_set_mix_tags_erased(chan_info *cp)
@@ -1890,8 +1968,10 @@ int prepare_mix_dialog_waveform(int mix_id, axis_info *ap, bool *two_sided)
mus_long_t old_lo, old_hi;
double cur_srate;
int pts;
+
md = md_from_id(mix_id);
if (!md) return(0);
+
scl = ap->y_axis_y0 - ap->y_axis_y1;
old_lo = ap->losamp;
old_hi = ap->hisamp;
@@ -1908,7 +1988,9 @@ int prepare_mix_dialog_waveform(int mix_id, axis_info *ap, bool *two_sided)
ap->y0 = -1.0;
ap->y1 = 1.0;
init_axis_scales(ap);
+
pts = prepare_mix_waveform(md, ms, ap, scl * .5, (int)(scl * .5), cur_srate, two_sided);
+
ap->x0 = x0;
ap->x1 = x1;
ap->y0 = y0;
@@ -1916,6 +1998,7 @@ int prepare_mix_dialog_waveform(int mix_id, axis_info *ap, bool *two_sided)
ap->losamp = old_lo;
ap->hisamp = old_hi;
init_axis_scales(ap);
+
return(pts);
}
@@ -1928,7 +2011,7 @@ static void erase_mix_tag_and_waveform(mix_state *ms, chan_info *cp, axis_info *
old_x = x + mix_tag_width(ss) - 2;
if ((old_x + wave_width) > ap->x_axis_x1)
wave_width = ap->x_axis_x1 - old_x;
- fill_rectangle(erase_context(cp), old_x, (y > wave_height) ? (y - wave_height) : 0, wave_width + 2, wave_height + 2);
+ fill_rectangle(erase_context(cp), old_x, y - wave_height + 6, wave_width + 2, wave_height + 12);
}
@@ -1943,10 +2026,6 @@ static void draw_mix_tag_and_waveform(mix_info *md, mix_state *ms, int x)
ap = cp->axis;
show_wave = ((show_mix_waveforms(ss)) && (cp->show_mix_waveforms));
y = ap->y_offset + md->tag_y + MIX_TAG_Y_OFFSET;
-
- if ((show_wave) &&
- (md->y != MIX_TAG_ERASED))
- erase_mix_tag_and_waveform(ms, cp, ap, md->x, y);
if (ms->beg >= ap->losamp)
draw_mix_tag(md, x, y);
@@ -2050,10 +2129,25 @@ static with_hook_t hookable_before_drag;
static bool mix_dragged = false;
static XEN mix_release_hook;
static XEN mix_drag_hook;
+static mus_long_t orig_beg = 0;
/* also mix_click_hook in snd-chn.c */
static mus_long_t drag_beg = 0, drag_end = 0;
+
+typedef struct {mus_long_t beg; bool axis_changed;} move_mix_data;
+
+static mus_long_t syncd_mix_position(int id);
+
+static void move_syncd_mix(mix_info *md, void *data)
+{
+ move_mix_data *mmd = (move_mix_data *)data;
+ mix_set_position_edit(md->id, syncd_mix_position(md->id) + mmd->beg);
+ if (!mmd->axis_changed)
+ mix_display_during_drag(md->id, drag_beg, drag_end);
+}
+
+
void move_mix_tag(int mix_id, int x, int y)
{
/* dragging mix, hit_mix returns id, called only from snd-chn.c and above (watch_mix) */
@@ -2062,6 +2156,7 @@ void move_mix_tag(int mix_id, int x, int y)
axis_info *ap;
chan_info *cp;
bool axis_changed = false;
+ mus_long_t pos;
md = md_from_id(mix_id);
cp = md->cp;
@@ -2072,11 +2167,18 @@ void move_mix_tag(int mix_id, int x, int y)
hookable_before_drag = cp->hookable;
cp->hookable = WITHOUT_HOOK;
drag_beg = mix_position_from_id(mix_id);
+ orig_beg = drag_beg;
drag_end = drag_beg + mix_length_from_id(mix_id);
+ start_dragging_syncd_mixes(mix_id);
+ }
+ else
+ {
+ cp->edit_ctr = edpos_before_drag;
+ keep_dragging_syncd_mixes(mix_id);
}
- else cp->edit_ctr = edpos_before_drag;
- mix_set_position_edit(mix_id, snd_round_mus_long_t(ungrf_x(cp->axis, x) * (double)(SND_SRATE(cp->sound))));
+ pos = snd_round_mus_long_t(ungrf_x(cp->axis, x) * (double)(SND_SRATE(cp->sound)));
+ mix_set_position_edit(mix_id, pos);
mix_dragged = true;
ap = cp->axis;
@@ -2113,6 +2215,14 @@ void move_mix_tag(int mix_id, int x, int y)
}
reflect_mix_change(mix_id);
+ {
+ move_mix_data *mmd;
+ mmd = (move_mix_data *)malloc(sizeof(move_mix_data));
+ mmd->beg = pos - orig_beg;
+ mmd->axis_changed = axis_changed;
+ for_each_syncd_mix(mix_id, move_syncd_mix, (void *)mmd); /* syncd mixes drag together */
+ free(mmd);
+ }
if ((axis_changed) ||
(cp->sound->channel_style == CHANNELS_SUPERIMPOSED))
@@ -2138,6 +2248,25 @@ void move_mix_tag(int mix_id, int x, int y)
}
+static void syncd_mix_set_position_1(mix_info *md, void *data)
+{
+ move_mix_data *mmd = (move_mix_data *)data;
+ mix_set_position_edit(md->id, syncd_mix_position(md->id) + mmd->beg);
+ after_edit(md->cp);
+ update_graph(md->cp);
+}
+
+
+void syncd_mix_set_position(int mix_id, mus_long_t pos)
+{
+ move_mix_data *pos_data;
+ pos_data = (move_mix_data *)malloc(sizeof(move_mix_data));
+ pos_data->beg = pos;
+ for_each_syncd_mix(mix_id, syncd_mix_set_position_1, pos_data);
+ free(pos_data);
+}
+
+
void finish_moving_mix_tag(int mix_id, int x)
{
/* from mouse release after tag drag in snd-chn.c only */
@@ -2163,6 +2292,7 @@ void finish_moving_mix_tag(int mix_id, int x)
if (cp->edit_ctr > edpos_before_drag) /* possibly dragged it back to start point, so no edit took place */
cp->edit_ctr--;
+ keep_dragging_syncd_mixes(mix_id); /* fixup edpos */
if (XEN_HOOKED(mix_release_hook))
res = run_progn_hook(mix_release_hook,
@@ -2172,6 +2302,8 @@ void finish_moving_mix_tag(int mix_id, int x)
if (!(XEN_TRUE_P(res)))
{
+ mus_long_t old_pos;
+ old_pos = mix_position_from_id(mix_id);
if (mix_set_position_edit(mix_id, pos))
{
CURSOR(cp) = pos;
@@ -2181,8 +2313,10 @@ void finish_moving_mix_tag(int mix_id, int x)
* and we have to run lisp/fft graphs in any case (and the hook),
* but display_channel_data_1 erases the old graph, so it's hard to specialize for this case
*/
+ syncd_mix_set_position(mix_id, pos - old_pos); /* assumes syncd_mixes list exists */
}
}
+ stop_dragging_syncd_mixes(mix_id);
}
@@ -2233,6 +2367,137 @@ void after_mix_edit(int id)
+
+/* ---------------------------------------- syncd mixes ---------------------------------------- */
+
+typedef struct {
+ int mix_id, orig_edpos;
+ mus_long_t orig_beg;
+ chan_info *cp;
+} syncd_mix_info;
+
+static syncd_mix_info *syncd_mixes = NULL;
+static int syncd_mixes_length = 0;
+
+
+static mus_long_t syncd_mix_position(int id)
+{
+ if (syncd_mixes)
+ {
+ int i;
+ for (i = 0; i < syncd_mixes_length; i++)
+ if (id == syncd_mixes[i].mix_id)
+ return(syncd_mixes[i].orig_beg);
+ }
+ return(-1);
+}
+
+
+static void add_syncd_mix(mix_info *md, void *ignore)
+{
+ mus_long_t pos;
+ int i, mix_id;
+
+ mix_id = md->id;
+ pos = mix_position_from_id(mix_id);
+
+ i = syncd_mixes_length++;
+ syncd_mixes[i].mix_id = mix_id;
+ syncd_mixes[i].orig_beg = pos;
+ syncd_mixes[i].orig_edpos = md->cp->edit_ctr;
+ syncd_mixes[i].cp = md->cp;
+}
+
+
+static void count_syncd_mixes(mix_info *md, void *ignore)
+{
+ syncd_mixes_length++;
+}
+
+
+void start_dragging_syncd_mixes(int mix_id)
+{
+ syncd_mixes_length = 0;
+ for_each_syncd_mix(mix_id, count_syncd_mixes, NULL);
+ if (syncd_mixes_length > 0)
+ {
+ syncd_mixes = (syncd_mix_info *)calloc(syncd_mixes_length, sizeof(syncd_mix_info));
+ syncd_mixes_length = 0;
+ for_each_syncd_mix(mix_id, add_syncd_mix, NULL);
+ }
+}
+
+void keep_dragging_syncd_mixes(int mix_id)
+{
+ int i;
+ for (i = 0; i < syncd_mixes_length; i++)
+ syncd_mixes[i].cp->edit_ctr = syncd_mixes[i].orig_edpos;
+}
+
+void stop_dragging_syncd_mixes(int mix_id)
+{
+ /* undo edit? */
+ if (syncd_mixes)
+ {
+ free(syncd_mixes);
+ syncd_mixes = NULL;
+ syncd_mixes_length = 0;
+ }
+}
+
+
+static void syncd_mix_change_position_1(mix_info *md, void *data)
+{
+ move_mix_data *mmd = (move_mix_data *)data;
+ mix_set_position_edit(md->id, mix_position_from_id(md->id) + mmd->beg);
+ if (!mmd->axis_changed)
+ mix_display_during_drag(md->id, drag_beg, drag_end);
+}
+
+
+void syncd_mix_change_position(int mix_id, mus_long_t change)
+{
+ move_mix_data *pos_data;
+ pos_data = (move_mix_data *)malloc(sizeof(move_mix_data));
+ pos_data->beg = change;
+ for_each_syncd_mix(mix_id, syncd_mix_change_position_1, pos_data);
+ free(pos_data);
+}
+
+
+static int ms_chans = 0;
+static chan_info **ms_cps = NULL;
+
+static void update_syncd_chans(mix_info *md, void *ignore)
+{
+ int i;
+ for (i = 0; i < ms_chans; i++)
+ if (md->cp == ms_cps[i])
+ return;
+ ms_cps[ms_chans++] = md->cp;
+ update_graph(md->cp);
+}
+
+
+void after_syncd_mix_edit(int id)
+{
+ ms_chans = active_channels(WITH_VIRTUAL_CHANNELS);
+ if (ms_chans > 1)
+ {
+ ms_cps = (chan_info **)calloc(ms_chans, sizeof(chan_info *));
+ ms_chans = 1;
+ ms_cps[0] = mix_chan_info_from_id(id); /* base cp handled elsewhere */
+ for_each_syncd_mix(id, update_syncd_chans, NULL);
+ ms_chans = 0;
+ free(ms_cps);
+ ms_cps = NULL;
+ }
+}
+
+
+
+
+
/* ---------------------------------------- mix objects ---------------------------------------- */
typedef struct {
@@ -2271,7 +2536,7 @@ static char *xen_mix_to_string(xen_mix *v)
char *buf;
if (v == NULL) return(NULL);
buf = (char *)calloc(XEN_MIX_PRINT_BUFFER_SIZE, sizeof(char));
- sprintf(buf, "#<mix %d>", v->n);
+ snprintf(buf, XEN_MIX_PRINT_BUFFER_SIZE, "#<mix %d>", v->n);
return(buf);
}
@@ -2342,13 +2607,19 @@ static bool s7_xen_mix_equalp(void *obj1, void *obj2)
return((obj1 == obj2) ||
(((xen_mix *)obj1)->n == ((xen_mix *)obj2)->n));
}
+
+
+static XEN s7_xen_mix_copy(s7_scheme *sc, s7_pointer obj)
+{
+ return(new_xen_mix(copy_mix(XEN_MIX_TO_C_INT(obj))));
+}
#endif
static void init_xen_mix(void)
{
#if HAVE_S7
- xen_mix_tag = XEN_MAKE_OBJECT_TYPE("<mix>", print_xen_mix, free_xen_mix, s7_xen_mix_equalp, NULL, NULL, NULL, s7_xen_mix_length, NULL, NULL);
+ xen_mix_tag = XEN_MAKE_OBJECT_TYPE("<mix>", print_xen_mix, free_xen_mix, s7_xen_mix_equalp, NULL, NULL, NULL, s7_xen_mix_length, s7_xen_mix_copy, NULL);
#else
#if HAVE_RUBY
xen_mix_tag = XEN_MAKE_OBJECT_TYPE("XenMix", sizeof(xen_mix));
@@ -2436,7 +2707,6 @@ static XEN g_set_mix_position(XEN n, XEN pos)
beg = beg_to_sample(pos, S_setB S_mix_position);
if (mix_set_position_edit(id, beg))
after_mix_edit(id);
-
return(pos);
}
@@ -2538,9 +2808,6 @@ static XEN g_set_mix_speed(XEN n, XEN uval)
}
-
-/* mix-info */
-
static XEN g_mix_name(XEN n)
{
#define H_mix_name "(" S_mix_name " id): name of mix"
@@ -2686,10 +2953,12 @@ static XEN g_mix_home(XEN n)
#define H_mix_home "(" S_mix_home " id): list of sound index and channel for the output of the mix, and the \
filename or " PROC_FALSE " and the input channel for its data."
mix_info *md;
+
XEN_ASSERT_TYPE(XEN_MIX_P(n), n, XEN_ONLY_ARG, S_mix_home, "a mix");
md = md_from_id(XEN_MIX_TO_C_INT(n));
if (md == NULL)
return(snd_no_such_mix_error(S_mix_home, n));
+
return(XEN_LIST_4(C_INT_TO_XEN_SOUND((md->cp->sound)->index),
C_TO_XEN_INT((md->cp->chan)),
(md->in_filename) ? C_TO_XEN_STRING(md->in_filename) : XEN_FALSE,
@@ -2697,17 +2966,16 @@ filename or " PROC_FALSE " and the input channel for its data."
}
-
void color_mixes(color_t color)
{
int i;
set_mix_color(color);
for (i = 0; i < mix_infos_ctr; i++)
if (mix_infos[i])
- mix_infos[i]->color = color;
- /*
- for_each_normal_chan(update_graph);
- */
+ {
+ mix_infos[i]->color = color;
+ mix_infos[i]->original_color = color;
+ }
}
@@ -3009,7 +3277,11 @@ auto-delete is " PROC_TRUE ", the input file is deleted when it is no longer nee
/* TODO: make mix generic: vct=mix-vct, region=mix-region, sound-data=mix-sound-data, frame=mix-frame,
* also mix-sound|mix-channel (sound object/int), but arg order is confusing (file-chn...)
- * and mix-vct has "origin", also file_chn might be env: pan-mix-*
+ * and mix-vct has "origin", also file_chn might be env: pan-mix-* [vector list?]
+ *
+ * mix-vct origin arg is not used (externally) except as a comment
+ *
+ * mix object :channel :out-channel :start (:end?) :with-tag :auto-delete (:edit-position?) (:channels?) :origin
*/
XEN_ASSERT_TYPE(XEN_STRING_P(file), file, XEN_ARG_1, S_mix, "a string");
@@ -3059,6 +3331,7 @@ auto-delete is " PROC_TRUE ", the input file is deleted when it is no longer nee
int i, out_chans = 1;
XEN result = XEN_EMPTY_LIST;
file_delete_t delete_choice = DONT_DELETE_ME;
+
if (XEN_INTEGER_P(auto_delete))
delete_choice = (file_delete_t)XEN_TO_C_INT(auto_delete);
else
@@ -3124,10 +3397,12 @@ auto-delete is " PROC_TRUE ", the input file is deleted when it is no longer nee
if (len < FILE_BUFFER_SIZE)
{
mus_sample_t *data;
+
data = (mus_sample_t *)malloc(len * sizeof(mus_sample_t));
len = mus_file_to_array(name, file_channel, 0, len, data);
id = mix_buffer_with_tag(cp, data, beg, len, origin);
free(data);
+
if (delete_file == DELETE_ME)
snd_remove(name, REMOVE_FROM_CACHE);
else
@@ -3190,7 +3465,7 @@ static char *mix_sampler_to_string(mix_fd *fd)
char *desc;
desc = (char *)calloc(PRINT_BUFFER_SIZE, sizeof(char));
if ((fd == NULL) || (fd->sf == NULL))
- sprintf(desc, "#<mix-sampler: null>");
+ snprintf(desc, PRINT_BUFFER_SIZE, "#<mix-sampler: null>");
else
{
if ((mix_is_active(fd->sf->region)) &&
@@ -3206,7 +3481,7 @@ static char *mix_sampler_to_string(mix_fd *fd)
(fd->sf->at_eof) ? ", at eof" : "",
(md->in_filename) ? md->in_filename : "<vct>");
}
- else sprintf(desc, "#<mix-sampler: inactive>");
+ else snprintf(desc, PRINT_BUFFER_SIZE, "#<mix-sampler: inactive>");
}
return(desc);
}
@@ -3312,7 +3587,7 @@ XEN g_mix_sampler_home(XEN obj)
}
-bool mix_sampler_at_end_p(void *ptr)
+static bool mix_sampler_at_end_p(void *ptr)
{
mix_fd *mf = (mix_fd *)ptr;
return(mf->sf->at_eof);
@@ -3351,6 +3626,125 @@ XEN g_free_mix_sampler(XEN obj)
}
+static io_error_t save_mix(int id, const char *name, int type, int format)
+{
+ mix_info *md;
+ chan_info *cp;
+ snd_info *sp;
+ mix_state *ms;
+ io_error_t io_err = IO_NO_ERROR;
+ mus_long_t frames;
+
+ md = md_from_id(id);
+ cp = md->cp;
+ sp = cp->sound;
+ ms = current_mix_state(md);
+ frames = ms->len;
+
+ io_err = snd_write_header(name, type, SND_SRATE(sp), 1, frames, format, NULL, NULL);
+
+ if (io_err == IO_NO_ERROR)
+ {
+ mus_long_t oloc;
+ int ofd;
+ oloc = mus_header_data_location();
+ ofd = snd_reopen_write(name);
+ if (ofd != -1)
+ {
+ mus_sample_t **bufs;
+ mus_sample_t *data;
+ int err = 0;
+ mus_long_t i;
+ mix_fd *mf = NULL;
+
+ snd_file_open_descriptors(ofd, name, format, oloc, 1, type);
+ mus_file_set_clipping(ofd, clipping(ss));
+ lseek(ofd, oloc, SEEK_SET);
+
+ mf = (mix_fd *)calloc(1, sizeof(mix_fd));
+ mf->md = md;
+ mf->sf = make_virtual_mix_reader(md->cp, 0, ms->len, ms->index, ms->scaler, READ_FORWARD);
+ mf->sf->region = md->id;
+
+ bufs = (mus_sample_t **)calloc(1, sizeof(mus_sample_t *));
+ bufs[0] = (mus_sample_t *)calloc(FILE_BUFFER_SIZE, sizeof(mus_sample_t));
+ data = bufs[0];
+
+ for (i = 0; i < frames; i += FILE_BUFFER_SIZE)
+ {
+ int cursamples, k;
+ if ((i + FILE_BUFFER_SIZE) < frames)
+ cursamples = FILE_BUFFER_SIZE;
+ else cursamples = (frames - i);
+
+ for (k = 0; k < cursamples; k++)
+ data[k] = read_sample(mf->sf);
+ err = mus_file_write(ofd, 0, cursamples - 1, 1, bufs);
+ if (err == -1)
+ {
+ snd_warning("write error while saving mix");
+ break;
+ }
+ }
+
+ free_snd_fd(mf->sf);
+ free(mf);
+ free(bufs[0]);
+ data = NULL;
+ free(bufs);
+
+ mus_file_close(ofd);
+ }
+ else snd_error("%s %d in %s: %s", S_save_mix, id, name, snd_io_strerror());
+ }
+ else snd_error("%s %d in %s: %s", S_save_mix, id, name, snd_io_strerror());
+ return(io_err);
+}
+
+#define MIX_TAG_Y_SEPARATION 20
+
+int copy_mix(int id)
+{
+ int new_id;
+ mus_long_t pos;
+ char *filename, *origin;
+ mix_info *md, *new_md;
+
+ md = md_from_id(id);
+ if (!md) return(-1);
+
+ filename = snd_tempnam();
+ save_mix(id, filename, MUS_NEXT, MUS_OUT_FORMAT);
+
+ pos = mix_position_from_id(id);
+ origin = tagged_mix_to_string(filename, pos, 0, true); /* true = file should be auto-deleted, I think */
+
+ new_id = mix_file_with_tag(md->cp, filename, 0, pos, DELETE_ME, origin);
+
+ new_md = md_from_id(new_id);
+ if (!new_md->in_filename)
+ new_md->in_filename = mus_strdup(filename);
+
+ new_md->tag_y = md->tag_y + MIX_TAG_Y_SEPARATION;
+
+ free(origin);
+ free(filename);
+ return(new_id);
+}
+
+
+static XEN g_save_mix(XEN m, XEN file)
+{
+ #define H_save_mix "(" S_save_mix " mix filename) saves mix's samples in the file 'filename'"
+
+ XEN_ASSERT_TYPE(XEN_MIX_P(m), m, XEN_ARG_1, S_save_mix, "a mix");
+ XEN_ASSERT_TYPE(XEN_STRING_P(file), file, XEN_ARG_2, S_save_mix, "a filename");
+
+ save_mix(XEN_MIX_TO_C_INT(m), XEN_TO_C_STRING(file), MUS_NEXT, MUS_OUT_FORMAT);
+ return(m);
+}
+
+
static XEN g_view_mixes_dialog(void)
{
widget_t w;
@@ -3375,7 +3769,7 @@ static XEN g_set_mix_dialog_mix(XEN val)
}
-static bool play_mix(mix_info *md, mus_long_t beg)
+static bool play_mix(mix_info *md, mus_long_t beg, bool start_playing)
{
mix_state *ms;
ms = current_mix_state(md);
@@ -3386,26 +3780,33 @@ static bool play_mix(mix_info *md, mus_long_t beg)
ms = ed_mix_state(md->cp->edits[i], md->id);
}
if (ms)
- return(add_mix_to_play_list(ms, md->cp, beg));
+ return(add_mix_to_play_list(ms, md->cp, beg, start_playing));
return(false);
}
-static XEN g_play_mix(XEN num, XEN beg)
+static void syncd_mix_play_1(mix_info *md, void *ignore)
+{
+ play_mix(md, 0, false);
+}
+
+
+void syncd_mix_play(int id)
+{
+ /* add any syncd mixes to the play list (started later) */
+ for_each_syncd_mix(id, syncd_mix_play_1, NULL);
+}
+
+
+XEN g_play_mix(XEN num, mus_long_t samp)
{
- #define H_play_mix "(" S_play_mix " id :optional (beg 0)): play mix. 'beg' is where to start playing."
mix_info *md;
- mus_long_t samp;
- XEN_ASSERT_TYPE(XEN_MIX_P(num), num, XEN_ONLY_ARG, S_play_mix, "a mix");
md = md_from_id(XEN_MIX_TO_C_INT(num));
if (md == NULL)
- return(snd_no_such_mix_error(S_play_mix, num));
+ return(snd_no_such_mix_error(S_play, num));
+ play_mix(md, samp, true);
- ASSERT_SAMPLE_TYPE(S_play_mix, beg, XEN_ARG_2);
- samp = beg_to_sample(beg, S_play_mix);
-
- play_mix(md, samp);
return(num);
}
@@ -3415,7 +3816,7 @@ bool play_mix_from_id(int mix_id)
mix_info *md;
md = md_from_id(mix_id);
if (md)
- return(play_mix(md, 0));
+ return(play_mix(md, 0, true));
return(false);
}
@@ -3464,7 +3865,7 @@ XEN_ARGIFY_6(g_mix_vct_w, g_mix_vct)
XEN_ARGIFY_2(g_make_mix_sampler_w, g_make_mix_sampler)
XEN_NARGIFY_1(g_read_mix_sample_w, g_read_mix_sample)
XEN_NARGIFY_1(g_mix_sampler_p_w, g_mix_sampler_p)
-XEN_ARGIFY_2(g_play_mix_w, g_play_mix)
+XEN_NARGIFY_2(g_save_mix_w, g_save_mix)
XEN_NARGIFY_0(g_view_mixes_dialog_w, g_view_mixes_dialog)
XEN_NARGIFY_0(g_mix_dialog_mix_w, g_mix_dialog_mix)
@@ -3514,7 +3915,7 @@ XEN_NARGIFY_1(g_set_mix_dialog_mix_w, g_set_mix_dialog_mix)
#define g_make_mix_sampler_w g_make_mix_sampler
#define g_read_mix_sample_w g_read_mix_sample
#define g_mix_sampler_p_w g_mix_sampler_p
-#define g_play_mix_w g_play_mix
+#define g_save_mix_w g_save_mix
#define g_view_mixes_dialog_w g_view_mixes_dialog
#define g_mix_dialog_mix_w g_mix_dialog_mix
@@ -3555,7 +3956,7 @@ void g_init_mix(void)
XEN_DEFINE_PROCEDURE(S_make_mix_sampler, g_make_mix_sampler_w, 1, 1, 0, H_make_mix_sampler);
XEN_DEFINE_PROCEDURE(S_read_mix_sample, g_read_mix_sample_w, 1, 0, 0, H_read_mix_sample);
XEN_DEFINE_PROCEDURE(S_mix_sampler_p, g_mix_sampler_p_w, 1, 0, 0, H_mix_sampler_p);
- XEN_DEFINE_PROCEDURE(S_play_mix, g_play_mix_w, 0, 2, 0, H_play_mix);
+ XEN_DEFINE_PROCEDURE(S_save_mix, g_save_mix_w, 2, 0, 0, H_save_mix);
XEN_DEFINE_PROCEDURE(S_mix, g_mix_w, 1, 6, 0, H_mix);
XEN_DEFINE_PROCEDURE(S_mix_vct, g_mix_vct_w, 1, 5, 0, H_mix_vct);
@@ -3608,3 +4009,4 @@ void g_init_mix(void)
draw_mix_hook = XEN_DEFINE_HOOK(S_draw_mix_hook, 5, H_draw_mix_hook); /* arg = id, old-x, old-y, x, y */
}
+
diff --git a/snd-nogui.c b/snd-nogui.c
index 52f344a..32e8f83 100644
--- a/snd-nogui.c
+++ b/snd-nogui.c
@@ -326,7 +326,9 @@ void top_level_catch(int ignore)
}
#endif
+
#define FALLBACK_FONT "9x15"
+static XEN colormap_temp[16]; /* static for Ruby's sake */
void snd_doit(int argc, char **argv)
{
@@ -342,6 +344,23 @@ void snd_doit(int argc, char **argv)
xen_s7_set_repl_prompt("snd>");
#endif
+ XEN_DEFINE_VARIABLE("black-and-white-colormap", colormap_temp[0], C_TO_XEN_INT(0));
+ XEN_DEFINE_VARIABLE("gray-colormap", colormap_temp[1], C_TO_XEN_INT(1));
+ XEN_DEFINE_VARIABLE("hot-colormap", colormap_temp[2], C_TO_XEN_INT(2));
+ XEN_DEFINE_VARIABLE("cool-colormap", colormap_temp[3], C_TO_XEN_INT(3));
+ XEN_DEFINE_VARIABLE("bone-colormap", colormap_temp[4], C_TO_XEN_INT(4));
+ XEN_DEFINE_VARIABLE("copper-colormap", colormap_temp[5], C_TO_XEN_INT(5));
+ XEN_DEFINE_VARIABLE("pink-colormap", colormap_temp[6], C_TO_XEN_INT(6));
+ XEN_DEFINE_VARIABLE("jet-colormap", colormap_temp[7], C_TO_XEN_INT(7));
+ XEN_DEFINE_VARIABLE("prism-colormap", colormap_temp[8], C_TO_XEN_INT(8));
+ XEN_DEFINE_VARIABLE("autumn-colormap", colormap_temp[9], C_TO_XEN_INT(9));
+ XEN_DEFINE_VARIABLE("winter-colormap", colormap_temp[10], C_TO_XEN_INT(10));
+ XEN_DEFINE_VARIABLE("spring-colormap", colormap_temp[11], C_TO_XEN_INT(11));
+ XEN_DEFINE_VARIABLE("summer-colormap", colormap_temp[12], C_TO_XEN_INT(12));
+ XEN_DEFINE_VARIABLE("rainbow-colormap", colormap_temp[13], C_TO_XEN_INT(13));
+ XEN_DEFINE_VARIABLE("flag-colormap", colormap_temp[14], C_TO_XEN_INT(14));
+ XEN_DEFINE_VARIABLE("phases-colormap", colormap_temp[15], C_TO_XEN_INT(15));
+
#if HAVE_SCHEME
XEN_EVAL_C_STRING("(define " S_color_hook " (make-hook 0))");
XEN_EVAL_C_STRING("(define " S_drop_hook " (make-hook 1))");
@@ -747,5 +766,6 @@ void snd_doit(int argc, char **argv)
}
#endif
- xen_repl(1, argv);
+ if (!nostdin)
+ xen_repl(1, argv);
}
diff --git a/snd-nogui0.h b/snd-nogui0.h
index 5701f7a..c649bf7 100644
--- a/snd-nogui0.h
+++ b/snd-nogui0.h
@@ -66,6 +66,7 @@ typedef struct {
int fft_pix_x0, fft_pix_y0;
bool fft_pix_ready;
mus_float_t fft_pix_cutoff;
+ int current_cursor;
} chan_context;
typedef struct {
@@ -91,6 +92,7 @@ typedef struct {
struct dialog_play_info *ignore_me; /* for the compiler's benefit */
int requestor_dialog;
bool axis_color_set;
+ int bounds_cursor, graph_cursor;
} state_context;
#define snd_ShiftMask 0
diff --git a/snd-region.c b/snd-region.c
index 868ef9d..8f7070d 100644
--- a/snd-region.c
+++ b/snd-region.c
@@ -1357,7 +1357,7 @@ static char *xen_region_to_string(xen_region *v)
char *buf;
if (v == NULL) return(NULL);
buf = (char *)calloc(XEN_REGION_PRINT_BUFFER_SIZE, sizeof(char));
- sprintf(buf, "#<region %d>", v->n);
+ snprintf(buf, XEN_REGION_PRINT_BUFFER_SIZE, "#<region %d>", v->n);
return(buf);
}
@@ -1722,28 +1722,19 @@ static XEN g_forget_region(XEN n)
}
-static XEN g_play_region(XEN n, XEN wait, XEN stop_proc)
+XEN g_play_region(XEN n, play_process_t back, XEN stop_proc)
{
- #define H_play_region "(" S_play_region " reg :optional wait stop-proc): play region; if wait is " PROC_TRUE ", play to end before returning"
int rg;
- bool wt = false;
-
- XEN_ASSERT_TYPE(XEN_REGION_P(n), n, XEN_ARG_1, S_play_region, "a region");
- XEN_ASSERT_TYPE(XEN_BOOLEAN_IF_BOUND_P(wait), wait, XEN_ARG_2, S_play_region, "a boolean");
- XEN_ASSERT_TYPE(((XEN_PROCEDURE_P(stop_proc)) && (procedure_arity_ok(stop_proc, 1))) ||
- (XEN_NOT_BOUND_P(stop_proc)) ||
- (XEN_FALSE_P(stop_proc)),
- stop_proc, XEN_ARG_3, S_play_region, "a procedure of 1 arg");
- if (XEN_TRUE_P(wait)) wt = true;
-
+ region *r;
rg = XEN_REGION_TO_C_INT(n);
- if (!(region_ok(rg)))
- return(snd_no_such_region_error(S_play_region, n));
-
- make_region_readable(id_to_region(rg));
- play_region_1(rg, (wt) ? NOT_IN_BACKGROUND : IN_BACKGROUND, stop_proc);
-
- return(n);
+ r = id_to_region(rg);
+ if (r)
+ {
+ make_region_readable(r);
+ play_region_1(rg, back, stop_proc);
+ return(n);
+ }
+ return(snd_no_such_region_error(S_play, n));
}
@@ -2077,7 +2068,6 @@ XEN_NARGIFY_1(g_region_maxamp_w, g_region_maxamp)
XEN_NARGIFY_1(g_region_maxamp_position_w, g_region_maxamp_position)
XEN_ARGIFY_9(g_save_region_w, g_save_region)
XEN_NARGIFY_1(g_forget_region_w, g_forget_region)
-XEN_ARGIFY_3(g_play_region_w, g_play_region)
XEN_ARGIFY_4(g_make_region_w, g_make_region)
XEN_ARGIFY_5(g_mix_region_w, g_mix_region)
XEN_ARGIFY_3(g_region_sample_w, g_region_sample)
@@ -2102,7 +2092,6 @@ XEN_NARGIFY_1(g_region_to_integer_w, g_region_to_integer)
#define g_region_maxamp_position_w g_region_maxamp_position
#define g_save_region_w g_save_region
#define g_forget_region_w g_forget_region
-#define g_play_region_w g_play_region
#define g_make_region_w g_make_region
#define g_mix_region_w g_mix_region
#define g_region_sample_w g_region_sample
@@ -2134,7 +2123,6 @@ void g_init_regions(void)
XEN_DEFINE_PROCEDURE(S_region_maxamp_position, g_region_maxamp_position_w, 1, 0, 0, H_region_maxamp_position);
XEN_DEFINE_PROCEDURE(S_save_region, g_save_region_w, 2, 7, 0, H_save_region);
XEN_DEFINE_PROCEDURE(S_forget_region, g_forget_region_w, 1, 0, 0, H_forget_region);
- XEN_DEFINE_PROCEDURE(S_play_region, g_play_region_w, 1, 2, 0, H_play_region);
XEN_DEFINE_PROCEDURE(S_make_region, g_make_region_w, 0, 4, 0, H_make_region);
XEN_DEFINE_PROCEDURE(S_mix_region, g_mix_region_w, 1, 4, 0, H_mix_region);
XEN_DEFINE_PROCEDURE(S_region_sample, g_region_sample_w, 2, 1, 0, H_region_sample);
diff --git a/snd-select.c b/snd-select.c
index c156314..72685ed 100644
--- a/snd-select.c
+++ b/snd-select.c
@@ -190,6 +190,8 @@ mus_long_t selection_beg(chan_info *cp)
}
+static int xen_selection_counter = 0;
+
static void cp_set_selection_beg(chan_info *cp, mus_long_t beg)
{
ed_list *ed;
@@ -200,6 +202,7 @@ static void cp_set_selection_beg(chan_info *cp, mus_long_t beg)
if (beg < len)
ed->selection_beg = beg;
else ed->selection_beg = len - 1;
+ xen_selection_counter++;
ed->selection_maxamp = -1.0;
ed->selection_maxamp_position = -1;
@@ -363,6 +366,7 @@ void reactivate_selection(chan_info *cp, mus_long_t beg, mus_long_t end)
cp->selection_visible = false;
ed->selection_maxamp = -1.0;
ed->selection_maxamp_position = -1;
+ xen_selection_counter++;
call_selection_watchers(SELECTION_ACTIVE);
}
@@ -572,6 +576,15 @@ void start_selection_creation(chan_info *cp, mus_long_t samp)
}
+void restart_selection_creation(chan_info *cp, bool right)
+{
+ syncd_chans = sync_to_chan(cp);
+ if (right)
+ syncd_chans->begs[0] = selection_beg(cp);
+ else syncd_chans->begs[0] = selection_end(cp);
+}
+
+
bool selection_creation_in_progress(void) {return(syncd_chans != NULL);}
@@ -631,6 +644,11 @@ static void cp_redraw_selection(chan_info *cp)
#if USE_CAIRO
make_graph(cp);
#endif
+
+ if (ap->losamp <= beg)
+ {
+
+ }
}
@@ -811,6 +829,204 @@ void move_selection(chan_info *cp, int x)
}
+/* ---------------------------------------- selection object ---------------------------------------- */
+
+typedef struct {
+ int n;
+} xen_selection;
+
+
+#define XEN_TO_XEN_SELECTION(arg) ((xen_selection *)XEN_OBJECT_REF(arg))
+
+static XEN_OBJECT_TYPE xen_selection_tag;
+
+bool xen_selection_p(XEN obj)
+{
+ return(XEN_OBJECT_TYPE_P(obj, xen_selection_tag));
+}
+
+
+static void xen_selection_free(xen_selection *v) {if (v) free(v);}
+
+XEN_MAKE_OBJECT_FREE_PROCEDURE(xen_selection, free_xen_selection, xen_selection_free)
+
+
+static char *xen_selection_to_string(xen_selection *v)
+{
+ #define XEN_SELECTION_PRINT_BUFFER_SIZE 64
+ char *buf;
+ if (v == NULL) return(NULL);
+ buf = (char *)calloc(XEN_SELECTION_PRINT_BUFFER_SIZE, sizeof(char));
+ snprintf(buf, XEN_SELECTION_PRINT_BUFFER_SIZE, "#<selection %d>", v->n);
+ return(buf);
+}
+
+XEN_MAKE_OBJECT_PRINT_PROCEDURE(xen_selection, print_xen_selection, xen_selection_to_string)
+
+
+#if HAVE_FORTH || HAVE_RUBY
+static XEN g_xen_selection_to_string(XEN obj)
+{
+ char *vstr;
+ XEN result;
+ #define S_xen_selection_to_string "selection->string"
+
+ XEN_ASSERT_TYPE(XEN_SELECTION_P(obj), obj, XEN_ONLY_ARG, S_xen_selection_to_string, "a selection");
+
+ vstr = xen_selection_to_string(XEN_TO_XEN_SELECTION(obj));
+ result = C_TO_XEN_STRING(vstr);
+ free(vstr);
+ return(result);
+}
+#endif
+
+
+#if (!HAVE_S7)
+static bool xen_selection_equalp(xen_selection *v1, xen_selection *v2)
+{
+ return((v1 == v2) ||
+ (v1->n == v2->n));
+}
+
+
+static XEN equalp_xen_selection(XEN obj1, XEN obj2)
+{
+ if ((!(XEN_SELECTION_P(obj1))) || (!(XEN_SELECTION_P(obj2)))) return(XEN_FALSE);
+ return(xen_return_first(C_TO_XEN_BOOLEAN(xen_selection_equalp(XEN_TO_XEN_SELECTION(obj1), XEN_TO_XEN_SELECTION(obj2))), obj1, obj2));
+}
+#endif
+
+
+static xen_selection *xen_selection_make(int n)
+{
+ xen_selection *new_v;
+ new_v = (xen_selection *)malloc(sizeof(xen_selection));
+ new_v->n = n;
+ return(new_v);
+}
+
+
+static XEN g_selection(void)
+{
+ #define H_selection "(" S_selection" ) returns an object representing the current selection, or #f if there is no active selection"
+ if (selection_is_active())
+ {
+ xen_selection *mx;
+ mx = xen_selection_make(xen_selection_counter);
+ XEN_MAKE_AND_RETURN_OBJECT(xen_selection_tag, mx, 0, free_xen_selection);
+ }
+ return(XEN_FALSE);
+}
+
+
+#if HAVE_S7
+static XEN s7_xen_selection_length(s7_scheme *sc, XEN obj)
+{
+ return(g_selection_frames(XEN_UNDEFINED, XEN_UNDEFINED));
+}
+
+
+static bool s7_xen_selection_equalp(void *obj1, void *obj2)
+{
+ return((obj1 == obj2) ||
+ (((xen_selection *)obj1)->n == ((xen_selection *)obj2)->n));
+}
+
+
+static XEN s7_xen_selection_copy(s7_scheme *sc, XEN obj)
+{
+ if (selection_is_active())
+ {
+ snd_info *sp;
+ char *name;
+ name = snd_tempnam();
+ save_selection(name, MUS_NEXT, MUS_OUT_FORMAT, selection_srate(), NULL, SAVE_ALL_CHANS);
+ sp = snd_open_file(name, FILE_READ_WRITE);
+ free(name);
+ return(new_xen_sound(sp->index));
+ }
+ return(XEN_FALSE);
+}
+
+
+static XEN s7_xen_selection_fill(s7_scheme *sc, XEN obj, XEN val)
+{
+ sync_info *si;
+ mus_float_t valf;
+
+ valf = XEN_TO_C_DOUBLE(val);
+ if (valf == 0.0)
+ {
+ mus_float_t vals[1] = {0.0};
+ scale_by(NULL, vals, 1, true); /* 1 entry in vals array, true = over selection */
+ return(XEN_FALSE);
+ }
+
+ si = selection_sync();
+ if (si)
+ {
+ int i;
+ mus_sample_t value;
+ value = MUS_FLOAT_TO_SAMPLE(valf);
+ for (i = 0; i < si->chans; i++)
+ {
+ mus_long_t beg, end, len, j;
+ mus_sample_t *data;
+ beg = selection_beg(si->cps[i]);
+ end = selection_end(si->cps[i]);
+ len = end - beg + 1;
+ data = (mus_sample_t *)malloc(len * sizeof(mus_sample_t));
+ for (j = 0; j < len; j++)
+ data[j] = value;
+ if (change_samples(beg, len, data, si->cps[i], "fill! selection", si->cps[i]->edit_ctr))
+ update_graph(si->cps[i]);
+ free(data);
+ }
+ }
+ return(XEN_FALSE);
+}
+#endif
+
+
+static void init_xen_selection(void)
+{
+#if HAVE_S7
+ xen_selection_tag = XEN_MAKE_OBJECT_TYPE("<selection>",
+ print_xen_selection, free_xen_selection, s7_xen_selection_equalp,
+ NULL, NULL, NULL, s7_xen_selection_length,
+ s7_xen_selection_copy, s7_xen_selection_fill);
+#else
+#if HAVE_RUBY
+ xen_selection_tag = XEN_MAKE_OBJECT_TYPE("XenSelection", sizeof(xen_selection));
+#else
+ xen_selection_tag = XEN_MAKE_OBJECT_TYPE("selection", sizeof(xen_selection));
+#endif
+#endif
+
+#if HAVE_GUILE
+ scm_set_smob_print(xen_selection_tag, print_xen_selection);
+ scm_set_smob_free(xen_selection_tag, free_xen_selection);
+ scm_set_smob_equalp(xen_selection_tag, equalp_xen_selection);
+#endif
+
+#if HAVE_FORTH
+ fth_set_object_inspect(xen_selection_tag, print_xen_selection);
+ fth_set_object_dump(xen_selection_tag, g_xen_selection_to_string);
+ fth_set_object_equal(xen_selection_tag, equalp_xen_selection);
+ fth_set_object_free(xen_selection_tag, free_xen_selection);
+#endif
+
+#if HAVE_RUBY
+ rb_define_method(xen_selection_tag, "to_s", XEN_PROCEDURE_CAST print_xen_selection, 0);
+ rb_define_method(xen_selection_tag, "eql?", XEN_PROCEDURE_CAST equalp_xen_selection, 1);
+ rb_define_method(xen_selection_tag, "==", XEN_PROCEDURE_CAST equalp_xen_selection, 1);
+ rb_define_method(xen_selection_tag, "to_str", XEN_PROCEDURE_CAST g_xen_selection_to_string, 0);
+#endif
+}
+/* -------------------------------------------------------------------------------- */
+
+
+
io_error_t save_selection(const char *ofile, int type, int format, int srate, const char *comment, int chan)
{
/* type and format have already been checked */
@@ -854,7 +1070,6 @@ io_error_t save_selection(const char *ofile, int type, int format, int srate, co
else chans = 1;
io_err = snd_write_header(ofile, type, srate, chans, chans * dur, format, comment, NULL);
- ASSERT_IO_ERROR(io_err, "snd_write_header in save_selection");
if (io_err != IO_NO_ERROR)
{
si = free_sync_info(si);
@@ -1047,7 +1262,6 @@ static XEN g_insert_selection(XEN beg, XEN snd, XEN chn)
io_err = insert_selection(cp, si_out, samp);
free_sync_info(si_out);
- ASSERT_IO_ERROR(io_err, "insert_selection in g_insert_selection");
if (SERIOUS_IO_ERROR(io_err))
XEN_ERROR(XEN_ERROR_TYPE("IO-error"),
XEN_LIST_2(C_TO_XEN_STRING(S_insert_selection),
@@ -1084,8 +1298,8 @@ static XEN g_mix_selection(XEN beg, XEN snd, XEN chn, XEN sel_chan)
si_out = make_simple_sync(cp, obeg); /* ignore sync */
else si_out = sync_to_chan(cp);
- chans = si_out->chans;
id = mix_selection(cp, si_out, obeg, &io_err, selection_chan);
+ chans = si_out->chans; /* save for loop below */
free_sync_info(si_out);
if (SERIOUS_IO_ERROR(io_err))
@@ -1102,9 +1316,78 @@ static XEN g_mix_selection(XEN beg, XEN snd, XEN chn, XEN sel_chan)
}
-static XEN g_selection_p(void)
+static XEN g_selection_to_mix(void)
{
- #define H_selection_p "(" S_selection_p "): " PROC_TRUE " if selection is currently active, visible, etc"
+ #define H_selection_to_mix "(" S_selection_to_mix "): turns the current selection into a mix"
+ if (selection_is_active())
+ {
+ chan_info *cp;
+ io_error_t io_err = IO_NO_ERROR;
+ int i, id = INVALID_MIX_ID, chans = 0, sync = GET_NEW_SYNC;
+ sync_info *si_out;
+ XEN result = XEN_EMPTY_LIST;
+ char *tempfile = NULL, *origin = NULL;
+
+ si_out = selection_sync();
+ cp = si_out->cps[0];
+
+ tempfile = snd_tempnam();
+ io_err = save_selection(tempfile, MUS_NEXT, MUS_OUT_FORMAT, SND_SRATE(cp->sound), NULL, SAVE_ALL_CHANS);
+ if (SERIOUS_IO_ERROR(io_err))
+ {
+ if (tempfile) free(tempfile);
+ free_sync_info(si_out);
+ XEN_ERROR(XEN_ERROR_TYPE("IO-error"),
+ XEN_LIST_2(C_TO_XEN_STRING(S_selection_to_mix),
+ C_TO_XEN_STRING(io_error_name(io_err))));
+ }
+
+ origin = mus_format("%s", S_selection_to_mix);
+ if (si_out->chans > 1)
+ remember_temp(tempfile, si_out->chans);
+
+ g_scale_selection_by(C_TO_XEN_DOUBLE(0.0));
+
+ id = mix_file(selection_beg(NULL), selection_len(), si_out->chans, si_out->cps, tempfile,
+ (si_out->chans > 1) ? MULTICHANNEL_DELETION : DELETE_ME,
+ origin, true,
+ 0);
+
+ deactivate_selection();
+ free(origin);
+ if (tempfile) free(tempfile);
+ chans = si_out->chans; /* save for loop below */
+ free_sync_info(si_out);
+
+ if (id == -1) return(XEN_FALSE);
+ if (chans == 1)
+ return(XEN_CONS(new_xen_mix(id), XEN_EMPTY_LIST)); /* no sync */
+
+ for (i = 0; i < chans; i++)
+ {
+ sync = mix_set_sync_from_id(id + i, sync);
+ result = XEN_CONS(new_xen_mix(id + i), result);
+ }
+
+ if ((mix_dialog_mix() >= id) &&
+ (mix_dialog_mix() < (id + chans)))
+ reflect_mix_change(id);
+ /* this update is needed in a case like: file close (closing old mix), open new, mix -- this mix can now have old mix's id */
+ return(XEN_LIST_REVERSE(result));
+ }
+ return(snd_no_active_selection_error(S_selection_to_mix));
+}
+
+
+static XEN g_selection_p(XEN sel)
+{
+ #define H_selection_p "(" S_selection_p " :optional obj): " PROC_TRUE " if selection is currently active, visible, etc. \
+If 'obj' is passed, " S_selection_p " returns #t is obj is a selection object and there is a current selection."
+
+ if ((XEN_BOUND_P(sel)) &&
+ (!(xen_selection_p(sel))))
+ return(XEN_FALSE);
+
return(C_TO_XEN_BOOLEAN(selection_is_active()));
}
@@ -1169,7 +1452,7 @@ static XEN g_set_selection_position(XEN pos, XEN snd, XEN chn)
WITH_THREE_SETTER_ARGS(g_set_selection_position_reversed, g_set_selection_position)
-static XEN g_selection_frames(XEN snd, XEN chn)
+XEN g_selection_frames(XEN snd, XEN chn)
{
#define H_selection_frames "(" S_selection_frames " :optional snd chn): selection length"
if (selection_is_active())
@@ -1327,9 +1610,11 @@ save the current selection in file using the indicated file attributes. If chan
keys[3] = kw_srate;
keys[4] = kw_comment;
keys[5] = kw_channel;
+
for (i = 0; i < 12; i++) args[i] = XEN_UNDEFINED;
arglist_len = XEN_LIST_LENGTH(arglist);
for (i = 0; i < arglist_len; i++) args[i] = XEN_LIST_REF(arglist, i);
+
vals = mus_optkey_unscramble(S_save_selection, 6, keys, args, orig_arg);
if (vals > 0)
{
@@ -1340,28 +1625,34 @@ save the current selection in file using the indicated file attributes. If chan
com = mus_optkey_to_string(keys[4], S_save_selection, orig_arg[4], NULL);
chn = mus_optkey_to_int(keys[5], S_save_selection, orig_arg[5], SAVE_ALL_CHANS);
}
+
if (file == NULL)
XEN_ERROR(XEN_ERROR_TYPE("IO-error"),
XEN_LIST_2(C_TO_XEN_STRING(S_save_selection),
C_TO_XEN_STRING("no output file?")));
+
if ((type != -1) && (!(mus_header_writable(type, -2))))
XEN_ERROR(CANNOT_SAVE,
XEN_LIST_3(C_TO_XEN_STRING(S_save_selection),
C_TO_XEN_STRING(_("can't write this header type:")),
C_TO_XEN_STRING(mus_header_type_name(type))));
+
if ((type != -1) && (format != -1) && (!(mus_header_writable(type, format))))
XEN_ERROR(CANNOT_SAVE,
XEN_LIST_4(C_TO_XEN_STRING(S_save_selection),
C_TO_XEN_STRING(_("can't write this combination of header type and data format:")),
C_TO_XEN_STRING(mus_header_type_name(type)),
C_TO_XEN_STRING(mus_data_format_name(format))));
+
if ((sr != -1) && (sr <= 0))
XEN_ERROR(CANNOT_SAVE,
XEN_LIST_3(C_TO_XEN_STRING(S_save_selection),
C_TO_XEN_STRING(_("srate can't be <= 0")),
C_TO_XEN_INT(sr)));
+
fname = mus_expand_filename(file);
io_err = save_selection(fname, type, format, sr, com, chn);
+
if (fname) free(fname);
if ((io_err != IO_NO_ERROR) &&
(io_err != IO_INTERRUPTED) &&
@@ -1373,28 +1664,49 @@ save the current selection in file using the indicated file attributes. If chan
}
-static XEN g_selection_chans(void)
+XEN g_selection_chans(void)
{
#define H_selection_chans "(" S_selection_chans "): chans in active selection"
return(C_TO_XEN_INT(selection_chans()));
}
-static XEN g_selection_srate(void)
+XEN g_selection_srate(void)
{
#define H_selection_srate "(" S_selection_srate "): selection srate"
return(C_TO_XEN_INT(selection_srate()));
}
-static XEN g_selection_maxamp(XEN snd, XEN chn)
+XEN g_selection_maxamp(XEN snd, XEN chn)
{
- #define H_selection_maxamp "(" S_selection_maxamp " :optional snd chn): selection maxamp in given channel"
- chan_info *cp;
- ASSERT_CHANNEL(S_selection_maxamp, snd, chn, 1);
- cp = get_cp(snd, chn, S_selection_maxamp);
- if (!cp) return(XEN_FALSE);
- return(C_TO_XEN_DOUBLE(selection_maxamp(cp)));
+ #define H_selection_maxamp "(" S_selection_maxamp " :optional snd chn): selection maxamp in given channel, or overall maxamp if no args passed."
+ if (XEN_BOUND_P(snd))
+ {
+ chan_info *cp;
+ ASSERT_CHANNEL(S_selection_maxamp, snd, chn, 1);
+ cp = get_cp(snd, chn, S_selection_maxamp);
+ if (!cp) return(XEN_FALSE);
+ return(C_TO_XEN_DOUBLE(selection_maxamp(cp)));
+ }
+ else
+ {
+ mus_float_t mx = 0.0;
+ int i;
+ sync_info *si;
+ si = selection_sync();
+ if (!si)
+ return(C_TO_XEN_DOUBLE(0.0)); /* no selection -- error? */
+ for (i = 0; i < si->chans; i++)
+ {
+ mus_float_t cur_mx;
+ cur_mx = selection_maxamp(si->cps[i]);
+ if (cur_mx > mx)
+ mx = cur_mx;
+ }
+ free_sync_info(si);
+ return(C_TO_XEN_DOUBLE(mx));
+ }
}
@@ -1416,7 +1728,8 @@ XEN_ARGIFY_2(g_selection_frames_w, g_selection_frames)
XEN_ARGIFY_3(g_set_selection_frames_w, g_set_selection_frames)
XEN_ARGIFY_2(g_selection_member_w, g_selection_member)
XEN_ARGIFY_3(g_set_selection_member_w, g_set_selection_member)
-XEN_NARGIFY_0(g_selection_p_w, g_selection_p)
+XEN_NARGIFY_0(g_selection_w, g_selection)
+XEN_ARGIFY_1(g_selection_p_w, g_selection_p)
XEN_NARGIFY_0(g_selection_chans_w, g_selection_chans)
XEN_NARGIFY_0(g_selection_srate_w, g_selection_srate)
XEN_ARGIFY_2(g_selection_maxamp_w, g_selection_maxamp)
@@ -1424,6 +1737,7 @@ XEN_ARGIFY_2(g_selection_maxamp_position_w, g_selection_maxamp_position)
XEN_NARGIFY_0(g_delete_selection_w, g_delete_selection)
XEN_ARGIFY_3(g_insert_selection_w, g_insert_selection)
XEN_ARGIFY_4(g_mix_selection_w, g_mix_selection)
+XEN_NARGIFY_0(g_selection_to_mix_w, g_selection_to_mix)
XEN_ARGIFY_2(g_select_all_w, g_select_all)
XEN_VARGIFY(g_save_selection_w, g_save_selection)
#else
@@ -1434,6 +1748,7 @@ XEN_VARGIFY(g_save_selection_w, g_save_selection)
#define g_selection_member_w g_selection_member
#define g_set_selection_member_w g_set_selection_member
#define g_selection_p_w g_selection_p
+#define g_selection_w g_selection
#define g_selection_chans_w g_selection_chans
#define g_selection_srate_w g_selection_srate
#define g_selection_maxamp_w g_selection_maxamp
@@ -1441,6 +1756,7 @@ XEN_VARGIFY(g_save_selection_w, g_save_selection)
#define g_delete_selection_w g_delete_selection
#define g_insert_selection_w g_insert_selection
#define g_mix_selection_w g_mix_selection
+#define g_selection_to_mix_w g_selection_to_mix
#define g_select_all_w g_select_all
#define g_save_selection_w g_save_selection
#endif
@@ -1448,6 +1764,7 @@ XEN_VARGIFY(g_save_selection_w, g_save_selection)
void g_init_selection(void)
{
init_selection_keywords();
+ init_xen_selection();
XEN_DEFINE_PROCEDURE_WITH_REVERSED_SETTER(S_selection_position, g_selection_position_w, H_selection_position,
S_setB S_selection_position, g_set_selection_position_w, g_set_selection_position_reversed,
@@ -1461,7 +1778,8 @@ void g_init_selection(void)
S_setB S_selection_member, g_set_selection_member_w, g_set_selection_member_reversed,
0, 2, 1, 2);
- XEN_DEFINE_PROCEDURE(S_selection_p, g_selection_p_w, 0, 0, 0, H_selection_p);
+ XEN_DEFINE_PROCEDURE(S_selection, g_selection_w, 0, 0, 0, H_selection);
+ XEN_DEFINE_PROCEDURE(S_selection_p, g_selection_p_w, 0, 1, 0, H_selection_p);
XEN_DEFINE_PROCEDURE(S_selection_chans, g_selection_chans_w, 0, 0, 0, H_selection_chans);
XEN_DEFINE_PROCEDURE(S_selection_srate, g_selection_srate_w, 0, 0, 0, H_selection_srate);
XEN_DEFINE_PROCEDURE(S_selection_maxamp, g_selection_maxamp_w, 0, 2, 0, H_selection_maxamp);
@@ -1469,6 +1787,7 @@ void g_init_selection(void)
XEN_DEFINE_PROCEDURE(S_delete_selection, g_delete_selection_w, 0, 0, 0, H_delete_selection);
XEN_DEFINE_PROCEDURE(S_insert_selection, g_insert_selection_w, 0, 3, 0, H_insert_selection);
XEN_DEFINE_PROCEDURE(S_mix_selection, g_mix_selection_w, 0, 4, 0, H_mix_selection);
+ XEN_DEFINE_PROCEDURE(S_selection_to_mix, g_selection_to_mix_w, 0, 0, 0, H_selection_to_mix);
XEN_DEFINE_PROCEDURE(S_select_all, g_select_all_w, 0, 2, 0, H_select_all);
XEN_DEFINE_PROCEDURE(S_save_selection, g_save_selection_w, 0, 0, 1, H_save_selection);
}
diff --git a/snd-sig.c b/snd-sig.c
index b397abb..3014bba 100644
--- a/snd-sig.c
+++ b/snd-sig.c
@@ -62,8 +62,10 @@ int to_c_edit_position(chan_info *cp, XEN edpos, const char *caller, int arg_pos
edpos));
}
else pos = XEN_TO_C_INT_OR_ELSE(edpos, AT_CURRENT_EDIT_POSITION);
+
if (pos == AT_CURRENT_EDIT_POSITION)
return(cp->edit_ctr);
+
if ((pos < 0) ||
(pos >= cp->edit_size) ||
(cp->edits[pos] == NULL))
@@ -456,6 +458,7 @@ void scale_by(chan_info *cp, mus_float_t *ur_scalers, int len, bool over_selecti
if (over_selection)
si = selection_sync();
else si = sync_to_chan(cp);
+ if (!si) return;
for (i = 0, j = 0; i < si->chans; i++)
{
@@ -1794,10 +1797,12 @@ static char *direct_filter(chan_info *cp, int order, env *e, snd_fd *sf, mus_lon
{
vct *v;
char *vstr = NULL;
+
v = (vct *)calloc(1, sizeof(vct));
v->length = order;
v->data = precalculated_coeffs;
vstr = mus_vct_to_readable_string(v);
+
#if HAVE_FORTH
if (dur == (order + cp->edits[sf->edit_ctr]->samples))
new_origin = mus_format("%s %d " MUS_LD PROC_SEP PROC_FALSE " %s", vstr, order, beg, S_filter_channel);
@@ -1817,6 +1822,7 @@ static char *direct_filter(chan_info *cp, int order, env *e, snd_fd *sf, mus_lon
/* new_origin = filter-channel + envelope */
char *envstr;
envstr = env_to_string(e);
+
#if HAVE_FORTH
if (dur == (order + cp->edits[sf->edit_ctr]->samples))
new_origin = mus_format("%s %d " MUS_LD PROC_SEP PROC_FALSE " %s", envstr, order, beg, S_filter_channel);
@@ -3228,7 +3234,7 @@ static XEN g_map_chan_1(XEN proc_and_list, XEN s_beg, XEN s_end, XEN org, XEN sn
beg = beg_to_sample(s_beg, caller);
if (XEN_FALSE_P(s_dur))
end = end_to_sample(s_end, cp, pos, caller);
- else dur = dur_to_samples(s_dur, beg, cp, pos, 8, caller);
+ else dur = dur_to_samples(s_dur, beg, cp, pos, 3, caller); /* 3 is arg num from caller's point of view */
if (end == 0)
{
if (dur != 0)
@@ -3714,103 +3720,6 @@ the current sample, the vct returned by 'init-func', and the current read direct
}
-#if HAVE_GUILE_DYNAMIC_WIND
-typedef struct {
- XEN proc;
- mus_long_t beg, num;
- snd_fd *sf;
- snd_info *sp;
- chan_info *cp;
- const char *caller;
- bool counting;
- bool reporting;
-} scan_context;
-
-
-static scan_context *make_scan_context(XEN p, mus_long_t b, mus_long_t n, snd_fd *f, snd_info *s, chan_info *cp, const char *orig, bool count)
-{
- scan_context *sc;
- sc = (scan_context *)calloc(1, sizeof(scan_context));
- sc->proc = p;
- sc->beg = b;
- sc->num = n;
- sc->sf = f;
- sc->sp = s;
- sc->cp = cp;
- sc->caller = orig;
- sc->counting = count;
- sc->reporting = false;
- return(sc);
-}
-
-
-static void before_scan(void *ignore)
-{
- /* we could possibly catch call/cc into previous scan here, but that requires an smob for the context */
- /* put init_sample_read here, update sc->beg in scan body, don't free context explicitly */
-}
-
-
-static XEN scan_body(void *context)
-{
- mus_long_t kp;
- int counts = 0, rpt = 0, rpt4 = 0;
- scan_context *sc = (scan_context *)context;
- sc->reporting = (sc->num > REPORTING_SIZE);
- rpt4 = MAX_BUFFER_SIZE / 4;
- if (sc->reporting) start_progress_report(sc->cp);
- ss->stopped_explicitly = false;
- for (kp = 0; kp < sc->num; kp++)
- {
- XEN res;
- res = XEN_CALL_1_NO_CATCH(sc->proc, C_TO_XEN_DOUBLE((double)read_sample(sc->sf)));
- /* in Forth, a return value of 0 is assumed to be false -- should we check for that? */
- if (XEN_NOT_FALSE_P(res))
- {
- if ((sc->counting) &&
- (XEN_TRUE_P(res)))
- counts++;
- else
- return(XEN_LIST_2(res,
- C_TO_XEN_INT64_T(kp + sc->beg)));
- }
- if (sc->reporting)
- {
- rpt++;
- if (rpt > rpt4)
- {
- progress_report(sc->cp, (mus_float_t)((double)kp / (double)(sc->num)));
- if (!(sc->sp->active))
- {
- ss->stopped_explicitly = true;
- break;
- }
- rpt = 0;
- }
- }
- if (ss->stopped_explicitly)
- {
- ss->stopped_explicitly = false;
- report_in_minibuffer(sc->sp, _("%s stopped at sample " MUS_LD), sc->caller, kp + sc->beg);
- break;
- }
- }
- if (sc->counting)
- return(C_TO_XEN_INT(counts));
- return(XEN_FALSE);
-}
-
-
-static void after_scan(void *context)
-{
- scan_context *sc = (scan_context *)context;
- sc->sf = free_snd_fd(sc->sf);
- if (sc->reporting) finish_progress_report(sc->cp);
- free(sc);
-}
-#endif
-
-
static XEN g_sp_scan(XEN proc_and_list, XEN s_beg, XEN s_end, XEN snd, XEN chn,
const char *caller, bool counting, XEN edpos, int arg_pos, XEN s_dur)
{
@@ -3820,10 +3729,8 @@ static XEN g_sp_scan(XEN proc_and_list, XEN s_beg, XEN s_end, XEN snd, XEN chn,
snd_fd *sf;
XEN errstr;
mus_long_t kp, num;
-#if (!HAVE_GUILE_DYNAMIC_WIND)
int rpt = 0, rpt4;
bool reporting = false;
-#endif
int counts = 0, pos;
char *errmsg;
XEN proc = XEN_FALSE;
@@ -3896,18 +3803,6 @@ static XEN g_sp_scan(XEN proc_and_list, XEN s_beg, XEN s_end, XEN snd, XEN chn,
}
}
-#if HAVE_GUILE_DYNAMIC_WIND
- /* package up context and try to protect against errors/throws in the user's code */
- {
- scan_context *sc;
- sc = make_scan_context(proc, beg, num, sf, sp, cp, caller, counting);
- return(scm_internal_dynamic_wind((scm_t_guard)before_scan,
- (scm_t_inner)scan_body,
- (scm_t_guard)after_scan,
- (void *)sc,
- (void *)sc));
- }
-#else
reporting = ((num > REPORTING_SIZE) && (!(cp->squelch_update)));
if (reporting) start_progress_report(cp);
rpt4 = MAX_BUFFER_SIZE / 4;
@@ -3957,7 +3852,7 @@ static XEN g_sp_scan(XEN proc_and_list, XEN s_beg, XEN s_end, XEN snd, XEN chn,
sf = free_snd_fd(sf);
if (counting)
return(C_TO_XEN_INT(counts));
-#endif
+
return(XEN_FALSE);
}
@@ -4482,7 +4377,7 @@ static XEN g_scale_selection_to(XEN scalers)
}
-static XEN g_scale_selection_by(XEN scalers)
+XEN g_scale_selection_by(XEN scalers)
{
#define H_scale_selection_by "(" S_scale_selection_by " scalers): scale selected portion by scalers"
if (selection_is_active())
@@ -5645,6 +5540,167 @@ that give a minimum peak amplitude when the signals are added together."
#include <sys/time.h>
#endif
+#if 0
+ static int primes[129] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
+ 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181,
+ 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
+ 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397,
+ 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
+ 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619,
+ 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719};
+#else
+ static int primes[2049] =
+ {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
+ 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181,
+ 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
+ 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397,
+ 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
+ 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619,
+ 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761,
+ 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883,
+ 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019,
+ 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129,
+ 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279,
+ 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427,
+ 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543,
+ 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663,
+ 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801,
+ 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951,
+ 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087,
+ 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239,
+ 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371,
+ 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521,
+ 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671,
+ 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789,
+ 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, 2927,
+ 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083,
+ 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253,
+ 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389,
+ 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539,
+ 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671, 3673,
+ 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, 3823,
+ 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967,
+ 3989, 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, 4127,
+ 4129, 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, 4261,
+ 4271, 4273, 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441,
+ 4447, 4451, 4457, 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591,
+ 4597, 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733,
+ 4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919,
+ 4931, 4933, 4937, 4943, 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, 5021, 5023, 5039,
+ 5051, 5059, 5077, 5081, 5087, 5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209,
+ 5227, 5231, 5233, 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, 5393,
+ 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519,
+ 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669,
+ 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791, 5801, 5807, 5813, 5821, 5827,
+ 5839, 5843, 5849, 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, 5953, 5981, 5987,
+ 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133, 6143,
+ 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, 6271, 6277, 6287, 6299,
+ 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, 6421, 6427, 6449,
+ 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, 6607, 6619,
+ 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779, 6781,
+ 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947,
+ 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079,
+ 7103, 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243, 7247,
+ 7253, 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459,
+ 7477, 7481, 7487, 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577, 7583,
+ 7589, 7591, 7603, 7607, 7621, 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, 7727,
+ 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907,
+ 7919, 7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087, 8089,
+ 8093, 8101, 8111, 8117, 8123, 8147, 8161, 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243,
+ 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, 8317, 8329, 8353, 8363, 8369, 8377, 8387, 8389, 8419, 8423,
+ 8429, 8431, 8443, 8447, 8461, 8467, 8501, 8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, 8599,
+ 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737,
+ 8741, 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, 8837, 8839, 8849, 8861, 8863, 8867, 8887,
+ 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011, 9013, 9029, 9041, 9043, 9049,
+ 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, 9187, 9199, 9203, 9209, 9221,
+ 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, 9343, 9349, 9371, 9377, 9391,
+ 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511, 9521,
+ 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649, 9661, 9677, 9679, 9689, 9697,
+ 9719, 9721, 9733, 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, 9829, 9833, 9839, 9851,
+ 9857, 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973, 10007, 10009, 10037, 10039,
+ 10061, 10067, 10069, 10079, 10091, 10093, 10099, 10103, 10111, 10133, 10139, 10141, 10151, 10159, 10163, 10169, 10177, 10181,
+ 10193, 10211, 10223, 10243, 10247, 10253, 10259, 10267, 10271, 10273, 10289, 10301, 10303, 10313, 10321, 10331, 10333, 10337,
+ 10343, 10357, 10369, 10391, 10399, 10427, 10429, 10433, 10453, 10457, 10459, 10463, 10477, 10487, 10499, 10501, 10513, 10529,
+ 10531, 10559, 10567, 10589, 10597, 10601, 10607, 10613, 10627, 10631, 10639, 10651, 10657, 10663, 10667, 10687, 10691, 10709,
+ 10711, 10723, 10729, 10733, 10739, 10753, 10771, 10781, 10789, 10799, 10831, 10837, 10847, 10853, 10859, 10861, 10867, 10883,
+ 10889, 10891, 10903, 10909, 10937, 10939, 10949, 10957, 10973, 10979, 10987, 10993, 11003, 11027, 11047, 11057, 11059, 11069,
+ 11071, 11083, 11087, 11093, 11113, 11117, 11119, 11131, 11149, 11159, 11161, 11171, 11173, 11177, 11197, 11213, 11239, 11243,
+ 11251, 11257, 11261, 11273, 11279, 11287, 11299, 11311, 11317, 11321, 11329, 11351, 11353, 11369, 11383, 11393, 11399, 11411,
+ 11423, 11437, 11443, 11447, 11467, 11471, 11483, 11489, 11491, 11497, 11503, 11519, 11527, 11549, 11551, 11579, 11587, 11593,
+ 11597, 11617, 11621, 11633, 11657, 11677, 11681, 11689, 11699, 11701, 11717, 11719, 11731, 11743, 11777, 11779, 11783, 11789,
+ 11801, 11807, 11813, 11821, 11827, 11831, 11833, 11839, 11863, 11867, 11887, 11897, 11903, 11909, 11923, 11927, 11933, 11939,
+ 11941, 11953, 11959, 11969, 11971, 11981, 11987, 12007, 12011, 12037, 12041, 12043, 12049, 12071, 12073, 12097, 12101, 12107,
+ 12109, 12113, 12119, 12143, 12149, 12157, 12161, 12163, 12197, 12203, 12211, 12227, 12239, 12241, 12251, 12253, 12263, 12269,
+ 12277, 12281, 12289, 12301, 12323, 12329, 12343, 12347, 12373, 12377, 12379, 12391, 12401, 12409, 12413, 12421, 12433, 12437,
+ 12451, 12457, 12473, 12479, 12487, 12491, 12497, 12503, 12511, 12517, 12527, 12539, 12541, 12547, 12553, 12569, 12577, 12583,
+ 12589, 12601, 12611, 12613, 12619, 12637, 12641, 12647, 12653, 12659, 12671, 12689, 12697, 12703, 12713, 12721, 12739, 12743,
+ 12757, 12763, 12781, 12791, 12799, 12809, 12821, 12823, 12829, 12841, 12853, 12889, 12893, 12899, 12907, 12911, 12917, 12919,
+ 12923, 12941, 12953, 12959, 12967, 12973, 12979, 12983, 13001, 13003, 13007, 13009, 13033, 13037, 13043, 13049, 13063, 13093,
+ 13099, 13103, 13109, 13121, 13127, 13147, 13151, 13159, 13163, 13171, 13177, 13183, 13187, 13217, 13219, 13229, 13241, 13249,
+ 13259, 13267, 13291, 13297, 13309, 13313, 13327, 13331, 13337, 13339, 13367, 13381, 13397, 13399, 13411, 13417, 13421, 13441,
+ 13451, 13457, 13463, 13469, 13477, 13487, 13499, 13513, 13523, 13537, 13553, 13567, 13577, 13591, 13597, 13613, 13619, 13627,
+ 13633, 13649, 13669, 13679, 13681, 13687, 13691, 13693, 13697, 13709, 13711, 13721, 13723, 13729, 13751, 13757, 13759, 13763,
+ 13781, 13789, 13799, 13807, 13829, 13831, 13841, 13859, 13873, 13877, 13879, 13883, 13901, 13903, 13907, 13913, 13921, 13931,
+ 13933, 13963, 13967, 13997, 13999, 14009, 14011, 14029, 14033, 14051, 14057, 14071, 14081, 14083, 14087, 14107, 14143, 14149,
+ 14153, 14159, 14173, 14177, 14197, 14207, 14221, 14243, 14249, 14251, 14281, 14293, 14303, 14321, 14323, 14327, 14341, 14347,
+ 14369, 14387, 14389, 14401, 14407, 14411, 14419, 14423, 14431, 14437, 14447, 14449, 14461, 14479, 14489, 14503, 14519, 14533,
+ 14537, 14543, 14549, 14551, 14557, 14561, 14563, 14591, 14593, 14621, 14627, 14629, 14633, 14639, 14653, 14657, 14669, 14683,
+ 14699, 14713, 14717, 14723, 14731, 14737, 14741, 14747, 14753, 14759, 14767, 14771, 14779, 14783, 14797, 14813, 14821, 14827,
+ 14831, 14843, 14851, 14867, 14869, 14879, 14887, 14891, 14897, 14923, 14929, 14939, 14947, 14951, 14957, 14969, 14983, 15013,
+ 15017, 15031, 15053, 15061, 15073, 15077, 15083, 15091, 15101, 15107, 15121, 15131, 15137, 15139, 15149, 15161, 15173, 15187,
+ 15193, 15199, 15217, 15227, 15233, 15241, 15259, 15263, 15269, 15271, 15277, 15287, 15289, 15299, 15307, 15313, 15319, 15329,
+ 15331, 15349, 15359, 15361, 15373, 15377, 15383, 15391, 15401, 15413, 15427, 15439, 15443, 15451, 15461, 15467, 15473, 15493,
+ 15497, 15511, 15527, 15541, 15551, 15559, 15569, 15581, 15583, 15601, 15607, 15619, 15629, 15641, 15643, 15647, 15649, 15661,
+ 15667, 15671, 15679, 15683, 15727, 15731, 15733, 15737, 15739, 15749, 15761, 15767, 15773, 15787, 15791, 15797, 15803, 15809,
+ 15817, 15823, 15859, 15877, 15881, 15887, 15889, 15901, 15907, 15913, 15919, 15923, 15937, 15959, 15971, 15973, 15991, 16001,
+ 16007, 16033, 16057, 16061, 16063, 16067, 16069, 16073, 16087, 16091, 16097, 16103, 16111, 16127, 16139, 16141, 16183, 16187,
+ 16189, 16193, 16217, 16223, 16229, 16231, 16249, 16253, 16267, 16273, 16301, 16319, 16333, 16339, 16349, 16361, 16363, 16369,
+ 16381, 16411, 16417, 16421, 16427, 16433, 16447, 16451, 16453, 16477, 16481, 16487, 16493, 16519, 16529, 16547, 16553, 16561,
+ 16567, 16573, 16603, 16607, 16619, 16631, 16633, 16649, 16651, 16657, 16661, 16673, 16691, 16693, 16699, 16703, 16729, 16741,
+ 16747, 16759, 16763, 16787, 16811, 16823, 16829, 16831, 16843, 16871, 16879, 16883, 16889, 16901, 16903, 16921, 16927, 16931,
+ 16937, 16943, 16963, 16979, 16981, 16987, 16993, 17011, 17021, 17027, 17029, 17033, 17041, 17047, 17053, 17077, 17093, 17099,
+ 17107, 17117, 17123, 17137, 17159, 17167, 17183, 17189, 17191, 17203, 17207, 17209, 17231, 17239, 17257, 17291, 17293, 17299,
+ 17317, 17321, 17327, 17333, 17341, 17351, 17359, 17377, 17383, 17387, 17389, 17393, 17401, 17417, 17419, 17431, 17443, 17449,
+ 17467, 17471, 17477, 17483, 17489, 17491, 17497, 17509, 17519, 17539, 17551, 17569, 17573, 17579, 17581, 17597, 17599, 17609,
+ 17623, 17627, 17657, 17659, 17669, 17681, 17683, 17707, 17713, 17729, 17737, 17747, 17749, 17761, 17783, 17789, 17791, 17807,
+ 17827, 17837, 17839, 17851, 17863};
+#endif
+
+ static mus_float_t all_mins[128] = {1.0000, 1.7600, 1.9797, 2.0390, 2.3435, 2.5493, 2.6394, 2.7947, 2.9618, 3.1027, 3.2185, 3.3894, 3.5251, 3.6144, 3.7707, 3.8763, 4.0177, 4.1587, 4.2707, 4.2924, 4.4916, 4.5920, 4.6133, 4.7536, 4.8848, 5.0265, 5.0712, 5.2477, 5.3057, 5.4390, 5.5090, 5.5791, 5.6831, 5.7983, 5.8797, 5.9831, 6.0270, 6.2036, 6.3202, 6.4546, 6.5222, 6.6632, 6.7008, 6.7521, 6.9378, 6.9060, 7.1507, 7.2275, 7.3813, 7.5128, 7.6053, 7.5197, 7.6596, 7.7999, 7.8770, 7.9141, 8.0100, 8.0611, 8.2697, 8.3436, 8.4459, 8.5318, 8.4922, 8.5701, 8.6642, 8.8023, 8.8324, 8.9522, 9.0291, 8.9858, 9.0270, 9.2229, 9.2562, 9.3841, 9.3353, 9.5274, 9.5577, 9.6420, 9.8120, 9.7612, 9.8896, 9.9415, 10.0257, 10.0522, 10.2286, 10.3640, 10.3587, 10.4487, 10.6231, 10.5772, 10.7392, 10.8516, 10.8821, 10.8130, 10.8769, 11.0655, 11.0768, 11.1860, 11.0873, 11.2054, 11.2264, 11.3534, 11.5039, 11.6299, 11.2380, 11.5518, 11.6721, 11.7668, 11.8372, 11.9094, 11.9342, 12.1008, 12.2451, 12.2880, 12.3810, 12.3602, 12.2941, 12.5466, 12.6913, 12.5888, 12.7809, 12.7526, 12.5448, 12.9659, 12.9710, 13.0867, 13.0279, 13.1562};
+
+ static mus_float_t odd_mins[128] = {1.0000, 1.5390, 1.7387, 2.0452, 2.3073, 2.5227, 2.6184, 2.7908, 2.8865, 3.0538, 3.1771, 3.3628, 3.4757, 3.5998, 3.7418, 3.8601, 3.9551, 4.0787, 4.1926, 4.3706, 4.4570, 4.5901, 4.6958, 4.8007, 4.9147, 5.0365, 5.1276, 5.1814, 5.3099, 5.4193, 5.4732, 5.6068, 5.6590, 5.8081, 5.9042, 6.0528, 6.1763, 6.2801, 6.3194, 6.3490, 6.6002, 6.5376, 6.7140, 6.9075, 6.9442, 7.0204, 7.1511, 7.2086, 7.3319, 7.4028, 7.5171, 7.6826, 7.6896, 7.7983, 7.9064, 7.9387, 8.1011, 8.1006, 8.1614, 8.3173, 8.4698, 8.4607, 8.4608, 8.5562, 8.7182, 8.8181, 9.0376, 9.0370, 8.9689, 9.0631, 9.2534, 9.3547, 9.4458, 9.3544, 9.5487, 9.5047, 9.7401, 9.6849, 9.8975, 9.8390, 9.8573, 9.9469, 10.0879, 10.3284, 10.1064, 10.3659, 10.4390, 10.6207, 10.5640, 10.5659, 10.5808, 10.7568, 10.7900, 10.9270, 10.9725, 11.1401, 11.1291, 11.2952, 11.3457, 11.1961, 11.4091, 11.3686, 11.5344, 11.6569, 11.6600, 11.8302, 11.9285, 11.9687, 12.0138, 12.0767, 12.2019, 12.2887, 12.2417, 12.3215, 12.5388, 12.3500, 12.4976, 12.5240, 12.6256, 12.5851, 12.8771, 12.8154, 13.0117, 13.0500, 13.0696, 13.2505, 13.2728, 13.2956};
+
+ static mus_float_t prime_mins[128] = {1.0000, 1.7600, 1.9798, 2.1921, 2.4768, 2.8055, 3.0619, 3.2630, 3.3824, 3.6023, 3.7790, 3.9367, 4.1554, 4.3270, 4.4682, 4.6036, 4.7203, 4.8575, 5.0173, 5.1918, 5.3502, 5.4713, 5.6204, 5.6655, 5.9217, 6.0745, 6.2507, 6.2665, 6.4365, 6.4687, 6.7542, 6.9063, 7.0291, 7.1830, 7.2953, 7.5318, 7.5455, 7.6915, 7.7842, 7.9080, 8.0448, 8.1657, 8.3069, 8.3798, 8.5310, 8.6088, 8.6992, 8.8014, 8.9328, 9.0363, 9.2374, 9.4068, 9.5363, 9.5313, 9.6776, 9.7378, 10.0134, 10.1073, 10.0027, 10.0601, 10.3889, 10.4094, 10.4941, 10.6736, 10.7350, 10.8520, 10.9738, 11.0830, 11.0547, 11.1479, 11.1971, 11.3860, 11.4931, 11.4437, 11.7280, 11.7627, 12.0382, 12.1679, 12.1730, 12.2964, 12.2830, 12.2485, 12.5269, 12.6803, 12.5808, 12.3749, 12.8302, 13.0615, 13.1332, 13.1629, 13.0117, 13.1089, 13.2557, 13.3665, 13.6617, 13.5758, 13.7307, 13.8839, 14.0505, 14.0024, 14.0406, 14.2507, 14.3833, 14.4622, 14.6572, 14.9445, 14.9586, 15.1805, 15.1161, 14.9808, 15.0547, 15.1714, 15.3372, 15.5375, 15.6250, 15.2943, 15.7276, 15.7970, 15.6895, 15.9326, 15.8349, 16.1102, 15.7789, 16.2480, 16.4469, 16.4857, 16.4488, 16.6392};
+
+ static mus_float_t even_mins[128] = {1.0000, 1.7602, 2.0215, 2.4306, 2.6048, 2.8370, 3.0470, 3.1976, 3.4542, 3.5589, 3.6567, 3.7876, 3.9733, 4.0977, 4.1938, 4.3269, 4.4795, 4.5708, 4.7475, 4.8465, 4.9435, 5.0829, 5.1831, 5.3280, 5.4563, 5.5463, 5.6904, 5.7645, 5.8066, 5.9662, 6.0436, 6.1420, 6.2597, 6.4124, 6.4818, 6.5698, 6.7113, 6.7494, 6.8136, 7.0240, 7.0739, 7.1951, 7.2458, 7.3831, 7.3039, 7.5850, 7.6256, 7.6365, 7.8292, 8.0614, 8.0733, 8.1090, 8.3315, 8.3280, 8.4003, 8.5346, 8.5898, 8.6808, 8.7612, 8.8633, 8.9416, 9.0592, 9.1463, 9.1833, 9.2691, 9.3801, 9.3342, 9.6553, 9.4935, 9.7298, 9.5218, 9.9273, 9.9647, 9.9515, 9.8575, 10.1373, 10.1124, 10.2428, 10.3475, 10.4713, 10.4834, 10.6362, 10.5453, 10.6721, 10.8724, 10.8841, 11.0644, 10.9827, 10.8792, 11.1336, 11.3480, 11.4202, 11.4157, 11.4158, 11.5435, 11.5826, 11.6891, 11.8372, 11.8206, 11.8188, 11.8399, 11.8763, 12.0112, 12.1626, 12.0923, 12.2608, 12.3774, 12.5756, 12.6602, 12.6238, 12.8128, 12.8167, 12.7770, 12.9787, 13.0451, 13.0730, 12.9938, 13.1753, 13.3075, 13.1242, 13.1032, 13.4529, 13.5695, 13.0527, 13.4751, 13.5221, 13.7383, 13.6215};
+
+ static mus_float_t min_8[4] = {20.3776, 20.5383, 21.6732, 25.8430};
+ static mus_float_t min_9[4] = {32.4246, 32.5035, 32.5121, 41.6648};
+ static mus_float_t min_10[4] = {50.5551, 49.9177, 51.8950, 70.1400};
+ static mus_float_t min_11[4] = {79.2588, 81.7005, 81.8215, 102.6190};
+
+#define USE_CLM_RANDOM (!HAVE_S7)
+
+static mus_float_t local_random(mus_float_t val)
+{
+#if USE_CLM_RANDOM
+ return(mus_random(val));
+#else
+ return(val * (1.0 - (s7_random(s7) * 2.0)));
+#endif
+}
+
+
+static mus_float_t local_frandom(mus_float_t val)
+{
+#if USE_CLM_RANDOM
+ return(mus_frandom(val));
+#else
+ return(val * s7_random(s7));
+#endif
+}
+
+
#define S_fpsa "fpsa"
typedef struct {
@@ -5680,26 +5736,6 @@ for a peak-amp minimum using a simulated annealing form of the genetic algorithm
const char *file = NULL;
bool just_best = true;
- static int primes[129] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
- 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181,
- 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
- 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397,
- 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
- 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619,
- 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719};
-
- static mus_float_t all_mins[128] = {1.0000, 1.7600, 1.9797, 2.0390, 2.3435, 2.5493, 2.6394, 2.7947, 2.9618, 3.1027, 3.2185, 3.3894, 3.5252, 3.6148, 3.7707, 3.8769, 4.0179, 4.1595, 4.2714, 4.2972, 4.5025, 4.5965, 4.6269, 4.8284, 4.9111, 5.0273, 5.0836, 5.2679, 5.3326, 5.4512, 5.5242, 5.6193, 5.6965, 5.8160, 5.9412, 6.0636, 6.0662, 6.2914, 6.4294, 6.4878, 6.5697, 6.6817, 6.7320, 6.7910, 6.9651, 6.9547, 7.1822, 7.2275, 7.3943, 7.5149, 7.6053, 7.5226, 7.7605, 7.8023, 7.8813, 7.9141, 8.0141, 8.0625, 8.2735, 8.4214, 8.4479, 8.5318, 8.4967, 8.5701, 8.6660, 8.8047, 9.0424, 9.1591, 9.0291, 8.9858, 9.1967, 9.2242, 9.2606, 9.3841, 9.3383, 9.5322, 9.6904, 9.6440, 9.8120, 9.7647, 9.8941, 10.0727, 10.0339, 10.0562, 10.2308, 10.3640, 10.3604, 10.4512, 10.6231, 10.5797, 10.7442, 10.8524, 10.9702, 10.8147, 10.8800, 11.0663, 11.0780, 11.1860, 11.0919, 11.2606, 11.2997, 11.4984, 11.6031, 11.7000, 11.3495, 11.7055, 11.8941, 11.8929, 12.0084, 12.0867, 11.9355, 12.1093, 12.2496, 12.2938, 12.3810, 12.3602, 12.2998, 12.5517, 12.6913, 12.5935, 12.7809, 12.7526, 12.5448, 12.9734, 12.9734, 13.0867, 13.0299, 13.1562};
-
- static mus_float_t odd_mins[128] = {1.0000, 1.5390, 1.7387, 2.0452, 2.3073, 2.5227, 2.6184, 2.7908, 2.8865, 3.0538, 3.1771, 3.3628, 3.4758, 3.5998, 3.7418, 3.8607, 3.9558, 4.0793, 4.1940, 4.3752, 4.4620, 4.6110, 4.7242, 4.8070, 4.9268, 5.0493, 5.1390, 5.2302, 5.3165, 5.4464, 5.5606, 5.6270, 5.7652, 5.8426, 5.9265, 6.0996, 6.2069, 6.2994, 6.3385, 6.4588, 6.6495, 6.6727, 6.7842, 6.9416, 6.9829, 7.0570, 7.1528, 7.2120, 7.3344, 7.4039, 7.5196, 7.6882, 7.7157, 7.9103, 7.9105, 7.9416, 8.1025, 8.1040, 8.1630, 8.3197, 8.4698, 8.4621, 8.4616, 8.6112, 8.7237, 8.8208, 9.0398, 9.0387, 9.0697, 9.0657, 9.2568, 9.3566, 9.4458, 9.3594, 9.5487, 9.5047, 9.7401, 9.6893, 9.9076, 9.9147, 9.9320, 10.0072, 10.1652, 10.3284, 10.1798, 10.4883, 10.5161, 10.6207, 10.5694, 10.5708, 10.5839, 10.8528, 10.7955, 10.9313, 11.0756, 11.1478, 11.1291, 11.2952, 11.3506, 11.3770, 11.4939, 11.5326, 11.6333, 11.6619, 11.6648, 11.8342, 11.9285, 11.9687, 12.1723, 12.0811, 12.2053, 12.2887, 12.2429, 12.3887, 12.5388, 12.3549, 12.5049, 12.5278, 12.7429, 12.5908, 12.8771, 12.8182, 13.0145, 13.0550, 13.0726, 13.2525, 13.2728, 13.2956};
-
- static mus_float_t prime_mins[128] = {1.0000, 1.7600, 1.9798, 2.1921, 2.4768, 2.8055, 3.0619, 3.2630, 3.3826, 3.6026, 3.7793, 3.9389, 4.1805, 4.3288, 4.4821, 4.6627, 4.7328, 5.0131, 5.2245, 5.3328, 5.4869, 5.5946, 5.8299, 5.9499, 6.0160, 6.2062, 6.3061, 6.3476, 6.5570, 6.6997, 6.8025, 6.9456, 7.0959, 7.2019, 7.4036, 7.5876, 7.6839, 7.8411, 7.8274, 7.9107, 8.0697, 8.1674, 8.4260, 8.5680, 8.6060, 8.7683, 8.8215, 8.8734, 8.9994, 9.0363, 9.2417, 9.4762, 9.5539, 9.6162, 9.8515, 9.9193, 10.0170, 10.1073, 10.2892, 10.1511, 10.4499, 10.4217, 10.7209, 10.7139, 10.7789, 10.9338, 10.9738, 11.0830, 11.3183, 11.4297, 11.5959, 11.6490, 11.6773, 11.6733, 11.7339, 11.9483, 12.1038, 12.1877, 12.3315, 12.3775, 12.5423, 12.5914, 12.6449, 12.6803, 12.7895, 12.8128, 13.0914, 13.2348, 13.1332, 13.3714, 13.2625, 13.1173, 13.3385, 13.5336, 13.7290, 13.5812, 13.7350, 14.0068, 14.1117, 14.1724, 14.1791, 14.5235, 14.7885, 14.9754, 15.1590, 15.1682, 15.2948, 15.2757, 15.2026, 15.2289, 15.3480, 15.5875, 15.6546, 15.5505, 15.8209, 15.3479, 15.7276, 15.7970, 15.6895, 15.9326, 16.0579, 16.2285, 16.3387, 16.2855, 16.4469, 16.5462, 16.4782, 16.6392};
-
- static mus_float_t even_mins[128] = {1.0000, 1.7602, 2.0215, 2.4306, 2.6048, 2.8370, 3.0470, 3.1976, 3.4542, 3.5589, 3.6567, 3.7876, 3.9733, 4.0981, 4.1938, 4.3272, 4.4921, 4.5716, 4.7571, 4.8465, 4.9435, 5.0906, 5.2096, 5.3455, 5.4625, 5.5764, 5.7049, 5.8003, 5.9163, 6.0151, 6.1343, 6.2347, 6.4029, 6.4396, 6.6475, 6.7414, 6.8175, 6.9708, 6.9600, 7.0834, 7.1365, 7.3067, 7.3740, 7.4257, 7.6039, 7.6566, 7.8176, 7.8446, 7.8823, 8.0704, 8.1656, 8.1110, 8.3345, 8.4774, 8.5795, 8.5369, 8.5913, 8.7139, 8.8306, 8.9516, 9.0178, 9.0624, 9.1954, 9.1991, 9.3012, 9.4138, 9.4627, 9.6578, 9.7173, 9.9051, 9.9687, 9.9367, 10.0003, 9.9548, 10.0225, 10.1396, 10.2207, 10.4083, 10.4703, 10.5521, 10.6487, 10.7233, 10.6924, 10.8254, 10.9919, 11.0935, 11.1283, 11.1708, 10.8833, 11.1379, 11.4275, 11.5259, 11.4209, 11.4190, 11.5435, 11.5929, 11.8009, 11.8414, 11.9157, 11.9255, 11.9558, 12.0115, 12.1164, 12.1626, 12.0953, 12.2678, 12.4979, 12.5796, 12.7024, 12.7138, 12.8146, 12.8973, 13.0260, 13.0542, 13.0533, 13.2283, 13.2483, 13.1801, 13.4175, 13.4828, 13.5715, 13.6759, 13.6521, 13.5377, 13.6356, 13.7458, 13.7406, 14.0186};
-
- static mus_float_t min_8[4] = {23.3530, 22.5463, 24.4371, 27.7400};
- static mus_float_t min_9[4] = {34.2100, 35.5410, 35.7760, 43.4860};
- static mus_float_t min_10[4] = {54.4440, 52.5080, 51.8950, 70.1400};
-
auto mus_float_t saved_min(int ch, int nn);
auto mus_float_t get_peak(mus_float_t *phases);
auto pk_data *next_choice(pk_data *data);
@@ -5720,6 +5756,7 @@ for a peak-amp minimum using a simulated annealing form of the genetic algorithm
if (nn == 256) return(min_8[ch]);
if (nn == 512) return(min_9[ch]);
if (nn == 1024) return(min_10[ch]);
+ if (nn == 2048) return(min_11[ch]);
return((mus_float_t)nn);
}
@@ -5800,7 +5837,7 @@ for a peak-amp minimum using a simulated annealing form of the genetic algorithm
else bin = primes[m];
}
}
- phases[m] += (0.5 * (bin - 1));
+ phases[m] += (0.5 * (bin - 1)); /* needs fmod! */
}
return(mx_cos);
@@ -5823,7 +5860,7 @@ for a peak-amp minimum using a simulated annealing form of the genetic algorithm
for (local_try = 0; (local_try < local_tries) && (pk >= cur_min); local_try++)
{
for (i = 1; i < len; i++)
- temp_phases[i] = fmod(phases[i] + mus_random(increment), 2.0); /* not mus_frandom! */
+ temp_phases[i] = fmod(phases[i] + local_random(increment), 2.0); /* not mus_frandom! */
pk = get_peak(temp_phases);
if (pk < temp_min)
@@ -5943,6 +5980,7 @@ for a peak-amp minimum using a simulated annealing form of the genetic algorithm
if (XEN_INTEGER_P(x_size))
size = XEN_TO_C_INT(x_size);
else size = 2000;
+ if (size < 2) size = 2;
if (XEN_INTEGER_P(x_counts))
counts = XEN_TO_C_INT(x_counts);
@@ -6007,7 +6045,7 @@ for a peak-amp minimum using a simulated annealing form of the genetic algorithm
for (init_try = 0; init_try < INIT_TRIES; init_try++)
{
- for (k = 1; k < n; k++) temp_phases[k] = mus_frandom(2.0);
+ for (k = 1; k < n; k++) temp_phases[k] = local_frandom(2.0);
pk = get_peak(temp_phases);
if (pk < local_best)
@@ -6048,6 +6086,853 @@ for a peak-amp minimum using a simulated annealing form of the genetic algorithm
return(XEN_FALSE);
}
+/* -------------------------------------------------------------------------------- */
+
+#define S_fpsaf "fpsaf"
+
+static XEN g_fpsaf(XEN mult, XEN x_choice, XEN x_n, XEN x_size, XEN x_increment, XEN x_counts, XEN x_file, XEN x_just_best, XEN start_phases)
+{
+ #define H_fpsaf "(" S_fpsaf " mult choice n (size 2000) (increment 1.0) (counts 50) (output-file #f) (report-best #t)) searches \
+for a peak-amp minimum using a simulated annealing form of the genetic algorithm. choice: 0=all, 1=odd, 2=even, 3=prime."
+
+ #define FFT_MULT 128
+ #define INCR_DOWN 0.9
+ #define INCR_MAX 1.0
+ #define INCR_MIN 0.001
+ #define RETRIES 10
+ #define RETRY_MULT 2
+ #define INIT_TRIES 1000
+ #define ALL 0
+ #define ODD 1
+ #define EVEN 2
+ #define PRIME 3
+
+ int choice, n, size, counts = 0, day_counter = 0, days = 0, years = 0, free_top = 0, fft_size = 0;
+ mus_long_t ffts = 0;
+ mus_float_t increment = INCR_MAX, orig_incr, local_best = 1000.0, incr_mult = INCR_DOWN, overall_min, last_mult = 1.0;
+ mus_float_t *min_phases = NULL, *temp_phases = NULL, *diff_phases = NULL, *initial_phases = NULL;
+ char *choice_name[4] = {"all", "odd", "even", "prime"};
+ pk_data **choices = NULL, **free_choices = NULL;
+ mus_float_t *rl, *im;
+ const char *file = NULL;
+ bool just_best = true;
+
+ auto mus_float_t saved_min(int ch, int nn);
+ auto mus_float_t get_peak(mus_float_t *phases);
+ auto pk_data *next_choice(pk_data *data);
+ auto bool day(void);
+
+ mus_float_t saved_min(int ch, int nn)
+ {
+ if (nn <= 128)
+ {
+ switch (ch)
+ {
+ case ALL: return(all_mins[nn]);
+ case ODD: return(odd_mins[nn]);
+ case EVEN: return(even_mins[nn]);
+ case PRIME: return(prime_mins[nn]);
+ }
+ }
+ if (nn == 256) return(min_8[ch]);
+ if (nn == 512) return(min_9[ch]);
+ if (nn == 1024) return(min_10[ch]);
+ if (nn == 2048) return(min_11[ch]);
+ return((mus_float_t)nn);
+ }
+
+ mus_float_t get_peak(mus_float_t *phases)
+ {
+ int i, m;
+ mus_float_t pi2, mx_sin, mx_cos;
+
+ pi2 = M_PI / 2.0;
+ memset((void *)rl, 0, fft_size * sizeof(mus_float_t));
+ memset((void *)im, 0, fft_size * sizeof(mus_float_t));
+
+ for (m = 0; m < n; m++)
+ {
+ int bin;
+ mus_float_t phi;
+ phi = (M_PI * phases[m]) + pi2;
+ if (choice == ALL)
+ bin = m + 1;
+ else
+ {
+ if (choice == ODD)
+ bin = (m * 2) + 1;
+ else
+ {
+ if (choice == EVEN)
+ {
+ bin = m * 2;
+ if (bin == 0) bin = 1;
+ }
+ else bin = primes[m];
+ }
+ }
+ /* if (m == (n - 1)) */ /* top case mentioned in sndscm.html */
+ if ((m > 1) && (m & 1))
+ {
+ rl[bin] = last_mult * cos(phi);
+ im[bin] = last_mult * sin(phi);
+ }
+ else
+ {
+ rl[bin] = cos(phi);
+ im[bin] = sin(phi);
+ }
+ }
+
+ mus_fft(rl, im, fft_size, -1);
+ /* real part is sine reconstruction, imaginary part is cosine, we're interested in both! */
+ /* we could also add and subtract the 2 to get 2 more cases "for free", amp sqrt(2), phase asin(cos(0)/sqrt(2)) */
+ /* and repeat this with a shift (rotation from i) for 2n other cases */
+ /* resultant amp is between 0 and 2 (cosine) */
+
+ ffts++;
+ mx_sin = fabs(rl[0]);
+ mx_cos = fabs(im[0]);
+ for (i = 1; i < fft_size; i++)
+ {
+ mus_float_t mxtemp;
+ mxtemp = fabs(rl[i]);
+ if (mxtemp > mx_sin)
+ mx_sin = mxtemp;
+ mxtemp = fabs(im[i]);
+ if (mxtemp > mx_cos)
+ mx_cos = mxtemp;
+ }
+
+ return(mx_sin); /* ignore cos case since we're trying to follow a path */
+
+ if (mx_sin <= mx_cos)
+ return(mx_sin);
+
+ /* use the cosine case, but make it sine-based with 0.0 initial phase for the fundamental */
+ for (m = 1; m < n; m++)
+ {
+ int bin;
+ if (choice == ALL)
+ bin = m + 1;
+ else
+ {
+ if (choice == ODD)
+ bin = (m * 2) + 1;
+ else
+ {
+ if (choice == EVEN)
+ {
+ bin = m * 2;
+ if (bin == 0) bin = 1;
+ }
+ else bin = primes[m];
+ }
+ }
+ phases[m] += (0.5 * (bin - 1));
+ }
+
+ return(mx_cos);
+ }
+
+ pk_data *next_choice(pk_data *data)
+ {
+ mus_float_t *phases;
+ mus_float_t cur_min, temp_min = 100000.0, pk = 100000.0;
+ int len, local_try, i, k, local_tries;
+ pk_data *new_pk;
+
+ new_pk = free_choices[--free_top];
+ cur_min = data->pk;
+ phases = data->phases;
+ len = n;
+ local_tries = RETRIES + day_counter * RETRY_MULT;
+
+ /* try to find a point nearby that is better */
+ for (local_try = 0; (local_try < local_tries) && (pk >= cur_min); local_try++)
+ {
+ for (i = 1; i < len; i++)
+ temp_phases[i] = fmod(phases[i] + local_random(increment), 2.0); /* not mus_frandom! */
+ pk = get_peak(temp_phases);
+
+ if (pk < temp_min)
+ {
+ temp_min = pk;
+ new_pk->pk = pk;
+ for (k = 1; k < len; k++) new_pk->phases[k] = temp_phases[k];
+ }
+ }
+
+ /* if a better point is found, try to follow the slopes */
+ if (new_pk->pk < data->pk)
+ {
+ bool happy = true;
+ for (k = 1; k < len; k++)
+ diff_phases[k] = new_pk->phases[k] - data->phases[k];
+
+ while (happy)
+ {
+ for (k = 1; k < len; k++)
+ temp_phases[k] = fmod(new_pk->phases[k] + diff_phases[k], 2.0); /* frandom here? */
+ pk = get_peak(temp_phases);
+
+ if (pk < new_pk->pk)
+ {
+ new_pk->pk = pk;
+ for (k = 1; k < len; k++) new_pk->phases[k] = temp_phases[k];
+ }
+ else happy = false;
+ }
+ }
+
+ pk = new_pk->pk;
+
+ if (pk < local_best)
+ {
+ local_best = pk;
+ if ((!just_best) ||
+ (pk < overall_min))
+ {
+ FILE *ofile;
+ if (file)
+ ofile = fopen(file, "a");
+ else ofile = stderr;
+ for (k = 1; k < len; k++) min_phases[k] = new_pk->phases[k];
+ fprintf(ofile, "[%d, %d, %f, %lld]: %s, %d %f #(", years, days, increment, (long long int)ffts, choice_name[choice], n, pk);
+ for (k = 0; k < len - 1; k++) fprintf(ofile, "%f ", min_phases[k]);
+ fprintf(ofile, "%f)\n\n", min_phases[len - 1]);
+ if (file) fclose(ofile);
+ if (pk < overall_min) overall_min = pk;
+ }
+
+ day_counter = 0;
+ }
+ return(new_pk);
+ }
+
+ bool day(void)
+ {
+ int i, j = 0, k, len;
+ mus_float_t sum = 0.0, avg;
+ len = size;
+ day_counter++;
+ days++;
+ for (i = 0; i < len; i++) sum += choices[i]->pk;
+ avg = sum / len;
+
+ for (i = 0; i < len; i++)
+ {
+ pk_data *datum;
+ datum = choices[i];
+ choices[i] = NULL;
+ if (datum->pk < avg)
+ choices[j++] = datum;
+ else free_choices[free_top++] = datum;
+ }
+
+ for (i = 0, k = j; k < len; i++, k++)
+ {
+ if (i == j)
+ i = 0;
+ choices[k] = next_choice(choices[i]);
+ }
+
+ if (day_counter < counts)
+ {
+ increment *= incr_mult;
+ if (increment < INCR_MIN)
+ {
+ increment = INCR_MIN;
+ }
+ if (increment > INCR_MAX)
+ {
+ increment = INCR_MAX;
+ incr_mult = INCR_DOWN;
+ }
+ return(true);
+ }
+ return(false);
+ }
+
+#if HAVE_SYS_TIME_H
+ {
+ struct timeval tm;
+ struct timezone tz;
+ gettimeofday(&tm, &tz);
+ mus_set_rand_seed((unsigned long)(tm.tv_sec * 1000 + tm.tv_usec / 1000));
+ }
+#endif
+
+ last_mult = XEN_TO_C_DOUBLE(mult);
+
+ choice = XEN_TO_C_INT(x_choice);
+ if ((choice < ALL) || (choice > PRIME))
+ choice = ALL;
+
+ n = XEN_TO_C_INT(x_n);
+
+ if (XEN_INTEGER_P(x_size))
+ size = XEN_TO_C_INT(x_size);
+ else size = 2000;
+ if (size < 2) size = 2;
+
+ if (XEN_INTEGER_P(x_counts))
+ counts = XEN_TO_C_INT(x_counts);
+ else counts = 50;
+
+ if (XEN_DOUBLE_P(x_increment))
+ increment = XEN_TO_C_DOUBLE(x_increment);
+ else increment = INCR_MAX;
+ orig_incr = increment;
+ incr_mult = INCR_DOWN;
+
+ if (XEN_STRING_P(x_file))
+ file = XEN_TO_C_STRING(x_file);
+ else file = NULL;
+
+ if (XEN_BOOLEAN_P(x_just_best))
+ just_best = XEN_TO_C_BOOLEAN(x_just_best);
+ else just_best = true;
+
+ if (XEN_VECTOR_P(start_phases))
+ {
+ int i;
+ initial_phases = (mus_float_t *)malloc(n * sizeof(mus_float_t));
+ for (i = 0; i < n; i++)
+ initial_phases[i] = (mus_float_t)XEN_TO_C_DOUBLE(XEN_VECTOR_REF(start_phases, i));
+ }
+
+
+ {
+ FILE *ofile;
+ if (file)
+ ofile = fopen(file, "a");
+ else ofile = stderr;
+ fprintf(ofile, "(fpsaf %f %d %d %d %d %f)\n", last_mult, choice, n, size, counts, increment);
+ fprintf(stderr, "(fpsaf %f %d %d %d %d %f)\n", last_mult, choice, n, size, counts, increment);
+ if (file) fclose(ofile);
+ }
+
+ min_phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+ overall_min = saved_min(choice, n + 1);
+
+ temp_phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+ diff_phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+
+ {
+ int start, n1;
+
+ if (choice == ALL)
+ n1 = n;
+ else
+ {
+ if (choice != PRIME)
+ n1 = n * 2;
+ else n1 = primes[n];
+ }
+ fft_size = (int)pow(2.0, (int)ceil(log(FFT_MULT * n1) / log(2.0)));
+ rl = (mus_float_t *)calloc(fft_size, sizeof(mus_float_t));
+ im = (mus_float_t *)calloc(fft_size, sizeof(mus_float_t));
+
+ choices = (pk_data **)calloc(size, sizeof(pk_data *));
+ free_choices = (pk_data **)calloc(size, sizeof(pk_data *));
+
+ for (start = 0; start < size; start++)
+ {
+ choices[start] = (pk_data *)calloc(1, sizeof(pk_data));
+ choices[start]->phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+ }
+
+ while (true)
+ {
+ free_top = 0;
+ day_counter = 0;
+ days = 0;
+ local_best = (mus_float_t)n;
+ increment = orig_incr;
+
+ for (start = 0; start < size; start++)
+ {
+ mus_float_t pk, local_pk = 100000.0;
+ int k, init_try;
+
+ for (init_try = 0; init_try < INIT_TRIES; init_try++)
+ {
+ if (initial_phases)
+ {
+ for (k = 1; k < n; k++)
+ temp_phases[k] = initial_phases[k] + local_random(increment);
+ }
+ else
+ {
+ for (k = 1; k < n; k++)
+ temp_phases[k] = local_frandom(2.0);
+ }
+ pk = get_peak(temp_phases);
+
+ if (pk < local_best)
+ {
+ local_best = pk;
+ if ((!just_best) ||
+ (pk < overall_min))
+ {
+ FILE *ofile;
+ if (file)
+ ofile = fopen(file, "a");
+ else ofile = stderr;
+ for (k = 1; k < n; k++) min_phases[k] = temp_phases[k];
+ fprintf(ofile, "[%d, %d, %f, %lld]: %s, %d %f #(", years, days, increment, (long long int)ffts, choice_name[choice], n, pk);
+ for (k = 0; k < n - 1; k++) fprintf(ofile, "%f ", min_phases[k]);
+ fprintf(ofile, "%f)\n\n", min_phases[n - 1]);
+ if (file) fclose(ofile);
+ if (pk < overall_min) overall_min = pk;
+ }
+ }
+
+ if (pk < local_pk)
+ {
+ for (k = 1; k < n; k++) choices[start]->phases[k] = temp_phases[k];
+ choices[start]->pk = pk;
+ local_pk = pk;
+ }
+ }
+ }
+
+ while (day()) {}
+ break;
+
+ /* try again from the top... */
+ if (!file) fprintf(stderr, "[%d: %d, %f]\n", years, days, local_best);
+ years++;
+ }
+ }
+
+ free(temp_phases);
+ free(diff_phases);
+ free(rl);
+ free(im);
+ free(free_choices);
+ if (initial_phases) free(initial_phases);
+
+ {
+ int i;
+ for (i = 0; i < size; i++)
+ {
+ free(choices[i]->phases);
+ free(choices[i]);
+ }
+ free(choices);
+ }
+
+ return(xen_make_vct(n, min_phases));
+}
+
+
+
+
+/* -------------------------------------------------------------------------------- */
+
+#define S_fpsap "fpsap"
+
+static XEN g_fpsap(XEN x_choice, XEN x_n, XEN start_phases)
+{
+ #define H_fpsap "(" S_fpsap " choice n phases) searches \
+for a peak-amp minimum using a simulated annealing form of the genetic algorithm. choice: 0=all, 1=odd, 2=even, 3=prime."
+
+ #define FFT_MULT 128
+ #define INCR_DOWN 0.9
+ #define INCR_MAX 1.0
+ #define INCR_MIN 0.001
+ #define RETRIES 10
+ #define RETRY_MULT 2
+ #define INIT_TRIES 1000
+ #define ALL 0
+ #define ODD 1
+ #define EVEN 2
+ #define PRIME 3
+
+ int choice, n, size, counts = 0, day_counter = 0, days = 0, years = 0, free_top = 0, fft_size = 0;
+ mus_long_t ffts = 0;
+ mus_float_t increment = INCR_MAX, orig_incr, local_best = 1000.0, incr_mult = INCR_DOWN, overall_min;
+ mus_float_t *min_phases = NULL, *temp_phases = NULL, *diff_phases = NULL, *initial_phases = NULL;
+ char *choice_name[4] = {"all", "odd", "even", "prime"};
+ pk_data **choices = NULL, **free_choices = NULL;
+ mus_float_t *rl, *im;
+ const char *file = NULL;
+ bool just_best = true;
+
+ auto mus_float_t saved_min(int ch, int nn);
+ auto mus_float_t get_peak(mus_float_t *phases);
+ auto pk_data *next_choice(pk_data *data);
+ auto bool day(void);
+
+ mus_float_t saved_min(int ch, int nn)
+ {
+ if (nn <= 128)
+ {
+ switch (ch)
+ {
+ case ALL: return(all_mins[nn]);
+ case ODD: return(odd_mins[nn]);
+ case EVEN: return(even_mins[nn]);
+ case PRIME: return(prime_mins[nn]);
+ }
+ }
+ if (nn == 256) return(min_8[ch]);
+ if (nn == 512) return(min_9[ch]);
+ if (nn == 1024) return(min_10[ch]);
+ if (nn == 2048) return(min_11[ch]);
+ return((mus_float_t)nn);
+ }
+
+ mus_float_t get_peak(mus_float_t *phases)
+ {
+ int i, m;
+ mus_float_t pi2, mx_sin, mx_cos;
+
+ pi2 = M_PI / 2.0;
+ memset((void *)rl, 0, fft_size * sizeof(mus_float_t));
+ memset((void *)im, 0, fft_size * sizeof(mus_float_t));
+
+ for (m = 0; m < n; m++)
+ {
+ int bin;
+ mus_float_t phi;
+ phi = (M_PI * phases[m]) + pi2;
+ if (choice == ALL)
+ bin = m + 1;
+ else
+ {
+ if (choice == ODD)
+ bin = (m * 2) + 1;
+ else
+ {
+ if (choice == EVEN)
+ {
+ bin = m * 2;
+ if (bin == 0) bin = 1;
+ }
+ else bin = primes[m];
+ }
+ }
+ rl[bin] = cos(phi);
+ im[bin] = sin(phi);
+ }
+
+ mus_fft(rl, im, fft_size, -1);
+ /* real part is sine reconstruction, imaginary part is cosine, we're interested in both! */
+ /* we could also add and subtract the 2 to get 2 more cases "for free", amp sqrt(2), phase asin(cos(0)/sqrt(2)) */
+ /* and repeat this with a shift (rotation from i) for 2n other cases */
+ /* resultant amp is between 0 and 2 (cosine) */
+
+ ffts++;
+ mx_sin = fabs(rl[0]);
+ mx_cos = fabs(im[0]);
+ for (i = 1; i < fft_size; i++)
+ {
+ mus_float_t mxtemp;
+ mxtemp = fabs(rl[i]);
+ if (mxtemp > mx_sin)
+ mx_sin = mxtemp;
+ mxtemp = fabs(im[i]);
+ if (mxtemp > mx_cos)
+ mx_cos = mxtemp;
+ }
+
+ return(mx_sin); /* ignore cos case since we're trying to follow a path */
+
+ if (mx_sin <= mx_cos)
+ return(mx_sin);
+
+ /* use the cosine case, but make it sine-based with 0.0 initial phase for the fundamental */
+ for (m = 1; m < n; m++)
+ {
+ int bin;
+ if (choice == ALL)
+ bin = m + 1;
+ else
+ {
+ if (choice == ODD)
+ bin = (m * 2) + 1;
+ else
+ {
+ if (choice == EVEN)
+ {
+ bin = m * 2;
+ if (bin == 0) bin = 1;
+ }
+ else bin = primes[m];
+ }
+ }
+ phases[m] += (0.5 * (bin - 1));
+ }
+
+ return(mx_cos);
+ }
+
+ pk_data *next_choice(pk_data *data)
+ {
+ mus_float_t *phases;
+ mus_float_t cur_min, temp_min = 100000.0, pk = 100000.0;
+ int len, local_try, i, k, local_tries;
+ pk_data *new_pk;
+
+ new_pk = free_choices[--free_top];
+ cur_min = data->pk;
+ phases = data->phases;
+ len = n;
+ local_tries = RETRIES + day_counter * RETRY_MULT;
+
+ /* try to find a point nearby that is better */
+ for (local_try = 0; (local_try < local_tries) && (pk >= cur_min); local_try++)
+ {
+ for (i = 1; i < len; i++)
+ temp_phases[i] = fmod(phases[i] + local_random(increment), 2.0); /* not mus_frandom! */
+ pk = get_peak(temp_phases);
+
+ if (pk < temp_min)
+ {
+ temp_min = pk;
+ new_pk->pk = pk;
+ for (k = 1; k < len; k++) new_pk->phases[k] = temp_phases[k];
+ }
+ }
+
+ /* if a better point is found, try to follow the slopes */
+ if (new_pk->pk < data->pk)
+ {
+ bool happy = true;
+ for (k = 1; k < len; k++)
+ diff_phases[k] = new_pk->phases[k] - data->phases[k];
+
+ while (happy)
+ {
+ for (k = 1; k < len; k++)
+ temp_phases[k] = fmod(new_pk->phases[k] + diff_phases[k], 2.0); /* frandom here? */
+ pk = get_peak(temp_phases);
+
+ if (pk < new_pk->pk)
+ {
+ new_pk->pk = pk;
+ for (k = 1; k < len; k++) new_pk->phases[k] = temp_phases[k];
+ }
+ else happy = false;
+ }
+ }
+
+ pk = new_pk->pk;
+
+ if (pk < local_best)
+ {
+ local_best = pk;
+ if ((!just_best) ||
+ (pk < overall_min))
+ {
+ FILE *ofile;
+ if (file)
+ ofile = fopen(file, "a");
+ else ofile = stderr;
+ for (k = 1; k < len; k++) min_phases[k] = new_pk->phases[k];
+ fprintf(ofile, "[%d, %d, %f, %lld]: %s, %d %f #(", years, days, increment, (long long int)ffts, choice_name[choice], n, pk);
+ for (k = 0; k < len - 1; k++) fprintf(ofile, "%f ", min_phases[k]);
+ fprintf(ofile, "%f)\n\n", min_phases[len - 1]);
+ if (file) fclose(ofile);
+ if (pk < overall_min) overall_min = pk;
+ }
+
+ day_counter = 0;
+ }
+ return(new_pk);
+ }
+
+ bool day(void)
+ {
+ int i, j = 0, k, len;
+ mus_float_t sum = 0.0, avg;
+ len = size;
+ day_counter++;
+ days++;
+ for (i = 0; i < len; i++) sum += choices[i]->pk;
+ avg = sum / len;
+
+ for (i = 0; i < len; i++)
+ {
+ pk_data *datum;
+ datum = choices[i];
+ choices[i] = NULL;
+ if (datum->pk < avg)
+ choices[j++] = datum;
+ else free_choices[free_top++] = datum;
+ }
+
+ for (i = 0, k = j; k < len; i++, k++)
+ {
+ if (i == j)
+ i = 0;
+ choices[k] = next_choice(choices[i]);
+ }
+
+ if (day_counter < counts)
+ {
+ increment *= incr_mult;
+ if (increment < INCR_MIN)
+ {
+ increment = INCR_MIN;
+ }
+ if (increment > INCR_MAX)
+ {
+ increment = INCR_MAX;
+ incr_mult = INCR_DOWN;
+ }
+ return(true);
+ }
+ return(false);
+ }
+
+#if HAVE_SYS_TIME_H
+ {
+ struct timeval tm;
+ struct timezone tz;
+ gettimeofday(&tm, &tz);
+ mus_set_rand_seed((unsigned long)(tm.tv_sec * 1000 + tm.tv_usec / 1000));
+ }
+#endif
+
+ choice = XEN_TO_C_INT(x_choice);
+ if ((choice < ALL) || (choice > PRIME))
+ choice = ALL;
+
+ n = XEN_TO_C_INT(x_n);
+
+ size = 3000;
+ counts = 100;
+ increment = 0.03;
+ orig_incr = increment;
+ incr_mult = INCR_DOWN;
+ file = "test.data";
+ just_best = true;
+
+ if (XEN_VECTOR_P(start_phases))
+ {
+ int i;
+ initial_phases = (mus_float_t *)malloc(n * sizeof(mus_float_t));
+ for (i = 0; i < n; i++)
+ initial_phases[i] = (mus_float_t)XEN_TO_C_DOUBLE(XEN_VECTOR_REF(start_phases, i));
+ }
+
+ min_phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+ overall_min = saved_min(choice, n);
+ temp_phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+ diff_phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+
+ {
+ int start, n1;
+
+ if (choice == ALL)
+ n1 = n;
+ else
+ {
+ if (choice != PRIME)
+ n1 = n * 2;
+ else n1 = primes[n];
+ }
+ fft_size = (int)pow(2.0, (int)ceil(log(FFT_MULT * n1) / log(2.0)));
+ rl = (mus_float_t *)calloc(fft_size, sizeof(mus_float_t));
+ im = (mus_float_t *)calloc(fft_size, sizeof(mus_float_t));
+
+ choices = (pk_data **)calloc(size, sizeof(pk_data *));
+ free_choices = (pk_data **)calloc(size, sizeof(pk_data *));
+
+ for (start = 0; start < size; start++)
+ {
+ choices[start] = (pk_data *)calloc(1, sizeof(pk_data));
+ choices[start]->phases = (mus_float_t *)calloc(n, sizeof(mus_float_t));
+ }
+
+ while (true)
+ {
+ free_top = 0;
+ day_counter = 0;
+ days = 0;
+ local_best = (mus_float_t)n;
+ increment = orig_incr;
+
+ for (start = 0; start < size; start++)
+ {
+ mus_float_t pk, local_pk = 100000.0;
+ int k, init_try;
+
+ for (init_try = 0; init_try < INIT_TRIES; init_try++)
+ {
+ if (initial_phases)
+ {
+ for (k = 1; k < n; k++)
+ temp_phases[k] = initial_phases[k] + local_random(increment);
+ }
+ else
+ {
+ for (k = 1; k < n; k++)
+ temp_phases[k] = local_frandom(2.0);
+ }
+ pk = get_peak(temp_phases);
+
+ if (pk < local_best)
+ {
+ local_best = pk;
+ if ((!just_best) ||
+ (pk < overall_min))
+ {
+ FILE *ofile;
+ if (file)
+ ofile = fopen(file, "a");
+ else ofile = stderr;
+ for (k = 1; k < n; k++) min_phases[k] = temp_phases[k];
+ fprintf(ofile, "[%d, %d, %f, %lld]: %s, %d %f #(", years, days, increment, (long long int)ffts, choice_name[choice], n, pk);
+ for (k = 0; k < n - 1; k++) fprintf(ofile, "%f ", min_phases[k]);
+ fprintf(ofile, "%f)\n\n", min_phases[n - 1]);
+ if (file) fclose(ofile);
+ if (pk < overall_min) overall_min = pk;
+ }
+ }
+
+ if (pk < local_pk)
+ {
+ for (k = 1; k < n; k++) choices[start]->phases[k] = temp_phases[k];
+ choices[start]->pk = pk;
+ local_pk = pk;
+ }
+ }
+ }
+
+ while (day()) {}
+
+ break;
+ /* try again from the top... */
+ fprintf(stderr, "[%d: %d, %f]\n", years, days, local_best);
+ years++;
+ }
+ }
+
+ free(temp_phases);
+ free(diff_phases);
+ free(rl);
+ free(im);
+ free(free_choices);
+ if (initial_phases) free(initial_phases);
+
+ {
+ int i;
+ for (i = 0; i < size; i++)
+ {
+ free(choices[i]->phases);
+ free(choices[i]);
+ }
+ free(choices);
+ }
+
+ return(xen_make_vct(n, min_phases));
+}
+
#endif
@@ -6095,6 +6980,8 @@ XEN_ARGIFY_9(g_ptree_channel_w, g_ptree_channel)
#if HAVE_NESTED_FUNCTIONS
XEN_VARGIFY(g_find_min_peak_phases_w, g_find_min_peak_phases)
XEN_ARGIFY_7(g_fpsa_w, g_fpsa)
+XEN_ARGIFY_9(g_fpsaf_w, g_fpsaf)
+XEN_ARGIFY_3(g_fpsap_w, g_fpsap)
#endif
#else
#define g_scan_chan_w g_scan_chan
@@ -6139,6 +7026,8 @@ XEN_ARGIFY_7(g_fpsa_w, g_fpsa)
#if HAVE_NESTED_FUNCTIONS
#define g_find_min_peak_phases_w g_find_min_peak_phases
#define g_fpsa_w g_fpsa
+#define g_fpsaf_w g_fpsaf
+#define g_fpsap_w g_fpsap
#endif
#endif
@@ -6190,6 +7079,8 @@ void g_init_sig(void)
#if HAVE_NESTED_FUNCTIONS
XEN_DEFINE_PROCEDURE(S_find_min_peak_phases, g_find_min_peak_phases_w, 0, 0, 1, H_find_min_peak_phases);
XEN_DEFINE_PROCEDURE(S_fpsa, g_fpsa_w, 2, 5, 0, H_fpsa);
+ XEN_DEFINE_PROCEDURE(S_fpsaf, g_fpsaf_w, 3, 6, 0, H_fpsaf);
+ XEN_DEFINE_PROCEDURE(S_fpsap, g_fpsap_w, 3, 0, 0, H_fpsap);
#endif
}
diff --git a/snd-snd.c b/snd-snd.c
index 2aecf47..8b45d8d 100644
--- a/snd-snd.c
+++ b/snd-snd.c
@@ -1507,11 +1507,6 @@ typedef struct ctrl_state {
bool expand_on, contrast_on, reverb_on, filter_on, reversed;
int filter_order;
mus_float_t contrast_amp, expand_ramp, expand_length, expand_hop, expand_jitter, reverb_feedback, reverb_decay, reverb_lowpass;
-#if HAVE_GUILE_DYNAMIC_WIND
- snd_info *sp;
- int old_selected_channel;
- void *ap;
-#endif
} ctrl_state;
@@ -2340,7 +2335,9 @@ void call_sp_watchers(snd_info *sp, sp_watcher_t type, sp_watcher_reason_t reaso
/* ---------------------------------------- sound objects ---------------------------------------- */
-/* generics (besides length, srate, channels, frames, file-name, sync, maxamp):
+/* this is my long term plan right now... */
+
+/* generics (besides length, srate, channels, frames, file-name, sync, maxamp, play, copy, fill!, [apply], [set!], [for-each], [map]):
*
* source: procedure-source[s7_procedure_source] mix-home mark-home region-home player-home sampler-home
* mus cases: readin=file+chan? etc, port -> filename?, sound->filename?
@@ -2353,11 +2350,59 @@ void call_sp_watchers(snd_info *sp, sp_watcher_t type, sp_watcher_reason_t reaso
* properties: edit|mark|mix|sound|channel-properties procedure-property? window-property? [also property as accessor]
* but then typos lead to seriously confusing behavior -- I think I'll leave out properties for now.
*
- * name: mark|mix-name file-name (widget name via XtName) mus-name,
+ * name: mark|mix-name file-name (widget name via XtName) mus-name colormap
* __func__? port-filename sampler-filename
*
* reverse save find insert delete describe read write mix append [open and close?] member
* reverse mix append member: these exist already and could just be extended
+ *
+ * scale(-to|by) convolve fft env filter insert mix reverse save smooth src map|scan pan-mix
+ * sampler? replace-with?
+ *
+ * save with all the optkey args for all types (treat list/vector etc as sound data)
+ * check map/for-each cases -- sound selection etc (and add to extsnd) and set/ref
+ * for-each depends on ref, map could depend on copy/set/ref
+ *
+ * objects are generator(clm2xen), player(snd-dac), sampler(snd-edits), sound-data(sndlib2xen), transform (snd-fft),
+ * mark(snd-marks), mix(snd-mix), selection(snd-select), region(snd-region), colormap(snd-gxcolormap),
+ * vct(vct), hook(xen), XmObj(xm, xg), plus the base types(s7): string hash-table vector pair object
+ *
+ * also needed are further cases of ref/set
+ * ref needed: mix? region selection sound
+ * set needed: selection? sound
+ *
+ * possible new objects: menu-item, file-filter|sorter, fft-window?, color? widget? variable-graph?
+ *
+ * color is currently a list with 'color as car -- perhaps make this a true object
+ * also clm method list "mus-name": clm2xen.c
+ * Font, XtAppContext, GC, etc in snd-draw.c [but needs to remain compatible with xm/xg]
+ * ladspa stuff
+ * window widget event snd-g|x0.h
+ *
+ * (scan-channel -> channel-for-each)
+ * and channel-map rather than map-channel
+ * channel-for-each in the multiarg case would make it easier to compare chans
+ * (find-if func snd...)
+ * (eval-over-selection -> selection-for-each) *-for-each
+ * then selection-map would replace the current selected samples
+ *
+ * do everything through generic sampler (vector etc)
+ * in/out/readin generic as well, so we can use instruments for edits and vice-versa without change
+ * selection sampler [no need for snd-sampler (snd-edits) I think]
+ *
+ * the goal being that all clm and snd structures are compatible, all operations interchangeable
+ * so (violin 0 1 440 .1) can appear sensibly in any context
+ *
+ * then deprecate all the special case stuff, add generic versions of *.scm examples
+ * sound-file properties? a data base saving all such info (rather than kludges involving headers)
+ * (hash-table makes more sense as a property list than a list in large cases) -- currently it's actually a vector
+ * or a global data base for all properties? -- easy to search or display in various ways
+ *
+ * all current "work procs" could be handled as separate threads
+ * all multichannel parallel ops also threaded, and graphics updates, and playing
+ * TODO: make-sampler with mix etc -- let 1st arg be object, also add selection sampler
+ * what about "Save again" menu item -- save as using the same choices including filename as before? [popup]
+ * or save button next to "unite" et al. Also "close"? min max close save buttons on the left before the sound name?
*/
@@ -2395,7 +2440,7 @@ static char *xen_sound_to_string(xen_sound *v)
char *buf;
if (v == NULL) return(NULL);
buf = (char *)calloc(XEN_SOUND_PRINT_BUFFER_SIZE, sizeof(char));
- sprintf(buf, "#<sound %d>", v->n);
+ snprintf(buf, XEN_SOUND_PRINT_BUFFER_SIZE, "#<sound %d>", v->n);
return(buf);
}
@@ -2461,17 +2506,89 @@ static bool s7_xen_sound_equalp(void *obj1, void *obj2)
(((xen_sound *)obj1)->n == ((xen_sound *)obj2)->n));
}
+
static XEN s7_xen_sound_length(s7_scheme *sc, XEN obj)
{
return(g_frames(obj, XEN_ZERO, C_TO_XEN_INT(AT_CURRENT_EDIT_POSITION)));
}
+
+
+static XEN s7_xen_sound_copy(s7_scheme *sc, XEN obj)
+{
+ snd_info *sp;
+ sp = get_sp(obj);
+ if (sp)
+ {
+ char *name;
+ name = snd_tempnam();
+ if (mus_header_writable(sp->hdr->type, sp->hdr->format))
+ save_edits_without_display(sp, name, sp->hdr->type, sp->hdr->format, sp->hdr->srate, NULL, AT_CURRENT_EDIT_POSITION);
+ else save_edits_without_display(sp, name, MUS_NEXT, MUS_OUT_FORMAT, sp->hdr->srate, NULL, AT_CURRENT_EDIT_POSITION);
+ sp = snd_open_file(name, FILE_READ_WRITE);
+ free(name);
+ return(new_xen_sound(sp->index));
+ }
+ return(XEN_FALSE);
+}
+
+
+static XEN s7_xen_sound_fill(s7_scheme *sc, XEN obj, XEN val)
+{
+ snd_info *sp;
+ sp = get_sp(obj);
+ if (sp)
+ {
+ mus_float_t valf;
+ chan_info *cp;
+ int i;
+
+ valf = XEN_TO_C_DOUBLE(val);
+ if (valf == 0.0)
+ {
+ for (i = 0; i < sp->nchans; i++)
+ {
+ cp = sp->chans[i];
+ scale_channel(cp, 0.0, 0, CURRENT_SAMPLES(cp), cp->edit_ctr, false);
+ update_graph(cp);
+ }
+ }
+ else
+ {
+ /* SOMEDAY: wouldn't it be better here (and selection fill) to use ptree_channel with (lambda (y) val)? */
+ /* ptree_channel(cp, <make-ptree>, 0, CURRENT_SAMPLES(cp), cp->edit_ctr, true, XEN_FALSE, "fill! sound") */
+
+ mus_long_t len = -1, j;
+ mus_sample_t *data = NULL;
+ mus_sample_t value;
+ value = MUS_FLOAT_TO_SAMPLE(valf);
+
+ for (i = 0; i < sp->nchans; i++)
+ {
+ cp = sp->chans[i];
+ if ((!data) || (CURRENT_SAMPLES(cp) != len))
+ {
+ len = CURRENT_SAMPLES(cp);
+ if (data) free(data);
+ data = (mus_sample_t *)malloc(len * sizeof(mus_sample_t));
+ for (j = 0; j < len; j++)
+ data[j] = value;
+ }
+ if (change_samples(0, len, data, cp, "fill! sound", cp->edit_ctr))
+ update_graph(cp);
+ }
+ free(data);
+ }
+ }
+ return(XEN_FALSE);
+}
#endif
static void init_xen_sound(void)
{
#if HAVE_S7
- xen_sound_tag = XEN_MAKE_OBJECT_TYPE("<sound>", print_xen_sound, free_xen_sound, s7_xen_sound_equalp, NULL, NULL, NULL, s7_xen_sound_length, NULL, NULL);
+ xen_sound_tag = XEN_MAKE_OBJECT_TYPE("<sound>", print_xen_sound, free_xen_sound, s7_xen_sound_equalp,
+ NULL, NULL, NULL, s7_xen_sound_length, s7_xen_sound_copy, s7_xen_sound_fill);
#else
#if HAVE_RUBY
xen_sound_tag = XEN_MAKE_OBJECT_TYPE("XenSound", sizeof(xen_sound));
@@ -3445,6 +3562,9 @@ static XEN g_channels(XEN snd)
if (XEN_REGION_P(snd)) /* region-chans */
return(g_region_chans(snd));
+ if (XEN_SELECTION_P(snd)) /* selection-chans */
+ return(g_selection_chans());
+
return(sound_get(snd, SP_NCHANS, S_channels));
}
@@ -3474,6 +3594,9 @@ static XEN g_srate(XEN snd)
if (XEN_REGION_P(snd))
return(g_region_srate(snd));
+ if (XEN_SELECTION_P(snd))
+ return(g_selection_srate());
+
return(sound_get(snd, SP_SRATE, S_srate));
}
@@ -5044,37 +5167,6 @@ static void apply_controls_error(const char *msg, void *data)
}
-#if HAVE_GUILE_DYNAMIC_WIND
-static void before_controls_to_channel(void *ignore) {}
-static void after_controls_to_channel(void *context)
-{
- ctrl_state *cs = (ctrl_state *)context;
- snd_info *sp;
- sp = cs->sp;
- sp->selected_channel = cs->old_selected_channel;
- restore_control_settings(sp, cs);
- free_control_settings(cs);
-}
-
-
-static XEN controls_to_channel_body(void *context)
-{
- ctrl_state *cs = (ctrl_state *)context;
- apply_state *ap;
- ap = (apply_state *)(cs->ap);
- if (ap)
- {
- redirect_snd_error_to(apply_controls_error, (void *)S_controls_to_channel);
- redirect_snd_warning_to(squelch_printout, NULL);
- while (apply_controls(ap)) {};
- redirect_snd_warning_to(NULL, NULL); /* no-op message pointless within xen */
- redirect_snd_error_to(NULL, NULL);
- }
- return(XEN_FALSE);
-}
-#endif
-
-
static XEN g_controls_to_channel(XEN settings, XEN beg, XEN dur, XEN snd, XEN chn, XEN origin)
{
#define H_controls_to_channel "(" S_controls_to_channel " settings :optional beg dur snd chn origin) sets up \
@@ -5221,16 +5313,6 @@ where each inner list entry can also be " PROC_FALSE "."
#endif
#endif
-#if HAVE_GUILE_DYNAMIC_WIND
- saved_settings->sp = sp;
- saved_settings->old_selected_channel = old_selected_channel;
- saved_settings->ap = (void *)ap;
- scm_internal_dynamic_wind((scm_t_guard)before_controls_to_channel,
- (scm_t_inner)controls_to_channel_body, /* restore settings if error during apply_controls */
- (scm_t_guard)after_controls_to_channel,
- (void *)saved_settings,
- (void *)saved_settings);
-#else
if (ap)
{
redirect_snd_error_to(apply_controls_error, (void *)S_controls_to_channel);
@@ -5242,7 +5324,6 @@ where each inner list entry can also be " PROC_FALSE "."
sp->selected_channel = old_selected_channel;
restore_control_settings(sp, saved_settings);
free_control_settings(saved_settings);
-#endif
}
return(settings);
@@ -6148,7 +6229,6 @@ XEN_NARGIFY_1(g_sound_to_integer_w, g_sound_to_integer)
void g_init_snd(void)
{
init_xen_sound();
-
init_sound_keywords();
#define H_name_click_hook S_name_click_hook " (snd): called when sound name clicked. \
diff --git a/snd-strings.h b/snd-strings.h
index 835679f..0d5eb56 100644
--- a/snd-strings.h
+++ b/snd-strings.h
@@ -84,6 +84,7 @@
#define S_colormap_p "colormap?"
#define S_colormap_ref "colormap-ref"
#define S_colormap_size "colormap-size"
+#define S_colormap_to_integer "colormap->integer"
#define S_comment "comment"
#define S_contrast_control "contrast-control"
#define S_contrast_control_amp "contrast-control-amp"
@@ -270,10 +271,12 @@
#define S_insert_selection "insert-selection"
#define S_insert_silence "insert-silence"
#define S_insert_sound "insert-sound"
+#define S_integer_to_colormap "integer->colormap"
#define S_integer_to_mark "integer->mark"
#define S_integer_to_mix "integer->mix"
#define S_integer_to_region "integer->region"
#define S_integer_to_sound "integer->sound"
+#define S_integer_to_transform "integer->transform"
#define S_just_sounds "just-sounds"
#define S_key "key"
#define S_key_binding "key-binding"
@@ -398,13 +401,8 @@
#define S_peaks "peaks"
#define S_peaks_font "peaks-font"
#define S_play "play"
-#define S_play_and_wait "play-and-wait"
-#define S_play_channel "play-channel"
#define S_play_hook "play-hook"
#define S_playing "playing"
-#define S_play_mix "play-mix"
-#define S_play_region "play-region"
-#define S_play_selection "play-selection"
#define S_player_home "player-home"
#define S_player_p "player?"
#define S_players "players"
@@ -484,6 +482,7 @@
#define S_save_listener "save-listener"
#define S_save_macros "save-macros"
#define S_save_marks "save-marks"
+#define S_save_mix "save-mix"
#define S_save_region "save-region"
#define S_save_region_dialog "save-region-dialog"
#define S_save_selection "save-selection"
@@ -513,6 +512,7 @@
#define S_selected_data_color "selected-data-color"
#define S_selected_graph_color "selected-graph-color"
#define S_selected_sound "selected-sound"
+#define S_selection "selection"
#define S_selection_chans "selection-chans"
#define S_selection_color "selection-color"
#define S_selection_context "selection-context"
@@ -521,6 +521,7 @@
#define S_selection_maxamp "selection-maxamp"
#define S_selection_maxamp_position "selection-maxamp-position"
#define S_selection_member "selection-member?"
+#define S_selection_to_mix "selection->mix"
#define S_selection_p "selection?"
#define S_selection_position "selection-position"
#define S_selection_srate "selection-srate"
@@ -633,6 +634,7 @@
#define S_transform_p "transform?"
#define S_transform_sample "transform-sample"
#define S_transform_size "transform-size"
+#define S_transform_to_integer "transform->integer"
#define S_transform_to_vct "transform->vct"
#define S_transform_type "transform-type"
#define S_trap_segfault "trap-segfault"
diff --git a/snd-test.fs b/snd-test.fs
index d323c6b..c5e03e9 100644
--- a/snd-test.fs
+++ b/snd-test.fs
@@ -2,7 +2,7 @@
\ Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Sat Aug 05 00:09:28 CEST 2006
-\ Changed: Tue Oct 13 00:51:07 CEST 2009
+\ Changed: Thu Nov 26 20:48:04 CET 2009
\ Commentary:
\
@@ -187,10 +187,6 @@ mus-audio-playback-amp value original-audio-amp
then
;
: set-arity-ok <{ proc args -- f }> proc set-xt args arity-ok ;
-: safe-divide ( a b -- c )
- { a b }
- b zero? b fzero? || if a else a b b/ then
-;
: make-color-with-catch ( c1 c2 c3 -- color )
<'> make-color 'no-such-color #t fth-catch if stack-reset 1 0 0 make-color then
;
@@ -663,7 +659,7 @@ mus-audio-playback-amp value original-audio-amp
chn 0<> if $" chn mix-home: %d?" #( chn ) snd-display then
amp 1.0 fneq if $" mix-amp: %s?" #( amp ) snd-display then
spd 1.0 fneq if $" mix-speed: %s?" #( spd ) snd-display then
- mix-id <'> play-mix 'mus-error nil fth-catch to res
+ mix-id <'> play 'mus-error nil fth-catch to res
stack-reset
res false? not if $" can't play mix: %s" #( res ) snd-display then
mix-id 200 set-mix-position drop
@@ -1045,6 +1041,23 @@ mus-audio-playback-amp value original-audio-amp
: f4neq ( a b -- f ) f- fabs 1.0 f> ;
: f5neq ( a b -- f ) { a b } a b f- fabs 10.0 a b fmax 0.05 f* f> ;
+'complex provided? [if]
+ \ dolph/dolph-1 are only defined if complex numbers available
+ : dolph-test ( -- )
+ 16 1.0 dolph { val1 }
+ dolph-chebyshev-window 16 1.0 make-fft-window { val2 }
+ val1 val2 vequal unless
+ $" dolph/dolph 1: %s %s" #( val1 val2 ) snd-display
+ then
+ 16 1.0 dolph-1 to val1
+ val1 val2 vequal unless
+ $" dolph-1/dolph 1: %s %s" #( val1 val2 ) snd-display
+ then
+ ;
+[else]
+ <'> noop alias dolph-test
+[then]
+
: 15-chan-local-vars ( -- )
\ dsp.fs
"test.snd" mus-next mus-bfloat 22050 1 $" src-* tests" 10000 new-sound { ind }
@@ -1091,15 +1104,7 @@ mus-audio-playback-amp value original-audio-amp
then
ind close-sound drop
\
- 16 1.0 dolph { val1 }
- dolph-chebyshev-window 16 1.0 make-fft-window { val2 }
- val1 val2 vequal unless
- $" dolph/dolph 1: %s %s" #( val1 val2 ) snd-display
- then
- 16 1.0 dolph-1 to val1
- val1 val2 vequal unless
- $" dolph-1/dolph 1: %s %s" #( val1 val2 ) snd-display
- then
+ dolph-test
\ env.fs
\ envelope-interp
0.1 #( 0 0 1 1 ) 1.0 envelope-interp dup 0.1 fneq if
@@ -1588,6 +1593,258 @@ lambda: <{ x -- y }> pi random ; value random-pi-addr
gen mg 0.0 0.0 oscil 0.02 f* ssb-fm
;
+\ examples from sndclm.html
+: sndclm-oscil-test ( -- )
+ 440.0 make-oscil { gen }
+ 44100 0 do
+ i gen 0 0 oscil f2/ *output* outa drop
+ loop
+;
+: sndclm-env-test ( -- )
+ 440.0 make-oscil { gen }
+ '( 0 0 0.01 1 0.25 0.1 0.5 0.01 1 0 )
+ :scaler 0.5 :length 44100 make-env { ampf }
+ 44100 0 do
+ i gen 0 0 oscil ampf env f* *output* outa drop
+ loop
+;
+: sndclm-table-lookup-test ( -- )
+ 440.0 :wave '( 1 0.5 2 0.5 ) #f #f partials->wave make-table-lookup { gen }
+ 44100 0 do
+ i gen 0 table-lookup f2/ *output* outa drop
+ loop
+;
+: sndclm-polywave-test ( -- )
+ 440.0 :partials '( 1 0.5 2 0.5 ) make-polywave { gen }
+ 44100 0 do
+ i gen 0 polywave f2/ *output* outa drop
+ loop
+;
+: sndclm-triangle-wave-test ( -- )
+ 440.0 make-triangle-wave { gen }
+ 44100 0 do
+ i gen 0 triangle-wave f2/ *output* outa drop
+ loop
+;
+: sndclm-ncos-test ( -- )
+ 440.0 10 make-ncos { gen }
+ 44100 0 do
+ i gen 0 ncos f2/ *output* outa drop
+ loop
+;
+: sndclm-nrxycos-test ( -- )
+ 440.0 :n 10 make-nrxycos { gen }
+ 44100 0 ?do
+ i gen 0 nrxycos f2/ *output* outa drop
+ loop
+;
+: sndclm-ssb-am-test ( -- )
+ 440.0 20 make-ssb-am { shifter }
+ 440.0 make-oscil { osc }
+ 44100 0 ?do
+ i shifter osc 0 0 oscil 0 ssb-am f2/ *output* outa drop
+ loop
+;
+: sndclm-wave-train-test ( -- )
+ 400 10 make-ncos { g }
+ g -0.5 pi f* set-mus-phase drop
+ 64 make-vct map! g 0 ncos end-map { v }
+ 440.0 :wave v make-wave-train { gen }
+ 44100 0 do
+ i gen 0 wave-train f2/ *output* outa drop
+ loop
+;
+: sndclm-rand-test ( -- )
+ 5.0 220.0 hz->radians make-rand { ran1 }
+ 5.0 330.0 hz->radians make-rand-interp { ran2 }
+ 440.0 make-oscil { osc1 }
+ 1320.0 make-oscil { osc2 }
+ 88200 0 do
+ i osc1 ran1 0 rand 0 oscil f2/ *output* outa drop
+ i osc2 ran2 0 rand-interp 0 oscil f2/ *output* outb drop
+ loop
+;
+: sndclm-two-pole-test ( -- )
+ 1000.0 0.999 make-two-pole { flt }
+ 10000.0 0.002 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand two-pole f2/ *output* outa drop
+ loop
+;
+: sndclm-firmant-test ( -- )
+ 1000.0 0.999 make-firmant { flt }
+ 10000.0 5.0 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand #f firmant f2/ *output* outa drop
+ loop
+;
+: sndclm-iir-filter-test ( -- )
+ 3 vct( 0.0 -1.978 0.998 ) make-iir-filter { flt }
+ 10000.0 0.002 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand iir-filter f2/ *output* outa drop
+ loop
+;
+: sndclm-delay-test ( -- )
+ 0.5 seconds->samples make-delay { dly }
+ 440.0 make-oscil { osc1 }
+ 660.0 make-oscil { osc2 }
+ 44100 0 do
+ i
+ osc1 0 0 oscil
+ dly osc2 0 0 oscil 0 delay f+
+ f2/ *output* outa drop
+ loop
+;
+: sndclm-comb-test ( -- )
+ 0.4 0.4 seconds->samples make-comb { cmb }
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 2 1 3 0 ) :length 4410 make-env { ampf }
+ 88200 0 do
+ i
+ cmb ( gen )
+ ampf env osc 0 0 oscil f* ( val )
+ 0 ( pm )
+ comb f2/ *output* outa drop
+ loop
+;
+: sndclm-all-pass-test ( -- )
+ -0.4 0.4 0.4 seconds->samples make-all-pass { alp }
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 2 1 3 0 ) :length 4410 make-env { ampf }
+ 88200 0 do
+ i
+ alp ( gen )
+ ampf env osc 0 0 oscil f* ( val )
+ 0 ( pm )
+ all-pass f2/ *output* outa drop
+ loop
+;
+: sndclm-moving-average-test ( -- )
+ 4410 make-moving-average { avg }
+ 440.0 make-oscil { osc }
+ 44100 4410 - { stop }
+ 0.0 { val }
+ stop 0 do
+ osc 0 0 oscil to val
+ i avg val fabs moving-average val f* *output* outa drop
+ loop
+ 44100 stop do
+ i avg 0.0 moving-average osc 0 0 oscil f* *output* outa drop
+ loop
+;
+: sndclm-src1-test ( -- )
+ "oboe.snd" make-readin { rd }
+ rd 0.5 make-src { sr }
+ "oboe.snd" mus-sound-frames 2* ( len ) 0 do
+ i sr 0 #f src *output* outa drop
+ loop
+;
+: make-src-proc { osc -- prc; dir self -- val }
+ 1 proc-create osc , ( prc )
+ does> { dir self -- val }
+ self @ ( osc ) 0 0 oscil
+;
+: sndclm-src2-test ( -- )
+ 440.0 make-oscil { osc }
+ osc make-src-proc { prc }
+ :srate 2.0 make-src { sr }
+ 44100 0 do
+ i sr 0 prc src *output* outa drop
+ loop
+;
+: sndclm-convolve1-test ( -- )
+ "pistol.snd" make-readin ( rd )
+ "oboe.snd" file->vct ( v ) make-convolve { cnv }
+ 88200 0 do
+ i cnv #f convolve 0.25 f* *output* outa drop
+ loop
+;
+: sndclm-convolve2-test ( -- )
+ "oboe.snd" "pistol.snd" 0.5 "convolved.snd" convolve-files { tempfile }
+ tempfile make-readin { reader }
+ tempfile mus-sound-frames ( len ) 0 do
+ i reader readin *output* outa drop
+ loop
+ tempfile file-delete
+;
+: sndclm-granulate1-test ( -- )
+ "oboe.snd" make-readin 2.0 make-granulate { grn }
+ 44100 0 do
+ i grn #f #f granulate *output* outa drop
+ loop
+;
+: make-granulate-proc { osc sweep -- prc; dir self -- val }
+ 1 proc-create osc , sweep , ( prc )
+ does> { dir self -- val }
+ self @ ( osc ) self cell+ @ ( sweep ) env 0 oscil 0.2 f*
+;
+: sndclm-granulate2-test ( -- )
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 ) :scaler 440.0 hz->radians :length 44100 make-env { sweep }
+ osc sweep make-granulate-proc :expansion 2.0 :length 0.5 make-granulate { grn }
+ 88200 0 do
+ i grn #f #f granulate *output* outa drop
+ loop
+;
+: sndclm-phase-vocoder1-test ( -- )
+ "oboe.snd" make-readin :pitch 2.0 make-phase-vocoder { pv }
+ 44100 0 do
+ i pv #f #f #f #f phase-vocoder *output* outa drop
+ loop
+;
+: sndclm-phase-vocoder2-test ( -- )
+ "oboe.snd" make-readin :interp 256 make-phase-vocoder { pv }
+ "oboe.snd" mus-sound-frames 2* ( samps ) 0 do
+ i pv #f #f #f #f phase-vocoder *output* outa drop
+ loop
+;
+: sndclm-asymmetric-fm-test ( -- )
+ 440.0 0.0 0.9 0.5 make-asymmetric-fm { fm }
+ 44100 0 do
+ i fm 1.0 0 asymmetric-fm f2/ *output* outa drop
+ loop
+;
+: sndclm-file->frame->file-test ( -- )
+ "stereo.snd" make-file->frame { input }
+ 2 make-frame { frm }
+ "stereo.snd" mus-sound-frames ( len ) 0 do
+ input i frm file->frame ( frm ) 1 frame-ref ( val1 )
+ frm 0 frame-ref ( val0 ) frm 1 rot frame-set! drop
+ ( val1 ) frm 0 rot frame-set! drop
+ *output* i frm frame->file drop
+ loop
+;
+: sndclm-readin-test ( -- )
+ "oboe.snd" make-readin { reader }
+ 44100 0 do
+ i reader readin f2/ *output* outa drop
+ loop
+;
+: sndclm-in-out-any-test ( -- )
+ "oboe.snd" make-file->sample { infile }
+ 44100 0 do
+ i i 0 infile in-any 0 *output* out-any drop
+ loop
+;
+: sndclm-locsig-test ( -- )
+ 60.0 make-locsig { loc }
+ 440.0 make-oscil { osc }
+ 44100 0 do
+ loc i osc 0 0 oscil f2/ locsig drop
+ loop
+;
+: sndclm-amplitude-modulate-test ( -- )
+ 440.0 make-oscil { osc1 }
+ 220.0 make-oscil { osc2 }
+ 44100 0 do
+ i
+ 0.3 ( car )
+ osc1 0 0 oscil ( in1 )
+ osc2 0 0 oscil ( in2 ) amplitude-modulate f2/ *output* outa drop
+ loop
+;
+
include bird.fsm
: ws-close-sound ( ws -- )
@@ -1615,6 +1872,38 @@ include bird.fsm
0 1000 ind 0 pad-channel drop
gen mg test23-ssb-fm <'> map-channel #t nil fth-catch stack-reset
ind close-sound drop
+ \ examples from sndclm.html
+ <'> sndclm-oscil-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-env-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-table-lookup-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-polywave-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-triangle-wave-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-ncos-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-nrxycos-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-ssb-am-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-wave-train-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-rand-test :channels 2 :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-two-pole-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-firmant-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-iir-filter-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-delay-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-comb-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-all-pass-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-moving-average-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-src1-test :srate 22050 :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-src2-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-convolve1-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-convolve2-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-granulate1-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-granulate2-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-phase-vocoder1-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-phase-vocoder2-test :srate 22050 :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-asymmetric-fm-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-file->frame->file-test :channels 2 :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-readin-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-in-out-any-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-locsig-test :channels 2 :play *clm-verbose* with-sound ( ws ) ws-close-sound
+ <'> sndclm-amplitude-modulate-test :play *clm-verbose* with-sound ( ws ) ws-close-sound
;
\ ====== test 28: errors
@@ -1866,7 +2155,7 @@ include bird.fsm
<'> vct->list <'> vector->vct <'> vct->vector <'> vct-move!
<'> vct-reverse! <'> vct-subseq <'> vct <'> little-endian?
<'> vct->string <'> clm-channel <'> env-channel <'> map-channel
- <'> scan-channel <'> play-channel <'> reverse-channel <'> seconds->samples
+ <'> scan-channel <'> reverse-channel <'> seconds->samples
<'> samples->seconds <'> smooth-channel <'> vct->channel <'> channel->vct
<'> src-channel <'> scale-channel <'> ramp-channel <'> pad-channel
<'> normalize-channel <'> cursor-position <'> clear-listener <'> mus-sound-prune
@@ -2035,7 +2324,11 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
y 0.4 f> if 1 self @ ( ind ) 0 set-frames drop then
y
;
-: mc-3-cb <{ y -- val }> y 0.0+1.0i c* ;
+'complex provided? [if]
+ : mc-3-cb <{ y -- val }> y 0.0+1.0i c* ;
+[else]
+ noop alias mc-3-cb
+[then]
: edpos-1-cb { ind -- prc; self -- edpos }
0 proc-create ind , ( prc )
does> { self -- edpos }
@@ -2205,7 +2498,7 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
then
end-each
#( <'> reverse-selection <'> selection-position <'> selection-frames <'> smooth-selection
- <'> scale-selection-to <'> play-selection <'> insert-selection <'> delete-selection
+ <'> scale-selection-to <'> insert-selection <'> delete-selection
<'> mix-selection ) each to prc
prc #t nil fth-catch to tag
stack-reset
@@ -2334,16 +2627,11 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
<'> edit-tree <'> edits <'> fft-window-alpha <'> fft-window-beta
<'> fft-log-frequency <'> fft-log-magnitude <'> transform-size <'> transform-graph-type
<'> fft-window <'> transform-graph? <'> find-channel <'> graph
- <'> graph-style <'> lisp-graph?
- \ FIXME: insert-region requires two args [ms].
- \ <'> insert-region
- <'> insert-sound
+ <'> graph-style <'> lisp-graph? <'> insert-sound
<'> time-graph-style <'> lisp-graph-style <'> transform-graph-style <'> left-sample
- <'> map-chan <'> max-transform-peaks <'> maxamp
- <'> maxamp-position <'> min-dB <'> mix-region <'> transform-normalization
- <'> peak-env-info <'> peaks <'> play <'> play-and-wait
- <'> reverse-sound <'> revert-sound
- <'> right-sample <'> sample <'> save-sound <'> save-sound-as
+ <'> map-chan <'> max-transform-peaks <'> maxamp-position <'> min-dB <'> mix-region
+ <'> transform-normalization <'> peak-env-info <'> peaks <'> reverse-sound
+ <'> revert-sound <'> right-sample <'> sample <'> save-sound <'> save-sound-as
<'> scan-chan <'> select-channel <'> show-axes <'> show-transform-peaks
<'> show-marks <'> show-mix-waveforms <'> show-y-zero <'> show-grid
<'> show-sonogram-cursor <'> spectrum-end <'> spectro-hop <'> spectrum-start
@@ -2358,9 +2646,11 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
chn-prcs each to prc
vct-5 prc #t nil fth-catch to tag
stack-reset
- tag car 'wrong-type-arg =
- tag car 'no-such-sound = || unless
- $" chn (no snd) procs %s: %s" #( prc tag ) snd-display
+ tag if
+ tag car 'wrong-type-arg =
+ tag car 'no-such-sound = || unless
+ $" chn (no snd) procs %s: %s" #( prc tag ) snd-display
+ then
then
end-each
chn-prcs each to prc
@@ -2377,12 +2667,9 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
<'> fft-window-alpha <'> fft-window-beta <'> fft-log-frequency <'> fft-log-magnitude
<'> transform-size <'> transform-graph-type <'> fft-window <'> transform-graph?
<'> filter-sound <'> graph-style <'> lisp-graph?
- \ FIXME: insert-region requires two args [ms].
- \ <'> insert-region
<'> left-sample <'> time-graph-style <'> lisp-graph-style
<'> transform-graph-style <'> max-transform-peaks <'> maxamp
<'> maxamp-position <'> min-dB <'> transform-normalization <'> peak-env-info
- <'> play <'> play-and-wait
<'> redo <'> reverse-sound <'> revert-sound <'> right-sample
<'> sample <'> save-sound <'> scale-by <'> scale-to
<'> show-axes <'> show-transform-peaks <'> show-marks <'> show-mix-waveforms
@@ -2403,8 +2690,8 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
$" chn procs %s: %s" #( prc tag ) snd-display
then
end-each
- #( <'> delete-sample <'> edit-fragment <'> graph-style <'> play
- <'> play-and-wait <'> redo <'> time-graph-style <'> lisp-graph-style
+ #( <'> delete-sample <'> edit-fragment <'> graph-style
+ <'> redo <'> time-graph-style <'> lisp-graph-style
<'> transform-graph-style <'> scale-by <'> scale-to <'> undo <'> x-axis-label ) { prcs-3 }
prcs-3 each to prc
0 1234 prc #t nil fth-catch to tag
@@ -2529,7 +2816,7 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
end-each
ind close-sound drop
\ region-sample, initially here, requires two args
- #( <'> play-region <'> region-chans <'> region-home <'> region-frames
+ #( <'> region-chans <'> region-home <'> region-frames
<'> region-position <'> region-maxamp <'> region-maxamp-position
<'> region-srate <'> forget-region ) { reg-prcs-1 }
#( vct-5 #( 0 1 ) #() "hiho" #( 0 1 ) ) each to arg
@@ -2622,7 +2909,7 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
123 <'> player-home 'wrong-type-arg check-error-tag
"/hiho" <'> set-temp-dir 'no-such-file check-error-tag
"/hiho" <'> set-save-dir 'no-such-file check-error-tag
- 20 4 0.0 make-vct <'> snd-transform 'out-of-range check-error-tag
+ 20 integer->transform 4 0.0 make-vct <'> snd-transform 'out-of-range check-error-tag
sf-dir "bad_chans.aifc" $+ <'> mus-sound-maxamp 'bad-header check-error-tag
sf-dir "bad_chans.snd" $+ #( 0.0 0.0 ) <'> set-mus-sound-maxamp 'bad-header check-error-tag
:order 32 :ycoeffs 4 0.0 make-vct <'> make-iir-filter 'mus-error check-error-tag
@@ -2717,9 +3004,6 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
"test.snd" ind mus-voc mus-bshort <'> save-sound-as 'cannot-save check-error-tag
"test.snd" mus-riff mus-bshort <'> save-selection 'cannot-save check-error-tag
"test.snd" mus-voc mus-bshort <'> save-selection 'cannot-save check-error-tag
- 0 <'> noop 0 make-proc <'> play-selection 'wrong-type-arg check-error-tag
- 0 0 <'> play-selection 'wrong-type-arg check-error-tag
- 0 <'> noop 2 make-proc <'> play-selection 'wrong-type-arg check-error-tag
#( 0 0 1 1 ) :length 11 make-env <'> src-channel 'out-of-range check-error-tag
#( 0 1 1 0 ) :length 11 make-env <'> src-channel 'out-of-range check-error-tag
#( 0 1 1 -1 ) :length 11 make-env <'> src-channel 'out-of-range check-error-tag
@@ -2737,7 +3021,6 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
8 0.0 make-vct 0 0 <'> snd-spectrum 'out-of-range check-error-tag
"/baddy/hiho" <'> play 'no-such-file check-error-tag
sf-dir "nist-shortpack.wav" $+ <'> play 'bad-format check-error-tag
- 0 ind 123 <'> play 'no-such-channel check-error-tag
ind 123 <'> make-player 'no-such-channel check-error-tag
"/baddy/hiho" <'> mix 'no-such-file check-error-tag
"oboe.snd" 0 2 <'> mix 'no-such-channel check-error-tag
@@ -2760,15 +3043,12 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
1234 <'> axis-info 'no-such-sound check-error-tag
then
graph-once set-time-graph-type drop
- #( 0 0 ) <'> set-x-bounds 'out-of-range check-error-tag
#( 0.1 -0.1 ) <'> set-x-bounds 'out-of-range check-error-tag
- #( 0.2 0.1 ) <'> set-y-bounds 'out-of-range check-error-tag
100 0 <'> make-region 'out-of-range check-error-tag
-1 <'> delete-sample 'no-such-sample check-error-tag
ind frames 2* <'> delete-sample 'no-such-sample check-error-tag
"/bad/baddy.snd" <'> play 'no-such-file check-error-tag
- 0 1234 <'> play 'no-such-sound check-error-tag
- 0 ind 1234 <'> play 'no-such-channel check-error-tag
+ 1234 0 <'> play 'no-such-sound check-error-tag
regions empty? if 0 100 make-region then
regions 0 array-ref 0 1234 <'> region-sample 'no-such-channel check-error-tag
regions 0 array-ref 1234 <'> region-frames 'no-such-channel check-error-tag
@@ -2781,7 +3061,6 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
0 100 ind 1234 <'> samples->sound-data 'no-such-channel check-error-tag
vct( 0 1 ) "hi" 0 1 0 1 1234 <'> graph 'no-such-sound check-error-tag
vct( 0 1 ) "hi" 0 1 0 1 ind 1234 <'> graph 'no-such-channel check-error-tag
- regions 0 array-ref #f <'> noop 0 make-proc <'> play-region 'wrong-type-arg check-error-tag
#f #t set-selection-member? drop
vct( 0 0 1 1 ) 4 <'> filter-selection 'no-active-selection check-error-tag
"/bad/baddy.snd" <'> save-selection 'no-active-selection check-error-tag
@@ -2830,7 +3109,6 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
vct( 0 0 1 1 ) 4 #f #f ind 1 <'> filter-channel 'no-such-channel check-error-tag
vct( 0 0 1 1 ) 0 <'> filter-sound 'out-of-range check-error-tag
vct( 0 0 1 1 ) 10 <'> filter-sound 'out-of-range check-error-tag
- 0 #f #f #f #f #f <'> noop 0 make-proc <'> play 'wrong-type-arg check-error-tag
#( 0.1 0.01 ) ind <'> set-reverb-control-length-bounds 'out-of-range check-error-tag
#( 0.1 0.01 ) ind <'> set-reverb-control-scale-bounds 'out-of-range check-error-tag
#f <'> scale-by 'wrong-type-arg check-error-tag
@@ -2844,8 +3122,8 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
1234 "hi" <'> noop 0 make-proc <'> add-to-menu 'no-such-menu check-error-tag
"hi" <'> noop 2 make-proc <'> add-to-main-menu 'bad-arity check-error-tag
1 "hi" <'> noop 2 make-proc <'> add-to-menu 'bad-arity check-error-tag
- -1 <'> set-transform-type 'out-of-range check-error-tag
- 123 <'> set-transform-type 'out-of-range check-error-tag
+ -1 integer->transform <'> set-transform-type 'wrong-type-arg check-error-tag
+ 123 integer->transform <'> set-transform-type 'out-of-range check-error-tag
#( 0 1 ) "hiho" <'> help-dialog 'wrong-type-arg check-error-tag
#( 0 1 ) "hiho" <'> info-dialog 'wrong-type-arg check-error-tag
1234 <'> edit-header-dialog 'no-such-sound check-error-tag
@@ -3045,7 +3323,9 @@ set-procs <'> set-arity-not-ok 5 array-reject constant set-procs04
then
then
ind revert-sound drop
- <'> mc-3-cb <'> map-channel #t nil fth-catch to tag
+ 'complex provided? if
+ <'> mc-3-cb <'> map-channel #t nil fth-catch to tag
+ then
stack-reset
tag if
tag car 'bad-type = unless
diff --git a/snd-test.rb b/snd-test.rb
index a5737a6..0f96cd1 100644
--- a/snd-test.rb
+++ b/snd-test.rb
@@ -63,6 +63,61 @@ $bigger_snd = "/usr/gnu/sound/SFiles/bigger.snd"
# test 28: errors
# test all done
+#
+# STOP_PROC takes one arg!
+# EDIT_POSITION pos || proc(snd, chn)
+#
+# play(object
+# :start 0
+# :end -1 (NO_END_SPECIFIED)
+# :channel false (-1)
+# :edit_position false (0)
+# :out_channel -1
+# :with_sync false
+# :wait false
+# :stop false
+#
+# play_region replaced by generic play
+# play_region(reg,
+# wait = false,
+# stop_proc = false)
+#
+# play_selection replaced by generic play
+# play_selection(wait = false,
+# stop_proc = false)
+#
+# play_mix replaced by generic play
+# play_mix(id,
+# beg = 0)
+#
+# play_and_wait replaced by generic play
+# play_and_wait(start, snd,
+# chn = -1,
+# syncd = false,
+# samps = -1,
+# pos = -1,
+# stop_proc = false,
+# out_chan = -1)
+#
+# old_play no longer in use
+# old_play(start,
+# snd,
+# chn = -1,
+# syncd = false,
+# samps = -1,
+# pos = -1,
+# stop_proc = false,
+# out_chan = -1)
+#
+# play_channel no longer in use
+# play_channel(start,
+# dur,
+# snd,
+# chn = 0,
+# pos = -1,
+# stop_proc = false,
+# out_chan = -1)
+
$VERBOSE = false
$DEBUG = false
$ERROR_AND_EXIT = false
@@ -1070,7 +1125,6 @@ def test00
if $test00
$before_test_hook.call(0)
consts = [[:Enved_amplitude, 0],
- [:Autocorrelation, 3],
[:Bartlett_window, 4],
[:Bartlett_hann_window, 21],
[:Blackman2_window, 6],
@@ -1103,20 +1157,17 @@ def test00
[:Zoom_focus_left, 0],
[:Zoom_focus_middle, 3],
[:Zoom_focus_right, 1],
- [:Fourier_transform, 0],
[:Gaussian_window, 14],
[:Graph_dots, 1],
[:Graph_dots_and_lines, 3],
[:Graph_filled, 2],
[:Graph_lines, 0],
[:Graph_lollipops, 4],
- [:Haar_transform, 5],
[:Hamming_window, 5],
[:Hann_window, 1],
[:Hann_poisson_window, 17],
[:Kaiser_window, 11],
[:Keyboard_no_action, 4],
- [:Cepstrum, 4],
[:Parzen_window, 3],
[:Poisson_window, 13],
[:Rectangular_window, 0],
@@ -1136,8 +1187,6 @@ def test00
[:Speed_control_as_semitone, 2],
[:Enved_srate, 2],
[:Tukey_window, 15],
- [:Walsh_transform, 2],
- [:Wavelet_transform, 1],
[:Welch_window, 2],
[:Cursor_cross, 0],
[:Cursor_line, 1],
@@ -1367,10 +1416,10 @@ def test00
end,
[:time_graph_type, Graph_once],
[:tracking_cursor_style, Cursor_cross],
- [:transform_graph_type, 0],
+ [:transform_graph_type, Graph_once],
[:transform_normalization, Normalize_by_channel],
[:transform_size, 512],
- [:transform_type, 0],
+ [:transform_type, $fourier_transform],
[:trap_segfault, true], # snd/snd-0.h says: true (snd-test.scm: false)
[:wavelet_type, 0],
[:wavo_hop, 3],
@@ -1422,8 +1471,8 @@ end
# ---------------- test 01: defaults ----------------
-$good_colormap = provided?(:gl) ? 2 : 0
-$better_colormap = 0
+$good_colormap = provided?(:gl) ? $hot_colormap : $black_and_white_colormap
+$better_colormap = $black_and_white_colormap
# :normal = [[Symbol, val], ...]
# :without_error = [Symbol, ...]
@@ -1460,10 +1509,14 @@ def test01
Snd.sounds.apply(:close_sound)
unless provided? :snd_nogui
unless colormap? $good_colormap
- $good_colormap = (1..19).detect do |c| colormap?(c) end
+ $good_colormap = integer2colormap((1..19).detect do |c|
+ colormap?(integer2colormap(c))
+ end)
end
unless colormap? $better_colormap
- $better_colormap = ($good_colormap..19).detect do |c| colormap?(c) end
+ $better_colormap = integer2colormap(($good_colormap..19).detect do |c|
+ colormap?(integer2colormap(c))
+ end)
end
end
controls = [[:ask_before_overwrite, false],
@@ -1578,10 +1631,10 @@ def test01
[:mix_waveform_height, 20],
[:time_graph_type, Graph_once],
[:tracking_cursor_style, Cursor_cross],
- [:transform_graph_type, 0],
+ [:transform_graph_type, Graph_once],
[:transform_normalization, Normalize_by_channel],
[:transform_size, 512],
- [:transform_type, 0],
+ [:transform_type, $fourier_transform],
[:wavelet_type, 0],
[:wavo_hop, 3],
[:wavo_trace, 64],
@@ -1975,200 +2028,199 @@ end
def test03
if $test03
$before_test_hook.call(3)
- vars = [
- [:amp_control, 1.0, 0.5],
- [:amp_control_bounds, [0.0, 8.0], [1.0, 5.0]],
- [:ask_before_overwrite, false, true],
- [:audio_input_device, 0, 1],
- [:audio_output_device, 0, 1],
- [:auto_resize, true, false],
- [:auto_update, false, true],
- [:channel_style, 0, 1],
- unless provided? :snd_nogui
- [:colormap, $good_colormap, $better_colormap]
- end,
- [:color_cutoff, 0.003, 0.01],
- [:color_inverted, true, false],
- [:color_scale, 1.0, 0.5],
- [:contrast_control, 0.0, 0.5],
- [:contrast_control_bounds, [0.0, 10.0], [1.0, 5.0]],
- [:contrast_control_amp, 1.0, 0.5],
- [:contrast_control?, false, true],
- [:auto_update_interval, 60.0, 120.0],
- [:cursor_update_interval, 0.05, 0.1],
- [:cursor_location_offset, 0, 32768],
- [:with_tracking_cursor, false, true],
- [:cursor_size, 15, 30],
- [:cursor_style, Cursor_cross, Cursor_line],
- [:tracking_cursor_style, Cursor_cross, Cursor_line],
- [:dac_combines_channels, true, false],
- [:dac_size, 256, 512],
- [:minibuffer_history_length, 8, 16],
- [:clipping, false, true],
- [:default_output_chans, 1, 2],
- [:default_output_data_format, 1, 1],
- [:default_output_srate, 22050, 44100],
- [:default_output_header_type, Mus_next, Mus_aifc],
- [:dot_size, 1, 4],
- [:enved_base, 1.0, 1.5],
- [:enved_clip?, false, true],
- [:enved_in_dB, false, true],
- [:enved_style, Envelope_linear, Envelope_exponential],
- [:enved_power, 3.0, 3.5],
- [:enved_target, 0, 1],
- [:enved_wave?, false, true],
- [:eps_file, "snd.eps", "snd-1.eps"],
- [:eps_left_margin, 0.0, 72.0],
- [:eps_size, 1.0, 2.0],
- [:eps_bottom_margin, 0.0, 36.0],
- [:expand_control, 1.0, 2.0],
- [:expand_control_bounds, [0.001, 20.0], [1.0, 2.0]],
- [:expand_control_hop, 0.05, 0.1],
- [:expand_control_jitter, 0.1, 0.2],
- [:expand_control_length, 0.15, 0.2],
- [:expand_control_ramp, 0.4, 0.2],
- [:expand_control?, false, true],
- [:fft_window_alpha, 0.0, 1.0],
- [:fft_window_beta, 0.0, 0.5],
- [:fft_log_frequency, false, true],
- [:fft_log_magnitude, false, true],
- [:transform_size, 512, 1024],
- [:transform_graph_type, 0, 1],
- [:fft_window, 6, 5],
- [:transform_graph?, false, true],
- [:filter_control_in_dB, false, true],
- [:filter_control_envelope, [0.0, 1.0, 1.0, 1.0], [0.0, 1.0, 1.0, 0.0]],
- unless provided? :snd_nogui
- [:enved_filter, true, false]
- end,
- [:enved_filter_order, 40, 20],
- [:filter_control_in_hz, false, true],
- [:filter_control_order, 20, 40],
- [:filter_control?, false, true],
- unless provided? :snd_nogui
- [:graph_cursor, 34, 33]
- end,
- [:graph_style, 0, 1],
- [:just_sounds, false, true],
- [:listener_prompt, ">", ":"],
- [:max_transform_peaks, 100, 10],
- [:max_regions, 16, 6],
- [:min_dB, -60.0, -90.0],
- [:log_freq_start, 32.0, 10.0],
- [:mix_waveform_height, 20, 40],
- [:mix_tag_height, 14, 20],
- [:mix_tag_width, 6, 20],
- [:mark_tag_height, 4, 20],
- [:mark_tag_width, 10, 20],
- [:selection_creates_region, true, false],
- [:transform_normalization, Normalize_by_channel, Dont_normalize],
- [:print_length, 12, 16],
- [:region_graph_style, Graph_lines, Graph_lollipops],
- [:reverb_control_decay, 1.0, 2.0],
- [:reverb_control_feedback, 1.09, 1.6],
- [:reverb_control_length, 1.0, 2.0],
- [:reverb_control_length_bounds, [0.0, 0.5], [1.0, 2.0]],
- [:reverb_control_lowpass, 0.7, 0.9],
- [:reverb_control_scale, 0.0, 0.2],
- [:reverb_control_scale_bounds, [0.0, 4.0], [0.0, 0.2]],
- [:reverb_control?, false, true],
- [:show_axes, 1, 0],
- [:show_transform_peaks, false, true],
- [:show_indices, false, true],
- [:show_marks, true, false],
- [:show_mix_waveforms, true, false],
- [:show_selection_transform, false, true],
- [:show_y_zero, false, true],
- [:show_grid, false, true],
- [:grid_density, 1.0, 0.5],
- [:show_sonogram_cursor, false, true],
- [:sinc_width, 10, 40],
- [:spectrum_end, 1.0, 0.7],
- [:spectro_hop, 4, 10],
- [:spectrum_start, 0.0, 0.1],
- [:spectro_x_angle, (provided?(:gl) ? 300.0 : 90.0), 60.0],
- [:spectro_x_scale, (provided?(:gl) ? 1.5 : 1.0), 2.0],
- [:spectro_y_angle, (provided?(:gl) ? 320.0 : 0.0), 60.0],
- [:spectro_y_scale, 1.0, 2.0],
- [:spectro_z_angle, (provided?(:gl) ? 0.0 : 358.0), 60.0],
- [:spectro_z_scale, (provided?(:gl) ? 1.0 : 0.1), 0.2],
- [:speed_control, 1.0, 0.5],
- [:speed_control_bounds, [0.05, 20.0], [1.0, 5.0]],
- [:speed_control_style, 0, 1],
- [:speed_control_tones, 12, 18],
- [:sync, 0, 1],
- if provided? :snd_motif
- [:tiny_font, "6x12", "9x15"]
- end,
- [:transform_type, 0, 1],
- [:with_verbose_cursor, false, true],
- [:wavelet_type, 0, 1],
- [:time_graph?, false, true],
- [:time_graph_type, Graph_once, Graph_as_wavogram],
- [:wavo_hop, 3, 6],
- [:wavo_trace, 64, 128],
- [:with_mix_tags, (provided?(:snd_nogui) ? false : true), false],
- [:with_relative_panes, true, false],
- [:with_gl, provided?(:gl), false],
- [:x_axis_style, 0, 1],
- [:beats_per_minute, 30.0, 120.0],
- [:beats_per_measure, 1, 120],
- [:zero_pad, 0, 1],
- [:zoom_focus_style, 2, 1],
- [:window_width, window_width, 300],
- [:window_height, window_height, 300],
- [:window_x, 10, 123],
- [:window_y, 10, 321],
- [:color_scale, color_scale, 100.0]]
- bad_args = [
- [:amp_control, 1.0, [-1.0, 123.123]],
- [:amp_control_bounds, [0.0, 8.0], [false, [0.0], [1.0, 0.0], 2.0]],
- [:channel_style, 0, [32, -1, 1.0]],
- unless provided? :snd_nogui
- [:colormap, $good_colormap, [321, -123]]
- end,
- [:color_cutoff, 0.003, [-1.0, 123.123]],
- [:color_scale, 1.0, [-32.0, 2000.0]],
- [:contrast_control, 0.0, [-123.123, 123.123]],
- [:contrast_control_bounds, [0.0, 10.0], [false, [0.0], [1.0, 0.0], 2.0]],
- [:cursor_size, 15, [1.123, -2.5]],
- [:dac_size, 256, [-1, 0, -123]],
- [:dot_size, 1, [0, -1, -123]],
- [:enved_target, 0, [123, -321]],
- [:expand_control, 1.0, [-1.0, 0.0]],
- [:expand_control_bounds, [0.001, 20.0], [false, [0.0], [1.0, 0.0], 2.0]],
- [:expand_control_hop, 0.05, [-1.0]],
- [:expand_control_length, 0.15, [-1.0, 0.0]],
- [:expand_control_ramp, 0.4, [-1.0, 1.0, 123.123]],
- [:fft_window_alpha, 0.0, [-1.0, 123.123]],
- [:fft_window_beta, 0.0, [-1.0, 123.123]],
- [:transform_size, 512, [-1, 0]],
- [:zero_pad, 0, [-1, -123]],
- [:cursor_style, Cursor_cross, [-1]],
- [:cursor_style, Cursor_line, [2, 123]],
- [:tracking_cursor_style, Cursor_cross, [-1]],
- [:tracking_cursor_style, Cursor_line, [2, 123]],
- [:transform_graph_type, 0, [-1, 123]],
- [:fft_window, 6, [-1, 123]],
- [:enved_filter_order, 40, [-1, 0]],
- [:filter_control_order, 20, [-10, -1, 0]],
- [:max_transform_peaks, 100, [-1]],
- [:max_regions, 16, [-1, -123]],
- [:reverb_control_length, 1.0, [-1.0]],
- [:show_axes, 1, [-1, 123]],
- [:sinc_width, 10, [-10]],
- [:spectrum_end, 1.0, [-1.0]],
- [:spectro_hop, 4, [-10, -1, 0]],
- [:spectrum_start, 0.0, [-1.0]],
- [:speed_control, 1.0, [0.0]],
- [:speed_control_bounds, [0.05, 20.0], [false, [0.0], [1.0, 0.0], 2.0]],
- [:speed_control_style, 0, [-1, 10]],
- [:transform_type, 0, [-1, 123]],
- [:wavelet_type, 0, [-1, 123]],
- [:wavo_hop, 3, [0, -123]],
- [:wavo_trace, 64, [0, -123]],
- [:x_axis_style, 0, [-1, 123]],
- [:zoom_focus_style, 2, [-1, 123]]]
+ vars = [[:amp_control, 1.0, 0.5],
+ [:amp_control_bounds, [0.0, 8.0], [1.0, 5.0]],
+ [:ask_before_overwrite, false, true],
+ [:audio_input_device, 0, 1],
+ [:audio_output_device, 0, 1],
+ [:auto_resize, true, false],
+ [:auto_update, false, true],
+ [:channel_style, 0, 1],
+ unless provided? :snd_nogui
+ [:colormap, $good_colormap, $better_colormap]
+ end,
+ [:color_cutoff, 0.003, 0.01],
+ [:color_inverted, true, false],
+ [:color_scale, 1.0, 0.5],
+ [:contrast_control, 0.0, 0.5],
+ [:contrast_control_bounds, [0.0, 10.0], [1.0, 5.0]],
+ [:contrast_control_amp, 1.0, 0.5],
+ [:contrast_control?, false, true],
+ [:auto_update_interval, 60.0, 120.0],
+ [:cursor_update_interval, 0.05, 0.1],
+ [:cursor_location_offset, 0, 32768],
+ [:with_tracking_cursor, false, true],
+ [:cursor_size, 15, 30],
+ [:cursor_style, Cursor_cross, Cursor_line],
+ [:tracking_cursor_style, Cursor_cross, Cursor_line],
+ [:dac_combines_channels, true, false],
+ [:dac_size, 256, 512],
+ [:minibuffer_history_length, 8, 16],
+ [:clipping, false, true],
+ [:default_output_chans, 1, 2],
+ [:default_output_data_format, 1, 1],
+ [:default_output_srate, 22050, 44100],
+ [:default_output_header_type, Mus_next, Mus_aifc],
+ [:dot_size, 1, 4],
+ [:enved_base, 1.0, 1.5],
+ [:enved_clip?, false, true],
+ [:enved_in_dB, false, true],
+ [:enved_style, Envelope_linear, Envelope_exponential],
+ [:enved_power, 3.0, 3.5],
+ [:enved_target, 0, 1],
+ [:enved_wave?, false, true],
+ [:eps_file, "snd.eps", "snd-1.eps"],
+ [:eps_left_margin, 0.0, 72.0],
+ [:eps_size, 1.0, 2.0],
+ [:eps_bottom_margin, 0.0, 36.0],
+ [:expand_control, 1.0, 2.0],
+ [:expand_control_bounds, [0.001, 20.0], [1.0, 2.0]],
+ [:expand_control_hop, 0.05, 0.1],
+ [:expand_control_jitter, 0.1, 0.2],
+ [:expand_control_length, 0.15, 0.2],
+ [:expand_control_ramp, 0.4, 0.2],
+ [:expand_control?, false, true],
+ [:fft_window_alpha, 0.0, 1.0],
+ [:fft_window_beta, 0.0, 0.5],
+ [:fft_log_frequency, false, true],
+ [:fft_log_magnitude, false, true],
+ [:transform_size, 512, 1024],
+ [:transform_graph_type, Graph_once, Graph_as_spectrogram],
+ [:fft_window, 6, 5],
+ [:transform_graph?, false, true],
+ [:filter_control_in_dB, false, true],
+ [:filter_control_envelope, [0.0, 1.0, 1.0, 1.0], [0.0, 1.0, 1.0, 0.0]],
+ unless provided? :snd_nogui
+ [:enved_filter, true, false]
+ end,
+ [:enved_filter_order, 40, 20],
+ [:filter_control_in_hz, false, true],
+ [:filter_control_order, 20, 40],
+ [:filter_control?, false, true],
+ unless provided? :snd_nogui
+ [:graph_cursor, 34, 33]
+ end,
+ [:graph_style, 0, 1],
+ [:just_sounds, false, true],
+ [:listener_prompt, ">", ":"],
+ [:max_transform_peaks, 100, 10],
+ [:max_regions, 16, 6],
+ [:min_dB, -60.0, -90.0],
+ [:log_freq_start, 32.0, 10.0],
+ [:mix_waveform_height, 20, 40],
+ [:mix_tag_height, 14, 20],
+ [:mix_tag_width, 6, 20],
+ [:mark_tag_height, 4, 20],
+ [:mark_tag_width, 10, 20],
+ [:selection_creates_region, true, false],
+ [:transform_normalization, Normalize_by_channel, Dont_normalize],
+ [:print_length, 12, 16],
+ [:region_graph_style, Graph_lines, Graph_lollipops],
+ [:reverb_control_decay, 1.0, 2.0],
+ [:reverb_control_feedback, 1.09, 1.6],
+ [:reverb_control_length, 1.0, 2.0],
+ [:reverb_control_length_bounds, [0.0, 0.5], [1.0, 2.0]],
+ [:reverb_control_lowpass, 0.7, 0.9],
+ [:reverb_control_scale, 0.0, 0.2],
+ [:reverb_control_scale_bounds, [0.0, 4.0], [0.0, 0.2]],
+ [:reverb_control?, false, true],
+ [:show_axes, 1, 0],
+ [:show_transform_peaks, false, true],
+ [:show_indices, false, true],
+ [:show_marks, true, false],
+ [:show_mix_waveforms, true, false],
+ [:show_selection_transform, false, true],
+ [:show_y_zero, false, true],
+ [:show_grid, false, true],
+ [:grid_density, 1.0, 0.5],
+ [:show_sonogram_cursor, false, true],
+ [:sinc_width, 10, 40],
+ [:spectrum_end, 1.0, 0.7],
+ [:spectro_hop, 4, 10],
+ [:spectrum_start, 0.0, 0.1],
+ [:spectro_x_angle, (provided?(:gl) ? 300.0 : 90.0), 60.0],
+ [:spectro_x_scale, (provided?(:gl) ? 1.5 : 1.0), 2.0],
+ [:spectro_y_angle, (provided?(:gl) ? 320.0 : 0.0), 60.0],
+ [:spectro_y_scale, 1.0, 2.0],
+ [:spectro_z_angle, (provided?(:gl) ? 0.0 : 358.0), 60.0],
+ [:spectro_z_scale, (provided?(:gl) ? 1.0 : 0.1), 0.2],
+ [:speed_control, 1.0, 0.5],
+ [:speed_control_bounds, [0.05, 20.0], [1.0, 5.0]],
+ [:speed_control_style, 0, 1],
+ [:speed_control_tones, 12, 18],
+ [:sync, 0, 1],
+ if provided? :snd_motif
+ [:tiny_font, "6x12", "9x15"]
+ end,
+ [:transform_type, $fourier_transform, $autocorrelation],
+ [:with_verbose_cursor, false, true],
+ [:wavelet_type, 0, 1],
+ [:time_graph?, false, true],
+ [:time_graph_type, Graph_once, Graph_as_wavogram],
+ [:wavo_hop, 3, 6],
+ [:wavo_trace, 64, 128],
+ [:with_mix_tags, (provided?(:snd_nogui) ? false : true), false],
+ [:with_relative_panes, true, false],
+ [:with_gl, provided?(:gl), false],
+ [:x_axis_style, 0, 1],
+ [:beats_per_minute, 30.0, 120.0],
+ [:beats_per_measure, 1, 120],
+ [:zero_pad, 0, 1],
+ [:zoom_focus_style, 2, 1],
+ [:window_width, window_width, 300],
+ [:window_height, window_height, 300],
+ [:window_x, 10, 123],
+ [:window_y, 10, 321],
+ [:color_scale, color_scale, 100.0]]
+ bad_args = [[:amp_control, 1.0, [-1.0, 123.123]],
+ [:amp_control_bounds, [0.0, 8.0], [false, [0.0], [1.0, 0.0], 2.0]],
+ [:channel_style, 0, [32, -1, 1.0]],
+ unless provided? :snd_nogui
+ [:colormap, $good_colormap, [321, -123]]
+ end,
+ [:color_cutoff, 0.003, [-1.0, 123.123]],
+ [:color_scale, 1.0, [-32.0, 2000.0]],
+ [:contrast_control, 0.0, [-123.123, 123.123]],
+ [:contrast_control_bounds, [0.0, 10.0], [false, [0.0], [1.0, 0.0], 2.0]],
+ [:cursor_size, 15, [1.123, -2.5]],
+ [:dac_size, 256, [-1, 0, -123]],
+ [:dot_size, 1, [0, -1, -123]],
+ [:enved_target, 0, [123, -321]],
+ [:expand_control, 1.0, [-1.0, 0.0]],
+ [:expand_control_bounds, [0.001, 20.0], [false, [0.0], [1.0, 0.0], 2.0]],
+ [:expand_control_hop, 0.05, [-1.0]],
+ [:expand_control_length, 0.15, [-1.0, 0.0]],
+ [:expand_control_ramp, 0.4, [-1.0, 1.0, 123.123]],
+ [:fft_window_alpha, 0.0, [-1.0, 123.123]],
+ [:fft_window_beta, 0.0, [-1.0, 123.123]],
+ [:transform_size, 512, [-1, 0]],
+ [:zero_pad, 0, [-1, -123]],
+ [:cursor_style, Cursor_cross, [-1]],
+ [:cursor_style, Cursor_line, [2, 123]],
+ [:tracking_cursor_style, Cursor_cross, [-1]],
+ [:tracking_cursor_style, Cursor_line, [2, 123]],
+ [:transform_graph_type, Graph_once, [-1, 123]],
+ [:fft_window, 6, [-1, 123]],
+ [:enved_filter_order, 40, [-1, 0]],
+ [:filter_control_order, 20, [-10, -1, 0]],
+ [:max_transform_peaks, 100, [-1]],
+ [:max_regions, 16, [-1, -123]],
+ [:reverb_control_length, 1.0, [-1.0]],
+ [:show_axes, 1, [-1, 123]],
+ [:sinc_width, 10, [-10]],
+ [:spectrum_end, 1.0, [-1.0]],
+ [:spectro_hop, 4, [-10, -1, 0]],
+ [:spectrum_start, 0.0, [-1.0]],
+ [:speed_control, 1.0, [0.0]],
+ [:speed_control_bounds, [0.05, 20.0], [false, [0.0], [1.0, 0.0], 2.0]],
+ [:speed_control_style, 0, [-1, 10]],
+ [:transform_type, $fourier_transform,
+ [integer2transform(-1), integer2transform(123)]],
+ [:wavelet_type, 0, [-1, 123]],
+ [:wavo_hop, 3, [0, -123]],
+ [:wavo_trace, 64, [0, -123]],
+ [:x_axis_style, 0, [-1, 123]],
+ [:zoom_focus_style, 2, [-1, 123]]]
ind = open_sound("oboe.snd")
td = temp_dir
Snd.catch do
@@ -6798,16 +6850,16 @@ def test105
if (res = snd_completion(" zoom_focus_s")) != " zoom_focus_style"
snd_display("completion (2): %s", res)
end
- play_and_wait("oboe.snd")
- play_and_wait("oboe.snd", 12000)
- play_and_wait("oboe.snd", 12000, 15000)
- play_and_wait(0, false, false, false, false, edit_position - 1)
+ play("oboe.snd", :wait, true)
+ play("oboe.snd", :start, 12000, :wait, true)
+ play("oboe.snd", :start, 12000, :end, 15000, :wait, true)
+ play(ind, :edit_position, edit_position - 1)
old_speed = speed_control(ind)
old_style = speed_control_style
old_open = show_controls(ind)
set_show_controls(true, ind)
set_speed_control(-2.0, ind)
- play_and_wait(12345, ind)
+ play(ind, :start, 12345, :wait, true)
set_speed_control_style(Speed_control_as_semitone)
set_speed_control(0.5, ind)
set_speed_control_style(Speed_control_as_ratio)
@@ -6949,19 +7001,19 @@ def test105
set_transform_graph?(true, ind, 0)
set_transform_size(64, ind, 0)
num_transforms.times do |i|
- set_transform_type(i)
- snd_display("transform? %s?", i) unless transform?(i)
+ set_transform_type(integer2transform(i))
+ snd_display("transform? %s?", i) unless transform?(integer2transform(i))
num_transform_graph_types.times do |j|
set_transform_graph_type(j, ind, 0)
update_transform_graph(ind, 0)
end
end
- set_transform_type(Fourier_transform)
+ set_transform_type($fourier_transform)
unless (res = transform?(transform_type))
- snd_display("transform? %s %s?", res, Fourier_transform)
+ snd_display("transform? %s %s?", res, $fourier_transform)
end
- unless transform?(Autocorrelation)
- snd_display("transform? Autocorrelation")
+ unless transform?($autocorrelation)
+ snd_display("transform? $autocorrelation")
end
snd_display("read_only open_sound: %s?", read_only(ind)) if read_only(ind)
set_read_only(true, ind)
@@ -7068,7 +7120,7 @@ def test105
eds = edits
snd_display("edits: %s?", eds) if eds[0].nonzero? or eds[1].nonzero?
snd_display("edit_position: %s %s?", edit_position, eds) if edit_position != eds[0]
- play_and_wait(0, ind, 0)
+ play(ind, :channel, 0, :wait, true)
bomb(ind, false)
select_all(ind, 0)
r0 = regions.first
@@ -7098,7 +7150,7 @@ def test105
else
snd_display("save_region file disappeared?")
end
- play_region(r0, true) # needs to be true here or it never gets run
+ play(r0, :wait, true) # needs to be true here or it never gets run
if Snd.regions.length != 1
snd_display("regions: %s", regions)
end
@@ -8639,11 +8691,13 @@ def test205
end
#
src_sound(2.0, 1.0, ind1, 0)
- play_and_wait(0, ind1, 0, false, false, 0)
- play_and_wait(0, ind1, 0, false, false, 1)
- play_and_wait(0, ind1, 0, false, false, lambda do |snd, chn| edit_position(snd, chn) end)
+ play(ind1, :channel, 0, :edit_position, 0, :wait, true)
+ play(ind1, :channel, 0, :edit_position, 1, :wait, true)
+ play(ind1, :channel, 0, :edit_position, lambda do |snd, chn|
+ edit_position(snd, chn)
+ end, :wait, true)
undo_edit(1, ind1, 0)
- play_and_wait(0, ind1, 0, false, false, 1)
+ play(ind1, :channel, 0, :edit_position, 1, :wait, true)
#
delete_samples(0, 10000, ind1, 0)
save_sound_as("fmv.snd", ind1, :edit_position, 0)
@@ -8712,7 +8766,7 @@ def test205
set_show_sonogram_cursor(true)
set_cursor_follows_play(true)
set_transform_graph_type(Graph_as_sonogram)
- play_and_wait
+ play(selected_sound, :wait, true)
set_transform_graph?(true)
close_sound(ind)
close_sound(ind1)
@@ -9232,7 +9286,7 @@ def test255
rid0 = make_region(2000, 2020, ind, 0)
rid0_data = region2vct_1(rid0, 0, 20)
scale_sound_by(2.0)
- play_region(rid0, true)
+ play(rid0, :wait, true)
unless vequal(res = region2vct_1(rid0, 0, 20), rid0_data)
snd_display("deferred region after scaling:\n# %s\n# %s", rid0_data, res)
end
@@ -9241,7 +9295,7 @@ def test255
end
undo_edit
scale_by(4.0)
- play_region(rid0, true)
+ play(rid0, :wait, true)
unless vequal(res = region2vct_1(rid0, 0, 20), rid0_data)
snd_display("file region after scaling:\n# %s\n# %s", rid0_data, res)
end
@@ -9255,8 +9309,8 @@ def test255
snd_display("deferred region after scale_to:\n# %s\n# %s", rid1_data, res)
end
close_sound(ind)
- play_region(rid0, true)
- play_region(rid1, true)
+ play(rid0, :wait, true)
+ play(rid1, :wait, true)
unless vequal(res = region2vct_1(rid1, 0, 20), rid1_data)
snd_display("deferred region after close:\n# %s\n# %s", rid1_data, res)
end
@@ -9384,7 +9438,7 @@ def test255
fp(1.0, 0.3, 20)
old_cursor = with_tracking_cursor
set_with_tracking_cursor(true)
- play_and_wait
+ play(selected_sound, :wait, true)
set_with_tracking_cursor(old_cursor)
close_sound(ind)
#
@@ -10269,7 +10323,7 @@ def test06
#
ind = open_sound("oboe.snd")
set_speed_control(0.5, ind)
- play_and_wait
+ play(selected_sound, :wait, true)
apply_controls
revert_sound
reset_controls(ind)
@@ -10302,14 +10356,10 @@ def test06
ctr += 1
c_g! if ctr >= 3
end
- play_and_wait
+ play(selected_sound, :wait, true)
snd_display("ctr after dac_hook: %s", ctr) if ctr != 3
set_speed_control(1.5)
apply_controls
- # orig: if fneq(res = sample(28245), 0.0)
- if fneq_err(res = sample(28245), 0.0, 0.045)
- snd_display("dac_hook stop apply_controls? %s", res)
- end
$dac_hook.reset_hook!
revert_sound
set_speed_control(1.5)
@@ -10318,7 +10368,7 @@ def test06
ctr += 1
apply_controls if ctr == 3
end
- play_and_wait
+ play(selected_sound, :wait, true)
if edit_position(ind, 0) != 1
snd_display("apply_controls from hook: %s %s", edits(ind), edit_tree(ind))
end
@@ -10532,11 +10582,14 @@ def test007
[0.0, 0.0, 7.01915007248035e-4], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0],
[0.0, 0.0, 0.49999], [1.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0],
[1.0, 0.0, 1.0], [0.0, 0.500007629510948, 0.4], [1.0, 0.0, 0.0],
- [1.0, 0.0, 0.0], [0.0, 0.0, 0.0]]
- Last_colormap.times do |i|
- if colormap?(i)
- unless vequal(res0 = colormap_ref(i, 0), res1 = true_color_list[i])
- snd_display("colormap_ref[%s]: %s (%s)", i, res0, res1)
+ [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]
+ 15.times do |i|
+ cm = integer2colormap(i)
+ if colormap?(cm)
+ res0 = colormap_ref(cm, 0)
+ res1 = true_color_list[i]
+ unless vequal(res0, res1)
+ snd_display("colormap_ref[%s]: %s (%s)", cm, res0, res1)
end
end
end
@@ -10613,9 +10666,12 @@ def test017
((29.0 / 24) * x - 1.0 / 8) :
((7.0 / 8) * x + 1.0 / 8))
b = (x < (3.0 / 8)) ? ((29.0 / 24) * x) : ((7.0 / 8) * x + 1.0 / 8)
- rgb = colormap_ref(Bone_colormap, x)
+ rgb = colormap_ref($bone_colormap, x)
r1, g1, b1 = rgb
- if x < 1.0 - 1.0 / n and (fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
+ if x < 1.0 - 1.0 / n and
+ (fneq_err(r, r1, err) or
+ fneq_err(g, g1, err) or
+ fneq_err(b, b1, err))
snd_display("bone %.3f (%.3f): %s %s",
x, [(r - r1).abs, (g - g1).abs, (b - b1).abs].max,
[r, g, b], [r1, g1, b1])
@@ -10626,7 +10682,7 @@ def test017
r = (x < (4.0 / 5)) ? ((5.0 / 4) * x) : 1.0
g = (4.0 / 5) * x
b = (1.0 / 2) * x
- rgb = colormap_ref(Copper_colormap, x)
+ rgb = colormap_ref($copper_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10640,7 +10696,7 @@ def test017
r = 0.0
g = x
b = 1.0 - g / 2.0
- rgb = colormap_ref(Winter_colormap, x)
+ rgb = colormap_ref($winter_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10654,7 +10710,7 @@ def test017
r = 1.0
g = x
b = 0.0
- rgb = colormap_ref(Autumn_colormap, x)
+ rgb = colormap_ref($autumn_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10668,7 +10724,7 @@ def test017
r = x
g = 1.0 - r
b = 1.0
- rgb = colormap_ref(Cool_colormap, x)
+ rgb = colormap_ref($cool_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10682,7 +10738,7 @@ def test017
r = (x < (3.0 / 8)) ? ((8.0 / 3) * x) : 1.0
g = (x < (3.0 / 8)) ? 0.0 : ((x < (3.0 / 4)) ? ((8.0 / 3) * x - 1.0) : 1.0)
b = (x < (3.0 / 4)) ? 0.0 : (4.0 * x - 3)
- rgb = colormap_ref(Hot_colormap, x)
+ rgb = colormap_ref($hot_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10700,7 +10756,7 @@ def test017
((x < (7.0 / 8)) ? (-4.0 * x + 7.0 / 2) : 0.0))))
b = (x < (1.0 / 8)) ? (4.0 * x + 0.5) : ((x < (3.0 / 8)) ? 1.0 :
((x < (5.0 / 8)) ? (-4.0 * x + 5.0 / 2) : 0.0))
- rgb = colormap_ref(Jet_colormap, x)
+ rgb = colormap_ref($jet_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10715,7 +10771,7 @@ def test017
g = (x < (3.0 / 8)) ? ((2.0 / 3) * x) :
((x < (3.0 / 4)) ? ((14.0 / 9) * x - 1.0 / 3) : ((2.0 / 3) * x + 1.0 / 3))
b = (x < (3.0 / 4)) ? ((2.0 / 3) * x) : (2.0 * x - 1.0)
- rgb = colormap_ref(Pink_colormap, x)
+ rgb = colormap_ref($pink_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10729,7 +10785,7 @@ def test017
r = 1.0
g = x
b = 1.0 - g
- rgb = colormap_ref(Spring_colormap, x)
+ rgb = colormap_ref($spring_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10743,7 +10799,7 @@ def test017
r = x
g = x
b = x
- rgb = colormap_ref(Gray_colormap, x)
+ rgb = colormap_ref($gray_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10757,7 +10813,7 @@ def test017
r = 0.0
g = 0.0
b = 0.0
- rgb = colormap_ref(Black_and_white_colormap, x)
+ rgb = colormap_ref($black_and_white_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10771,7 +10827,7 @@ def test017
r = x
g = 0.5 + r / 2.0
b = 0.4
- rgb = colormap_ref(Summer_colormap, x)
+ rgb = colormap_ref($summer_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10787,7 +10843,7 @@ def test017
g = (x < (2.0 / 5)) ? ((5.0 / 2) * x) : ((x < (3.0 / 5)) ? 1.0 :
((x < (4.0 / 5)) ? (-5.0 * x + 4) : 0.0))
b = (x < (3.0 / 5)) ? 0.0 : ((x < (4.0 / 5)) ? (5.0 * x - 3) : 1.0)
- rgb = colormap_ref(Rainbow_colormap, x)
+ rgb = colormap_ref($rainbow_colormap, x)
r1, g1, b1 = rgb
if x < 1.0 - 1.0 / n and
(fneq_err(r, r1, err) or fneq_err(g, g1, err) or fneq_err(b, b1, err))
@@ -10798,7 +10854,7 @@ def test017
end
10.times do |i|
x = random(1.0)
- rgb = colormap_ref(Prism_colormap, x)
+ rgb = colormap_ref($prism_colormap, x)
if x < 1.0 - 1.0 / n and
(not vequal(rgb, [1.0, 0.0, 0.0])) and
(not vequal(rgb, [1.0, 0.5, 0.0])) and
@@ -10811,7 +10867,7 @@ def test017
end
10.times do |i|
x = random(1.0)
- rgb = colormap_ref(Flag_colormap, x)
+ rgb = colormap_ref($flag_colormap, x)
if x < 1.0 - 1.0 / n and
(not vequal(rgb, [1.0, 0.0, 0.0])) and
(not vequal(rgb, [1.0, 1.0, 1.0])) and
@@ -10825,7 +10881,7 @@ end
def test027
ind = add_colormap("white", lambda do |size|
- [make_vct(size, 1.0), make_vct(size,1.0), make_vct(size,1.0)]
+ [make_vct(size, 1.0), make_vct(size, 1.0), make_vct(size, 1.0)]
end)
unless res = colormap?(ind)
snd_display("add_colormap %s: %s?", ind, res)
@@ -10839,22 +10895,24 @@ def test027
if (res = colormap_name(ind)) != "white"
snd_display("white colormap name: %s?", res)
end
- if (res = Snd.catch do delete_colormap(1234) end).first != :no_such_colormap
+ if (res = Snd.catch do delete_colormap(integer2colormap(1234)) end).first != :no_such_colormap
snd_display("delete_colormap 1234: %s?", res)
end
- if (res = Snd.catch do colormap_ref(1234, 0.5) end).first != :no_such_colormap
+ if (res = Snd.catch do colormap_ref(integer2colormap(1234), 0.5) end).first != :no_such_colormap
snd_display("colormap_ref 1234: %s?", res)
end
- if (res = Snd.catch do colormap_ref(-1, 0.5) end).first != :no_such_colormap
+ res = Snd.catch do colormap_ref(integer2colormap(-1), 0.5) end
+ if res.first != :no_such_colormap and res.first != :wrong_type_arg
snd_display("colormap_ref -1: %s?", res)
end
- if (res = Snd.catch do set_colormap(1234) end).first != :no_such_colormap
+ if (res = Snd.catch do set_colormap(integer2colormap(1234)) end).first != :no_such_colormap
snd_display("set_colormap 1234: %s?", res)
end
- if (res = Snd.catch do set_colormap(-1) end).first != :no_such_colormap
+ res = Snd.catch do set_colormap(integer2colormap(-1)) end
+ if res.first != :no_such_colormap and res.first != :wrong_type_arg
snd_display("set_colormap -1: %s?", res)
end
- if (res = Snd.catch do colormap_ref(Copper_colormap, 2.0) end).first != :out_of_range
+ if (res = Snd.catch do colormap_ref($copper_colormap, 2.0) end).first != :out_of_range
snd_display("colormap_ref 2.0: %s?", res)
end
#
@@ -10862,13 +10920,13 @@ def test027
if (res = colormap_size) != $old_colormap_size
snd_display("set_colormap_size: %s %s?", res, $old_colormap_size)
end
- if (res = colormap_name(Black_and_white_colormap)) != "black-and-white"
+ if (res = colormap_name($black_and_white_colormap)) != "black-and-white"
snd_display("black-and-white: %s?", res)
end
- if (res = colormap_name(Gray_colormap)) != "gray"
+ if (res = colormap_name($gray_colormap)) != "gray"
snd_display("gray: %s?", res)
end
- if (res = colormap_name(Rainbow_colormap)) != "rainbow"
+ if (res = colormap_name($rainbow_colormap)) != "rainbow"
snd_display("rainbow: %s?", res)
end
purple_cmap = add_colormap("purple",
@@ -10919,14 +10977,14 @@ def test027
end
[r, g, b]
end)
- delete_colormap(Pink_colormap)
- if res = colormap?(Pink_colormap)
- snd_display("delete_colormap %s: %s?", Pink_colormap, res)
+ delete_colormap($pink_colormap)
+ if res = colormap?($pink_colormap)
+ snd_display("delete_colormap %s: %s?", $pink_colormap, res)
end
- if (res = Snd.catch do set_colormap(Pink_colormap) end).first != :no_such_colormap or
- colormap == Pink_colormap
+ if (res = Snd.catch do set_colormap($pink_colormap) end).first != :no_such_colormap or
+ colormap == $pink_colormap
snd_display("delete pink colormap: %s %s %s?",
- res, Pink_colormap, colormap)
+ res, $pink_colormap, colormap)
end
[1024, 256, 2, 512].each do |n|
set_colormap_size(n)
@@ -10935,7 +10993,7 @@ def test027
r = (x < 4.0 / 5) ? ((5.0 / 4) * x) : 1.0
g = (4.0 / 5) * x
b = 0.5 * x
- rgb = colormap_ref(Copper_colormap, x)
+ rgb = colormap_ref($copper_colormap, x)
r1, g1, b1 = rgb
err = 0.01
if n > 2 and
@@ -14843,7 +14901,7 @@ def test068
end
end
map_chan(poltergeist.call(300, 0.1, 0.0, 30.0, [0, 100, 1, 4000], [0, 0.99, 1, 0.9]))
- play_and_wait(0, ob)
+ play(ob, :wait, true)
close_sound(ob)
end
@@ -18920,17 +18978,12 @@ def test188
close_sound(ind)
#
if $output
- snd_display("$output: %s ($ws_output: %s)", $output, $ws_output)
+ snd_display("$output: %s", $output)
$output = false
end
- if $ws_output
- # should have the same value as $output, i.e. false
- snd_display("$ws_output not false? (%s)", $ws_output)
- $ws_output = false
- end
nind = new_sound("fmv.snd", Mus_aifc, Mus_bshort, 22050, 1, "this is a comment")
with_time("fm_violin_1(0, 1, 440, 0.1)") do fm_violin_1(0, 1, 440, 0.1) end
- play_and_wait(0, nind)
+ play(nind, :wait, true)
save_sound(nind)
snd_display("save_sound clobbered %s?", nind) unless sound?(nind)
oboe_index = (find_sound("oboe.snd") or open_sound("oboe.snd"))
@@ -18943,7 +18996,7 @@ def test188
end
snd_display("selected_channel: %s?", selected_channel) if selected_channel != 0
jc_reverb_1(1.0, false, 0.1, false)
- play_and_wait(0, nind)
+ play(nind, :wait, true)
voiced2unvoiced(1.0, 256, 2.0, 2.0)
pulse_voice(80, 20.0, 1.0, 1024, 0.01)
map_chan(fltit)
@@ -20064,10 +20117,10 @@ def test009
snd_display("mix_speed: %s?", spd) if fneq(spd, 1.0)
snd_display("mix_name: %s?", nam) unless nam.null?
Snd.catch(:mus_error, lambda do |args| snd_display("can\'t play mix: %s", args) end) do
- play_mix(mix_id)
+ play(mix_id)
end
Snd.catch(:mus_error, lambda do |args| snd_display("can\'t play mix from 1000: %s", args) end) do
- play_mix(mix_id, 1000)
+ play(mix_id, :start, 1000)
end
set_mix_name(mix_id, "test-mix")
if (res = mix_name(mix_id)) != "test-mix" then snd_display("mix_name set: %s?", res) end
@@ -22342,10 +22395,10 @@ def test0013
#
set_transform_size(256, fd, 0)
dpys = [Graph_once, Graph_as_sonogram, Graph_as_spectrogram] * 2
- ffts = [Fourier_transform] * 3 + [Autocorrelation] * 3
+ ffts = [transform2integer($fourier_transform)] * 3 + [transform2integer($autocorrelation)] * 3
dpys.zip(ffts) do |dpy_type, fft_type|
set_transform_graph_type(dpy_type, fd, 0)
- set_transform_type(fft_type, fd, 0)
+ set_transform_type(integer2transform(fft_type), fd, 0)
update_transform_graph(fd, 0)
vals = transform2vct(fd, 0)
if vals
@@ -22364,7 +22417,7 @@ def test0013
snd_display("access invalid (slice) transform sample: %s", res.inspect)
end
close_sound(fd)
- set_transform_type(Fourier_transform)
+ set_transform_type($fourier_transform)
$after_open_hook.add_hook!("snd-test") do |snd|
set_x_axis_style(X_axis_in_samples, snd, true)
end
@@ -22494,7 +22547,7 @@ def test0113
$open_raw_sound_hook.reset_hook! unless $open_raw_sound_hook.empty?
$open_raw_sound_hook.add_hook!("snd-hook") do |file, choice| [1, 22050, Mus_bshort] end
ind = open_sound(file)
- play_and_wait(0, ind)
+ play(ind, :wait, true)
$open_raw_sound_hook.remove_hook!("snd-hook")
if (res = [chans(ind),
srate(ind),
@@ -22740,7 +22793,7 @@ def test0113
end
set_expand_control?(true, ind)
set_reverb_control?(true, ind)
- play_and_wait(0, ind)
+ play(ind, :wait, true)
set_expand_control?(false, ind)
set_reverb_control?(false, ind)
snd_display("$start_playing_hook not called?") unless spl
@@ -22760,7 +22813,7 @@ def test0113
set_reverb_control_lowpass(0.02)
set_reverb_control_feedback(0.02)
end
- play_and_wait(0, ind)
+ play(ind, :wait, true)
$play_hook.reset_hook!
$start_playing_hook.add_hook!("snd-test") do |snd| true end
play("4.aiff")
@@ -22771,8 +22824,8 @@ def test0113
set_selection_creates_region(true)
$stop_playing_selection_hook.add_hook!("snd-test") do | | ss = true end
reg = select_all
- play_selection(true)
- play_region(reg, true)
+ play(selected_sound, :wait, true)
+ play(reg, :wait, true)
snd_display("$stop_playing_selection_hook not called?") unless ss
$stop_playing_selection_hook.reset_hook!
set_selection_creates_region(old_reg)
@@ -22781,7 +22834,7 @@ def test0113
ctr += 1
stop_playing
end
- play_and_wait(0, ind)
+ play(ind, :wait, true)
snd_display("stop_playing: %s?", ctr) if ctr > 2
$dac_hook.reset_hook!
#
@@ -22908,7 +22961,7 @@ def test0213
in2 = open_sound("2.snd")
set_sync(1, in1)
set_sync(1, in2)
- play_and_wait(0, false, false, true)
+ play(selected_sound, :wait, true)
close_sound(in1)
close_sound(in2)
end
@@ -23556,9 +23609,9 @@ def test14
end
forward_graph(1)
backward_graph(1)
- Snd.catch do play_region(regions[2], true) end
- Snd.catch do mix_region end
- frames < 100000 and play_and_wait
+ Snd.catch do play(regions[2], :wait, true) end
+ Snd.catch do mix_region(regions[2]) end
+ frames < 100000 and play(selected_sound, :wait, true)
scale_to(0.1, choose_fd.call)
scale_by(2.0, choose_fd.call)
save_controls
@@ -23632,7 +23685,7 @@ def test14
if frames > 1
make_region(0, frames)
convolve_selection_with("fyow.snd", 0.5)
- frames < 100000 and play_and_wait
+ frames < 100000 and play(selected_sound, :wait, true)
end
convolve_with("fyow.snd", 0.25)
insert_sound("oboe.snd")
@@ -23782,11 +23835,11 @@ def test14
s8_snd = (File.exist?("s8.snd") ? "s8.snd" : "oboe.snd")
as_one_edit_rb do
mix(s8_snd, 24000)
- select_all
+ reg = select_all
if selection?
filter_selection([0, 0, 0.2, 1, 0.5, 0, 1, 0], 40)
delete_selection
- mix_region
+ mix_region(reg)
end
end
if (res = edit_position(zz)) != 1
@@ -23811,7 +23864,7 @@ def test14
scale_by(0.1)
set_sync(1)
if channels(s8) > 3 then select_channel(3) end
- if region?(reg) then insert_region(80000) end
+ if region?(reg) then insert_region(reg, 80000) end
end
if (res = edit_position) != editctr + 1
snd_display("as_one_edit s8: %s -> %s?", editctr, res)
@@ -23852,7 +23905,7 @@ def test14
set_speed_control(2.0)
test_panel(:speed_control)
apply_controls
- frames < 100000 and play_and_wait
+ frames < 100000 and play(selected_sound, :wait, true)
if fneq(res1 = reverb_control_decay(cfd), res2 = reverb_control_decay)
snd_display("reverb_control_decay local: %s, global: %s?", res1, res2)
end
@@ -23863,13 +23916,13 @@ def test14
test_panel(:reverb_control_lowpass)
test_panel(:reverb_control_feedback)
apply_controls
- frames < 100000 and play_and_wait
+ frames < 100000 and play(selected_sound, :wait, true)
set_contrast_control?(true)
set_contrast_control(0.5)
test_panel(:contrast_control)
test_panel(:contrast_control_amp)
apply_controls
- frames < 100000 and play_and_wait
+ frames < 100000 and play(selected_sound, :wait, true)
set_expand_control?(true)
set_expand_control(2.5)
test_panel(:expand_control)
@@ -23877,18 +23930,18 @@ def test14
test_panel(:expand_control_hop)
test_panel(:expand_control_ramp)
apply_controls
- frames < 100000 and play_and_wait
+ frames < 100000 and play(selected_sound, :wait, true)
set_filter_control?(true)
set_filter_control_order(40)
test_panel(:filter_control_order)
set_filter_control_envelope([0, 0, 0.1, 1, 0.2, 0, 1, 0])
filter_control_envelope
apply_controls
- frames < 100000 and play_and_wait
+ frames < 100000 and play(selected_sound, :wait, true)
set_amp_control(1.5)
test_panel(:amp_control)
apply_controls
- frames < 100000 and play_and_wait
+ frames < 100000 and play(selected_sound, :wait, true)
swap_channels(cfd, 0, cfd2, 0)
set_amp_control(0.75, true)
test_panel(:amp_control)
@@ -24008,14 +24061,18 @@ def test14
end
set_transform_type(add_transform("histogram", "bins", 0.0, 1.0, func))
set_x_bounds([0.1, 0.2])
- set_transform_type(Graph_once)
+ set_transform_type($fourier_transform)
set_x_bounds([0.1, 0.2])
$lisp_graph_hook.add_hook!("display_energy") do |snd, chn| display_energy(snd, chn) end
$graph_hook.reset_hook!
- $graph_hook.add_hook!("correlate") do |snd, chn, y0, y1| display_correlate(snd, chn, y0, y1) end
- set_x_bounds([0.1, 0.12])
- set_x_bounds([0.1, 0.2])
- $graph_hook.remove_hook!("correlate")
+ if channels() == 2
+ $graph_hook.add_hook!("correlate") do |snd, chn, y0, y1|
+ display_correlate(snd, chn, y0, y1)
+ end
+ set_x_bounds([0.1, 0.12])
+ set_x_bounds([0.1, 0.2])
+ $graph_hook.remove_hook!("correlate")
+ end
set_lisp_graph?(false)
sum_of_squares = 0.0
buffer = Vct.new(128)
@@ -24120,7 +24177,7 @@ def test14
[:fft_log_magnitude, false, false, true],
[:fft_with_phases, false, false, true],
[:transform_size, false, 16, 128],
- [:transform_graph_type, false, 0, 2],
+ [:transform_graph_type, false, Graph_once, Graph_as_spectrogram],
[:fft_window, false, 0, Dolph_chebyshev_window],
[:transform_graph?, true, false, true],
[:filter_control_in_dB, true, false, true],
@@ -24171,7 +24228,6 @@ def test14
[:speed_control_style, false, 0, 2],
[:speed_control_tones, false, 2, 100],
[:sync, true, 0, 5],
- [:transform_type, false, Fourier_transform, 6],
[:with_verbose_cursor, false, false, true],
[:wavelet_type, false, 0, 10],
[:time_graph?, true, false, true],
@@ -24198,7 +24254,7 @@ def test14
end
end
# save_options("hiho.rb")
- if transform_type != Fourier_transform
+ if transform_type != $fourier_transform
set_transform_graph?(false, true, true)
set_transform_size([transform_size, 128].min)
end
@@ -24892,15 +24948,17 @@ def test0115
select_channel(1)
key(key_to_int(?x), 4, id)
key(key_to_int(?v), 0, id)
- x0 = x_bounds(id, 0)
- x1 = x_bounds(id, 1)
- if fneq(x0[0], x1[0]) or fneq(x0[1], x1[1])
- snd_display("C-x v: %s %s?", x0, x1)
+ unless provided?(:snd_nogui)
+ x0 = x_bounds(id, 0)
+ x1 = x_bounds(id, 1)
+ if fneq(x0[0], x1[0]) or fneq(x0[1], x1[1])
+ snd_display("C-x v: %s %s?", x0, x1)
+ end
+ key(key_to_int(?u), 4, id)
+ key(key_to_int(?1), 0, id)
+ key(key_to_int(?x), 4, id)
+ key(key_to_int(?q), 0, id)
end
- key(key_to_int(?u), 4, id)
- key(key_to_int(?1), 0, id)
- key(key_to_int(?x), 4, id)
- key(key_to_int(?q), 0, id)
close_sound(id)
end
@@ -24936,7 +24994,7 @@ def test0215
[:transform_size, 32],
[:fft_window_alpha, 0.5],
[:fft_window_beta, 0.5],
- [:transform_type, Autocorrelation],
+ [:transform_type, $autocorrelation],
[:transform_normalization, 0],
[:show_mix_waveforms, true],
[:graph_style, Graph_lollipops],
@@ -25721,7 +25779,7 @@ def test0415
v = Vct.new(2000) do |i| sin(i * 2.0 * (PI / 10)) end
vct2channel(v, 0, 2000, ind, 0)
set_transform_size(256)
- set_transform_type(Fourier_transform)
+ set_transform_type($fourier_transform)
set_transform_normalization(Normalize_by_channel)
set_transform_graph_style(Graph_once)
set_zero_pad(0)
@@ -25779,7 +25837,7 @@ def test15
if $test15
$before_test_hook.call(15)
set_clipping(false)
- set_transform_type(Fourier_transform)
+ set_transform_type($fourier_transform)
test0015
test0115
test0215
@@ -26266,7 +26324,6 @@ def test0016
[lambda { mix_channel("pistol.snd", 0, 0, oboe) }, :mix_channel],
[lambda { insert_channel("pistol.snd", 0, 0, oboe) }, :insert_channel],
[lambda { reverse_channel(0, 0, oboe) }, :reverse_channel],
- [lambda { play_channel(0, 0, oboe) }, :play_channel],
[lambda { scale_sound_by(2.0, 0, 0, oboe) }, :scale_sound_by],
[lambda { env_sound([0, 0, 1, 1], 0, 0, oboe) }, :env_sound],
[lambda { set_samples(0, 0, Vct.new(3), oboe) }, :set_samples],
@@ -26287,7 +26344,6 @@ def test0016
[lambda { mix_channel("pistol.snd", -1, 123, oboe) }, :mix_channel],
[lambda { insert_channel("pistol.snd", -1, 123, oboe) }, :insert_channel],
[lambda { reverse_channel(-1, 123, oboe) }, :reverse_channel],
- [lambda { play_channel(-1, 123, oboe) }, :play_channel],
[lambda { scale_sound_by(2.0, -1, 123, oboe) }, :scale_sound_by],
[lambda { env_sound([0, 0, 1, 1], -1, 123, oboe) }, :env_sound],
[lambda { set_samples(-1, 123, Vct.new(3), oboe) }, :set_samples],
@@ -26304,8 +26360,7 @@ def test0016
[lambda { env_channel(make_env([0, 0, 1, 1], :length, 123), 12345678, 123, oboe) }, :env_channel],
[lambda { smooth_channel(12345678, 123, oboe) }, :smooth_channel],
[lambda { src_channel(2.0, 12345678, 123, oboe) }, :src_channel],
- [lambda { reverse_channel(12345678, 123, oboe) }, :reverse_channel],
- [lambda { play_channel(12345678, 123, oboe) }, :play_channel]].each do |func, name|
+ [lambda { reverse_channel(12345678, 123, oboe) }, :reverse_channel]].each do |func, name|
func.call
if (res = edit_position(oboe)) != 0
snd_display("beg: 12345678 %s: %s %s?", name, res, edit_fragment)
@@ -26376,8 +26431,7 @@ def test0016
[lambda { src_channel(2.0, 0, 123, oboe, 0, 123) }, :src_channel],
[lambda { mix_channel("pistol.snd", 0, 123, oboe, 0, 123) }, :mix_channel],
[lambda { insert_channel("pistol.snd", 0, 123, oboe, 0, 123) }, :insert_channel],
- [lambda { reverse_channel(0, 123, oboe, 0, 123) }, :reverse_channel],
- [lambda { play_channel(0, 123, oboe, 0, 123) }, :play_channel]].each do |func, name|
+ [lambda { reverse_channel(0, 123, oboe, 0, 123) }, :reverse_channel]].each do |func, name|
if (res = Snd.catch do func.call end).first != :no_such_edit
snd_display("bad edpos %s: %s", name, res.inspect)
end
@@ -30828,8 +30882,8 @@ def test0020
# check small transform cases
index = open_sound("oboe.snd")
set_transform_graph?(true)
- [Fourier_transform, Wavelet_transform, Autocorrelation,
- Walsh_transform, Cepstrum, Haar_transform].each do |transform|
+ [$fourier_transform, $wavelet_transform, $autocorrelation,
+ $walsh_transform, $cepstrum, $haar_transform].each do |transform|
set_transform_type(transform)
[8, 7, -7, 4, 3, 2, 1, 0].each do |size|
Snd.catch do
@@ -30844,17 +30898,17 @@ def test0020
#
d0 = Vct.new(16)
d0[0] = 1.0
- snd_transform(Fourier_transform, d0, 0)
+ snd_transform($fourier_transform, d0, 0)
d0.each_with_index do |val, i|
if fneq(val, 1.0) then snd_display("fourier (1.0) [%s]: %s?", i, val) end
end
d0 = Vct.new(16)
d0[0] = 1.0
- snd_transform(Fourier_transform, d0, 0)
+ snd_transform($fourier_transform, d0, 0)
d0.each_with_index do |val, i|
if fneq(val, 1.0) then snd_display("fourier (1.0) [%s]: %s?", i, val) end
end
- snd_transform(Fourier_transform, d0, 0)
+ snd_transform($fourier_transform, d0, 0)
d0.each_with_index do |val, i|
if i.zero?
if fneq(val, 256.0) and fneq(val, 361.0)
@@ -31062,8 +31116,8 @@ def test0020
rl = Vct.new(len, 1.0)
xrl = Vct.new(len, 1.0)
len2 = len / 2
- snd_transform(Fourier_transform, rl)
- snd_transform(Fourier_transform, xrl, true)
+ snd_transform($fourier_transform, rl)
+ snd_transform($fourier_transform, xrl, true)
len2.times do |i|
if fneq(rl[i], xrl[i])
snd_display("flat fft: %s at %s: %s %s?", len, i, rl[i], xrl[i])
@@ -31082,8 +31136,8 @@ def test0020
len2 = len / 2
rl[len2] = 1.0
xrl[len2] = 1.0
- snd_transform(Fourier_transform, rl)
- snd_transform(Fourier_transform, xrl, true)
+ snd_transform($fourier_transform, rl)
+ snd_transform($fourier_transform, xrl, true)
len2.times do |i|
if fneq(rl[i], xrl[i])
snd_display("impulse fft: %s at %s: %s %s?", len, i, rl[i], xrl[i])
@@ -31100,9 +31154,9 @@ def test0020
len2 = len / 2
rl[len2] = 1.0
xrl[len2] = 1.0
- snd_transform(Fourier_transform, rl)
+ snd_transform($fourier_transform, rl)
rl.scale!(1.0 / len)
- snd_transform(Fourier_transform, xrl, true)
+ snd_transform($fourier_transform, xrl, true)
xrl.scale!(1.0 / len)
len2.times do |i|
if fneq(rl[i], xrl[i])
@@ -31119,9 +31173,9 @@ def test0020
len2 = len / 2
rl[len2] = 1.0
xrl[len2] = 1.0
- snd_transform(Fourier_transform, rl)
+ snd_transform($fourier_transform, rl)
rl.scale!(1.0 / len)
- snd_transform(Fourier_transform, xrl, true)
+ snd_transform($fourier_transform, xrl, true)
xrl.scale!(1.0 / len)
len2.times do |i|
if fneq(rl[i], xrl[i])
@@ -31180,7 +31234,7 @@ def test0020
len2 = len / 2
rl[0] = 1.0
rl[4] = 1.0
- snd_transform(Autocorrelation, rl, 0)
+ snd_transform($autocorrelation, rl, 0)
if fneq(rl[0], 2.0) then snd_display("autocorrelation %s 0: %s?", len, rl[0]) end
if fneq(rl[4], 1.0) then snd_display("autocorrelation %s 4: %s?", len, rl[0]) end
rla[0] = 1.0
@@ -31218,7 +31272,7 @@ def test0020
ind = random(len)
rl[ind] = xrl[ind] = random(1.0)
end
- snd_transform(Autocorrelation, rl, 0)
+ snd_transform($autocorrelation, rl, 0)
mus_fft(xrl, xim, len, 1)
xrl[0] *= xrl[0]
xrl[len2] *= xrl[len2]
@@ -31243,14 +31297,14 @@ def test0020
#
rl = vct(0.423618, 0.259318, -0.048365, 1.140571, -0.811856, -0.994098, -0.998613, -2.453642,
-0.438549, -1.520463, -0.312065, -0.724707, 1.154010, 1.466936, 0.110463, -1.520854)
- nrl = snd_transform(Cepstrum, rl, 0).scale(1.399)
+ nrl = snd_transform($cepstrum, rl, 0).scale(1.399)
unless vequal(nrl, vct(1.3994950, 0.1416877, 0.0952407, 0.0052814, -0.0613192, 0.0082986,
-0.0233993, -0.0476585, 0.0259498, -0.0476585, -0.0233993, 0.0082986,
-0.0613192, 0.0052814, 0.0952407, 0.1416877))
snd_display("cepstrum 16: %s?", nrl)
end
rl = Vct.new(16) do |i| i end
- nrl = snd_transform(Cepstrum, rl, 0).scale(2.72)
+ nrl = snd_transform($cepstrum, rl, 0).scale(2.72)
unless vequal(nrl, vct(2.720, 0.452, 0.203, 0.122, 0.082, 0.061, 0.048, 0.041,
0.039, 0.041, 0.048, 0.061, 0.082, 0.122, 0.203, 0.452))
snd_display("cepstrum 16 by ones: %s?", nrl)
@@ -31262,7 +31316,7 @@ def test0020
xrl = Vct.new(len)
rl[0] = 1.0
rl[4] = 1.0
- snd_transform(Cepstrum, rl, 0)
+ snd_transform($cepstrum, rl, 0)
xrl[0] = 1.0
xrl[4] = 1.0
mus_fft(xrl, xim, len, 1)
@@ -31294,22 +31348,22 @@ def test0120
#
d0 = Vct.new(8)
d0[0] = 1.0
- snd_transform(Walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
unless vequal(d0, Vct.new(8, 1.0))
snd_display("walsh 1: %s?", d0)
end
- snd_transform(Walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
unless vequal(d0, vct(8, 0, 0, 0, 0, 0, 0, 0))
snd_display("walsh -1: %s?", d0)
end
#
d0 = Vct.new(8)
d0[1] = 1.0
- snd_transform(Walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
unless vequal(d0, vct(1, -1, 1, -1, 1, -1, 1, -1))
snd_display("walsh 2: %s?", d0)
end
- snd_transform(Walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
unless vequal(d0, vct(0, 8, 0, 0, 0, 0, 0, 0))
snd_display("walsh -2: %s?", d0)
end
@@ -31317,38 +31371,38 @@ def test0120
d0 = Vct.new(8)
d0[0] = 0.5
d0[1] = 1.0
- snd_transform(Walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
unless vequal(d0, vct(1.5, -0.5, 1.5, -0.5, 1.5, -0.5, 1.5, -0.5))
snd_display("walsh 3: %s?", d0)
end
- snd_transform(Walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
unless vequal(d0, vct(4, 8, 0, 0, 0, 0, 0, 0))
snd_display("walsh -3: %s?", d0)
end
#
d0 = Vct.new(8) do random(1.0) end
d1 = d0.dup
- snd_transform(Walsh_transform, d0)
- snd_transform(Walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
+ snd_transform($walsh_transform, d0)
d0.scale! 1.0 / 8.0
unless vequal(d0, d1)
snd_display("walsh 4: %s %s?", d0, d1)
end
#
d0 = vct(1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1)
- d1 = snd_transform(Walsh_transform, d0)
+ d1 = snd_transform($walsh_transform, d0)
unless vequal(d1, vct(4, 4, 4, -4, 4, 4, 4, -4, 4, 4, 4, -4, -4, -4, -4, 4))
snd_display("walsh 5: %s?", d1)
end
#
d0 = vct(1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
- d1 = snd_transform(Walsh_transform, d0)
+ d1 = snd_transform($walsh_transform, d0)
unless vequal(d1, vct(0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0))
snd_display("walsh 6: %s?", d1)
end
d0 = vct(0.174, -0.880, -0.555, -0.879, 0.038, 0.696, -0.612, 0.006,
-0.613, 0.334, -0.111, -0.821, 0.130, 0.030, -0.229, 0.170)
- d1 = snd_transform(Walsh_transform, d0)
+ d1 = snd_transform($walsh_transform, d0)
unless vequal(d1, vct(-3.122, -0.434, 2.940, -0.468, -3.580, 2.716, -0.178, -1.386,
-0.902, 0.638, 1.196, 1.848, -0.956, 2.592, -1.046, 2.926))
snd_display("walsh 7: %s?", d1)
@@ -31358,7 +31412,7 @@ def test0120
#
d0 = Vct.new(8)
d0[2] = 1.0
- snd_transform(Haar_transform, d0)
+ snd_transform($haar_transform, d0)
unless vequal(d0, vct(0.354, 0.354, -0.500, 0.000, 0.000, 0.707, 0.000, 0.000))
snd_display("haar 1: %s?", d0)
end
@@ -31369,7 +31423,7 @@ def test0120
#
d0 = Vct.new(8)
d0[0] = 1.0
- snd_transform(Haar_transform, d0)
+ snd_transform($haar_transform, d0)
unless vequal(d0, vct(0.354, 0.354, 0.500, 0.000, 0.707, 0.000, 0.000, 0.000))
snd_display("haar 2: %s?", d0)
end
@@ -31378,31 +31432,31 @@ def test0120
snd_display("inverse_haar 2: %s?", d0)
end
#
- d0 = snd_transform(Haar_transform,
+ d0 = snd_transform($haar_transform,
vct(-0.483, 0.174, -0.880, -0.555, -0.879, 0.038, 0.696, -0.612))
unless vequal(d0, vct(-0.884, -0.349, 0.563, -0.462, -0.465, -0.230, -0.648, 0.925))
snd_display("haar 3: %s?", d0)
end
#
sq2 = sqrt(2.0)
- d0 = snd_transform(Haar_transform, vct(4, 6, 10, 12, 8, 6, 5, 5))
+ d0 = snd_transform($haar_transform, vct(4, 6, 10, 12, 8, 6, 5, 5))
unless vequal(d0, vct(14 * sq2, 2 * sq2, -6, 2, -sq2, -sq2, sq2, 0))
snd_display("haar 4: %s?", d0)
end
- d0 = snd_transform(Haar_transform, vct(2, 4, 6, 8, 10, 12, 14, 16))
+ d0 = snd_transform($haar_transform, vct(2, 4, 6, 8, 10, 12, 14, 16))
unless vequal(d0, x = vct(18 * sq2, -8 * sq2, -4, -4, -sq2, -sq2, -sq2, -sq2))
snd_display("haar 5: %s?", d0, x)
end
#
d0 = Vct.new(8)
d1 = Vct.new(8) do |i| d0[i] = random(1.0) end
- snd_transform(Haar_transform, d0)
+ snd_transform($haar_transform, d0)
inverse_haar(d0)
unless vequal(d0, d1) then snd_display("inverse_haar 6: %s %s?", d0, d1) end
#
# wavelet
#
- d0 = snd_transform(Wavelet_transform, vct(1, 1, 0, 0, 0, 0, 0, 0), 0) # daub4
+ d0 = snd_transform($wavelet_transform, vct(1, 1, 0, 0, 0, 0, 0, 0), 0) # daub4
unless vequal(d0, vct(0.625, 0.375, -0.217, 1.083, -0.354, 0.000, 0.000, 0.354))
snd_display("fxt wavelet 1: %s?", d0)
end
@@ -31413,7 +31467,7 @@ def test0120
d1[2] = 1.0
d2[2] = 1.0
wavelet(d1, size, 0, :pwt, val)
- snd_transform(Wavelet_transform, d2, key.last)
+ snd_transform($wavelet_transform, d2, key.last)
unless vequal(d1, d2)
snd_display("wavelet (%s) %s:\n# %s\n# %s?", size, key, d1, d2)
end
@@ -31443,7 +31497,7 @@ def test0120
next if key.last > 8
d2 = Vct.new(size) do random(1.0) end
d1 = d2.dup
- snd_transform(Wavelet_transform, d2, key.last)
+ snd_transform($wavelet_transform, d2, key.last)
wavelet(d2, size, -1, :pwt, val)
unless vequal(d1, d2)
snd_display("random wavelet %s:\n# %s\n# %s?", key.first, d1, d2)
@@ -31498,8 +31552,8 @@ def test0120
delete_transform(ftype)
if transform?(ftype) then snd_display("transform? deleted: %s?", ftype) end
if transform?(-1) then snd_display("transform? -1: %s?", ftype) end
- if transform?(123) then snd_display("transform? 123: %s?", ftype) end
- if (res = transform_type(ind, 0)) != Fourier_transform
+ if transform?(integer2transform(123)) then snd_display("transform? 123: %s?", ftype) end
+ if (res = transform_type(ind, 0)) != $fourier_transform
snd_display("after delete_transform %s -> %s?", ftype, res)
end
close_sound(ind)
@@ -31544,7 +31598,7 @@ def test0120
end
end
old_colormap = colormap
- set_colormap(0)
+ set_colormap(integer2colormap(0))
update_transform_graph
set_transform_graph_type(Graph_as_spectrogram, ind1, 0)
update_transform_graph
@@ -32193,7 +32247,7 @@ def test0021
if fneq(sample(20), -0.992) then snd_display("scale_to 1.0 Mus_byte (20): %s?", sample(20)) end
close_sound(ind)
#
- set_transform_graph_type(0)
+ set_transform_graph_type(Graph_once)
set_fft_window(6)
set_show_y_zero(false)
set_show_transform_peaks(false)
@@ -32413,7 +32467,6 @@ def test0021
end
[[:min_dB, -100.0, ffeqlp, veqlp, true, true],
[:x_position_slider, 0.1, ffeqlp, veqlp, true, false],
- [:maxamp, 1.0, ffeqlp, veqlp, true, false],
[:y_position_slider, 0.5, ffeqlp, veqlp, true, false],
[:x_zoom_slider, 0.2, ffeqlp, veqlp, true, false],
[:y_zoom_slider, 0.2, ffeqlp, veqlp, true, false],
@@ -32441,7 +32494,6 @@ def test0021
[:transform_size, 64, :==, :eql?, true, true],
[:transform_graph_type, 1, :==, :eql?, true, true],
[:fft_window, 1, :==, :eql?, true, true],
- [:transform_type, 1, :==, :eql?, true, true],
[:transform_normalization, 2, :==, :eql?, true, true],
[:max_transform_peaks, 10, :==, :eql?, true, true],
[:dot_size, 10, :==, :eql?, true, true],
@@ -33199,7 +33251,7 @@ def test23_a
0.005, 0.005, amp1, ind1, fmt1, amp2, ind2, fmt2, amp3, ind3, fmt3, amp4, ind4, fmt4)
end
if sound?(ind = find_sound("test.snd"))
- play_and_wait(0, ind)
+ play(ind, :wait, true)
close_sound(ind)
else
snd_display("missing test.snd (%s)", get_func_name)
@@ -33326,7 +33378,7 @@ def test23_b
vct(0.016, 0.015, 0.013, 0.011, 0.008, 0.006, 0.004, 0.003, 0.001, 0.000)))
snd_display("fm_violin with_sound:\n#\t%s\n#\t%s", res1, res2)
end
- play_and_wait(0, ind)
+ play(ind, :wait, true)
close_sound(ind)
else
snd_display("missing test.snd (%s)", get_func_name)
@@ -33359,7 +33411,7 @@ def test0023
srate(ind), mus_srate, mus_sound_srate("test.snd"))
end
if frames(ind) != 2205 then snd_display("with_sound frames (%s): %s?", i, frames(ind)) end
- play_and_wait(0, ind)
+ play(ind, :wait, true)
end
with_sound(:continue_old_file, true) do fm_violin(0.2, 0.1, 440, 0.25) end
ind = find_sound("test.snd")
@@ -34374,8 +34426,7 @@ Procs =
:vct_fill!, :vct_set!, :mus_audio_describe, :vct_peak, :vct?, :list2vct, :vct2list,
:vector2vct, :vct2vector, :vct_move!, :vct_reverse!, :vct_subseq, :vct, :little_endian?,
:vct2string, :clm_channel, :env_channel, :map_channel_with_base, :map_channel,
- :scan_channel, :play_channel,
- :reverse_channel, :seconds2samples, :samples2seconds, :vct2channel,
+ :scan_channel, :reverse_channel, :seconds2samples, :samples2seconds, :vct2channel,
:smooth_channel, :channel2vct,
:src_channel, :scale_channel, :ramp_channel, :pad_channel, :normalize_channel,
:cursor_position, :clear_listener, :mus_sound_prune, :mus_sound_forget, :xramp_channel,
@@ -34673,7 +34724,7 @@ def test0028
end
end
[:reverse_selection, :selection_position, :selection_frames, :smooth_selection,
- :scale_selection_to, :play_selection, :insert_selection, :delete_selection, :mix_selection,
+ :scale_selection_to, :insert_selection, :delete_selection, :mix_selection,
:src_selection, :filter_selection, :env_selection].each do |n|
if (tag = Snd.catch do
case n
@@ -34790,8 +34841,8 @@ def test0128
:transform_graph_type, :fft_window, :transform_graph?, :find_channel, :graph, :graph_style,
:lisp_graph?, :insert_sound, :time_graph_style, :lisp_graph_style,
:transform_graph_style, :left_sample, :make_graph_data, :map_chan, :max_transform_peaks,
- :maxamp, :maxamp_position, :min_dB, :mix_region, :transform_normalization,
- :peak_env_info, :peaks, :play, :play_and_wait, :position2x, :position2y, :reverse_sound,
+ :maxamp_position, :min_dB, :mix_region, :transform_normalization,
+ :peak_env_info, :peaks, :play, :position2x, :position2y, :reverse_sound,
:revert_sound, :right_sample, :sample, :save_sound, :save_sound_as,
:scan_chan, :select_channel, :show_axes, :show_transform_peaks, :show_marks,
:show_mix_waveforms, :show_y_zero, :show_grid, :show_sonogram_cursor, :spectrum_end,
@@ -34817,7 +34868,7 @@ def test0128
:lisp_graph?, :insert_region,
:insert_sound, :left_sample, :time_graph_style, :lisp_graph_style, :transform_graph_style,
:make_graph_data, :map_chan, :max_transform_peaks, :maxamp, :maxamp_position, :min_dB,
- :mix_region, :transform_normalization, :peak_env_info, :peaks, :play, :play_and_wait,
+ :mix_region, :transform_normalization, :peak_env_info, :peaks,
:position2x, :position2y, :reverse_sound, :right_sample, :sample,
:save_sound_as, :scan_chan, :show_axes, :show_transform_peaks, :show_marks,
:show_mix_waveforms, :show_y_zero, :show_grid, :show_sonogram_cursor, :spectrum_end,
@@ -34854,7 +34905,7 @@ def test0128
snd_display("%s: chn procs %s: %s", i, n, tag)
end
end
- [:delete_sample, :edit_fragment, :graph_data, :graph_style, :play, :play_and_wait,
+ [:delete_sample, :edit_fragment, :graph_data, :graph_style,
:position2x, :position2y, :redo_edit, :time_graph_style, :lisp_graph_style,
:transform_graph_style, :scale_by, :scale_to, :undo_edit, :x2position, :y2position,
:x_axis_label].each_with_index do |n, i|
@@ -34863,8 +34914,7 @@ def test0128
end
end
index = open_sound("oboe.snd")
- [:delete_sample, :edit_fragment, :graph_data, :play, :play_and_wait,
- :position2x, :position2y, :redo_edit,
+ [:delete_sample, :edit_fragment, :graph_data, :position2x, :position2y, :redo_edit,
:scale_by, :scale_to, :undo_edit, :x2position, :y2position].each_with_index do |n, i|
if (tag = Snd.catch do snd_func(n, 0, index, 1234) end).first != :no_such_channel
snd_display("%s: snd(1 1234) chn procs %s: %s", i, n, tag)
@@ -34959,7 +35009,7 @@ def test0128
end
close_sound(index)
[[0, 1], sqrt(-1.0), "hiho", [0, 1]].each do |arg|
- [:play_region, :region_chans, :region_home, :region_frames, :region_position,
+ [:region_chans, :region_home, :region_frames, :region_position,
:region_maxamp, :region_maxamp_position, :region_sample, :region2vct,
:region_srate, :forget_region].each_with_index do |n, i|
if (tag = Snd.catch do snd_func(n, arg) end).first != :wrong_type_arg
@@ -34967,7 +35017,7 @@ def test0128
end
end
end
- [:play_region, :region_chans, :region_home, :region_frames, :region_position,
+ [:region_chans, :region_home, :region_frames, :region_position,
:region_maxamp, :region_maxamp_position, :region_srate,
:forget_region].each_with_index do |n, i|
if (tag = Snd.catch do snd_func(n, integer2region(1234)) end).first != :no_such_region
@@ -35065,7 +35115,7 @@ def test0228
check_error_tag(:wrong_type_arg) do player_home(123) end
check_error_tag(:no_such_file) do set_temp_dir("/hiho") end
check_error_tag(:no_such_file) do set_save_dir("/hiho") end
- check_error_tag(:out_of_range) do snd_transform(20, make_vct(4)) end
+ check_error_tag(:out_of_range) do snd_transform(integer2transform(20), make_vct(4)) end
check_error_tag(:bad_header) do mus_sound_maxamp($sf_dir + "bad_chans.snd") end
check_error_tag(:bad_header) do set_mus_sound_maxamp($sf_dir + "bad_chans.snd", [0.0, 0.0]) end
check_error_tag(:mus_error) do make_iir_filter(:order, 32, :ycoeffs, make_vct(4)) end
@@ -35167,9 +35217,6 @@ def test0228
check_error_tag(:cannot_save) do save_sound_as("test.snd", ind, Mus_voc, Mus_bshort) end
check_error_tag(:cannot_save) do save_selection("test.snd", Mus_riff, Mus_bshort) end
check_error_tag(:cannot_save) do save_selection("test.snd", Mus_voc, Mus_bshort) end
- check_error_tag(:wrong_type_arg) do play_selection(0, lambda do | | false end) end
- check_error_tag(:wrong_type_arg) do play_selection(0, 0) end
- check_error_tag(:wrong_type_arg) do play_selection(0, lambda do |a, b| false end) end
check_error_tag(:no_data) do draw_lines([]) end
check_error_tag(:bad_length) do draw_lines([1, 2, 3]) end
check_error_tag(:out_of_range) do src_channel(make_env([0, 0, 1, 1], :length, 11)) end
@@ -35189,8 +35236,7 @@ def test0228
check_error_tag(:out_of_range) do snd_spectrum(Vct.new(8), 0, 0) end
check_error_tag(:no_such_file) do play("/baddy/hiho") end
check_error_tag(:bad_format) do play($sf_dir + "nist-shortpack.wav") end
- check_error_tag(:no_such_sound) do play(0, 123) end
- check_error_tag(:no_such_channel) do play(0, ind, 123) end
+ check_error_tag(:no_such_sound) do play(123, 0) end
check_error_tag(:no_such_channel) do make_player(ind, 123) end
check_error_tag(:no_such_file) do mix("/baddy/hiho") end
check_error_tag(:no_such_channel) do mix("oboe.snd", 0, 2) end
@@ -35227,9 +35273,7 @@ def test0228
check_error_tag(:no_such_channel) do axis_info(ind, 1234) end
check_error_tag(:no_such_sound) do axis_info(1234) end
set_time_graph_type(Graph_once)
- check_error_tag(:out_of_range) do set_x_bounds([0, 0]) end
check_error_tag(:out_of_range) do set_x_bounds([0.1, -0.1]) end
- check_error_tag(:out_of_range) do set_y_bounds([0.2, 0.1]) end
check_error_tag(:out_of_range) do make_region(100, 0) end
check_error_tag(:no_such_sample) do delete_sample(-1) end
check_error_tag(:no_such_sample) do delete_sample(2 * frames(ind)) end
@@ -35243,7 +35287,6 @@ def test0228
check_error_tag(:no_such_channel) do transform_sample(0, 1, ind, 1234) end
check_error_tag(:no_such_sound) do graph(vct(0, 1), "hi", 0, 1, 0, 1, 1234) end
check_error_tag(:no_such_channel) do graph(vct(0, 1), "hi", 0, 1, 0, 1, ind, 1234) end
- check_error_tag(:wrong_type_arg) do play_region(regions.car, false, lambda do | | false end) end
set_selection_member?(false, true)
check_error_tag(:no_active_selection) do filter_selection(vct(0, 0, 1, 1), 4) end
check_error_tag(:no_active_selection) do save_selection("/bad/baddy.snd") end
@@ -35292,9 +35335,6 @@ def test0228
check_error_tag(:no_such_channel) do filter_channel(vct(0, 0, 1, 1), 4, false, false, ind, 1) end
check_error_tag(:out_of_range) do filter_sound(vct(0, 0, 1, 1), 0) end
check_error_tag(:out_of_range) do filter_sound(vct(0, 0, 1, 1), 10) end
- check_error_tag(:wrong_type_arg) do
- play(0, false, false, false, false, false, lambda do | | false end)
- end
check_error_tag(:out_of_range) do set_reverb_control_length_bounds([0.1, 0.01], ind) end
check_error_tag(:out_of_range) do set_reverb_control_scale_bounds([0.1, 0.01], ind) end
check_error_tag(:wrong_type_arg) do scale_by(false) end
@@ -35311,8 +35351,8 @@ def test0228
check_error_tag(:no_such_menu) do add_to_menu(1234, "hi", lambda do | | false end) end
check_error_tag(:bad_arity) do add_to_main_menu("hi", lambda do |a, b| false end) end
check_error_tag(:bad_arity) do add_to_menu(1, "hi", lambda do |a, b| false end) end
- check_error_tag(:out_of_range) do set_transform_type(-1) end
- check_error_tag(:out_of_range) do set_transform_type(123) end
+ check_error_tag(:wrong_type_arg) do set_transform_type(integer2transform(-1)) end
+ check_error_tag(:out_of_range) do set_transform_type(integer2transform(123)) end
check_error_tag(:wrong_type_arg) do help_dialog([0, 1], "hiho") end
check_error_tag(:wrong_type_arg) do info_dialog([0, 1], "hiho") end
check_error_tag(:no_such_sound) do edit_header_dialog(1234) end
@@ -35420,7 +35460,6 @@ def test0228
check_error_tag(:no_such_mix) do set_mix_sync(integer2mix(mix_sync_max + 1), 1) end
check_error_tag(:no_such_mix) do mix_properties(integer2mix(mix_sync_max + 1)) end
check_error_tag(:no_such_mix) do set_mix_properties(integer2mix(mix_sync_max + 1), 1) end
- check_error_tag(:no_such_mix) do play_mix(integer2mix(mix_sync_max + 1)) end
if provided? :snd_motif
[:widget_position, :widget_size, :widget_text,
diff --git a/snd-test.scm b/snd-test.scm
index eaad35a..4fe677a 100644
--- a/snd-test.scm
+++ b/snd-test.scm
@@ -1,39 +1,39 @@
;;; Snd tests
;;;
-;;; test 0: constants [626]
-;;; test 1: defaults [1209]
-;;; test 2: headers [1408]
-;;; test 3: variables [1725]
-;;; test 4: sndlib [2359]
-;;; test 5: simple overall checks [5088]
-;;; test 6: vcts [13961]
-;;; test 7: colors [14346]
-;;; test 8: clm [14843]
-;;; test 9: mix [26731]
-;;; test 10: marks [28944]
-;;; test 11: dialogs [29905]
-;;; test 12: extensions [30126]
-;;; test 13: menus, edit lists, hooks, etc [30397]
-;;; test 14: all together now [32010]
-;;; test 15: chan-local vars [32937]
-;;; test 16: regularized funcs [34755]
-;;; test 17: dialogs and graphics [39823]
-;;; test 18: enved [39915]
-;;; test 19: save and restore [39934]
-;;; test 20: transforms [41710]
-;;; test 21: new stuff [43901]
-;;; test 22: run [45912]
-;;; test 23: with-sound [52727]
-;;; test 25: X/Xt/Xm [57278]
-;;; test 26: Gtk [61048]
-;;; test 27: GL [64604]
-;;; test 28: errors [64728]
-;;; test all done [67232]
-;;; test the end [67444]
+;;; test 0: constants [632]
+;;; test 1: defaults [1215]
+;;; test 2: headers [1414]
+;;; test 3: variables [1731]
+;;; test 4: sndlib [2365]
+;;; test 5: simple overall checks [5105]
+;;; test 6: vcts [14173]
+;;; test 7: colors [14568]
+;;; test 8: clm [15065]
+;;; test 9: mix [26971]
+;;; test 10: marks [29212]
+;;; test 11: dialogs [30194]
+;;; test 12: extensions [30415]
+;;; test 13: menus, edit lists, hooks, etc [30686]
+;;; test 14: all together now [32299]
+;;; test 15: chan-local vars [33229]
+;;; test 16: regularized funcs [35047]
+;;; test 17: dialogs and graphics [40115]
+;;; test 18: enved [40207]
+;;; test 19: save and restore [40226]
+;;; test 20: transforms [42002]
+;;; test 21: new stuff [44192]
+;;; test 22: run [46199]
+;;; test 23: with-sound [52991]
+;;; test 25: X/Xt/Xm [57541]
+;;; test 26: Gtk [61311]
+;;; test 27: GL [64854]
+;;; test 28: errors [64978]
+;;; test all done [67489]
+;;; test the end [67676]
(use-modules (ice-9 format) (ice-9 debug) (ice-9 optargs))
-(define tests 1)
+(define tests 5)
(define keep-going #f)
(define all-args #f)
(define test-at-random 0)
@@ -45,9 +45,7 @@
(if (defined? 'run-clear-counts) (run-clear-counts))
-(define with-guile (provided? 'snd-guile))
(define with-s7 (provided? 'snd-s7))
-(if (and with-guile with-s7) (display ";both switches are on?"))
(if with-s7
(begin
@@ -269,9 +267,6 @@
(set! (mus-audio-playback-amp) playback-amp)
(define sampler-tests 300)
-(if with-guile (debug-set! stack 0))
-(debug-enable 'debug 'backtrace)
-(read-enable 'positions)
;; try to get a different random number sequence on each run
(set! (mus-rand-seed) (current-time))
@@ -282,6 +277,16 @@
(define with-gui (or (provided? 'snd-gtk)
(provided? 'snd-motif)))
+(if (not with-gui)
+ (define y-bounds (make-procedure-with-setter
+ (lambda args (list -1.0 1.0))
+ (lambda args (list -1.0 1.0)))))
+
+(if (not with-gui)
+ (define x-bounds (make-procedure-with-setter
+ (lambda args (list 0.0 0.1))
+ (lambda args (list 0.0 0.1)))))
+
(if (file-exists? "optimizer.log")
(delete-file "optimizer.log"))
(define optimizer-log (open-output-file "optimizer.log"))
@@ -299,7 +304,7 @@
(newline optimizer-log)))))
(define (real-time) (exact->inexact (/ (get-internal-real-time) internal-time-units-per-second)))
-(define (hundred n) (inexact->exact (round (* 100 n))))
+(define (hundred n) (round (* 100 n)))
(define times '())
(defmacro time (a)
`(let ((start (real-time)))
@@ -502,7 +507,7 @@
(lambda (n)
(forget-region n))
regs))
- ;(system (format #f "sndinfo ~A/snd_*" (or (temp-dir) original-temp-dir)))
+
(system (format #f "rm -f ~A/snd_*" (or (save-dir) original-save-dir)))
(if (file-exists? "/var/tmp")
(system (format #f "rm -f /var/tmp/snd_save_*")))
@@ -611,6 +616,7 @@
(if (not (provided? 'snd-snd8.scm)) (load "snd8.scm")) ; samples->sound-data
(if (not (provided? 'snd-snd9.scm)) (load "snd9.scm")) ; make-ppolar|zpolar, various generators later moved to generators.scm
(if (not (provided? 'snd-snd10.scm)) (load "snd10.scm"))
+(if (not (provided? 'snd-snd11.scm)) (load "snd11.scm"))
;(define widvardpy (make-variable-display "do-loop" "i*2" 'graph))
@@ -643,7 +649,6 @@
(test-constants
(list
'enved-amplitude enved-amplitude 0
- 'autocorrelation autocorrelation 3
'bartlett-window bartlett-window 4
'bartlett-hann-window bartlett-hann-window 21
'blackman2-window blackman2-window 6
@@ -676,20 +681,17 @@
'zoom-focus-left zoom-focus-left 0
'zoom-focus-middle zoom-focus-middle 3
'zoom-focus-right zoom-focus-right 1
- 'fourier-transform fourier-transform 0
'gaussian-window gaussian-window 14
'graph-dots graph-dots 1
'graph-dots-and-lines graph-dots-and-lines 3
'graph-filled graph-filled 2
'graph-lines graph-lines 0
'graph-lollipops graph-lollipops 4
- 'haar-transform haar-transform 5
'hamming-window hamming-window 5
'hann-window hann-window 1
'hann-poisson-window hann-poisson-window 17
'kaiser-window kaiser-window 11
'keyboard-no-action keyboard-no-action 4
- 'cepstrum cepstrum 4
'graph-once graph-once 0
'parzen-window parzen-window 3
'poisson-window poisson-window 13
@@ -710,8 +712,6 @@
'speed-control-as-semitone speed-control-as-semitone 2
'enved-srate enved-srate 2
'tukey-window tukey-window 15
- 'walsh-transform walsh-transform 2
- 'wavelet-transform wavelet-transform 1
'welch-window welch-window 2
'cursor-cross cursor-cross 0
'cursor-line cursor-line 1
@@ -973,7 +973,7 @@
(if (not (equal? (transform-size) 512 ))
(snd-display ";transform-size set def: ~A" (transform-size)))
(set! (transform-graph-type) (transform-graph-type))
- (if (not (equal? (transform-graph-type) 0))
+ (if (not (equal? (transform-graph-type) graph-once))
(snd-display ";transform-graph-type set def: ~A" (transform-graph-type)))
(set! (fft-window) (fft-window))
(if (not (equal? (fft-window) 6 ))
@@ -1103,7 +1103,7 @@
(not (equal? (tiny-font) "Sans 8")))
(snd-display ";tiny-font set def: ~A" (tiny-font)))
(set! (transform-type) (transform-type))
- (if (not (equal? (transform-type) 0 ))
+ (if (not (equal? (transform-type) fourier-transform ))
(snd-display ";transform-type set def: ~A" (transform-type)))
(set! (trap-segfault) (trap-segfault))
(if (not (equal? (trap-segfault) #f))
@@ -1208,8 +1208,8 @@
;;; ---------------- test 1: defaults ----------------
-(define good-colormap (if (provided? 'gl) 2 0))
-(define better-colormap 0)
+(define good-colormap (if (provided? 'gl) hot-colormap black-and-white-colormap))
+(define better-colormap black-and-white-colormap)
(if with-gui
(if (not (colormap? good-colormap))
(set! good-colormap
@@ -1217,8 +1217,8 @@
(lambda (return)
(do ((i 1 (+ 1 i)))
((= i 20))
- (if (colormap? i)
- (return i))))))))
+ (if (colormap? (integer->colormap i))
+ (return (integer->colormap i)))))))))
(if with-gui
(if (not (colormap? better-colormap))
(set! better-colormap
@@ -1226,8 +1226,8 @@
(lambda (return)
(do ((i good-colormap (+ 1 i)))
((= i 20))
- (if (colormap? i)
- (return i))))))))
+ (if (colormap? (integer->colormap i))
+ (return (integer->colormap i)))))))))
(define (snd_test_1)
(letrec ((test-defaults
@@ -1378,11 +1378,11 @@
'time-graph? (without-errors (time-graph?)) 'no-such-sound
'tiny-font (tiny-font) (if (provided? 'snd-motif) "6x12" "Sans 8")
'tracking-cursor-style (tracking-cursor-style) cursor-cross
- 'transform-graph-type (transform-graph-type) 0
+ 'transform-graph-type (transform-graph-type) graph-once
'transform-graph? (without-errors (transform-graph?)) 'no-such-sound
'transform-normalization (transform-normalization) normalize-by-channel
'transform-size (transform-size) 512
- 'transform-type (transform-type) 0
+ 'transform-type (transform-type) fourier-transform
'view-files-sort (view-files-sort) 0
'view-files-sort (view-files-sort) 0
'wavelet-type (wavelet-type) 0
@@ -1903,7 +1903,7 @@
(list 'fft-log-magnitude fft-log-magnitude #f #t)
(list 'fft-with-phases fft-with-phases #f #t)
(list 'transform-size transform-size 512 1024)
- (list 'transform-graph-type transform-graph-type 0 1)
+ (list 'transform-graph-type transform-graph-type graph-once graph-as-sonogram)
(list 'fft-window fft-window 6 5)
(list 'transform-graph? transform-graph? #f #t)
(list 'filter-control-in-dB filter-control-in-dB #f #t)
@@ -1967,7 +1967,7 @@
(list 'speed-control-tones speed-control-tones 12 18)
(list 'sync sync 0 1)
(list 'tiny-font tiny-font (if (provided? 'snd-gtk) "Sans 8" "6x12") (if (provided? 'snd-gtk) "Monospace 10" "9x15"))
- (list 'transform-type transform-type 0 1)
+ (list 'transform-type transform-type fourier-transform autocorrelation)
(list 'with-verbose-cursor with-verbose-cursor #f #t)
(list 'wavelet-type wavelet-type 0 1)
(list 'time-graph? time-graph? #f #t)
@@ -2030,7 +2030,7 @@
(list 'cursor-style cursor-style cursor-line '(2 123))
(list 'tracking-cursor-style tracking-cursor-style cursor-cross '(-1))
(list 'tracking-cursor-style tracking-cursor-style cursor-line '(2 123))
- (list 'transform-graph-type transform-graph-type 0 '(-1 123))
+ (list 'transform-graph-type transform-graph-type graph-once '(-1 123))
(list 'fft-window fft-window 6 '(-1 123))
(list 'enved-filter-order enved-filter-order 40 '(-1 0))
(list 'filter-control-order filter-control-order 20 '(-10 -1 0))
@@ -2046,7 +2046,7 @@
(list 'speed-control speed-control 1.0 '(0.0))
(list 'speed-control-bounds speed-control-bounds (list 0.05 20.0) (list #f (list 0.0) (list 1.0 0.0) 2.0))
(list 'speed-control-style speed-control-style 0 '(-1 10))
- (list 'transform-type transform-type 0 '(-1 123))
+ (list 'transform-type transform-type fourier-transform (list (integer->transform -1) (integer->transform 123)))
(list 'wavelet-type wavelet-type 0 '(-1 123))
(list 'wavo-hop wavo-hop 1 '(0 -123))
(list 'wavo-trace wavo-trace 1 '(0 -123))
@@ -3235,6 +3235,8 @@
(string-append sf-dir "bad_srate.nist")
(string-append sf-dir "bad_length.nist")))
(close-sound ind))
+
+ (map close-sound (sounds))
(let* ((ob (open-sound (string-append "~/baddy/" home-dir "/cl/oboe.snd")))
(sd (samples->sound-data))
@@ -3416,6 +3418,15 @@
(let ((var (catch #t (lambda () (mus-sound-reopen-output "fmv.snd" 1 mus-bshort -1 #f)) (lambda args args))))
(if (not (eq? (car var) 'out-of-range))
(snd-display ";mus-sound-reopen-output bad type: ~A" var)))
+
+ (let ((sd (make-sound-data 2 10)))
+ (fill! sd 1.0)
+ (if (not (vequal (sound-data->vct sd 0) (make-vct 10 1.0)))
+ (snd-display ";fill! sd chan 0: ~A" (sound-data->vct sd 0)))
+ (if (not (vequal (sound-data->vct sd 1) (make-vct 10 1.0)))
+ (snd-display ";fill! sd chan 1: ~A" (sound-data->vct sd 1)))
+ (let ((sd1 (copy sd)))
+ (if (not (equal? sd sd1)) (snd-display ";copy sd: ~A ~A"))))
(for-each
(lambda (proc name)
@@ -9360,8 +9371,8 @@ EDITS: 5
(set! (transform-size index 0) 64)
(do ((i 0 (+ 1 i)))
((= i num-transforms))
- (set! (transform-type) i)
- (if (not (transform? i)) (snd-display ";transform? ~A?" i))
+ (set! (transform-type) (integer->transform i))
+ (if (not (transform? (integer->transform i))) (snd-display ";transform? ~A?" i))
(do ((j 0 (+ 1 j)))
((= j num-transform-graph-types))
(set! (transform-graph-type index 0) j)
@@ -9465,15 +9476,20 @@ EDITS: 5
(bomb index #f)
(if (not (selection-creates-region)) (set! (selection-creates-region) #t))
(select-all index 0)
- (let ((r0 (car (regions))))
+ (let ((r0 (car (regions)))
+ (sel (selection)))
(if (not (selection?)) (snd-display ";selection?"))
+ (if (not (selection? sel)) (snd-display ";selection? sel"))
(if (not (region? r0)) (snd-display ";region?"))
(if (not (= (selection-chans) 1)) (snd-display ";selection-chans(1): ~A" (selection-chans)))
+ (if (not (= (channels sel) 1)) (snd-display ";generic selection-chans(1): ~A" (channels sel)))
(if (not (= (selection-srate) (srate index))) (snd-display ";selection-srate: ~A ~A" (selection-srate) (srate index)))
+ (if (not (= (srate sel) (srate index))) (snd-display ";generic selection-srate: ~A ~A" (srate sel) (srate index)))
(if (fneq (region-maxamp r0) (maxamp index)) (snd-display ";region-maxamp (1): ~A?" (region-maxamp r0)))
(if (not (= (region-maxamp-position r0) (maxamp-position index)))
(snd-display ";region-maxamp-position (1): ~A ~A?" (region-maxamp-position r0) (maxamp-position index)))
(if (fneq (selection-maxamp index 0) (maxamp index)) (snd-display ";selection-maxamp (1): ~A?" (selection-maxamp index 0)))
+ (if (fneq (maxamp sel index 0) (maxamp index)) (snd-display ";generic selection-maxamp (1): ~A?" (maxamp sel index 0)))
(if (not (= (selection-maxamp-position index 0) (maxamp-position index)))
(snd-display ";selection-maxamp-position (1): ~A ~A?" (selection-maxamp-position index 0) (maxamp-position index)))
(save-region r0 "temp.dat")
@@ -9488,6 +9504,8 @@ EDITS: 5
(if (not (equal? (region-home r0) (list "oboe.snd" 0 50827))) (snd-display ";region-home: ~A" (region-home r0)))
(if (not (= (region-frames r0) 50828)) (snd-display ";region-frames: ~A?" (region-frames r0)))
(if (not (= (selection-frames) 50828)) (snd-display ";selection-frames: ~A?" (selection-frames 0)))
+ (if (not (= (frames sel) 50828)) (snd-display ";generic selection-frames: ~A?" (frames sel)))
+ (if (not (= (length sel) 50828)) (snd-display ";generic length selection-frames: ~A?" (length sel)))
(if (not (= (selection-position) 0)) (snd-display ";selection-position: ~A?" (selection-position)))
(if (not (= (region-position r0 0) 0)) (snd-display ";region-position: ~A?" (region-position r0 0)))
(if (fneq (region-maxamp r0) (maxamp index)) (snd-display ";region-maxamp: ~A?" (region-maxamp r0)))
@@ -10290,11 +10308,6 @@ EDITS: 5
(close-sound ind2))
(let* ((ind (open-sound "now.snd")))
- (if with-guile
- (if (not (= now-snd-index ind))
- (snd-display ";*snd-opened-sound*: ~A ~A ~A" *snd-opened-sound* ind now-snd-index)))
- ;; that is in now.snd.scm, but there's no reason to assume the define becomes a global
-
(set! (amp-control ind) .5)
(if (ffneq (amp-control ind) .5) (snd-display ";amp-control (.5): ~A?" (amp-control ind)))
(set! (amp-control ind 0) .25)
@@ -13954,7 +13967,200 @@ EDITS: 2
(snd-display ";2 ramp->xramp->ptree->xramp: ~A" data)))
(close-sound ind))
+
+ (let ((s1 (open-sound "oboe.snd")))
+ (let ((s2 (copy s1)))
+ (if (not (sound? s2))
+ (snd-display ";copy sound oboe -> ~A" s2)
+ (begin
+ (if (not (= (srate s1) (srate s2))) (snd-display ";copy sounds srates: ~A ~A" (srate s1) (srate s2)))
+ (if (not (= (frames s1) (frames s2))) (snd-display ";copy sounds frames: ~A ~A" (frames s1) (frames s2)))
+ (if (not (= (chans s1) (chans s2) 1)) (snd-display ";copy sounds chans: ~A ~A" (chans s1) (chans s2)))
+ (let ((r1 (make-sampler 0 s1))
+ (r2 (make-sampler 0 s2))
+ (happy #t))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i (frames s1))))
+ (let ((v1 (r1))
+ (v2 (r2)))
+ (if (> (abs (- v1 v2)) .0001)
+ (begin
+ (set! happy #f)
+ (snd-display ";copied sound not equal? pos: ~A, ~A ~A" i v1 v2))))))
+ (close-sound s2))))
+ (fill! s1 0.0)
+ (if (fneq (maxamp s1) 0.0) (snd-display ";fill 1 with 0: ~A" (maxamp s1)))
+ (fill! s1 0.3)
+ (if (fneq (maxamp s1) 0.3) (snd-display ";fill 1 with 0.3: ~A" (maxamp s1)))
+ (close-sound s1))
+
+ (let ((s1 (open-sound "2a.snd")))
+ (let ((s2 (copy s1)))
+ (if (not (sound? s2))
+ (snd-display ";copy sound 2a -> ~A" s2)
+ (begin
+ (if (not (= (srate s1) (srate s2))) (snd-display ";copy sounds srates 2: ~A ~A" (srate s1) (srate s2)))
+ (if (not (= (frames s1) (frames s2))) (snd-display ";copy sounds frames 2: ~A ~A" (frames s1) (frames s2)))
+ (if (not (= (chans s1) (chans s2) 2)) (snd-display ";copy sounds chans 2: ~A ~A" (chans s1) (chans s2)))
+ (let ((r10 (make-sampler 0 s1 0))
+ (r11 (make-sampler 0 s1 1))
+ (r20 (make-sampler 0 s2 0))
+ (r21 (make-sampler 0 s2 1))
+ (happy #t))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i (frames s1))))
+ (let ((v1 (r10))
+ (v2 (r20)))
+ (if (> (abs (- v1 v2)) .0001)
+ (begin
+ (set! happy #f)
+ (snd-display ";copied sound 2 (0) not equal? pos: ~A, ~A ~A" i v1 v2))))
+ (let ((v1 (r11))
+ (v2 (r21)))
+ (if (> (abs (- v1 v2)) .0001)
+ (begin
+ (set! happy #f)
+ (snd-display ";copied sound 2 (1) not equal? pos: ~A, ~A ~A" i v1 v2))))))
+ (close-sound s2))))
+ (fill! s1 0.0)
+ (if (fneq (maxamp s1) 0.0) (snd-display ";fill 2 with 0: ~A" (maxamp s1)))
+ (fill! s1 0.3)
+ (if (fneq (maxamp s1) 0.3) (snd-display ";fill 2 with 0.3: ~A" (maxamp s1)))
+ (close-sound s1))
+
+ (for-each close-sound (sounds))
+ (let ((snd (open-sound "oboe.snd")))
+ (make-selection 1000 2000 snd 0)
+ (if (not (selection?)) (snd-display ";make-selection for copy failed?"))
+ (copy (selection))
+ (let* ((r1 (make-sampler 1000 snd 0))
+ (snds (sounds))
+ (sel (if (equal? (car snds) snd) (cadr snds) (car snds)))
+ (r2 (make-sampler 0 sel 0))
+ (happy #t))
+ (if (equal? sel snd)
+ (snd-display ";very weird: ~A equal? ~A from ~A (~A ~A ~A)" sel snd snds (car snds) (cadr snds) (equal? (car snds) snd)))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i 1000)))
+ (let ((v1 (r1))
+ (v2 (r2)))
+ (if (> (abs (- v1 v2)) .0001)
+ (begin
+ (set! happy #f)
+ (snd-display ";copied selection not equal? pos: ~A, ~A ~A (~A ~A from ~A)" i v1 v2 sel snd snds)))))
+ (close-sound sel)
+ (if (not (selection?))
+ (snd-display ";copy selection unselected? ~A" (sounds))
+ (begin
+ (fill! (selection) 0.0)
+ (let ((r1 (make-sampler 1000 snd 0))
+ (happy #t))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i 1000)))
+ (let ((v1 (r1)))
+ (if (not (= v1 0.0))
+ (begin
+ (set! happy #f)
+ (snd-display ";fill! selection not 0.0? pos: ~A, ~A" i v1))))))
+ (revert-sound snd)
+ (if (not (selection?))
+ (snd-display ";revert-sound selection unselected?")
+ (begin
+ (fill! (selection) 0.3)
+ (let ((r1 (make-sampler 1000 snd 0))
+ (happy #t))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i 1000)))
+ (let ((v1 (r1)))
+ (if (not (= v1 0.3))
+ (begin
+ (set! happy #f)
+ (snd-display ";fill! selection not 0.3? pos: ~A, ~A" i v1)))))))))))
+ (for-each close-sound (sounds)))
+ (let ((snd (open-sound "oboe.snd")))
+ (make-selection 1000 2000 snd 0)
+ (if (not (selection?))
+ (snd-display ";make-selection failed?")
+ (let ((sel-max (maxamp (selection)))
+ (sel-len (length (selection))))
+ (let ((mx (car (selection->mix))))
+ (if (not (mix? mx))
+ (snd-display ";selection->mix: ~A" mx)
+ (let ((mx-rd (make-mix-sampler mx 0))
+ (snd-rd (make-sampler 1000 snd 0))
+ (orig-rd (make-sampler 1000 snd 0 1 0)))
+ (let ((happy #t))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i 1000)))
+ (let ((mx-val (mx-rd))
+ (snd-val (snd-rd))
+ (orig-val (orig-rd)))
+ (if (or (fneq mx-val snd-val)
+ (fneq snd-val orig-val))
+ (begin
+ (set! happy #f)
+ (snd-display ";selection->mix at ~A: ~A ~A ~A" (+ i 1000) mx-val snd-val orig-val))))))
+ (if (not (= (length mx) sel-len 1001)) (snd-display ";selection->mix mix length: ~A (~A)" (length mx) sel-len))
+ (if (fneq (maxamp mx) sel-max) (snd-display ";selection->mix maxamps: ~A ~A" (maxamp mx) sel-max)))))))
+ (for-each close-sound (sounds)))
+
+ (let ((snd (open-sound "2.snd")))
+ (set! (sync snd) 1)
+ ;; make-selection claims it follows the sync field
+ (make-selection 2000 3000 snd)
+ (if (not (selection?))
+ (snd-display ";make-selection (2) failed?")
+ (let ((sel-max (maxamp (selection)))
+ (sel-len (length (selection)))
+ (sel-chns (channels (selection))))
+ (if (not (= sel-chns 2)) (snd-display ";make-selection stereo syncd chans: ~A" sel-chns))
+ (if (not (= sel-len 1001)) (snd-display ";make-selection stereo length: ~A" sel-len))
+ (let* ((mx-list (selection->mix))
+ (mx0 (car mx-list))
+ (mx1 (cadr mx-list)))
+ (if (or (not (mix? mx0))
+ (not (mix? mx1)))
+ (snd-display ";selection->mix stereo: ~A ~A" mx0 mx1)
+ (let ((mx0-rd (make-mix-sampler mx0 0))
+ (mx1-rd (make-mix-sampler mx1 0))
+ (snd0-rd (make-sampler 2000 snd 0))
+ (snd1-rd (make-sampler 2000 snd 1))
+ (orig0-rd (make-sampler 2000 snd 0 1 0))
+ (orig1-rd (make-sampler 2000 snd 1 1 0)))
+ (let ((happy #t))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i 1000)))
+ (let ((mx0-val (mx0-rd))
+ (mx1-val (mx1-rd))
+ (snd0-val (snd0-rd))
+ (snd1-val (snd1-rd))
+ (orig0-val (orig0-rd))
+ (orig1-val (orig1-rd)))
+ (if (or (fneq mx0-val snd0-val)
+ (fneq snd0-val orig0-val))
+ (begin
+ (set! happy #f)
+ (snd-display ";selection->mix stereo 0 at ~A: ~A ~A ~A" (+ i 2000) mx0-val snd0-val orig0-val)))
+ (if (or (fneq mx1-val snd1-val)
+ (fneq snd1-val orig1-val))
+ (begin
+ (set! happy #f)
+ (snd-display ";selection->mix stereo 1 at ~A: ~A ~A ~A" (+ i 2000) mx1-val snd1-val orig1-val))))))))
+
+ (if (not (= (length mx0) (length mx1) sel-len 1001))
+ (snd-display ";selection->mix stereo mix length: ~A ~A (~A)" (length mx0) (length mx1) sel-len))
+ (if (fneq (max (maxamp mx0) (maxamp mx1)) sel-max)
+ (snd-display ";selection->mix stereo maxamps: ~A ~A ~A" (maxamp mx0) (maxamp mx1) sel-max)))))
+ (for-each close-sound (sounds)))
+
(clear-save-state-files)))
@@ -14161,8 +14367,6 @@ EDITS: 2
(snd-display ";apply-controls srate -1.0 samples: ~A ~A" (maxamp) (sample 9327)))
(if (fneq (speed-control ind) 1.0) (snd-display ";apply-controls -1.0 -> ~A?" (speed-control ind)))
- (if with-guile
- (begin
(add-hook! dac-hook (lambda (data)
(set! ctr (+ 1 ctr))
(if (>= ctr 3) (c-g!))))
@@ -14171,7 +14375,7 @@ EDITS: 2
(set! ctr 0)
(set! (speed-control) 1.5)
(apply-controls)
- (if (fneq (sample 28245) 0.0) (snd-display ";dac-hook stop apply-controls? ~A" (sample 28245)))
+; (if (fneq (sample 28245) 0.0) (snd-display ";dac-hook stop apply-controls? ~A" (sample 28245)))
(reset-hook! dac-hook)
(revert-sound)
(set! (speed-control) 1.5)
@@ -14199,9 +14403,10 @@ EDITS: 2
(lambda args args))))
(if (not (eq? (car tag) 'cannot-apply-controls))
(snd-display ";dac-hook: recursive attempt apply-controls: ~A" tag)))))
- (reset-hook! dac-hook)))
- (revert-sound)
- (close-sound ind))
+ (reset-hook! dac-hook)
+
+ (revert-sound)
+ (close-sound ind))
(let ((v1 (make-vct 32)))
(vct-map! v1
@@ -14227,6 +14432,17 @@ EDITS: 2
(if (not (vequal v0 (vct .1 .1 .3 .3 .3)))
(snd-display ";vct-add + offset: ~A" v0)))
+ ;; test local var gc protection in vct.h vct_to_vector
+ (let ((v1 (vct-map!
+ (make-vct 44100 0.0)
+ (make-oscil 1))))
+ (vct->vector v1)
+ (vct->vector v1)
+ (let ((vect (vct->vector v1)))
+ (vector->vct vect)
+ (vector->vct vect)
+ (set! v1 (vector->vct vect))))
+
;; a test of big vcts (needs 16 Gbytes):
(if (and (string? (getenv "HOSTNAME"))
(string=? (getenv "HOSTNAME") "fatty8"))
@@ -14391,17 +14607,16 @@ EDITS: 2
(if (not (equal? (color->list c1) (list 0.0 0.0 1.0)))
(snd-display ";color->list: ~A ~A?" c1 (color->list c1))))
(do ((i 0 (+ 1 i)))
- ((> i flag-colormap))
- (if (colormap? i)
- (let ((val (colormap-ref i 0))
- (true-val (list-ref (list '(0.0 0.0 0.0) '(0.0 0.0 0.0) '(0.0 0.0 0.0) '(0.0 1.0 1.0)
- '(0.0 0.0 7.01915007248035e-4) '(0.0 0.0 0.0) '(0.0 0.0 0.0)
- '(0.0 0.0 0.49999) '(1.0 0.0 0.0) '(1.0 0.0 0.0) '(0.0 0.0 1.0)
- '(1.0 0.0 1.0) '(0.0 0.500007629510948 0.4) '(1.0 0.0 0.0)
- '(1.0 0.0 0.0) '(0.0 0.0 0.0))
- i)))
- (if (not (feql val true-val))
- (snd-display ";colormap-ref ~A: ~A (~A)" i val true-val)))))
+ ((not (colormap? (integer->colormap i))))
+ (let ((val (colormap-ref (integer->colormap i) 0))
+ (true-val (list-ref (list '(0.0 0.0 0.0) '(0.0 0.0 0.0) '(0.0 0.0 0.0) '(0.0 1.0 1.0)
+ '(0.0 0.0 7.01915007248035e-4) '(0.0 0.0 0.0) '(0.0 0.0 0.0)
+ '(0.0 0.0 0.49999) '(1.0 0.0 0.0) '(1.0 0.0 0.0) '(0.0 0.0 1.0)
+ '(1.0 0.0 1.0) '(0.0 0.500007629510948 0.4) '(1.0 0.0 0.0)
+ '(1.0 0.0 0.0) '(0.0 0.0 1.0))
+ i)))
+ (if (not (feql val true-val))
+ (snd-display ";colormap-ref ~A: ~A (~A)" i val true-val))))
(catch #t ; might be undefined var as well as no-such-color
(lambda ()
(test-color
@@ -14460,6 +14675,9 @@ EDITS: 2
(set! (graph-color) white)
(close-sound ind)))
(lambda args args))
+
+ (if (not (= (length jet-colormap) (colormap-size)))
+ (snd-display ";jet-colormap length: ~A ~A" (length jet-colormap) (colormap-size)))
(for-each
(lambda (n err)
@@ -14480,10 +14698,20 @@ EDITS: 2
(* 29/24 x)
(+ (* 7/8 x) 1/8)))
(rgb (colormap-ref bone-colormap x))
+ (rgb1 (bone-colormap x))
(r1 (list-ref rgb 0))
(g1 (list-ref rgb 1))
- (b1 (list-ref rgb 2)))
- (if (and (< x (- 1.0 (/ 1.0 n))) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
+ (b1 (list-ref rgb 2))
+ (r2 (list-ref rgb1 0))
+ (g2 (list-ref rgb1 1))
+ (b2 (list-ref rgb1 2)))
+ (if (and (< x (- 1.0 (/ 1.0 n)))
+ (or (cfneq r r1)
+ (cfneq g g1)
+ (cfneq b b1)
+ (cfneq r2 r1)
+ (cfneq g2 g1)
+ (cfneq b2 b1)))
(snd-display ";bone ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}"
x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1)))))
@@ -14730,25 +14958,28 @@ EDITS: 2
(snd-display ";white colormap: ~A" (colormap-ref ind 0.5)))
(let ((tag (catch #t (lambda () (set! (colormap) ind)) (lambda args args))))
(if (or (eq? tag 'no-such-colormap)
- (not (= (colormap) ind)))
+ (not (equal? (colormap) ind))
+ (not (= (colormap->integer (colormap)) (colormap->integer ind))))
(snd-display ";colormap white: ~A ~A ~A" tag ind (colormap))))
(if (not (string=? (colormap-name ind) "white"))
(snd-display ";white colormap name: ~A" (colormap-name ind))))
-
- (let ((tag (catch #t (lambda () (delete-colormap 1234)) (lambda args (car args)))))
+
+ (let ((tag (catch #t (lambda () (delete-colormap (integer->colormap 1234))) (lambda args (car args)))))
(if (not (eq? tag 'no-such-colormap))
(snd-display ";delete-colormap 1234: ~A" tag)))
- (let ((tag (catch #t (lambda () (colormap-ref 1234 0.5)) (lambda args (car args)))))
+ (let ((tag (catch #t (lambda () (colormap-ref (integer->colormap 1234) 0.5)) (lambda args (car args)))))
(if (not (eq? tag 'no-such-colormap))
(snd-display ";colormap-ref 1234: ~A" tag)))
- (let ((tag (catch #t (lambda () (colormap-ref -1 0.5)) (lambda args (car args)))))
- (if (not (eq? tag 'no-such-colormap))
+ (let ((tag (catch #t (lambda () (colormap-ref (integer->colormap -1) 0.5)) (lambda args (car args)))))
+ (if (and (not (eq? tag 'no-such-colormap))
+ (not (eq? tag 'wrong-type-arg)))
(snd-display ";colormap-ref -1: ~A" tag)))
- (let ((tag (catch #t (lambda () (set! (colormap) 1234)) (lambda args (car args)))))
+ (let ((tag (catch #t (lambda () (set! (colormap) (integer->colormap 1234))) (lambda args (car args)))))
(if (not (eq? tag 'no-such-colormap))
(snd-display "; set colormap 1234: ~A" tag)))
- (let ((tag (catch #t (lambda () (set! (colormap) -1)) (lambda args (car args)))))
- (if (not (eq? tag 'no-such-colormap))
+ (let ((tag (catch #t (lambda () (set! (colormap) (integer->colormap -1))) (lambda args (car args)))))
+ (if (and (not (eq? tag 'no-such-colormap))
+ (not (eq? tag 'wrong-type-arg)))
(snd-display "; set colormap -1: ~A" tag)))
(let ((tag (catch #t (lambda () (colormap-ref copper-colormap 2.0)) (lambda args (car args)))))
(if (not (eq? tag 'out-of-range))
@@ -14812,13 +15043,14 @@ EDITS: 2
(snd-display ";delete-colormap ~A: ~A" pink-colormap (colormap? pink-colormap)))
(let ((tag (catch #t (lambda () (set! (colormap) pink-colormap)) (lambda args args))))
(if (or (not (eq? (car tag) 'no-such-colormap))
- (= (colormap) pink-colormap))
+ (equal? (colormap) pink-colormap))
(snd-display ";delete pink colormap: ~A ~A ~A" tag pink-colormap (colormap))))
-
+
(for-each
(lambda (n)
(set! (colormap-size) n)
- (do ((i 0 (+ 1 i))) ((= i 10))
+ (do ((i 0 (+ 1 i)))
+ ((= i 10))
(let* ((x (random 1.0))
(r (if (< x 4/5) (* 5/4 x) 1.0))
(g (* 4/5 x))
@@ -14850,7 +15082,7 @@ EDITS: 2
(if (not (provided? 'snd-bird.scm)) (load "bird.scm"))
(if (not (provided? 'snd-v.scm)) (load "v.scm"))
(if (not (provided? 'snd-numerics.scm)) (load "numerics.scm"))
-(if (not with-guile) (if (not (provided? 'snd-generators.scm)) (load "generators.scm")))
+(if (not (provided? 'snd-generators.scm)) (load "generators.scm"))
(def-clm-struct sa1 (freq 0.0 :type float) (coscar #f :type clm) (sincar #f :type clm) (dly #f :type clm) (hlb #f :type clm))
@@ -16822,7 +17054,9 @@ EDITS: 2
(if (not (= (mus-file-buffer-size) 128)) (snd-display ";mus-file-buffer-size: ~D?" (mus-file-buffer-size)))
(set! (mus-file-buffer-size) default-file-buffer-size)
- (if (not (= (mus-array-print-length) 8)) (snd-display ";mus-array-print-length: ~D?" (mus-array-print-length)))
+ (if (and (not (= (mus-array-print-length) 8))
+ (not (= (mus-array-print-length) 32)))
+ (snd-display ";mus-array-print-length: ~D?" (mus-array-print-length)))
(set! (mus-array-print-length) 32)
(if (not (= (mus-array-print-length) 32)) (snd-display ";set mus-array-print-length: ~D?" (mus-array-print-length)))
(set! (mus-array-print-length) 8)
@@ -20182,6 +20416,13 @@ EDITS: 2
(let ((fr (make-frame! 3 .1 .2 .3))
(fr1 (make-frame 3 .1 .2 .3)))
(if (not (equal? fr fr1)) (snd-display ";make-frame! (args): ~A ~A" fr fr1)))
+
+ (let ((fr (frame .1 .2 .3)))
+ (let ((fr1 (copy fr)))
+ (if (not (equal? fr fr1)) (snd-display ";copy frame: ~A ~A" fr fr1)))
+ (fill! fr 0.0)
+ (if (not (equal? fr (frame 0.0 0.0 0.0)))
+ (snd-display ";fill! frame 0.0: ~A" fr)))
(let* ((mx1 (make-mixer 2 1 2 3 4))
@@ -20224,6 +20465,13 @@ EDITS: 2
(snd-display ";make-scale (identity): ~A" mx1)))
(mus-reset mx1)
(if (fneq (mixer-ref mx1 0 0) 0.0) (snd-display ";reset mixer: ~A" mx1)))
+
+ (let ((mx (mixer .1 .2 .3 .4)))
+ (let ((mx1 (copy mx)))
+ (if (not (equal? mx mx1)) (snd-display ";mixer copy not equal? ~A ~A" mx mx1)))
+ (fill! mx 0.1)
+ (if (not (equal? mx (mixer .1 .1 .1 .1)))
+ (snd-display ";fill! mixer: ~A" mx)))
(let ((var (catch #t (lambda () (make-mixer 2 0.0 0.0 0.0 0.0 0.0)) (lambda args args))))
(if (not (eq? (car var) 'mus-error))
@@ -23311,6 +23559,8 @@ EDITS: 2
(if (fneq (vct-peak vals) .1)
(snd-display ";locsig to vct fm-violin peak: ~A" (vct-peak vals))))
+ ;; TODO: get vector with-sound output to work in run
+
(let ((vals (with-sound (:output (make-sound-data 2 4410))
(fm-violin 0 .1 440 .1 :degree 30))))
(let ((mxs (sound-data-maxamp vals)))
@@ -27413,6 +27663,7 @@ EDITS: 2
(delay-channel-mixes 200 100 ind 0)
(if (not (= (mix-position m2) 123)) (snd-display ";delay-channel mixes mix-position m2: ~A" (mix-position m2)))
(if (not (= (mix-position m1) 421)) (snd-display ";delay-channel-mixes mix-position m1: ~A" (mix-position m1)))
+ (check-mix-tags ind 0)
(close-sound ind))
;; check that current console is correct
@@ -28819,125 +29070,152 @@ EDITS: 2
)
(dismiss-all-dialogs)
- ;; pan-mix tests
- (let ((ind (new-sound "fmv.snd" mus-next mus-bshort 22050 1 "pan-mix tests")))
-
- (let ((id0 (car (pan-mix "1a.snd" 10000 '(0 0 1 1)))))
- (if (or (fneq (mix-amp id0) 1.0)
- (not (feql (mix-amp-env id0) '(0 1 1 0))))
- (snd-display ";pan-mix 1->1 2: ~A ~A" (mix-amp id0) (mix-amp-env id0)))
- (if (not (= (mix-position id0) 10000)) (snd-display ";pan-mix 1->1 pos 2: ~A" (mix-position id0)))
- (revert-sound ind))
-
- (let* ((ids (pan-mix "2a.snd" 100 '(0 0 1 1)))
- (id0 (car ids))
- (id1 (cadr ids)))
- (if (or (not (mix? id0)) (not (mix? id1)))
- (snd-display ";pan-mix 2->1: ~A ~A" id0 id1))
- (if (not (= (mix-position id0) (mix-position id1) 100))
- (snd-display ";pan-mix 2->1 pos: ~A ~A" (mix-position id0) (mix-position id1)))
- (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
- (snd-display ";pan-mix 2->1 mix amps 3: ~A ~A" (mix-amp id0) (mix-amp id1)))
- (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
- (snd-display ";pan-mix 2->1 ramp env: ~A" (mix-amp-env id0)))
- (revert-sound ind))
- (close-sound ind))
+ ;; pan-mix tests
+ (let ((ind (new-sound "fmv.snd" mus-next mus-bshort 22050 1 "pan-mix tests")))
+
+ (let ((id0 (car (pan-mix "1a.snd" 10000 '(0 0 1 1)))))
+ (if (or (fneq (mix-amp id0) 1.0)
+ (not (feql (mix-amp-env id0) '(0 1 1 0))))
+ (snd-display ";pan-mix 1->1 2: ~A ~A" (mix-amp id0) (mix-amp-env id0)))
+ (if (not (= (mix-position id0) 10000)) (snd-display ";pan-mix 1->1 pos 2: ~A" (mix-position id0)))
+ (revert-sound ind))
+
+ (let* ((ids (pan-mix "2a.snd" 100 '(0 0 1 1)))
+ (id0 (car ids))
+ (id1 (cadr ids)))
+ (if (or (not (mix? id0)) (not (mix? id1)))
+ (snd-display ";pan-mix 2->1: ~A ~A" id0 id1))
+ (if (not (= (mix-position id0) (mix-position id1) 100))
+ (snd-display ";pan-mix 2->1 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+ (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
+ (snd-display ";pan-mix 2->1 mix amps 3: ~A ~A" (mix-amp id0) (mix-amp id1)))
+ (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
+ (snd-display ";pan-mix 2->1 ramp env: ~A" (mix-amp-env id0)))
+ (revert-sound ind))
+ (close-sound ind))
+
+ (let ((ind (new-sound "fmv.snd" mus-next mus-bshort 22050 2 "pan-mix tests")))
+ (let* ((ids (pan-mix "1a.snd" 100 '(0 0 1 1 2 0)))
+ (id0 (car ids))
+ (id1 (cadr ids)))
+ (if (or (not (mix? id0)) (not (mix? id1)))
+ (snd-display ";pan-mix 1->2: ~A ~A" id0 id1))
+ (if (not (= (mix-position id0) (mix-position id1) 100))
+ (snd-display ";pan-mix 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+ (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
+ (snd-display ";pan-mix 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+ (if (not (feql (mix-amp-env id0) '(0 1 1 0 2 1)))
+ (snd-display ";pan-mix 1->2 env 0: ~A" (mix-amp-env id0)))
+ (if (not (feql (mix-amp-env id1) '(0 0 1 1 2 0)))
+ (snd-display ";pan-mix 1->2 env 1: ~A" (mix-amp-env id1)))
+ (revert-sound ind))
+
+ (let* ((ids (pan-mix "2a.snd" 100 '(0 0 1 1 2 0)))
+ (id0 (car ids))
+ (id1 (cadr ids))
+ (id2 (caddr ids))
+ (id3 (cadddr ids)))
- (let ((ind (new-sound "fmv.snd" mus-next mus-bshort 22050 2 "pan-mix tests")))
- (let* ((ids (pan-mix "1a.snd" 100 '(0 0 1 1 2 0)))
- (id0 (car ids))
- (id1 (cadr ids)))
- (if (or (not (mix? id0)) (not (mix? id1)))
- (snd-display ";pan-mix 1->2: ~A ~A" id0 id1))
- (if (not (= (mix-position id0) (mix-position id1) 100))
- (snd-display ";pan-mix 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
- (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
- (snd-display ";pan-mix 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
- (if (not (feql (mix-amp-env id0) '(0 1 1 0 2 1)))
- (snd-display ";pan-mix 1->2 env 0: ~A" (mix-amp-env id0)))
- (if (not (feql (mix-amp-env id1) '(0 0 1 1 2 0)))
- (snd-display ";pan-mix 1->2 env 1: ~A" (mix-amp-env id1)))
- (revert-sound ind))
-
- (let* ((ids (pan-mix "2a.snd" 100 '(0 0 1 1 2 0)))
- (id0 (car ids))
- (id1 (cadr ids))
- (id2 (caddr ids))
- (id3 (cadddr ids)))
-
- (if (or (not (mix? id0)) (not (mix? id1)) (not (mix? id2)) (not (mix? id3)))
- (snd-display ";pan-mix 2->2: ~A ~A ~A ~A" id0 id1 id2 id3))
- (if (not (= (mix-position id0) (mix-position id1) (mix-position id2) (mix-position id3) 100))
- (snd-display ";pan-mix 2->2 pos: ~A ~A ~A ~A" (mix-position id0) (mix-position id1) (mix-position id2) (mix-position id3)))
- (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
- (snd-display ";pan-mix 2->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
- (if (not (feql (mix-amp-env id0) '(0 1 1 0 2 1)))
- (snd-display ";pan-mix 2->2 env 0: ~A" (mix-amp-env id0)))
- (if (not (feql (mix-amp-env id1) '(0 0 1 1 2 0)))
- (snd-display ";pan-mix 2->2 env 1: ~A" (mix-amp-env id1)))
- (if (not (feql (mix-amp-env id2) '(0 1 1 0 2 1)))
- (snd-display ";pan-mix 2->2 env 2: ~A" (mix-amp-env id2)))
- (if (not (feql (mix-amp-env id3) '(0 0 1 1 2 0)))
- (snd-display ";pan-mix 2->2 env 3: ~A" (mix-amp-env id3)))
- (revert-sound ind))
- (close-sound ind))
-
- (let ((ind (new-sound "test.snd" mus-next mus-bshort 22050 2 "pan-mix-* tests" 1000)))
- (let* ((ids (pan-mix-vct (make-vct 100 .3) 100 '(0 0 1 1)))
- (id0 (car ids))
- (id1 (cadr ids)))
- (if (or (not (mix? id0)) (not (mix? id1)))
- (snd-display ";pan-mix-vct 1->2: ~A ~A" id0 id1))
- (if (not (= (mix-position id0) (mix-position id1) 100))
- (snd-display ";pan-mix-vct 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
- (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
- (snd-display ";pan-mix-vct 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
- (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
- (snd-display ";pan-mix-vct 1->2 env 0: ~A" (mix-amp-env id0)))
- (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
- (snd-display ";pan-mix-vct 1->2 env 1: ~A" (mix-amp-env id1)))
- (revert-sound ind))
-
- (let* ((reg (make-region 0 50 ind 0))
- (ids (pan-mix-region reg 100 '(0 0 1 1)))
- (id0 (car ids))
- (id1 (cadr ids)))
- (if (or (not (mix? id0)) (not (mix? id1)))
- (snd-display ";pan-mix-region 1->2: ~A ~A" id0 id1))
- (if (not (= (mix-position id0) (mix-position id1) 100))
- (snd-display ";pan-mix-region 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
- (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
- (snd-display ";pan-mix-region 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
- (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
- (snd-display ";pan-mix-region 1->2 env 0: ~A" (mix-amp-env id0)))
- (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
- (snd-display ";pan-mix-region 1->2 env 1: ~A" (mix-amp-env id1)))
- (revert-sound ind))
-
- (select-all)
- (let* ((ids (pan-mix-selection 100 '(0 0 1 1)))
- (id0 (car ids))
- (id1 (cadr ids)))
- (if (or (not (mix? id0)) (not (mix? id1)))
- (snd-display ";pan-mix-selection 1->2: ~A ~A" id0 id1))
- (if (not (= (mix-position id0) (mix-position id1) 100))
- (snd-display ";pan-mix-selection 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
- (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
- (snd-display ";pan-mix-selection 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
- (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
- (snd-display ";pan-mix-selection 1->2 env 0: ~A" (mix-amp-env id0)))
- (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
- (snd-display ";pan-mix-selection 1->2 env 1: ~A" (mix-amp-env id1)))
- (revert-sound ind))
- (close-sound ind))
-
+ (if (or (not (mix? id0)) (not (mix? id1)) (not (mix? id2)) (not (mix? id3)))
+ (snd-display ";pan-mix 2->2: ~A ~A ~A ~A" id0 id1 id2 id3))
+ (if (not (= (mix-position id0) (mix-position id1) (mix-position id2) (mix-position id3) 100))
+ (snd-display ";pan-mix 2->2 pos: ~A ~A ~A ~A" (mix-position id0) (mix-position id1) (mix-position id2) (mix-position id3)))
+ (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
+ (snd-display ";pan-mix 2->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+ (if (not (feql (mix-amp-env id0) '(0 1 1 0 2 1)))
+ (snd-display ";pan-mix 2->2 env 0: ~A" (mix-amp-env id0)))
+ (if (not (feql (mix-amp-env id1) '(0 0 1 1 2 0)))
+ (snd-display ";pan-mix 2->2 env 1: ~A" (mix-amp-env id1)))
+ (if (not (feql (mix-amp-env id2) '(0 1 1 0 2 1)))
+ (snd-display ";pan-mix 2->2 env 2: ~A" (mix-amp-env id2)))
+ (if (not (feql (mix-amp-env id3) '(0 0 1 1 2 0)))
+ (snd-display ";pan-mix 2->2 env 3: ~A" (mix-amp-env id3)))
+ (revert-sound ind))
+ (close-sound ind))
+
+ (let ((ind (new-sound "test.snd" mus-next mus-bshort 22050 2 "pan-mix-* tests" 1000)))
+ (let* ((ids (pan-mix-vct (make-vct 100 .3) 100 '(0 0 1 1)))
+ (id0 (car ids))
+ (id1 (cadr ids)))
+ (if (or (not (mix? id0)) (not (mix? id1)))
+ (snd-display ";pan-mix-vct 1->2: ~A ~A" id0 id1))
+ (if (not (= (mix-position id0) (mix-position id1) 100))
+ (snd-display ";pan-mix-vct 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+ (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
+ (snd-display ";pan-mix-vct 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+ (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
+ (snd-display ";pan-mix-vct 1->2 env 0: ~A" (mix-amp-env id0)))
+ (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
+ (snd-display ";pan-mix-vct 1->2 env 1: ~A" (mix-amp-env id1)))
+ (revert-sound ind))
+
+ (let* ((reg (make-region 0 50 ind 0))
+ (ids (pan-mix-region reg 100 '(0 0 1 1)))
+ (id0 (car ids))
+ (id1 (cadr ids)))
+ (if (or (not (mix? id0)) (not (mix? id1)))
+ (snd-display ";pan-mix-region 1->2: ~A ~A" id0 id1))
+ (if (not (= (mix-position id0) (mix-position id1) 100))
+ (snd-display ";pan-mix-region 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+ (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
+ (snd-display ";pan-mix-region 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+ (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
+ (snd-display ";pan-mix-region 1->2 env 0: ~A" (mix-amp-env id0)))
+ (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
+ (snd-display ";pan-mix-region 1->2 env 1: ~A" (mix-amp-env id1)))
+ (revert-sound ind))
+
+ (select-all)
+ (let* ((ids (pan-mix-selection 100 '(0 0 1 1)))
+ (id0 (car ids))
+ (id1 (cadr ids)))
+ (if (or (not (mix? id0)) (not (mix? id1)))
+ (snd-display ";pan-mix-selection 1->2: ~A ~A" id0 id1))
+ (if (not (= (mix-position id0) (mix-position id1) 100))
+ (snd-display ";pan-mix-selection 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+ (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
+ (snd-display ";pan-mix-selection 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+ (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
+ (snd-display ";pan-mix-selection 1->2 env 0: ~A" (mix-amp-env id0)))
+ (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
+ (snd-display ";pan-mix-selection 1->2 env 1: ~A" (mix-amp-env id1)))
+ (revert-sound ind))
+ (close-sound ind))
+
+ ;; copy mix
+ (let ((snd (new-sound "test.snd")))
+ (let ((v (make-vct 1000)))
+ (do ((i 0 (+ i 1)))
+ ((= i 1000))
+ (vct-set! v i (* i .001)))
+ (let ((mx (mix-vct v 0 snd 0)))
+ (let ((mx-copy (copy mx)))
+ (if (not (= (length mx) (length mx-copy)))
+ (snd-display ";copy mix lengths: ~A ~A" (length mx) (length mx-copy)))
+ (if (not (= (mix-position mx) (mix-position mx-copy)))
+ (snd-display ";copy mix positions: ~A ~A" (mix-position mx) (mix-position mx-copy)))
+ (set! (mix-position mx-copy) 2000)
+ (let ((rd1 (make-sampler 0))
+ (rd2 (make-sampler 2000))
+ (happy #t))
+ (do ((i 0 (+ i 1)))
+ ((or (not happy)
+ (= i 1000)))
+ (let ((x1 (rd1))
+ (x2 (rd2)))
+ (if (or (fneq x1 x2) (fneq x1 (* i .001)))
+ (begin
+ (set! happy #f)
+ (snd-display ";copy mix at ~A: ~A ~A ~A" i x1 x2 (* i .001))))))))))
+ (close-sound snd))
+
(let ((ind (make-waltz)))
;; mix.scm stuff...
(close-sound ind))
-
+
(let ((ind (make-bagatelle)))
(close-sound ind))
-
+
)))
@@ -29371,6 +29649,22 @@ EDITS: 2
))))
+ (let ((fd (open-sound "oboe.snd"))
+ (m1 (add-mark 1234)))
+ (set! (mark-name m1) "1234")
+ (set! (mark-sync m1) 1234)
+ (let ((m2 (copy m1)))
+ (if (not (mark? m2))
+ (snd-display "; copy mark: ~A?" m2)
+ (begin
+ (if (not (= (mark-sample m1) (mark-sample m2) 1234))
+ (snd-display ";copy mark sample: ~A ~A" (mark-sample m1) (mark-sample m2)))
+ (if (not (= (mark-sync m1) (mark-sync m2) 1234))
+ (snd-display ";copy mark sync: ~A ~A" (mark-sync m1) (mark-sync m2)))
+ (if (not (string=? (mark-name m2) "1234"))
+ (snd-display ";copy mark name: ~A?" (mark-name m2))))))
+ (close-sound fd))
+
(let* ((ind (open-sound "pistol.snd"))
(samp1 1834)
(samp2 8345)
@@ -29378,7 +29672,7 @@ EDITS: 2
(m2 (add-mark samp2)))
(set! (mark-sync m1) 123)
(set! (mark-sync m2) 100)
- (if (not (= (mark-sync-max) 123)) (snd-display ";mark-sync-max: ~A" (mark-sync-max)))
+ (if (not (= (mark-sync-max) 1234)) (snd-display ";mark-sync-max: ~A" (mark-sync-max)))
(src-sound -1)
(if (not (= (mark-sample m1) 39788))
(snd-display ";src -1 m1 -> ~A" (mark-sample m1)))
@@ -29481,9 +29775,12 @@ EDITS: 2
(let* ((ind (open-sound "oboe.snd"))
(m1 (add-mark 123 ind 0))
- (m2 (add-mark 234 ind 0)))
+ (m2 (add-mark 234 ind 0))
+ (sel #f))
(define-selection-via-marks m1 m2)
- (if (not (selection?))
+ (set! sel (selection))
+ (if (or (not (selection?))
+ (not (selection? sel)))
(snd-display ";define-selection-via-marks failed?")
(let ((mc (selection-members)))
(if (not (equal? mc (list (list ind 0)))) (snd-display ";selection-members after mark definition: ~A (should be '((~A 0)))" mc ind))
@@ -29500,6 +29797,8 @@ EDITS: 2
(if (not (= (selection-frames) 1001)) (snd-display ";selection-frames 1001: ~A" (selection-frames)))))
(set! (selection-member? #t) #f)
(if (selection?) (snd-display ";can't clear selection via selection-member?"))
+ (if (selection) (snd-display ";(inactive) selection returns: ~A" (selection)))
+ (if (selection? sel) (snd-display ";(obsolete) selection returns: ~A" (selection? sel)))
(set! (selection-member? ind 0) #t)
(set! (selection-position ind 0) 2000)
(set! (selection-frames ind 0) 1234)
@@ -32157,7 +32456,10 @@ EDITS: 2
(save-state "s61.scm")
(for-each close-sound (sounds))
(for-each forget-region (regions))
- (load (string-append cwd "s61.scm"))
+ (catch #t
+ (lambda ()
+ (load (string-append cwd "s61.scm")))
+ (lambda args args))
(if (not (= (length (sounds)) files))
(snd-display ";save state restart from ~A to ~A sounds?" files (length (sounds))))
(set! open-files (sounds))))
@@ -32684,14 +32986,16 @@ EDITS: 2
((= j steps))
(vct-set! v (+ j bin) (+ step (vct-ref v (+ j bin)))))))))))))
(set! (x-bounds) '(.1 .2))
- (set! (transform-type) graph-once)
+ (set! (transform-type) fourier-transform)
(set! (x-bounds) '(.1 .2))
(add-hook! lisp-graph-hook display-energy)
(reset-hook! graph-hook)
- (add-hook! graph-hook display-correlation)
- (set! (x-bounds) '(.1 .12))
- (set! (x-bounds) '(.1 .2))
- (remove-hook! graph-hook display-correlation)
+ (if (= (channels) 2)
+ (begin
+ (add-hook! graph-hook display-correlation)
+ (set! (x-bounds) '(.1 .12))
+ (set! (x-bounds) '(.1 .2))
+ (remove-hook! graph-hook display-correlation)))
(set! (lisp-graph?) #f)
(map-chan
(let ((sum-of-squares 0.0)
@@ -32840,7 +33144,7 @@ EDITS: 2
(list 'fft-log-magnitude fft-log-magnitude #f #f #t)
(list 'fft-with-phases fft-with-phases #f #f #t)
(list 'transform-size transform-size #f 16 (if (<= tests 10) 4096 128))
- (list 'transform-graph-type transform-graph-type #f 0 2)
+ (list 'transform-graph-type transform-graph-type #f graph-once graph-as-spectrogram)
(list 'fft-window fft-window #f 0 dolph-chebyshev-window)
(list 'transform-graph? transform-graph? #t #f #t)
(list 'filter-control-in-dB filter-control-in-dB #t #f #t)
@@ -32891,7 +33195,6 @@ EDITS: 2
(list 'speed-control-style speed-control-style #f 0 2)
(list 'speed-control-tones speed-control-tones #f 2 100)
(list 'sync sync #t 0 5)
- (list 'transform-type transform-type #f fourier-transform (if (<= tests 10) 6 3))
(list 'with-verbose-cursor with-verbose-cursor #f #f #t)
(list 'wavelet-type wavelet-type #f 0 10)
(list 'time-graph? time-graph? #t #f #t)
@@ -32901,7 +33204,7 @@ EDITS: 2
(list 'zero-pad zero-pad #f 0 2)
(list 'zoom-focus-style zoom-focus-style #f 0 3))))
- (if (not (= (transform-type) fourier-transform))
+ (if (not (equal? (transform-type) fourier-transform))
(begin
(set! (transform-graph? #t #t) #f)
(set! (transform-size) (min (transform-size) 128))))
@@ -34725,7 +35028,7 @@ EDITS: 2
(vc (vector .1 .2 .3 .4))
(lst (list 1 2 3 4 5))
(sd (make-sound-data 1 10))
- (str "oboe.snd")
+ (str "pistol.snd") ; can't use oboe.snd since we messed with mus-sound-maxamp above
(fr (frame .1 .2)))
(let ((mxv (mix-vct v 1000))
(reg (make-region 0 900))
@@ -34741,7 +35044,7 @@ EDITS: 2
(if (fneq (maxamp v) .3) (snd-display ";maxamp of vct: ~A" (maxamp v)))
(if (fneq (maxamp vc) .4) (snd-display ";maxamp of vector: ~A" (maxamp vc)))
(if (fneq (maxamp lst) 5.0) (snd-display ";maxamp of list: ~A" (maxamp lst)))
- (if (fneq (maxamp str) .14724) (snd-display ";maxamp of string: ~A" (maxamp str)))
+ (if (fneq (maxamp str) .49267) (snd-display ";maxamp of string: ~A" (maxamp str)))
(if (fneq (maxamp sd) 0.1) (snd-display ";maxamp of sound-data: ~A" (maxamp sd)))
(if (fneq (maxamp fr) .2) (snd-display ";maxamp of frame: ~A" (maxamp fr)))
(if (fneq (maxamp mxv) .3) (snd-display ";maxamp of mix: ~A" (maxamp mxv)))
@@ -35364,7 +35667,6 @@ EDITS: 2
(lambda () (mix-channel "pistol.snd" -1 123 oboe))
(lambda () (insert-channel "pistol.snd" -1 123 oboe))
(lambda () (reverse-channel -1 123 oboe))
- (lambda () (play-channel -1 123 oboe))
(lambda () (scale-sound-by 2.0 -1 123 oboe))
(lambda () (env-sound '(0 0 1 1) -1 123 oboe))
(lambda () (set-samples -1 123 (make-vct 3) oboe))
@@ -35373,7 +35675,7 @@ EDITS: 2
(lambda () (ptree-channel (lambda (y) (+ y .1)) -1 123 oboe)))
(list
"scale-channel" "env-channel" "clm-channel" "vct->channel" "smooth-channel" "pad-channel" "src-channel"
- "mix-channel" "insert-channel" "reverse-channel" "play-channel"
+ "mix-channel" "insert-channel" "reverse-channel"
"scale-sound-by" "env-sound" "set-samples" "smooth-sound" "insert-silence" "ptree-channel"))
(scale-channel 2.0 12345678 123 oboe)
@@ -43272,8 +43574,8 @@ EDITS: 1
(delete-transform ftype)
(if (transform? ftype) (snd-display ";transform deleted: ~A" ftype))
(if (transform? -1) (snd-display ";transform? -1"))
- (if (transform? 123) (snd-display ";transform? 123"))
- (if (not (= (transform-type ind 0) fourier-transform))
+ (if (transform? (integer->transform 123)) (snd-display ";transform? 123"))
+ (if (not (equal? (transform-type ind 0) fourier-transform))
(snd-display ";after delete-transform ~A -> ~A" ftype (transform-type ind 0)))
(close-sound ind))
@@ -43475,7 +43777,7 @@ EDITS: 1
(force-event)))))
(lambda args args))
(let ((old-colormap (colormap)))
- (set! (colormap) 0) ; black-and-white
+ (set! (colormap) black-and-white-colormap)
(update-transform-graph)
(set! (transform-graph-type ind1 0) graph-as-spectrogram)
(update-transform-graph)
@@ -43834,7 +44136,6 @@ EDITS: 1
(periodogram 256)
(if (not (lisp-graph? ind)) (snd-display ";periodogram not graphed?"))
(close-sound ind))
-
))
(do ((i 0 (+ i 1)))
@@ -43970,9 +44271,6 @@ EDITS: 1
(list new-low-data new-high-data) snd chn copy-context left-bin right-bin)
(set! (foreground-color snd chn) old-color))))))))
- (define apropos-cs "(guile-user): close-sound #<primitive-procedure close-sound>
-")
-
(define show-hiho
;; show a red "hiho" in the helvetica bold font on a gray background
(lambda (snd chn)
@@ -44253,7 +44551,7 @@ EDITS: 1
(if (fneq (sample 20) -.992) (snd-display ";scale-to 1.0 byte (20): ~A" (sample 10)))
(close-sound ind))
- (set! (transform-graph-type) 0)
+ (set! (transform-graph-type) graph-once)
(set! (fft-window) 6)
(set! (show-y-zero) #f)
(set! (show-transform-peaks) #f)
@@ -44421,7 +44719,6 @@ EDITS: 1
(list min-dB 'min-dB ind-1 ind-2 -100.0 (lambda (a b) (< (abs (- a b)) .01)) feql #t #t)
(list x-position-slider 'x-position-slider ind-1 ind-2 .1 (lambda (a b) (< (abs (- a b)) .01)) feql #t #f)
- (list maxamp 'maxamp ind-1 ind-2 1.0 (lambda (a b) (< (abs (- a b)) .01)) feql #t #f)
(list y-position-slider 'y-position-slider ind-1 ind-2 0.5 (lambda (a b) (< (abs (- a b)) .01)) feql #t #f)
(list x-zoom-slider 'x-zoom-slider ind-1 ind-2 0.2 (lambda (a b) (< (abs (- a b)) .01)) feql #t #f)
(list y-zoom-slider 'y-zoom-slider ind-1 ind-2 0.2 (lambda (a b) (< (abs (- a b)) .01)) feql #t #f)
@@ -44450,7 +44747,7 @@ EDITS: 1
(list transform-size 'transform-size ind-1 ind-2 64 = equal? #t #t)
(list transform-graph-type 'transform-graph-type ind-1 ind-2 1 = equal? #t #t)
(list fft-window 'fft-window ind-1 ind-2 1 = equal? #t #t)
- (list transform-type 'transform-type ind-1 ind-2 1 = equal? #t #t)
+ ; (list transform-type 'transform-type ind-1 ind-2 1 equal? equal? #t #t)
(list transform-normalization 'transform-normalization ind-1 ind-2 2 = equal? #t #t)
(list max-transform-peaks 'max-transform-peaks ind-1 ind-2 10 = equal? #t #t)
(list dot-size 'dot-size ind-1 ind-2 10 = equal? #t #t)
@@ -44783,7 +45080,6 @@ EDITS: 1
(if (fneq diff 0.0) (snd-display ";arr->file->array overall max diff: ~A" diff))))
;; now clear sono bins if possible
- ; (set! (colormap) 1)
(set! (colormap-size) 16)
(set! (transform-size ind 0) 8)
(set! (transform-graph-type ind 0) graph-as-sonogram)
@@ -50255,29 +50551,6 @@ EDITS: 1
(set! ts (cons (list "jcrev " (hundred t0) (hundred t1) (inexact->exact (round (safe-divide t0 t1)))) ts))
(close-sound ind))
(snd-display "~{ ~A~%~}~%" ts))
-
- ;Guile timings:
- ; (osc+env 144 25 6)
- ; (vct-ref 204 18 11)
- ; (let if 134 15 9)
- ; (abs sin 121 17 7)
- ; (-1 82 11 7)
- ; (*2 71 12 6)
- ; (jcrev 165 22 8)
- ; (expsnd 65 8 8)
- ; (fm vln 131 18 7)
- ;s7 20-Nov-08:
- ; ("osc+env" 261 16 16)
- ; ("vct-ref" 259 9 27)
- ; ("let if " 252 10 24)
- ; ("abs sin" 161 13 12)
- ; ("-1 " 122 8 16)
- ; ("*2 " 129 6 20)
- ; ("jcrev " 233 13 18)
- ; ("expsnd " 101 7 15)
- ; ("fm vln " 274 13 22)
-
-
(if with-gui
(let* ((osc (make-oscil 440))
(vi (make-vector 2 1))
@@ -53074,7 +53347,6 @@ EDITS: 1
;; since we only catch 'mus-error and 'with-sound-interrupt above, any other error
;; closes *output* and returns to the top-level -- are there languishing threads?
;; Need a way outside with-sound to see what threads are out there.
- ;; Guile: all-threads and current-thread, thread-exited?
(define (bad-ins start)
(c-g!))
@@ -61120,7 +61392,6 @@ EDITS: 1
(list gtk_check_menu_item_new GTK_IS_CHECK_MENU_ITEM 'GTK_IS_CHECK_MENU_ITEM)
(list (lambda () (gtk_color_selection_dialog_new "hi")) GTK_IS_COLOR_SELECTION_DIALOG 'GTK_IS_COLOR_SELECTION_DIALOG)
(list gtk_color_selection_new GTK_IS_COLOR_SELECTION 'GTK_IS_COLOR_SELECTION)
- (list gtk_curve_new GTK_IS_CURVE 'GTK_IS_CURVE)
(list gtk_dialog_new GTK_IS_DIALOG 'GTK_IS_DIALOG)
(list gtk_drawing_area_new GTK_IS_DRAWING_AREA 'GTK_IS_DRAWING_AREA)
(list gtk_entry_new GTK_IS_ENTRY 'GTK_IS_ENTRY)
@@ -61129,7 +61400,6 @@ EDITS: 1
(list gtk_font_selection_new GTK_IS_FONT_SELECTION 'GTK_IS_FONT_SELECTION)
(list (lambda () (gtk_font_selection_dialog_new "hi")) GTK_IS_FONT_SELECTION_DIALOG 'GTK_IS_FONT_SELECTION_DIALOG)
(list (lambda () (gtk_frame_new "hi")) GTK_IS_FRAME 'GTK_IS_FRAME)
- (list gtk_gamma_curve_new GTK_IS_GAMMA_CURVE 'GTK_IS_GAMMA_CURVE)
(list gtk_handle_box_new GTK_IS_HANDLE_BOX 'GTK_IS_HANDLE_BOX)
(list gtk_hbutton_box_new GTK_IS_HBUTTON_BOX 'GTK_IS_HBUTTON_BOX)
(list (lambda () (gtk_hbox_new #f 0)) GTK_IS_HBOX 'GTK_IS_HBOX)
@@ -61141,7 +61411,6 @@ EDITS: 1
(list gtk_image_menu_item_new GTK_IS_IMAGE_MENU_ITEM 'GTK_IS_IMAGE_MENU_ITEM)
(list gtk_im_context_simple_new GTK_IS_IM_CONTEXT_SIMPLE 'GTK_IS_IM_CONTEXT_SIMPLE)
(list gtk_im_multicontext_new GTK_IS_IM_MULTICONTEXT 'GTK_IS_IM_MULTICONTEXT)
- (list gtk_input_dialog_new GTK_IS_INPUT_DIALOG 'GTK_IS_INPUT_DIALGO)
(list gtk_invisible_new GTK_IS_INVISIBLE 'GTK_IS_INVISIBLE)
(list (lambda () (gtk_label_new "hi")) GTK_IS_LABEL 'GTK_IS_LABEL)
(list gtk_menu_bar_new GTK_IS_MENU_BAR 'GTK_IS_MENU_BAR)
@@ -61316,12 +61585,12 @@ EDITS: 1
(if (not (= _GtkReliefStyle GTK_RELIEF_NORMAL)) (snd-display ";button relief: ~A" _GtkReliefStyle))
(let ((align (gtk_button_get_alignment _GtkButton_)))
(if (or (fneq (car align) 0.5) (fneq (cadr align) 0.5)) (snd-display ";button align: ~A" align)))
- ;; presumably these care explicit callbacks
- (gtk_button_pressed _GtkButton_)
- (gtk_button_released _GtkButton_)
- (gtk_button_clicked _GtkButton_)
- (gtk_button_enter _GtkButton_)
- (gtk_button_leave _GtkButton_)
+ ;; presumably these are explicit callbacks (out 2.19)
+ ;; (gtk_button_pressed _GtkButton_)
+ ;; (gtk_button_released _GtkButton_)
+ ;; (gtk_button_clicked _GtkButton_)
+ ;; (gtk_button_enter _GtkButton_)
+ ;; (gtk_button_leave _GtkButton_)
(gtk_button_set_relief _GtkButton_ GTK_RELIEF_NONE)
(gtk_button_set_label _GtkButton_ "label")
(gtk_button_set_use_underline _GtkButton_ #t)
@@ -61454,14 +61723,6 @@ EDITS: 1
(for-each
(lambda (type)
- (let* ((arr (list->c-array '(1.0 2.0 3.0) type))
- (lst (c-array->list arr 3)))
- (if (not (feql lst '(1.0 2.0 3.0)))
- (snd-display ";~A c-array->list not invertible?: ~A ~A" type arr lst))))
- (list "gfloat*"))
-
- (for-each
- (lambda (type)
(let* ((arr (list->c-array '(1 2 3) type))
(lst (c-array->list arr 3)))
(if (not (equal? lst '(1 2 3)))
@@ -61481,15 +61742,6 @@ EDITS: 1
(snd-display ";~A c-array->list not invertible?: ~A ~A" type arr lst))))
(list "char**" "gchar**"))
- (let ((_GtkCurve_ (GTK_CURVE (gtk_curve_new))))
- (gtk_curve_reset _GtkCurve_)
- (gtk_curve_set_gamma _GtkCurve_ 0.5)
- (gtk_curve_set_curve_type _GtkCurve_ GTK_CURVE_TYPE_SPLINE)
- (let ((vect (list->c-array (list 0.0 1.0) "gfloat*")))
- (gtk_curve_set_vector _GtkCurve_ 2 vect)
- (gtk_curve_get_vector _GtkCurve_ 2 vect) ; returns NaNs because the widget isn't actually allocated
- (gtk_curve_set_range _GtkCurve_ 0.0 1.0 0.0 1.0)))
-
(let* ((_GdkRegion_ (gdk_region_new))
(_GdkRegion1_ (gdk_region_copy _GdkRegion_))
(_GdkRectangle_ (GdkRectangle 0 0 10 10))
@@ -62040,9 +62292,9 @@ EDITS: 1
(gtk_notebook_set_scrollable _GtkNotebook_ #t)
(gtk_notebook_set_tab_label_text _GtkNotebook_ page "yow")
(gtk_notebook_reorder_child _GtkNotebook_ _GtkWidget_ 0)
- (gtk_notebook_set_tab_label_packing _GtkNotebook_ page #f #f GTK_PACK_START)
- (let ((vals (gtk_notebook_query_tab_label_packing _GtkNotebook_ page)))
- (if (not (equal? vals (list #f #f GTK_PACK_START))) (snd-display ";notebook tab pack: ~A" vals)))
+;; (gtk_notebook_set_tab_label_packing _GtkNotebook_ page #f #f GTK_PACK_START)
+;; (let ((vals (gtk_notebook_query_tab_label_packing _GtkNotebook_ page)))
+;; (if (not (equal? vals (list #f #f GTK_PACK_START))) (snd-display ";notebook tab pack: ~A" vals)))
(gtk_notebook_set_tab_label _GtkNotebook_ page (gtk_label_new "ho")))
(let* ((_GtkHandleBox_ (GTK_HANDLE_BOX (gtk_handle_box_new)))
@@ -63708,29 +63960,29 @@ EDITS: 1
GTK_CELL_RENDERER GTK_CELL_RENDERER_COMBO GTK_CELL_RENDERER_PIXBUF GTK_CELL_RENDERER_PROGRESS GTK_CELL_RENDERER_TEXT
GTK_CELL_RENDERER_TOGGLE GTK_CELL_VIEW GTK_CHECK_BUTTON GTK_CHECK_MENU_ITEM GTK_CLIPBOARD
GTK_COLOR_BUTTON GTK_COLOR_SELECTION GTK_COLOR_SELECTION_DIALOG GTK_COMBO_BOX GTK_COMBO_BOX_ENTRY
- GTK_CONTAINER GTK_CURVE GTK_DIALOG GTK_DRAWING_AREA GTK_EDITABLE
+ GTK_CONTAINER GTK_DIALOG GTK_DRAWING_AREA GTK_EDITABLE
GTK_ENTRY GTK_ENTRY_COMPLETION GTK_EVENT_BOX GTK_EXPANDER GTK_FILE_CHOOSER
GTK_FILE_CHOOSER_BUTTON GTK_FILE_CHOOSER_DIALOG GTK_FILE_CHOOSER_WIDGET GTK_FILE_FILTER ;GTK_FILE_SELECTION
GTK_FIXED GTK_FONT_BUTTON GTK_FONT_SELECTION GTK_FONT_SELECTION_DIALOG GTK_FRAME
- GTK_GAMMA_CURVE GTK_HANDLE_BOX GTK_HBOX GTK_HBUTTON_BOX GTK_HPANED
+ GTK_HANDLE_BOX GTK_HBOX GTK_HBUTTON_BOX GTK_HPANED
GTK_HRULER GTK_HSCALE GTK_HSCROLLBAR GTK_HSEPARATOR GTK_ICON_FACTORY
GTK_ICON_THEME GTK_ICON_VIEW GTK_IMAGE GTK_IMAGE_MENU_ITEM GTK_IM_CONTEXT
- GTK_IM_CONTEXT_SIMPLE GTK_IM_MULTICONTEXT GTK_INPUT_DIALOG GTK_INVISIBLE GTK_IS_ABOUT_DIALOG
+ GTK_IM_CONTEXT_SIMPLE GTK_IM_MULTICONTEXT GTK_INVISIBLE GTK_IS_ABOUT_DIALOG
GTK_IS_ACCEL_GROUP GTK_IS_ACCEL_LABEL GTK_IS_ACCEL_MAP GTK_IS_ACCESSIBLE GTK_IS_ACTION
GTK_IS_ACTION_GROUP GTK_IS_ADJUSTMENT GTK_IS_ALIGNMENT GTK_IS_ARROW GTK_IS_ASPECT_FRAME
GTK_IS_BIN GTK_IS_BOX GTK_IS_BUTTON GTK_IS_BUTTON_BOX GTK_IS_CALENDAR
GTK_IS_CELL_EDITABLE GTK_IS_CELL_LAYOUT GTK_IS_CELL_RENDERER GTK_IS_CELL_RENDERER_COMBO GTK_IS_CELL_RENDERER_PIXBUF
GTK_IS_CELL_RENDERER_PROGRESS GTK_IS_CELL_RENDERER_TEXT GTK_IS_CELL_RENDERER_TOGGLE GTK_IS_CELL_VIEW GTK_IS_CHECK_BUTTON
GTK_IS_CHECK_MENU_ITEM GTK_IS_CLIPBOARD GTK_IS_COLOR_BUTTON GTK_IS_COLOR_SELECTION GTK_IS_COLOR_SELECTION_DIALOG
- GTK_IS_COMBO_BOX GTK_IS_COMBO_BOX_ENTRY GTK_IS_CONTAINER GTK_IS_CURVE GTK_IS_DIALOG
+ GTK_IS_COMBO_BOX GTK_IS_COMBO_BOX_ENTRY GTK_IS_CONTAINER GTK_IS_DIALOG
GTK_IS_DRAWING_AREA GTK_IS_EDITABLE GTK_IS_ENTRY GTK_IS_ENTRY_COMPLETION GTK_IS_EVENT_BOX
GTK_IS_EXPANDER GTK_IS_FILE_CHOOSER GTK_IS_FILE_CHOOSER_BUTTON GTK_IS_FILE_CHOOSER_DIALOG GTK_IS_FILE_CHOOSER_WIDGET
GTK_IS_FILE_FILTER ;GTK_IS_FILE_SELECTION
GTK_IS_FIXED GTK_IS_FONT_BUTTON GTK_IS_FONT_SELECTION
- GTK_IS_FONT_SELECTION_DIALOG GTK_IS_FRAME GTK_IS_GAMMA_CURVE GTK_IS_HANDLE_BOX GTK_IS_HBOX
+ GTK_IS_FONT_SELECTION_DIALOG GTK_IS_FRAME GTK_IS_HANDLE_BOX GTK_IS_HBOX
GTK_IS_HBUTTON_BOX GTK_IS_HPANED GTK_IS_HRULER GTK_IS_HSCALE GTK_IS_HSCROLLBAR
GTK_IS_HSEPARATOR GTK_IS_ICON_FACTORY GTK_IS_ICON_THEME GTK_IS_ICON_VIEW GTK_IS_IMAGE
- GTK_IS_IMAGE_MENU_ITEM GTK_IS_IM_CONTEXT GTK_IS_IM_CONTEXT_SIMPLE GTK_IS_IM_MULTICONTEXT GTK_IS_INPUT_DIALOG
+ GTK_IS_IMAGE_MENU_ITEM GTK_IS_IM_CONTEXT GTK_IS_IM_CONTEXT_SIMPLE GTK_IS_IM_MULTICONTEXT
GTK_IS_INVISIBLE GTK_IS_ITEM GTK_IS_LABEL GTK_IS_LAYOUT GTK_IS_LIST_STORE
GTK_IS_MENU GTK_IS_MENU_BAR GTK_IS_MENU_ITEM GTK_IS_MENU_SHELL GTK_IS_MENU_TOOL_BUTTON
GTK_IS_MISC GTK_IS_NOTEBOOK GTK_IS_OBJECT GTK_IS_PANED
@@ -63906,10 +64158,10 @@ EDITS: 1
gtk_border_free gtk_box_get_homogeneous gtk_box_get_spacing
gtk_box_pack_end gtk_box_pack_start gtk_box_query_child_packing
gtk_box_reorder_child gtk_box_set_child_packing gtk_box_set_homogeneous gtk_box_set_spacing gtk_button_box_get_child_secondary
- gtk_button_box_get_layout gtk_button_box_set_child_secondary gtk_button_box_set_layout gtk_button_clicked
- gtk_button_enter gtk_button_get_alignment gtk_button_get_focus_on_click gtk_button_get_image gtk_button_get_label
- gtk_button_get_relief gtk_button_get_use_stock gtk_button_get_use_underline gtk_button_leave
- gtk_button_new gtk_button_new_from_stock gtk_button_new_with_mnemonic gtk_button_pressed gtk_button_released
+ gtk_button_box_get_layout gtk_button_box_set_child_secondary gtk_button_box_set_layout
+ gtk_button_get_alignment gtk_button_get_focus_on_click gtk_button_get_image gtk_button_get_label
+ gtk_button_get_relief gtk_button_get_use_stock gtk_button_get_use_underline
+ gtk_button_new gtk_button_new_from_stock gtk_button_new_with_mnemonic
gtk_button_set_alignment gtk_button_set_focus_on_click gtk_button_set_image gtk_button_set_label gtk_button_set_relief
gtk_button_set_use_stock gtk_button_set_use_underline gtk_calendar_clear_marks gtk_calendar_get_date
gtk_calendar_get_display_options gtk_calendar_mark_day gtk_calendar_new gtk_calendar_select_day
@@ -63961,8 +64213,7 @@ EDITS: 1
gtk_combo_box_set_model gtk_combo_box_set_row_separator_func gtk_combo_box_set_row_span_column gtk_combo_box_set_wrap_width gtk_container_add
gtk_container_check_resize gtk_container_foreach gtk_container_get_border_width gtk_container_get_children gtk_container_get_resize_mode
gtk_container_remove gtk_container_set_border_width gtk_container_set_resize_mode
- gtk_curve_get_vector gtk_curve_new gtk_curve_reset gtk_curve_set_curve_type gtk_curve_set_gamma
- gtk_curve_set_range gtk_curve_set_vector gtk_dialog_add_action_widget gtk_dialog_add_button gtk_dialog_add_buttons
+ gtk_dialog_add_action_widget gtk_dialog_add_button gtk_dialog_add_buttons
gtk_dialog_get_has_separator gtk_dialog_new gtk_dialog_new_with_buttons gtk_dialog_response
gtk_dialog_run gtk_dialog_set_alternative_button_order_from_array gtk_dialog_set_default_response
gtk_dialog_set_has_separator gtk_dialog_set_response_sensitive
@@ -64028,7 +64279,7 @@ EDITS: 1
gtk_font_selection_new ;gtk_font_selection_set_font_name
gtk_font_selection_set_preview_text gtk_frame_get_label gtk_frame_get_label_align gtk_frame_get_label_widget gtk_frame_get_shadow_type
gtk_frame_new gtk_frame_set_label gtk_frame_set_label_align gtk_frame_set_label_widget
- gtk_frame_set_shadow_type gtk_gamma_curve_new gtk_gc_get gtk_gc_release
+ gtk_frame_set_shadow_type gtk_gc_get gtk_gc_release
gtk_get_current_event gtk_get_current_event_state gtk_get_current_event_time gtk_get_default_language gtk_get_event_widget
gtk_grab_add gtk_grab_get_current gtk_grab_remove gtk_handle_box_get_handle_position gtk_handle_box_get_shadow_type
gtk_handle_box_get_snap_edge gtk_handle_box_new gtk_handle_box_set_handle_position gtk_handle_box_set_shadow_type
@@ -64073,7 +64324,7 @@ EDITS: 1
gtk_image_new_from_file gtk_image_new_from_icon_name gtk_image_new_from_icon_set gtk_image_new_from_image gtk_image_new_from_pixbuf
gtk_image_new_from_pixmap gtk_image_new_from_stock gtk_image_set_from_animation gtk_image_set_from_file gtk_image_set_from_icon_name
gtk_image_set_from_icon_set gtk_image_set_from_image gtk_image_set_from_pixbuf gtk_image_set_from_pixmap gtk_image_set_from_stock
- gtk_image_set_pixel_size gtk_input_dialog_new gtk_invisible_new
+ gtk_image_set_pixel_size gtk_invisible_new
gtk_item_deselect gtk_item_select gtk_item_toggle gtk_label_get_angle
gtk_label_get_attributes gtk_label_get_ellipsize gtk_label_get_justify gtk_label_get_label gtk_label_get_layout
gtk_label_get_layout_offsets gtk_label_get_line_wrap gtk_label_get_mnemonic_keyval gtk_label_get_mnemonic_widget gtk_label_get_selectable
@@ -64105,9 +64356,9 @@ EDITS: 1
gtk_notebook_get_show_border gtk_notebook_get_show_tabs gtk_notebook_get_tab_label gtk_notebook_get_tab_label_text gtk_notebook_get_tab_pos
gtk_notebook_insert_page gtk_notebook_insert_page_menu gtk_notebook_new gtk_notebook_next_page
gtk_notebook_page_num gtk_notebook_popup_disable gtk_notebook_popup_enable gtk_notebook_prepend_page gtk_notebook_prepend_page_menu
- gtk_notebook_prev_page gtk_notebook_query_tab_label_packing gtk_notebook_remove_page gtk_notebook_reorder_child gtk_notebook_set_current_page
+ gtk_notebook_prev_page gtk_notebook_remove_page gtk_notebook_reorder_child gtk_notebook_set_current_page
gtk_notebook_set_menu_label gtk_notebook_set_menu_label_text gtk_notebook_set_scrollable gtk_notebook_set_show_border gtk_notebook_set_show_tabs
- gtk_notebook_set_tab_label gtk_notebook_set_tab_label_packing gtk_notebook_set_tab_label_text gtk_notebook_set_tab_pos gtk_object_destroy
+ gtk_notebook_set_tab_label gtk_notebook_set_tab_label_text gtk_notebook_set_tab_pos gtk_object_destroy
gtk_paint_arrow gtk_paint_box gtk_paint_box_gap
gtk_paint_check gtk_paint_diamond gtk_paint_expander gtk_paint_extension gtk_paint_flat_box
gtk_paint_focus gtk_paint_handle gtk_paint_hline gtk_paint_layout gtk_paint_option
@@ -65029,7 +65280,6 @@ EDITS: 1
(num-test (bes-kn 100 1000.0) 0.0)
))
-
(if with-gui
(let* ((delay-32 (make-delay 32))
@@ -65567,7 +65817,7 @@ EDITS: 1
(if (not (eq? tag 'no-active-selection))
(snd-display ";selection ~A: ~A" n tag))))
(list reverse-selection selection-position selection-frames smooth-selection
- scale-selection-to play-selection insert-selection delete-selection mix-selection))
+ scale-selection-to insert-selection delete-selection mix-selection))
(for-each (lambda (n)
(let ((tag
@@ -65719,8 +65969,8 @@ EDITS: 1
fft-log-magnitude fft-with-phases transform-size transform-graph-type fft-window transform-graph? find-channel
graph graph-style lisp-graph? (lambda (a) (insert-region 0 a)) insert-sound
time-graph-style lisp-graph-style transform-graph-style
- left-sample make-graph-data map-chan max-transform-peaks maxamp maxamp-position min-dB mix-region
- transform-normalization peak-env-info peaks play ;play-and-wait
+ left-sample make-graph-data map-chan max-transform-peaks maxamp-position min-dB mix-region
+ transform-normalization peak-env-info peaks ;play
position->x position->y reverse-sound
revert-sound right-sample sample save-sound save-sound-as scan-chan
select-channel show-axes show-transform-peaks show-marks show-mix-waveforms show-y-zero show-grid show-sonogram-cursor
@@ -65777,8 +66027,8 @@ EDITS: 1
graph-data graph-style lisp-graph? left-sample
time-graph-style lisp-graph-style transform-graph-style
make-graph-data max-transform-peaks maxamp maxamp-position min-dB transform-normalization peak-env-info
- (lambda (snd) (play 0 snd))
- (lambda (snd) (play-and-wait 0 snd))
+; (lambda (snd) (play snd 0))
+; (lambda (snd) (play-and-wait 0 snd))
(lambda (snd) (position->x 0 snd))
(lambda (snd) (position->y 0 snd))
(lambda (snd) (redo 1 snd)) reverse-sound revert-sound right-sample
@@ -65825,7 +66075,7 @@ EDITS: 1
(if (not (eq? tag 'no-such-channel))
(snd-display ";~D: snd(1 1234) chn procs ~A: ~A" ctr n tag))
(set! ctr (+ ctr 1))))
- (list delete-sample edit-fragment graph-data play play-and-wait position->x position->y redo scale-by
+ (list delete-sample edit-fragment graph-data position->x position->y redo scale-by
scale-to undo x->position y->position))
(close-sound index))
@@ -65990,7 +66240,7 @@ EDITS: 1
(not (eq? tag 'wrong-number-of-args)))
(snd-display ";~D: region procs ~A: ~A ~A" ctr n tag arg))
(set! ctr (+ ctr 1))))
- (list play-region region-chans region-home region-frames
+ (list region-chans region-home region-frames
region-position region-maxamp region-maxamp-position region-sample
region->vct region-srate forget-region))))
(list vct-5 '#(0 1) (sqrt -1.0) "hiho" (list 0 1)))
@@ -66005,7 +66255,7 @@ EDITS: 1
(if (not (eq? tag 'no-such-region))
(snd-display ";~D: (no) region procs ~A: ~A" ctr n tag))
(set! ctr (+ ctr 1))))
- (list play-region region-chans region-home region-frames region-position
+ (list region-chans region-home region-frames region-position
region-maxamp region-maxamp-position region-srate forget-region)))
(let ((ctr 0))
@@ -66151,7 +66401,7 @@ EDITS: 1
(check-error-tag 'wrong-type-arg (lambda () (player-home 123)))
(check-error-tag 'no-such-file (lambda () (set! (temp-dir) "/hiho")))
(check-error-tag 'no-such-file (lambda () (set! (save-dir) "/hiho")))
- (check-error-tag 'out-of-range (lambda () (snd-transform 20 (make-vct 4))))
+ (check-error-tag 'out-of-range (lambda () (snd-transform (integer->transform 20) (make-vct 4))))
(check-error-tag 'bad-header (lambda () (mus-sound-maxamp (string-append sf-dir "bad_chans.snd"))))
(check-error-tag 'bad-header (lambda () (set! (mus-sound-maxamp (string-append sf-dir "bad_chans.snd")) '(0.0 0.0))))
(check-error-tag 'mus-error (lambda () (make-iir-filter :order 32 :ycoeffs (make-vct 4))))
@@ -66254,7 +66504,6 @@ EDITS: 1
(check-error-tag 'cannot-save (lambda () (save-selection "test.snd" mus-voc mus-bshort)))
(check-error-tag 'wrong-type-arg (lambda () (play-selection 0 (lambda () #f))))
(check-error-tag 'wrong-type-arg (lambda () (play-selection 0 0)))
- (check-error-tag 'wrong-type-arg (lambda () (play-selection 0 (lambda (a b) #f))))
(check-error-tag 'no-data (lambda () (draw-lines '#())))
(check-error-tag 'bad-length (lambda () (draw-lines '#(1 2 3))))
(check-error-tag 'out-of-range (lambda () (src-channel (make-env '(0 0 1 1) :length 11))))
@@ -66274,7 +66523,7 @@ EDITS: 1
(check-error-tag 'out-of-range (lambda () (snd-spectrum (make-vct 8) 0 0)))
(check-error-tag 'no-such-file (lambda () (play "/baddy/hiho")))
(check-error-tag 'bad-format (lambda () (play (string-append sf-dir "nist-shortpack.wav"))))
- (check-error-tag 'no-such-channel (lambda () (play 0 ind 123)))
+; (check-error-tag 'no-such-channel (lambda () (play ind 0 :channel 123)))
(check-error-tag 'no-such-channel (lambda () (make-player ind 123)))
(check-error-tag 'no-such-file (lambda () (mix "/baddy/hiho")))
(check-error-tag 'no-such-channel (lambda () (mix "oboe.snd" 0 2)))
@@ -66305,15 +66554,15 @@ EDITS: 1
(check-error-tag 'no-such-channel (lambda () (axis-info ind 1234)))
(check-error-tag 'no-such-sound (lambda () (axis-info 1234)))
(set! (time-graph-type) graph-once)
- (check-error-tag 'out-of-range (lambda () (set! (x-bounds) (list 0 0))))
+; (check-error-tag 'out-of-range (lambda () (set! (x-bounds) (list 0 0))))
(check-error-tag 'out-of-range (lambda () (set! (x-bounds) (list .1 -.1))))
- (check-error-tag 'out-of-range (lambda () (set! (y-bounds) (list .2 .1))))
+; (check-error-tag 'out-of-range (lambda () (set! (y-bounds) (list .2 .1))))
(check-error-tag 'out-of-range (lambda () (make-region 100 0)))
(check-error-tag 'no-such-sample (lambda () (delete-sample -1)))
(check-error-tag 'no-such-sample (lambda () (delete-sample (* 2 (frames ind)))))
(check-error-tag 'no-such-file (lambda () (play "/bad/baddy.snd")))
- (check-error-tag 'no-such-sound (lambda () (play 0 1234)))
- (check-error-tag 'no-such-channel (lambda () (play 0 ind 1234)))
+ (check-error-tag 'no-such-sound (lambda () (play 1234 0)))
+; (check-error-tag 'no-such-channel (lambda () (play ind 0 :channel 1234)))
(if (= (length (regions)) 0) (make-region 0 100))
(check-error-tag 'no-such-channel (lambda () (region-sample (car (regions)) 0 1234)))
(check-error-tag 'no-such-channel (lambda () (region-frames (car (regions)) 1234)))
@@ -66327,7 +66576,7 @@ EDITS: 1
(check-error-tag 'no-such-channel (lambda () (samples->sound-data 0 100 ind 1234)))
(check-error-tag 'no-such-sound (lambda () (graph (vct 0 1) "hi" 0 1 0 1 1234)))
(check-error-tag 'no-such-channel (lambda () (graph (vct 0 1) "hi" 0 1 0 1 ind 1234)))
- (check-error-tag 'wrong-type-arg (lambda () (play-region (car (regions)) #f (lambda () #f))))
+; (check-error-tag 'wrong-type-arg (lambda () (play-region (car (regions)) #f (lambda () #f))))
(set! (selection-member? #t) #f)
(check-error-tag 'no-active-selection (lambda () (filter-selection (vct 0 0 1 1) 4)))
(check-error-tag 'no-active-selection (lambda () (save-selection "/bad/baddy.snd")))
@@ -66376,7 +66625,7 @@ EDITS: 1
(check-error-tag 'no-such-channel (lambda () (filter-channel (vct 0 0 1 1) 4 #f #f ind 1)))
(check-error-tag 'out-of-range (lambda () (filter-sound (vct 0 0 1 1) 0)))
(check-error-tag 'out-of-range (lambda () (filter-sound (vct 0 0 1 1) 10)))
- (check-error-tag 'wrong-type-arg (lambda () (play 0 #f #f #f #f #f (lambda () #f))))
+ (check-error-tag 'bad-arity (lambda () (play (selected-sound) 0 :stop (lambda () #f))))
(check-error-tag 'out-of-range (lambda () (set! (reverb-control-length-bounds ind) (list .1 .01))))
(check-error-tag 'out-of-range (lambda () (set! (reverb-control-scale-bounds ind) (list .1 .01))))
(check-error-tag 'wrong-type-arg (lambda () (scale-by #f)))
@@ -66393,8 +66642,8 @@ EDITS: 1
(check-error-tag 'no-such-menu (lambda () (add-to-menu 1234 "hi" (lambda () #f))))
(check-error-tag 'bad-arity (lambda () (add-to-main-menu "hi" (lambda (a b) #f))))
(check-error-tag 'bad-arity (lambda () (add-to-menu 1 "hi" (lambda (a b) #f))))
- (check-error-tag 'out-of-range (lambda () (set! (transform-type) -1)))
- (check-error-tag 'out-of-range (lambda () (set! (transform-type) 123)))
+ (check-error-tag 'wrong-type-arg (lambda () (set! (transform-type) (integer->transform -1))))
+ (check-error-tag 'out-of-range (lambda () (set! (transform-type) (integer->transform 123))))
(check-error-tag 'wrong-type-arg (lambda () (help-dialog (list 0 1) "hiho")))
(check-error-tag 'wrong-type-arg (lambda () (info-dialog (list 0 1) "hiho")))
(check-error-tag 'no-such-sound (lambda () (edit-header-dialog 1234)))
@@ -66561,12 +66810,21 @@ EDITS: 1
(gc)(gc)
(let* ((main-args (list 1.5 "/hiho" (list 0 1) 1234 vct-3 color-95 '#(0 1) 3/4 'mus-error (sqrt -1.0) delay-32
- (lambda () #t) vct-5 sound-data-23 :order 0 1 -1 a-hook #f #t #\c 0.0 1.0 -1.0
- '() '3 2 8 64 -64 vector-0 '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0) car-main cadr-main
- (lambda (a) #f) abs))
+ (lambda () #t) vct-5 sound-data-23 :order 0 1 -1 a-hook #f #t #\c 0.0 -1.0
+ '() '3 64 -64 vector-0 '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0) car-main cadr-main
+ (lambda (a) #f) abs
+ 1.0+1.0i (cons 1 2) '((1 2) (3 4)) '((1 (2)) (((3) 4)))
+ (vector 1 #\a '(3)) (make-vector 0)
+ (let ((x 3)) (lambda (y) (+ x y))) (lambda args args)
+ "" (make-hash-table 256)
+ (symbol->value '_?__undefined__?_) ; -> #<undefined> hopefully
+ (vector-fill! (vector 0) 0) ; -> #<unspecified>?
+ (with-input-from-string "" (lambda () (read-char))) ; -> #<eof>?
+ (make-random-state 1234)
+ ))
(few-args (list 1.5 "/hiho" (list 0 1) 1234 vct-3 color-95 '#(0 1) 3/4 -1.0
- (sqrt -1.0) delay-32 :feedback -1 0 1 3 64 -64 #f #t '() vector-0))
- (fewer-args (list "/hiho" 1234 vct-3 -1.0 (sqrt -1.0) delay-32 -1 0 1 #f #t '()))
+ (sqrt -1.0) delay-32 :feedback -1 0 1 "" 'hi (lambda (a) (+ a 1)) -64 #f #t '() vector-0))
+ (fewer-args (list "/hiho" 1234 vct-3 -1.0 (sqrt -1.0) delay-32 -1 0 1 #f #t "" '()))
(less-args (if all-args main-args few-args)))
;; ---------------- 1 Arg
@@ -67279,26 +67537,6 @@ EDITS: 1
(display (format #f "(test ~D:) ~1,1F " i (vector-ref best-times i)))))
(display (format #f ")~%~%")))
- ;guile 1.8.? I think
- ;times: (58 58 153 99 2260 5316 613 133 11171 2857 593 738 730 918 583 1228 2977 182 165 2797 717 1697 4920 6595 0 0 0 241 7019)
- ;total: 553
-
- ; s7:
- ;times: (30 29 40 37 458 3596 45 93 19877 2542 136 44 180 496 367 1947 3062 50 32 3833 835 1735 4736 13099 0 0 0 42 5636)
- ;total: 631
- ;ratios: (.5 .5 .4 .4 .2 .7 .1 .7 1.7 .9 .2 .1 .2 .5 .5 1.5 1.0 .3 .2 1.3 1.1 .9 .9 2.0 .0 .0 .0 .2 .8 )
-
- ;24-Aug-09 (one other long job running)
- ;times: (6 5 38 22 1347 5194 497 31 6439 1954 361 133 519 1883 1503 1536 2268 33 14 2179 403 1198 1563 12045 0 0 0 10 1174);
- ;total: 424
- ;ratios: (0.1 0.1 0.3 0.2 0.6 1.0 0.8 0.2 0.6 0.7 0.6 0.2 0.6 1.9 1.8 1.2 0.8 0.2 0.1 0.7 0.5 0.6 0.3 1.8 0.0 0.0 0.0 0.0 0.2 )
-
- ; s7test noinit 6-Oct-08
- ; 0.986u 0.011s 0:01.01 98.0% 0+0k 0+224io 0pf+0w
- ; s7test (no bug machine) noinit 24-Aug-09, one other long job running at the time
- ; 0.531u 0.016s 0:00.55 98.1% 0+0k 0+176io 0pf+0w
-
-
;;; -------- cleanup temp files
(if (provided? 'snd-nogui)
@@ -67315,14 +67553,12 @@ EDITS: 1
(begin
(display (format #f "ls ~A/snd_* | wc~%" original-temp-dir))
(system (format #f "ls ~A/snd_* | wc" original-temp-dir))
- (system (format #f "sndinfo ~A/snd_*" original-temp-dir))
(system (format #f "rm -f ~A/snd_*" original-temp-dir))))
(if (file-exists? "/tmp")
(begin
(display (format #f "ls /tmp/snd_* | wc~%"))
(system "ls /tmp/snd_* | wc")
- ;(system "sndinfo /tmp/snd_*") ; not a bug -- save_dir null will write to /tmp
(system "rm -f /tmp/snd_*")
(system "ls /tmp/file*.snd | wc")
(system "rm -f /tmp/file*.snd")))
@@ -67335,9 +67571,6 @@ EDITS: 1
(system "ls /var/tmp/file*.snd | wc")
(system "rm -f /var/tmp/file*.snd")))
-(if (file-exists? (string-append home-dir "/.snd_prefs_guile"))
- (delete-file (string-append home-dir "/.snd_prefs_guile")))
-
(if (defined? 'dlocsig-speaker-configs) (set! dlocsig-speaker-configs #f))
(for-each
@@ -67422,7 +67655,7 @@ EDITS: 1
(if (defined? 'run-report-counts) (run-report-counts))
-(if (and profiling with-s7) (profile))
+(if (and profiling with-s7) (profile)) ; writes to sort.data
#|
(let ((st (symbol-table)))
@@ -67456,4 +67689,32 @@ valgrind test 23 6-Aug-09:
12,475,299,147 /home/bil/snd-10/s7.c:s7_mark_object_1'2 [/home/bil/snd-10/snd]
8,719,747,420 /home/bil/snd-10/s7.c:eval [/home/bil/snd-10/snd]
8,546,890,750 /home/bil/snd-10/s7.c:gc [/home/bil/snd-10/snd]
+
+valgrind --tool=callgrind snd -l snd-test
+callgrind_annotate --auto=yes callgrind.out.<pid> > hi
+
+21-Oct-09:
+69,218,104,704 s7.c:eval [/home/bil/cl/snd]
+59,134,237,840 s7.c:s7_find_symbol_in_environment [/home/bil/cl/snd]
+48,084,615,625 s7.c:gc [/home/bil/cl/snd]
+37,399,130,371 io.c:mus_read_any_1 [/home/bil/cl/snd]
+36,202,606,109 s7.c:eval'2 [/home/bil/cl/snd]
+33,500,608,059 run.c:eval_ptree [/home/bil/cl/snd]
+30,924,268,443 snd-sig.c:direct_filter [/home/bil/cl/snd]
+21,937,958,240 s7.c:pop_stack [/home/bil/cl/snd]
+21,454,101,396 s7.c:push_stack [/home/bil/cl/snd]
+19,997,629,681 io.c:mus_write_1 [/home/bil/cl/snd]
+18,239,206,028 clm.c:mus_fir_filter [/home/bil/cl/snd]
+14,624,386,395 snd-edits.c:next_sample_value_unscaled [/home/bil/cl/snd]
+14,452,459,496 s7.c:safe_reverse_in_place [/home/bil/cl/snd]
+14,013,523,823 s7.c:s7_mark_object_1'2 [/home/bil/cl/snd]
+13,426,309,461 clm.c:mus_out_any_to_file [/home/bil/cl/snd]
+12,293,573,859 s7.c:s7_is_vector [/home/bil/cl/snd]
+ 9,960,856,278 s7.c:new_cell [/home/bil/cl/snd]
+ 9,335,346,075 clm.c:run_hilbert [/home/bil/cl/snd]
+ 8,190,470,642 clm.c:mus_env_linear [/home/bil/cl/snd]
+ 7,695,845,150 clm.c:mus_src [/home/bil/cl/snd]
+ 7,299,789,900 s7.c:s7_cons [/home/bil/cl/snd]
+ 6,943,061,664 run.c:jump_if_not_equal [/home/bil/cl/snd]
+
|#
diff --git a/snd-utils.c b/snd-utils.c
index 9b1cd18..7653700 100644
--- a/snd-utils.c
+++ b/snd-utils.c
@@ -289,11 +289,11 @@ char *prettyf(double num, int tens)
static char prtbuf[256];
if (tens <= 0)
- sprintf(prtbuf, "%d", (int)snd_round(num));
+ snprintf(prtbuf, 256, "%d", (int)snd_round(num));
else
{
int i, len;
- sprintf(prtbuf, "%.*f", tens, num); /* %f assumes double arg */
+ snprintf(prtbuf, 256, "%.*f", tens, num); /* %f assumes double arg */
/* look for trailing 0's beyond the ddd.0 case */
len = strlen(prtbuf);
for (i = len - 1; (i > 0) && (prtbuf[i] == '0') && (prtbuf[i - 1] != '.'); i--)
diff --git a/snd-x0.h b/snd-x0.h
index d17e64f..b8a501b 100644
--- a/snd-x0.h
+++ b/snd-x0.h
@@ -99,6 +99,7 @@ typedef struct {
int fft_pix_x0, fft_pix_y0;
bool fft_pix_ready;
mus_float_t fft_pix_cutoff;
+ Cursor current_cursor;
} chan_context;
typedef struct {
@@ -160,7 +161,7 @@ typedef struct {
Widget listener_pane;
Widget *dialogs;
int num_dialogs, dialogs_size;
- Cursor graph_cursor, wait_cursor;
+ Cursor graph_cursor, wait_cursor, bounds_cursor;
Widget requestor_dialog;
#if HAVE_GL
GLXContext cx;
diff --git a/snd-xchn.c b/snd-xchn.c
index f6431c1..bcaff61 100644
--- a/snd-xchn.c
+++ b/snd-xchn.c
@@ -502,27 +502,39 @@ static XEN mouse_leave_graph_hook;
static void graph_mouse_enter(Widget w, XtPointer context, XEvent *event, Boolean *flag)
{
- int data;
+ pointer_or_int_t data;
+ XEnterWindowEvent *ev = (XEnterWindowEvent *)event;
+
XtVaGetValues(w, XmNuserData, &data, NULL);
if (XEN_HOOKED(mouse_enter_graph_hook))
run_hook(mouse_enter_graph_hook,
XEN_LIST_2(C_INT_TO_XEN_SOUND(UNPACK_SOUND(data)),
C_TO_XEN_INT(UNPACK_CHANNEL(data))),
S_mouse_enter_graph_hook);
+
+ /*
XDefineCursor(XtDisplay(w), XtWindow(w), ss->sgx->graph_cursor);
+ */
+ check_cursor_shape((chan_info *)context, ev->x, ev->y);
}
static void graph_mouse_leave(Widget w, XtPointer context, XEvent *event, Boolean *flag)
{
- int data;
+ pointer_or_int_t data;
+ XLeaveWindowEvent *ev = (XLeaveWindowEvent *)event;
+
XtVaGetValues(w, XmNuserData, &data, NULL);
if (XEN_HOOKED(mouse_leave_graph_hook))
run_hook(mouse_leave_graph_hook,
XEN_LIST_2(C_INT_TO_XEN_SOUND(UNPACK_SOUND(data)),
C_TO_XEN_INT(UNPACK_CHANNEL(data))),
S_mouse_leave_graph_hook);
+
+ /*
XUndefineCursor(XtDisplay(w), XtWindow(w));
+ */
+ check_cursor_shape((chan_info *)context, ev->x, ev->y);
}
@@ -542,12 +554,22 @@ static void graph_button_release(Widget w, XtPointer context, XEvent *event, Boo
graph_button_release_callback((chan_info *)context, ev->x, ev->y, ev->state, ev->button);
}
-
+#if 0
static void graph_button_motion(Widget w, XtPointer context, XEvent *event, Boolean *cont)
{ /* mouse drag */
XMotionEvent *ev = (XMotionEvent *)event;
graph_button_motion_callback((chan_info *)context, ev->x, ev->y, ev->time);
}
+#endif
+
+
+static void graph_mouse_motion(Widget w, XtPointer context, XEvent *event, Boolean *cont)
+{ /* mouse movement */
+ XMotionEvent *ev = (XMotionEvent *)event;
+ if ((ev->state & Button1Mask) == 0)
+ check_cursor_shape((chan_info *)context, ev->x, ev->y);
+ else graph_button_motion_callback((chan_info *)context, ev->x, ev->y, ev->time);
+}
static int no_padding(Arg *args, int n)
@@ -629,7 +651,7 @@ static void remake_edit_history(Widget lst, chan_info *cp, int from_graph)
{
ncp = sp->chans[k];
ncp->edhist_base = ed;
- sprintf(title, "chan %d: %s", k + 1, sp->filename);
+ snprintf(title, filelen, "chan %d: %s", k + 1, sp->filename);
edits[ed++] = XmStringCreateLocalized(title);
eds = ncp->edit_ctr;
while ((eds < (ncp->edit_size - 1)) && (ncp->edits[eds + 1])) eds++;
@@ -849,20 +871,16 @@ static void cp_graph_key_press(Widget w, XtPointer context, XEvent *event, Boole
static void channel_drop_watcher(Widget w, const char *str, Position x, Position y, void *context)
{
-#if (SIZEOF_INT == SIZEOF_VOID_P)
- int data;
- data = (int)context;
-#else
- long data;
- data = (long)context; /* also at 1020 */
-#endif
+ pointer_or_int_t data;
+ data = (pointer_or_int_t)context;
drag_and_drop_mix_at_x_y((int)data, str, x, y);
}
static void channel_drag_watcher(Widget w, const char *str, Position x, Position y, drag_style_t dtype, void *context)
{
- int snd, chn, data;
+ int snd, chn;
+ pointer_or_int_t data;
snd_info *sp;
chan_info *cp;
float seconds;
@@ -1145,22 +1163,16 @@ int add_channel_window(snd_info *sp, int channel, int chan_y, int insertion, Wid
/* allow cursor in all cases (zoom to cursor in region window for example, or fft axis drag in variable display) */
XtAddEventHandler(cw[W_graph], ButtonPressMask, false, graph_button_press, (XtPointer)cp);
XtAddEventHandler(cw[W_graph], ButtonReleaseMask, false, graph_button_release, (XtPointer)cp);
- XtAddEventHandler(cw[W_graph], ButtonMotionMask, false, graph_button_motion, (XtPointer)cp);
+ /* XtAddEventHandler(cw[W_graph], ButtonMotionMask, false, graph_button_motion, (XtPointer)cp); */
+ XtAddEventHandler(cw[W_graph], PointerMotionMask, false, graph_mouse_motion, (XtPointer)cp);
if (main == NULL)
{
-#if (SIZEOF_INT == SIZEOF_VOID_P)
- int data;
-#else
- long data;
-#endif
- XtAddEventHandler(cw[W_graph], EnterWindowMask, false, graph_mouse_enter, NULL);
+ pointer_or_int_t data;
+ XtAddEventHandler(cw[W_graph], EnterWindowMask, false, graph_mouse_enter, (XtPointer)cp);
XtAddEventHandler(cw[W_graph], LeaveWindowMask, false, graph_mouse_leave, (XtPointer)cp);
XtAddEventHandler(cw[W_graph], KeyPressMask, false, cp_graph_key_press, (XtPointer)cp);
-#if (SIZEOF_INT == SIZEOF_VOID_P)
- data = PACK_SOUND_AND_CHANNEL(sp->index, cp->chan);
-#else
- data = (long)PACK_SOUND_AND_CHANNEL(sp->index, cp->chan);
-#endif
+
+ data = (pointer_or_int_t)PACK_SOUND_AND_CHANNEL(sp->index, cp->chan);
add_drag_and_drop(cw[W_graph], channel_drop_watcher, channel_drag_watcher, (void *)data);
}
diff --git a/snd-xen.c b/snd-xen.c
index e396aaa..0e8aba6 100644
--- a/snd-xen.c
+++ b/snd-xen.c
@@ -1,7 +1,7 @@
#include "snd.h"
#include "clm2xen.h"
-/* TODO: we often use the pair (selected-sound) (selected-channel) or whatever,
+/* we often use the pair (selected-sound) (selected-channel) or whatever,
* and these are always paired in the argument lists, so if we had a
* C function that returned both as a (scheme) multiple-value, we
* could simply plug that in wherever the other 2 were wanted.
@@ -3140,7 +3140,6 @@ If it returns some non-#f result, Snd assumes you've sent the text out yourself,
g_init_marks();
g_init_regions();
g_init_selection();
- g_init_dac();
g_init_mix();
g_init_chn();
g_init_kbd();
@@ -3154,6 +3153,7 @@ If it returns some non-#f result, Snd assumes you've sent the text out yourself,
g_init_menu();
g_init_main();
g_init_snd();
+ g_init_dac(); /* needs to follow snd and mix */
g_init_file();
g_init_data();
g_init_env();
@@ -3231,7 +3231,13 @@ If it returns some non-#f result, Snd assumes you've sent the text out yourself,
XEN_EVAL_C_STRING("(define (length obj)\
(if (string? obj) (string-length obj)\
(if (vector? obj) (vector-length obj)\
- (%length obj))))");
+ (if (vct? obj) (vct-length obj)\
+ (if (sound? obj) (frames obj)\
+ (if (mix? obj) (mix-length obj)\
+ (if (sound-data? obj) (sound-data-length obj)\
+ (if (region? obj) (region-frames obj)\
+ (if (selection? obj) (selection-frames obj)\
+ (%length obj))))))))))");
XEN_EVAL_C_STRING("(define %floor floor)");
XEN_EVAL_C_STRING("(define (floor val) (inexact->exact (%floor val)))");
@@ -3442,12 +3448,6 @@ If it returns some non-#f result, Snd assumes you've sent the text out yourself,
XEN_EVAL_C_STRING("' undo alias undo-edit");
#endif
-
- /* clm-print */
-#if HAVE_FORTH
- /* XEN_EVAL_C_STRING(": clm-print ( fmt lst -- ) 0 drop ;"); */
-#endif
-
#if HAVE_RUBY
XEN_EVAL_C_STRING("def clm_print(str, *args)\n\
snd_print format(str, *args)\n\
@@ -3578,3 +3578,9 @@ If it returns some non-#f result, Snd assumes you've sent the text out yourself,
scm_c_use_module("snd clm");
#endif
}
+
+/* unguile troubles:
+ * snd_pd_external.[ch], pd-*.scm
+ * rt-*.scm
+ * eval-c.scm, osc.scm, snd-hobbit.scm, snd_frg.scm probably snd_conffile.scm
+ */
diff --git a/snd-xfile.c b/snd-xfile.c
index 4ff5d4e..0d28750 100644
--- a/snd-xfile.c
+++ b/snd-xfile.c
@@ -413,8 +413,10 @@ static void sort_files_and_redisplay(file_pattern_info *fp);
static void file_list_item_activate_callback(Widget w, XtPointer context, XtPointer info)
{
file_popup_info *fd = (file_popup_info *)context;
- int choice = 0;
- XtVaGetValues(w, XmNuserData, &choice, NULL);
+ pointer_or_int_t data;
+ int choice;
+ XtVaGetValues(w, XmNuserData, &data, NULL);
+ choice = (int)data;
if (choice >= FILE_FILTER_OFFSET)
{
XmToggleButtonSetState(fd->fp->just_sounds_button, false, false);
@@ -5172,9 +5174,9 @@ static void sort_view_files_small_to_big(Widget w, XtPointer context, XtPointer
static void sort_view_files_xen(Widget w, XtPointer context, XtPointer info)
{
- int index;
+ pointer_or_int_t index;
XtVaGetValues(w, XmNuserData, &index, NULL); /* index is location in list of file-sorters */
- sort_vf((view_files_info *)context, index);
+ sort_vf((view_files_info *)context, (int)index);
}
diff --git a/snd-xhelp.c b/snd-xhelp.c
index 363488f..30532dc 100644
--- a/snd-xhelp.c
+++ b/snd-xhelp.c
@@ -21,7 +21,8 @@ static void help_expose(Widget w, XtPointer context, XEvent *event, Boolean *con
old_help_text_width = curwid;
else
{
- if ((outer_with_wrap == WITH_WORD_WRAP) && (abs(curwid - old_help_text_width) > 10))
+ if ((outer_with_wrap == WITH_WORD_WRAP) &&
+ (abs(curwid - old_help_text_width) > 10))
{
char *cur_help_str, *new_help_str = NULL;
cur_help_str = XmTextGetString(help_text);
@@ -94,7 +95,9 @@ static char *find_highlighted_text(XmString xs)
char *result;
XmStringComponentType type;
XmStringContext ctx;
+
XmStringInitContext(&ctx, xs);
+
while ((type = XmStringGetNextTriple(ctx, &len, &text)) != XmSTRING_COMPONENT_END)
{
switch (type)
@@ -102,9 +105,11 @@ static char *find_highlighted_text(XmString xs)
case XmSTRING_COMPONENT_RENDITION_BEGIN:
in_red_text = mus_strcmp((char *)text, "url_text");
break;
+
case XmSTRING_COMPONENT_RENDITION_END:
in_red_text = false;
break;
+
case XmSTRING_COMPONENT_TEXT:
if (in_red_text)
{
@@ -114,10 +119,12 @@ static char *find_highlighted_text(XmString xs)
return(result);
}
}
+
/* this from the Motif docs, though it looks odd to me */
if (text) XtFree((char *)text);
text = NULL;
}
+
XmStringFreeContext(ctx);
return(NULL);
}
@@ -136,6 +143,7 @@ static bool new_help(const char *pattern, bool complain)
{
const char *url = NULL;
const char **xrefs;
+
url = snd_url(pattern);
if (url)
{
@@ -155,6 +163,7 @@ static bool new_help(const char *pattern, bool complain)
url_to_html_viewer(url);
return(true);
}
+
if ((!(snd_topic_help(pattern))) && (complain))
{
xrefs = help_name_to_xrefs(pattern);
@@ -166,6 +175,7 @@ static bool new_help(const char *pattern, bool complain)
}
else snd_help_with_xrefs(pattern, "(no help found)", WITH_WORD_WRAP, NULL, NULL);
}
+
return(false);
}
@@ -542,13 +552,16 @@ Widget snd_help(const char *subject, const char *helpstr, with_word_wrap_t with_
/* place help string in scrollable help window */
/* if window is already active, add this help at the top and reposition */
XmString xstr1;
+
outer_with_wrap = with_wrap;
if (!(help_dialog))
create_help_monolog();
else raise_dialog(help_dialog);
+
xstr1 = XmStringCreateLocalized((char *)subject);
XtVaSetValues(help_dialog, XmNmessageString, xstr1, NULL);
original_help_text = (char *)helpstr;
+
if (with_wrap == WITH_WORD_WRAP)
{
char *new_help_str = NULL;
@@ -557,8 +570,10 @@ Widget snd_help(const char *subject, const char *helpstr, with_word_wrap_t with_
if (new_help_str) free(new_help_str);
}
else XmTextSetString(help_text, (char *)helpstr);
+
if (!XtIsManaged(help_dialog))
XtManageChild(help_dialog);
+
XmStringFree(xstr1);
XtVaSetValues(related_items, XmNitems, NULL, XmNitemCount, 0, NULL);
if (help_needed) add_pattern_to_help_history(subject);
@@ -575,33 +590,28 @@ Widget snd_help_with_xrefs(const char *subject, const char *helpstr, with_word_w
help_urls = urls; /* can't associate the url with the help item in any "natural" way in Motif (no user-data per item) */
if (xrefs)
{
- XmString *strs;
- int i = 0, len = 0, strs_size = 32;
- strs = (XmString *)calloc(strs_size, sizeof(XmString));
- while (true)
+ int i, len;
+
+ for (i = 0; ; i++)
+ if (!xrefs[i])
+ {
+ len = i;
+ break;
+ }
+
+ if (len > 0)
{
- if (i >= strs_size)
- {
- int k;
- strs_size *= 2;
- strs = (XmString *)realloc(strs, strs_size * sizeof(XmString));
- for (k = i; k < strs_size; k++) strs[k] = NULL;
- }
- if (xrefs[i])
- {
- strs[i] = parse_crossref((const char *)(xrefs[i]));
- i++;
- }
- else
- {
- len = i;
- break;
- }
+ XmString *strs;
+ strs = (XmString *)calloc(len, sizeof(XmString));
+
+ for (i = 0; i < len; i++)
+ strs[i] = parse_crossref((const char *)(xrefs[i]));
+ XtVaSetValues(related_items, XmNitems, strs, XmNitemCount, len, NULL);
+
+ for (i = 0; i < len; i++)
+ XmStringFree(strs[i]);
+ free(strs);
}
- XtVaSetValues(related_items, XmNitems, strs, XmNitemCount, len, NULL);
- for (i = 0; i < len; i++)
- XmStringFree(strs[i]);
- free(strs);
}
return(w);
}
diff --git a/snd-xlistener.c b/snd-xlistener.c
index f2a676d..395f9c2 100644
--- a/snd-xlistener.c
+++ b/snd-xlistener.c
@@ -9,9 +9,11 @@
static void Tab_completion(Widget w, XEvent *event, char **str, Cardinal *num)
{
- int completer = -1;
+ int completer;
+ pointer_or_int_t data;
- XtVaGetValues(w, XmNuserData, &completer, NULL);
+ XtVaGetValues(w, XmNuserData, &data, NULL);
+ completer = (int)data;
/* fprintf(stderr,"tab in %s: %d\n", XtName(w), completer); */
@@ -467,12 +469,17 @@ static void Complain(Widget w, XEvent *event, char **str, Cardinal *num)
*/
char *old_text, *new_text;
XmTextPosition curpos;
+ int len;
+
curpos = XmTextGetCursorPosition(w);
old_text = XmTextGetString(w);
- new_text = (char *)calloc(mus_strlen(old_text) + 5, sizeof(char));
- sprintf(new_text, "%s C-%c", (old_text) ? old_text : "", str[0][0]);
+ len = mus_strlen(old_text) + 5;
+ new_text = (char *)calloc(len, sizeof(char));
+ snprintf(new_text, len, "%s C-%c", (old_text) ? old_text : "", str[0][0]);
+
XmTextSetString(w, new_text);
XmTextSetCursorPosition(w, curpos);
+
if (old_text) XtFree(old_text);
free(new_text);
}
@@ -1462,4 +1469,3 @@ $mouse_enter_text_hook.add_hook!(\"enter\") do |w|\n\
preload_best_completions();
}
-
diff --git a/snd-xm.fs b/snd-xm.fs
index 8c1b87a..432eabe 100644
--- a/snd-xm.fs
+++ b/snd-xm.fs
@@ -3,7 +3,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Mon Dec 26 22:36:46 CET 2005
-\ Changed: Sun Jun 14 20:40:00 CEST 2009
+\ Changed: Fri Nov 06 00:36:06 CET 2009
\ Commentary:
\
@@ -267,7 +267,7 @@ hide
FXmNorientation FXmVERTICAL
FXmNpaneMinimum 100
FXmNbottomAttachment FXmATTACH_FORM ) add-channel-pane { mark-box }
- $" Marks" _ FxmLabelWidgetClass mark-box
+ $" Marks" FxmLabelWidgetClass mark-box
#( FXmNbackground highlight-color
FXmNleftAttachment FXmATTACH_FORM
FXmNrightAttachment FXmATTACH_FORM
@@ -428,17 +428,17 @@ hide
: kmg { num -- str }
num 0<= if
- $" disk full!" _
+ $" disk full!"
else
"" { str }
num 1024 > if
num 1024 1024 * > if
- $" space: %6.3fG" _ #( num 1024.0 1024.0 f* f/ ) string-format
+ $" space: %6.3fG" #( num 1024.0 1024.0 f* f/ ) string-format
else
- $" space: %6.3fM" _ #( num 1024.0 f/ ) string-format
+ $" space: %6.3fM" #( num 1024.0 f/ ) string-format
then
else
- $" space: %10dK" _ #( num ) string-format
+ $" space: %10dK" #( num ) string-format
then ( str )
then
;
@@ -487,11 +487,11 @@ set-current
labelled-snds previous-label array-push drop
app 10000 <'> show-label previous-label FXtAppAddTimeOut drop
else
- $" no sound found for disk space label" _ snd-error drop
+ $" no sound found for disk space label" snd-error drop
then
then
;
-\ after-open-hook ' show-disk-space add-hook!
+\ after-open-hook <'> show-disk-space add-hook!
previous
: current-label ( widget -- label )
diff --git a/snd-xmain.c b/snd-xmain.c
index f1791cb..1864e03 100644
--- a/snd-xmain.c
+++ b/snd-xmain.c
@@ -341,7 +341,7 @@ void top_level_catch(int ignore)
#if MUS_DEBUGGING
static void trap_xt_error(String message)
{
- fprintf(stderr, message);
+ fprintf(stderr, "%s", message);
XEN_ERROR(XEN_ERROR_TYPE("xt-error"),
XEN_LIST_2(C_TO_XEN_STRING("Xt error:"),
C_TO_XEN_STRING(message)));
@@ -424,6 +424,7 @@ static idle_func_t startup_funcs(XtPointer context)
#endif
ss->sgx->graph_cursor = XCreateFontCursor(XtDisplay(MAIN_SHELL(ss)), in_graph_cursor(ss));
ss->sgx->wait_cursor = XCreateFontCursor(XtDisplay(MAIN_SHELL(ss)), XC_watch);
+ ss->sgx->bounds_cursor = XCreateFontCursor(XtDisplay(MAIN_SHELL(ss)), XC_sb_h_double_arrow);
break;
case 1:
@@ -563,7 +564,9 @@ static void notebook_page_changed_callback(Widget w, XtPointer context, XtPointe
page = nb->page_widget;
if (page)
{
- XtVaGetValues(page, XmNuserData, &index, NULL);
+ pointer_or_int_t data;
+ XtVaGetValues(page, XmNuserData, &data, NULL);
+ index = (int)data;
if ((index < ss->max_sounds) &&
(snd_ok(ss->sounds[index])))
{
@@ -868,13 +871,13 @@ void snd_doit(int argc, char **argv)
vi = glXChooseVisual(dpy, DefaultScreen(dpy), snglBuf);
}
if (vi == NULL)
- fprintf(stderr, _("no RGB visual with desired depth\n")); /* not snd_error -- shell not ready yet */
+ fprintf(stderr, "%s", _("no RGB visual with desired depth\n")); /* not snd_error -- shell not ready yet */
else
{
/* create an OpenGL rendering context */
cx = glXCreateContext(dpy, vi, /* no display list sharing */ None, /* favor direct */ GL_TRUE);
if (cx == NULL)
- fprintf(stderr, _("could not create rendering context\n"));
+ fprintf(stderr, "%s", _("could not create rendering context\n"));
else
{
/* create an X colormap since probably not using default visual */
diff --git a/snd-xmenu.c b/snd-xmenu.c
index 822888e..d8baf9a 100644
--- a/snd-xmenu.c
+++ b/snd-xmenu.c
@@ -475,13 +475,13 @@ Widget add_menu(void)
#endif
/* FILE MENU */
- XtSetArg(main_args[main_n], XmNuserData, 0);
+ XtSetArg(main_args[main_n], XmNuserData, (XtPointer)0);
file_menu = XmCreatePulldownMenu(main_menu, (char *)"File", main_args, main_n + 1);
high_n = start_high_n;
XtSetArg(high_args[high_n], XmNsubMenuId, file_menu); high_n++;
XtSetArg(high_args[high_n], XmNmnemonic, 'F'); high_n++;
- XtSetArg(high_args[high_n], XmNuserData, 0); high_n++;
+ XtSetArg(high_args[high_n], XmNuserData, (XtPointer)0); high_n++;
file_cascade_menu = XtCreateManagedWidget(_("File"), xmCascadeButtonWidgetClass, main_menu, high_args, high_n);
file_open_menu = XtCreateManagedWidget(_("Open"), xmPushButtonWidgetClass, file_menu, main_args, main_n);
@@ -545,13 +545,13 @@ Widget add_menu(void)
/* EDIT MENU */
- XtSetArg(main_args[main_n], XmNuserData, 1);
+ XtSetArg(main_args[main_n], XmNuserData, (XtPointer)1);
edit_menu = XmCreatePulldownMenu(main_menu, (char *)"Edit", main_args, main_n + 1);
high_n = start_high_n;
XtSetArg(high_args[high_n], XmNsubMenuId, edit_menu); high_n++;
XtSetArg(high_args[high_n], XmNmnemonic, 'E'); high_n++;
- XtSetArg(high_args[high_n], XmNuserData, 1); high_n++;
+ XtSetArg(high_args[high_n], XmNuserData, (XtPointer)1); high_n++;
edit_cascade_menu = XtCreateManagedWidget(_("Edit"), xmCascadeButtonWidgetClass, main_menu, high_args, high_n);
edit_undo_menu = XtCreateManagedWidget(_("Undo"), xmPushButtonWidgetClass, edit_menu, in_args, in_n);
@@ -605,13 +605,13 @@ Widget add_menu(void)
/* VIEW MENU */
- XtSetArg(main_args[main_n], XmNuserData, 2);
+ XtSetArg(main_args[main_n], XmNuserData, (XtPointer)2);
view_menu = XmCreatePulldownMenu(main_menu, (char *)"View", main_args, main_n + 1);
high_n = start_high_n;
XtSetArg(high_args[high_n], XmNsubMenuId, view_menu); high_n++;
XtSetArg(high_args[high_n], XmNmnemonic, 'V'); high_n++;
- XtSetArg(high_args[high_n], XmNuserData, 2); high_n++;
+ XtSetArg(high_args[high_n], XmNuserData, (XtPointer)2); high_n++;
view_cascade_menu = XtCreateManagedWidget(_("View"), xmCascadeButtonWidgetClass, main_menu, high_args, high_n);
view_controls_menu = XtCreateManagedWidget(_("Show controls"), xmPushButtonWidgetClass, view_menu, main_args, main_n);
@@ -767,13 +767,13 @@ Widget add_menu(void)
/* OPTIONS MENU */
- XtSetArg(main_args[main_n], XmNuserData, 3);
+ XtSetArg(main_args[main_n], XmNuserData, (XtPointer)3);
options_menu = XmCreatePulldownMenu(main_menu, (char *)"Option", main_args, main_n + 1);
high_n = start_high_n;
XtSetArg(high_args[high_n], XmNsubMenuId, options_menu); high_n++;
XtSetArg(high_args[high_n], XmNmnemonic, 'O'); high_n++;
- XtSetArg(high_args[high_n], XmNuserData, 3); high_n++;
+ XtSetArg(high_args[high_n], XmNuserData, (XtPointer)3); high_n++;
options_cascade_menu = XtCreateManagedWidget(_("Options"), xmCascadeButtonWidgetClass, main_menu, high_args, high_n);
options_transform_menu = XtCreateManagedWidget(_("Transform Options"), xmPushButtonWidgetClass, options_menu, main_args, main_n);
@@ -797,13 +797,13 @@ Widget add_menu(void)
/* HELP MENU */
- XtSetArg(main_args[main_n], XmNuserData, 4);
+ XtSetArg(main_args[main_n], XmNuserData, (XtPointer)4);
help_menu = XmCreatePulldownMenu(main_menu, (char *)"Help", main_args, main_n + 1);
high_n = start_high_n;
XtSetArg(high_args[high_n], XmNsubMenuId, help_menu); high_n++;
XtSetArg(high_args[high_n], XmNmnemonic, 'H'); high_n++;
- XtSetArg(high_args[high_n], XmNuserData, 4); high_n++;
+ XtSetArg(high_args[high_n], XmNuserData, (XtPointer)4); high_n++;
help_cascade_menu = XtCreateManagedWidget(_("Help"), xmCascadeButtonWidgetClass, main_menu, high_args, high_n);
help_about_snd_menu = XtCreateManagedWidget(_("About Snd"), xmPushButtonWidgetClass, help_menu, main_args, main_n);
@@ -972,7 +972,7 @@ void create_popup_menu(void)
XtSetArg(args[n], XmNbackground, ss->sgx->highlight_color); n++;
mainp = MAIN_PANE(ss);
XtSetArg(args[n], XmNpopupEnabled, XmPOPUP_AUTOMATIC_RECURSIVE); n++;
- XtSetArg(args[n], XmNuserData, 5);
+ XtSetArg(args[n], XmNuserData, (XtPointer)5);
popup_menu = XmCreatePopupMenu(mainp, (char *)"popup-menu", args, n + 1);
n = 0;
@@ -1022,16 +1022,15 @@ void create_popup_menu(void)
static void SND_callback(Widget w, XtPointer info, XtPointer context)
{
- int callb;
+ pointer_or_int_t callb;
XtVaGetValues(w, XmNuserData, &callb, NULL);
g_snd_callback(CALL_INDEX(callb)); /* menu option activate callback */
- if (callb < 0) fprintf(stderr,"%s callback: %d\n", XtName(w), callb); /* this exists solely to prevent an inexplicable segfault in dual x86_64 FC4 systems?? */
}
static void GHC_callback(Widget w, XtPointer info, XtPointer context)
{
- int slot;
+ pointer_or_int_t slot;
XtVaGetValues(w, XmNuserData, &slot, NULL);
g_snd_callback(CALL_INDEX(slot)); /* main menu cascading callback */
}
@@ -1089,7 +1088,7 @@ static bool clobber_menu(Widget w, const char *name)
(mus_strcmp(name, wname)) &&
(XtIsManaged(w)))
{
- int slot;
+ pointer_or_int_t slot;
XtVaGetValues(w, XmNuserData, &slot, NULL);
unprotect_callback(CALL_INDEX(slot));
XtUnmanageChild(w);
@@ -1172,30 +1171,27 @@ Widget g_add_to_menu(int which_menu, const char *label, int callb, int position)
if (menw == NULL) return(NULL);
if (label)
{
- if (SIZEOF_LONG != SIZEOF_VOID_P) /* this stuff doesn't work in 64-bit machines */
+ /* look for currently unused widget first */
+ /* but close-all and open-recent should be left alone! */
+ CompositeWidget cw = (CompositeWidget)menw;
+ for (i = 0; i < cw->composite.num_children; i++)
{
- /* look for currently unused widget first */
- /* but close-all and open-recent should be left alone! */
- CompositeWidget cw = (CompositeWidget)menw;
- for (i = 0; i < cw->composite.num_children; i++)
+ m = cw->composite.children[i];
+ if ((m) &&
+ (!(XtIsManaged(m))) &&
+ (m != file_close_all_menu) &&
+ (m != file_open_recent_menu) &&
+ (m != file_open_recent_cascade_menu))
{
- m = cw->composite.children[i];
- if ((m) &&
- (!(XtIsManaged(m))) &&
- (m != file_close_all_menu) &&
- (m != file_open_recent_menu) &&
- (m != file_open_recent_cascade_menu))
+ if (!(mus_strcmp(XtName(m), label)))
{
- if (!(mus_strcmp(XtName(m), label)))
- {
- set_widget_name(m, label);
- set_button_label(m, label);
- }
- if (position >= 0) XtVaSetValues(m, XmNpositionIndex, position, NULL);
- XtVaSetValues(m, XmNuserData, PACK_MENU_DATA(callb, which_menu), NULL);
- XtManageChild(m);
- return(m);
+ set_widget_name(m, label);
+ set_button_label(m, label);
}
+ if (position >= 0) XtVaSetValues(m, XmNpositionIndex, position, NULL);
+ XtVaSetValues(m, XmNuserData, PACK_MENU_DATA(callb, which_menu), NULL);
+ XtManageChild(m);
+ return(m);
}
}
XtSetArg(args[n], XmNbackground, ss->sgx->basic_color); n++;
diff --git a/snd-xmix.c b/snd-xmix.c
index 6deb8ec..b0f9643 100644
--- a/snd-xmix.c
+++ b/snd-xmix.c
@@ -1,19 +1,11 @@
#include "snd.h"
-/* multiple mix dialogs might be nice but:
- * requires arg for mix-dialog-mix, loop in reflect, "New Viewer" button,
- * how to make sure two dialogs don't try to affect the same mix?
- * and we already have an easy way to move between mixes: click the tag changes the dialog mix
- * or maybe not -- it would be better to have a list of the current active mixes in the dialog,
- * and click there would (?) move the view
- */
-
#define NAME_COLUMNS 8
/* ---------------- mix dialog ---------------- */
static Widget mix_dialog = NULL;
-static int mix_dialog_id = INVALID_MIX_ID;
+static int mix_dialog_id = INVALID_MIX_ID, old_mix_dialog_id = INVALID_MIX_ID;
static env *dialog_env = NULL;
static bool dragging = false;
@@ -31,6 +23,7 @@ static void start_dragging(int mix_id)
dragging = true;
drag_beg = mix_position_from_id(mix_id);
drag_end = drag_beg + mix_length_from_id(mix_id);
+ start_dragging_syncd_mixes(mix_id);
}
@@ -39,6 +32,7 @@ static void keep_dragging(int mix_id)
chan_info *cp;
cp = mix_chan_info_from_id(mix_id);
cp->edit_ctr = edpos_before_drag;
+ keep_dragging_syncd_mixes(mix_id);
}
@@ -49,6 +43,7 @@ static void stop_dragging(int mix_id)
undo_edit(cp, 1);
cp->hookable = hookable_before_drag;
dragging = false;
+ stop_dragging_syncd_mixes(mix_id);
}
@@ -82,13 +77,20 @@ static mus_float_t set_speed_label(Widget speed_number, int ival)
static void speed_click_callback(Widget w, XtPointer context, XtPointer info)
{
char speed_number_buffer[6];
+ mus_float_t speed;
+
if (!(mix_is_active(mix_dialog_id))) return;
- mix_set_speed_edit(mix_dialog_id,
- speed_changed(1.0,
- speed_number_buffer,
- xmix_speed_control_style,
- speed_control_tones(ss),
- 6));
+ speed = speed_changed(1.0,
+ speed_number_buffer,
+ xmix_speed_control_style,
+ speed_control_tones(ss),
+ 6);
+
+ drag_beg = mix_position_from_id(mix_dialog_id);
+ drag_end = drag_beg + mix_length_from_id(mix_dialog_id);
+
+ mix_set_speed_edit(mix_dialog_id, speed);
+ syncd_mix_set_speed(mix_dialog_id, speed);
after_mix_edit(mix_dialog_id);
set_label(w_speed_number, speed_number_buffer);
XtVaSetValues(w_speed, XmNvalue, speed_to_scrollbar(speed_control_min(ss), 1.0, speed_control_max(ss)), NULL);
@@ -119,26 +121,45 @@ static void speed_label_click_callback(Widget w, XtPointer context, XtPointer in
static void speed_drag_callback(Widget w, XtPointer context, XtPointer info)
{
int ival;
+ mus_float_t speed;
+ mus_long_t beg, end;
+
ASSERT_WIDGET_TYPE(XmIsScrollBar(w), w);
if (!(mix_is_active(mix_dialog_id))) return;
+
ival = ((XmScrollBarCallbackStruct *)info)->value;
if (!dragging)
start_dragging(mix_dialog_id);
else keep_dragging(mix_dialog_id);
- mix_set_speed_edit(mix_dialog_id, set_speed_label(w_speed_number, ival));
+
+ speed = set_speed_label(w_speed_number, ival);
+ mix_set_speed_edit(mix_dialog_id, speed);
+
+ beg = mix_position_from_id(mix_dialog_id);
+ end = beg + mix_length_from_id(mix_dialog_id);
+ if (drag_beg > beg) drag_beg = beg;
+ if (drag_end < end) drag_end = end;
+
mix_display_during_drag(mix_dialog_id, drag_beg, drag_end);
+ syncd_mix_set_speed(mix_dialog_id, speed);
}
static void speed_valuechanged_callback(Widget w, XtPointer context, XtPointer info)
{
XmScrollBarCallbackStruct *cb = (XmScrollBarCallbackStruct *)info;
+ mus_float_t speed;
+
ASSERT_WIDGET_TYPE(XmIsScrollBar(w), w);
if (!(mix_is_active(mix_dialog_id))) return;
if (dragging)
stop_dragging(mix_dialog_id);
- mix_set_speed_edit(mix_dialog_id, set_speed_label(w_speed_number, cb->value));
+
+ speed = set_speed_label(w_speed_number, cb->value);
+ mix_set_speed_edit(mix_dialog_id, speed);
+ syncd_mix_set_speed(mix_dialog_id, speed);
after_mix_edit(mix_dialog_id);
+ after_syncd_mix_edit(mix_dialog_id);
}
@@ -171,6 +192,7 @@ static void change_mix_amp(int mix_id, mus_float_t val)
{
char sfs[6];
mix_set_amp_edit(mix_id, val);
+ syncd_mix_set_amp(mix_id, val);
mus_snprintf(sfs, 6, "%.2f", val);
set_label(w_amp_number, sfs);
}
@@ -209,6 +231,7 @@ static void amp_valuechanged_callback(Widget w, XtPointer context, XtPointer inf
stop_dragging(mix_dialog_id);
change_mix_amp(mix_dialog_id, scrollbar_to_amp(ival));
after_mix_edit(mix_dialog_id);
+ after_syncd_mix_edit(mix_dialog_id);
}
@@ -402,7 +425,13 @@ static void beg_activated(void)
beg = string_to_mus_float_t(up_to_colon, 0.0, "begin time");
redirect_errors_to(NULL, NULL);
if (beg >= 0.0)
- mix_set_position_edit(mix_dialog_id, (mus_long_t)(beg * SND_SRATE(cp->sound)));
+ {
+ mus_long_t pos, old_pos;
+ old_pos = mix_position_from_id(mix_dialog_id);
+ pos = (mus_long_t)(beg * SND_SRATE(cp->sound));
+ mix_set_position_edit(mix_dialog_id, pos);
+ syncd_mix_change_position(mix_dialog_id, pos - old_pos);
+ }
after_mix_edit(mix_dialog_id);
free(up_to_colon);
XtFree(val);
@@ -415,13 +444,27 @@ static void apply_mix_dialog_callback(Widget w, XtPointer context, XtPointer inf
if (!(mix_is_active(mix_dialog_id))) return;
if ((dialog_env) &&
(!(default_env_p(dialog_env))))
- mix_set_amp_env_edit(mix_dialog_id, dialog_env);
- else mix_set_amp_env_edit(mix_dialog_id, NULL);
+ {
+ mix_set_amp_env_edit(mix_dialog_id, dialog_env);
+ syncd_mix_set_amp_env(mix_dialog_id, dialog_env);
+ }
+ else
+ {
+ mix_set_amp_env_edit(mix_dialog_id, NULL);
+ syncd_mix_set_amp_env(mix_dialog_id, NULL);
+ }
mix_amp_env_resize(w_env, NULL, NULL);
after_mix_edit(mix_dialog_id);
}
+static void copy_mix_dialog_callback(Widget w, XtPointer context, XtPointer info)
+{
+ copy_mix(mix_dialog_id);
+ after_mix_edit(mix_dialog_id);
+}
+
+
static void dismiss_mix_dialog_callback(Widget w, XtPointer context, XtPointer info)
{
Widget active_widget;
@@ -448,7 +491,7 @@ static void help_mix_dialog_callback(Widget w, XtPointer context, XtPointer info
}
-/* -------- mix play -------- */
+/* -------- play -------- */
static bool mix_playing = false;
@@ -467,13 +510,17 @@ static void mix_dialog_play_callback(Widget w, XtPointer context, XtPointer info
else
{
if (!(mix_exists(mix_dialog_id))) return;
- mix_playing = play_mix_from_id(mix_dialog_id);
- if ((mix_play) && (mix_playing))
- XmChangeColor(mix_play, ss->sgx->pushed_button_color);
+ if (mix_play)
+ XmChangeColor(mix_play, ss->sgx->pushed_button_color); /* this needs to happen before trying to play */
+ syncd_mix_play(mix_dialog_id);
+ mix_playing = true; /* don't use the return value here */
+ play_mix_from_id(mix_dialog_id);
}
}
+/* -------- dB -------- */
+
static void mix_dB_callback(Widget w, XtPointer context, XtPointer info)
{
XmToggleButtonCallbackStruct *cb = (XmToggleButtonCallbackStruct *)info;
@@ -482,6 +529,33 @@ static void mix_dB_callback(Widget w, XtPointer context, XtPointer info)
}
+/* -------- sync -------- */
+
+static void mix_sync_callback(Widget w, XtPointer context, XtPointer info)
+{
+ XmToggleButtonCallbackStruct *cb = (XmToggleButtonCallbackStruct *)info;
+ if ((cb->set) &&
+ (mix_sync_from_id(mix_dialog_id) == 0))
+ {
+ mix_set_sync_from_id(mix_dialog_id, GET_ORIGINAL_SYNC); /* choose a new sync val or return to previous */
+ /* check for resync */
+ syncd_mix_set_color(mix_dialog_id, ss->sgx->red);
+ }
+ else
+ {
+ if ((!(cb->set)) &&
+ (mix_sync_from_id(mix_dialog_id) != 0))
+ {
+ syncd_mix_unset_color(mix_dialog_id); /* unset colors of any syncd mixes */
+ mix_set_sync_from_id(mix_dialog_id, 0);
+ }
+ }
+ for_each_normal_chan(display_channel_mixes);
+}
+
+
+/* -------- clip -------- */
+
static void mix_clip_callback(Widget w, XtPointer context, XtPointer info)
{
XmToggleButtonCallbackStruct *cb = (XmToggleButtonCallbackStruct *)info;
@@ -490,6 +564,8 @@ static void mix_clip_callback(Widget w, XtPointer context, XtPointer info)
}
+/* -------- wave -------- */
+
static void mix_wave_callback(Widget w, XtPointer context, XtPointer info)
{
XmToggleButtonCallbackStruct *cb = (XmToggleButtonCallbackStruct *)info;
@@ -498,6 +574,8 @@ static void mix_wave_callback(Widget w, XtPointer context, XtPointer info)
}
+/* -------- next/previous -------- */
+
static Widget nextb, previousb;
static void mix_next_callback(Widget w, XtPointer context, XtPointer info)
@@ -568,14 +646,15 @@ void make_mixer_icons_transparent_again(Pixel old_color, Pixel new_color)
}
}
+static Widget w_sync;
Widget make_mix_dialog(void)
{
if (mix_dialog == NULL)
{
Widget mainform, mix_row, mix_frame, sep, w_sep1;
- Widget w_dB_frame, w_dB, w_clip, w_wave, w_dB_row;
- XmString xdismiss, xhelp, xtitle, s1, xapply;
+ Widget w_dB_frame, w_dB, w_clip, w_wave, w_dB_row, env_button;
+ XmString xdismiss, xhelp, xtitle, s1, xcopy;
int n;
Arg args[20];
XtCallbackList n1, n2;
@@ -586,14 +665,14 @@ Widget make_mix_dialog(void)
mix_dialog_id = any_mix_id();
xdismiss = XmStringCreateLocalized(_("Go Away"));
- xapply = XmStringCreateLocalized(_("Apply Env"));
+ xcopy = XmStringCreateLocalized(_("Copy mix"));
xhelp = XmStringCreateLocalized(_("Help"));
xtitle = XmStringCreateLocalized(_("Mixes"));
n = 0;
XtSetArg(args[n], XmNbackground, ss->sgx->basic_color); n++;
XtSetArg(args[n], XmNokLabelString, xdismiss); n++;
- XtSetArg(args[n], XmNcancelLabelString, xapply); n++;
+ XtSetArg(args[n], XmNcancelLabelString, xcopy); n++;
XtSetArg(args[n], XmNhelpLabelString, xhelp); n++;
XtSetArg(args[n], XmNautoUnmanage, false); n++;
XtSetArg(args[n], XmNdialogTitle, xtitle); n++;
@@ -603,11 +682,11 @@ Widget make_mix_dialog(void)
mix_dialog = XmCreateTemplateDialog(MAIN_SHELL(ss), _("Mixes"), args, n);
XtAddCallback(mix_dialog, XmNokCallback, dismiss_mix_dialog_callback, NULL);
- XtAddCallback(mix_dialog, XmNcancelCallback, apply_mix_dialog_callback, NULL);
+ XtAddCallback(mix_dialog, XmNcancelCallback, copy_mix_dialog_callback, NULL);
XtAddCallback(mix_dialog, XmNhelpCallback, help_mix_dialog_callback, NULL);
XmStringFree(xhelp);
- XmStringFree(xapply);
+ XmStringFree(xcopy);
XmStringFree(xdismiss);
XmStringFree(xtitle);
@@ -619,6 +698,12 @@ Widget make_mix_dialog(void)
XtVaSetValues(XmMessageBoxGetChild(mix_dialog, XmDIALOG_HELP_BUTTON), XmNbackground, ss->sgx->help_button_color, NULL);
n = 0;
+ XtSetArg(args[n], XmNbackground, ss->sgx->reset_button_color); n++;
+ XtSetArg(args[n], XmNarmColor, ss->sgx->pushed_button_color); n++;
+ env_button = XtCreateManagedWidget(_("Apply env"), xmPushButtonGadgetClass, mix_dialog, args, n);
+ XtAddCallback(env_button, XmNactivateCallback, apply_mix_dialog_callback, NULL);
+
+ n = 0;
XtSetArg(args[n], XmNbackground, ss->sgx->basic_color); n++;
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
@@ -831,7 +916,7 @@ Widget make_mix_dialog(void)
XtSetArg(args[n], XmNseparatorType, XmNO_LINE); n++;
w_sep1 = XtCreateManagedWidget("mix-dialog-sep1", xmSeparatorWidgetClass, mainform, args, n);
- /* button box for dB clip wave */
+ /* button box for dB clip wave sync */
n = 0;
XtSetArg(args[n], XmNbackground, ss->sgx->basic_color); n++;
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
@@ -866,6 +951,11 @@ Widget make_mix_dialog(void)
w_dB = make_togglebutton_widget(_("dB"), w_dB_row, args, n);
XtAddCallback(w_dB, XmNvalueChangedCallback, mix_dB_callback, NULL);
+ if (mix_sync_from_id(mix_dialog_id) != 0)
+ {XtSetArg(args[n], XmNset, true); n++;}
+ w_sync = make_togglebutton_widget(_("sync"), w_dB_row, args, n);
+ XtAddCallback(w_sync, XmNvalueChangedCallback, mix_sync_callback, NULL);
+
n = 0;
XtSetArg(args[n], XmNbackground, ss->sgx->basic_color); n++;
@@ -951,7 +1041,7 @@ void reflect_mix_change(int mix_id)
mus_float_t val;
set_sensitive(nextb, (next_mix_id(mix_dialog_id) != INVALID_MIX_ID));
set_sensitive(previousb, (previous_mix_id(mix_dialog_id) != INVALID_MIX_ID));
-
+
/* now reflect current mix state in mix dialog controls */
if (mix_exists(mix_dialog_id))
{
@@ -959,7 +1049,18 @@ void reflect_mix_change(int mix_id)
mus_long_t beg, len;
char lab[LABEL_BUFFER_SIZE];
+ /* syncd mixes have the same color (red) reverting to old color when sync changes */
cp = mix_chan_info_from_id(mix_dialog_id);
+ if (old_mix_dialog_id != INVALID_MIX_ID)
+ {
+ mix_unset_color_from_id(old_mix_dialog_id);
+ syncd_mix_unset_color(old_mix_dialog_id);
+ }
+ old_mix_dialog_id = mix_dialog_id;
+ mix_set_color_from_id(mix_dialog_id, ss->sgx->red);
+ syncd_mix_set_color(mix_dialog_id, ss->sgx->red);
+
+ for_each_normal_chan(display_channel_mixes);
if (!dragging)
{
@@ -1003,6 +1104,8 @@ void reflect_mix_change(int mix_id)
if (!dialog_env)
dialog_env = default_env(1.0, 1.0);
mix_amp_env_resize(w_env, NULL, NULL);
+
+ set_toggle_button(w_sync, (mix_sync_from_id(mix_dialog_id) != 0), false, NULL);
}
}
}
@@ -1019,3 +1122,8 @@ void mix_dialog_set_mix(int id)
mix_dialog_id = id;
reflect_mix_change(mix_dialog_id);
}
+
+
+/* PERHAPS: lock (apply?) mix -- some way to write it and remove the mixer */
+
+
diff --git a/snd-xprefs.c b/snd-xprefs.c
index 9e29848..386e478 100644
--- a/snd-xprefs.c
+++ b/snd-xprefs.c
@@ -124,7 +124,7 @@ static void set_radio_button(prefs_info *prf, int which)
static int which_radio_button(prefs_info *prf)
{
- int which = 0;
+ pointer_or_int_t which = 0;
XtVaGetValues(prf->radio_button, XmNuserData, &which, NULL);
return(which);
}
diff --git a/snd-xref.c b/snd-xref.c
index 33be43a..5a765b0 100644
--- a/snd-xref.c
+++ b/snd-xref.c
@@ -1,6 +1,6 @@
/* Snd help index (generated by index.cl) */
-#define HELP_NAMES_SIZE 1338
-#if HAVE_SCHEME || HAVE_FORTH || HAVE_CL
+#define HELP_NAMES_SIZE 1335
+#if HAVE_SCHEME || HAVE_FORTH
static const char *help_names[HELP_NAMES_SIZE] = {
"abort",
"add-amp-controls",
@@ -99,6 +99,7 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"chans",
"chebyshev filters",
"check-for-unsaved-edits",
+ "check-mix-tags",
"clean-channel",
"clean-sound",
"clear-array",
@@ -607,8 +608,8 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"min-dB",
"minibuffer-history-length",
"mix",
- "mix->vct",
"mix->integer",
+ "mix->vct",
"mix-amp",
"mix-amp-env",
"mix-channel",
@@ -865,14 +866,9 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"pink-noise",
"place-sound",
"play",
- "play-and-wait",
"play-between-marks",
- "play-channel",
"play-hook",
- "play-mix",
"play-mixes",
- "play-region",
- "play-selection",
"play-sines",
"play-syncd-marks",
"player-home",
@@ -931,9 +927,9 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"redo-channel",
"redo-edit",
"region->frame",
+ "region->integer",
"region->sound-data",
"region->vct",
- "region->integer",
"region-chans",
"region-frames",
"region-graph-style",
@@ -1040,6 +1036,8 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"selected-data-color",
"selected-graph-color",
"selected-sound",
+ "selection",
+ "selection->mix",
"selection->sound-data",
"selection-chans",
"selection-color",
@@ -1106,8 +1104,8 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"sndwarp",
"sound->amp-env",
"sound->frame",
- "sound->sound-data",
"sound->integer",
+ "sound->sound-data",
"sound-data*",
"sound-data+",
"sound-data->file",
@@ -1308,7 +1306,6 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"with-gl",
"with-local-hook",
"with-marked-sound",
- "with-mix",
"with-mix-tags",
"with-mixed-sound",
"with-mixed-sound->notelist",
@@ -1440,6 +1437,7 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"chans",
"chebyshev_filters",
"check_for_unsaved_edits",
+ "check_mix_tags",
"clean_channel",
"clean_sound",
"clear_array",
@@ -1948,8 +1946,8 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"min_dB",
"minibuffer_history_length",
"mix",
- "mix2vct",
"mix2integer",
+ "mix2vct",
"mix_amp",
"mix_amp_env",
"mix_channel",
@@ -2206,14 +2204,9 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"pink_noise",
"place_sound",
"play",
- "play_and_wait",
"play_between_marks",
- "play_channel",
"play_hook",
- "play_mix",
"play_mixes",
- "play_region",
- "play_selection",
"play_sines",
"play_syncd_marks",
"player_home",
@@ -2272,9 +2265,9 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"redo_channel",
"redo_edit",
"region2frame",
+ "region2integer",
"region2sound_data",
"region2vct",
- "region2integer",
"region_chans",
"region_frames",
"region_graph_style",
@@ -2381,6 +2374,8 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"selected_data_color",
"selected_graph_color",
"selected_sound",
+ "selection",
+ "selection2mix",
"selection2sound_data",
"selection_chans",
"selection_color",
@@ -2447,8 +2442,8 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"sndwarp",
"sound2amp_env",
"sound2frame",
- "sound2sound_data",
"sound2integer",
+ "sound2sound_data",
"sound_data_",
"sound_data_",
"sound_data2file",
@@ -2649,7 +2644,6 @@ static const char *help_names[HELP_NAMES_SIZE] = {
"with_gl",
"with_local_hook",
"with_marked_sound",
- "with_mix",
"with_mix_tags",
"with_mixed_sound",
"with_mixed_sound2notelist",
@@ -2783,6 +2777,7 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"extsnd.html#chans",
"sndscm.html#analogfilterdoc",
"sndscm.html#checkforunsavededits",
+ "sndscm.html#checkmixtags",
"sndscm.html#cleanchannel",
"sndscm.html#cleansound",
"sndclm.html#clear-array",
@@ -3291,8 +3286,8 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"extsnd.html#mindb",
"extsnd.html#minibufferhistorylength",
"extsnd.html#mix",
- "sndscm.html#mixtovct",
"extsnd.html#mixtointeger",
+ "sndscm.html#mixtovct",
"extsnd.html#mixamp",
"extsnd.html#mixampenv",
"sndscm.html#mixchannel",
@@ -3549,14 +3544,9 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"sndclm.html#pink-noise",
"sndscm.html#placesound",
"extsnd.html#play",
- "extsnd.html#playandwait",
"sndscm.html#playbetweenmarks",
- "extsnd.html#playchannel",
"extsnd.html#playhook",
- "extsnd.html#playmix",
"sndscm.html#playmixes",
- "extsnd.html#playregion",
- "extsnd.html#playselection",
"sndscm.html#playsines",
"sndscm.html#playsyncdmarks",
"extsnd.html#playerhome",
@@ -3615,9 +3605,9 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"extsnd.html#redochannel",
"extsnd.html#redoedit",
"sndscm.html#regiontoframe",
+ "extsnd.html#regiontointeger",
"sndscm.html#regiontosounddata",
"extsnd.html#regiontovct",
- "extsnd.html#regiontointeger",
"extsnd.html#regionchans",
"extsnd.html#regionframes",
"extsnd.html#regiongraphstyle",
@@ -3683,7 +3673,7 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"extsnd.html#savemacros",
"sndscm.html#savemarkproperties",
"extsnd.html#savemarks",
- "sndscm.html#savemix",
+ "extsnd.html#savemix",
"sndscm.html#savemixes",
"extsnd.html#saveregion",
"extsnd.html#saveregiondialog",
@@ -3724,6 +3714,8 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"extsnd.html#selecteddatacolor",
"extsnd.html#selectedgraphcolor",
"extsnd.html#selectedsound",
+ "extsnd.html#selection",
+ "extsnd.html#selectiontomix",
"sndscm.html#selectiontosounddata",
"extsnd.html#selectionchans",
"extsnd.html#selectioncolor",
@@ -3790,8 +3782,8 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"sndscm.html#sndwarp",
"sndscm.html#soundtoamp_env",
"sndscm.html#soundtoframe",
- "sndscm.html#soundtosounddata",
"extsnd.html#soundtointeger",
+ "sndscm.html#soundtosounddata",
"extsnd.html#sounddata*",
"extsnd.html#sounddata+",
"sndscm.html#sounddatatofile",
@@ -3992,7 +3984,6 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
"extsnd.html#withgl",
"sndscm.html#withlocalhook",
"sndscm.html#withmarkedsound",
- "sndscm.html#with-mix",
"extsnd.html#withmixtags",
"sndscm.html#withmixedsound",
"sndscm.html#withmixedsoundtonotelist",
@@ -4141,7 +4132,7 @@ static const char *Mixing_urls[] = {
"extsnd.html#makemixsampler",
"sndscm.html#mixmaxamp",
"sndscm.html#mixtovct",
- "sndscm.html#savemix",
+ "extsnd.html#savemix",
"sndscm.html#mixproperty",
"sndscm.html#placesound",
"extsnd.html#mixmovesound",
@@ -4207,6 +4198,7 @@ static const char *Selections_xrefs[] = {
"notch filter selection: {notch-selection}",
"undo select-all.: {deselect-all}",
"filter the selection: {filter-selection}, {filter-selection-and-smooth}",
+ "turn the selection into a mix: {selection->mix}",
NULL};
static const char *Selections_urls[] = {
@@ -4233,6 +4225,7 @@ static const char *Selections_urls[] = {
"sndscm.html#notchselection",
"sndscm.html#menusdoc",
"extsnd.html#filterselection",
+ "extsnd.html#selectiontomix",
NULL};
static const char *Cursors_xrefs[] = {
@@ -4531,12 +4524,12 @@ static const char *Maxamps_urls[] = {
static const char *Playing_xrefs[] = {
-"play one channel: {play-channel}, play button in control panel or files dialog",
+"play one channel: (play sound-object :channel n), play button in control panel or files dialog",
"play from cursor: C-q and example above",
"play from cursor with tracking cursor: {pfc} above",
- "play the selection: {play-selection}, {C-x p}",
- "play a region: {play-region}, {C-x p}, play button in Region dialog",
- "play a mix: {play-mix}, play button in Mix dialog",
+ "play the selection: (play (selection)), {C-x p}",
+ "play a region: (play region-object), {C-x p}, play button in Region dialog",
+ "play a mix: (play mix-object), play button in Mix dialog",
"play a sequence of mixes: {play-mixes}",
"play from mark: click or drag triangle (control-click for all chans)",
"play continuously between two marks: {loop-it}",
@@ -4557,12 +4550,12 @@ static const char *Playing_xrefs[] = {
static const char *Playing_urls[] = {
-"extsnd.html#playchannel",
+NULL,
NULL,
"extsnd.html#pfc",
- "extsnd.html#playselection",
- "extsnd.html#playregion",
- "extsnd.html#playmix",
+ "snd.html#cxp",
+ "snd.html#cxp",
+ NULL,
"sndscm.html#playmixes",
NULL,
"sndscm.html#loopbetweenmarks",
@@ -4654,7 +4647,7 @@ NULL,
"extsnd.html#savestate",
"extsnd.html#saveselection",
"extsnd.html#saveregion",
- "sndscm.html#savemix",
+ "extsnd.html#savemix",
"extsnd.html#savecontrols",
"extsnd.html#saveenvelopes",
"extsnd.html#savesounddialog",
diff --git a/snd.c b/snd.c
index c7c5fe5..ff811e8 100644
--- a/snd.c
+++ b/snd.c
@@ -367,8 +367,6 @@ struct sigaction new_act, old_act;
static void handle_sigquit(int ignored)
{
- /* PERHAPS: add a variable to hold the interrupt continuation */
-
fprintf(stderr, "interrupted!\n");
sigaction(SIGQUIT, &new_act, NULL);
s7_quit(s7); /* get out of the eval loop if possible */
diff --git a/snd.h b/snd.h
index 2e77574..7f72cf7 100644
--- a/snd.h
+++ b/snd.h
@@ -71,11 +71,11 @@
#include "snd-strings.h"
-#define SND_DATE "19-Oct-09"
+#define SND_DATE "30-Nov-09"
#ifndef SND_VERSION
-#define SND_VERSION "11.0"
+#define SND_VERSION "11.1"
#endif
#define SND_MAJOR_VERSION "11"
-#define SND_MINOR_VERSION "0"
+#define SND_MINOR_VERSION "1"
#endif
diff --git a/snd.html b/snd.html
index 7102a3d..4dd41cf 100644
--- a/snd.html
+++ b/snd.html
@@ -31,9 +31,6 @@
<center>Bill Schottstaedt (bil@ccrma.stanford.edu)</center>
<br><br>
-<!-- indexing entries are of the form I(action):M|L|O|K|A(name)(optional href) -->
-<!-- A=index name, M=menu, L=lisp, O=other, K=keyboard -->
-<!-- these are then gathered into the reference table at the end by snd-index.cl -->
<!-- I'm using A NAME (i.e caps) where the entity should be ignored by the indexer (index.cl) -->
<center><img src="pix/title.png" usemap="#sndwindow" vspace=10 border=0 alt="standard Snd appearance"></center>
@@ -144,7 +141,6 @@ is included in <a href="http://ccrma.stanford.edu/planetccrma/software/">PlanetC
</ul>
<li><a href="#controls">The Control Panel</a>
-<li><a href="#index">Topical Index</a>
</ul></small>
</td><td><small>
@@ -231,10 +227,6 @@ is included in <a href="http://ccrma.stanford.edu/planetccrma/software/">PlanetC
</td></tr>
</table>
- <!-- I(examine regions):A(regions) --><!-- I(control panel):A(controls) -->
- <!-- I(move cursor ahead):A(thecursor) --><!-- I(move cursor back):A(thecursor) -->
- <!-- I(define mark):A(marks) -->
-
<br>
<table border=8 bordercolor="lightgreen" hspace=20>
@@ -387,6 +379,9 @@ the graph &mdash; the portion dragged is highlighted in
some way. When you release the mouse button, the
highlighted portion becomes a
'selection' that you can play, delete, or mix elsewhere.
+If you place the mouse toward the top of the graph at the selection
+boundary, the cursor changes to a double-arrow, and you can drag the
+boundary.
</p>
<p>You'll
@@ -425,7 +420,7 @@ no surprises.
The GL spectrograph is somewhat unusual,
and I like the paned window approach to multichannel sounds ("<i>de gustibus...</i>").
But it is primarily the embedded extension language
-(s7, Guile, Ruby, or Forth) that
+(s7, Ruby, or Forth) that
makes Snd different from other editors.
Everything in Snd from the low-level data readers to the
high-level editing operations is tied into the extension
@@ -464,10 +459,6 @@ is an introduction to FM; sndclm.html is the basic generator documentation;
<a href="sndlib.html">sndlib.html</a> describes the underlying sound IO library; <a href="libxm.html">libxm.html</a>
describes the user-interface extension library.
</p>
-
- <!-- I(show freq domain):A(fw) --><!-- I(show time domain):A(fw) -->
- <!-- I(show freq domain):O('f' button)(fw) --><!-- I(show time domain):O('w' button)(fw) -->
-
<br>
<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
@@ -493,19 +484,6 @@ describes the user-interface extension library.
<tr><td><a href="#exitfile">Exit</a></td><td>leave Snd, flushing all pending edits</td><td></td></tr>
</table>
- <!-- I(open file):M(File: Open)(openfile) --><!-- I(close file):M(File: Close)(closefile) -->
- <!-- I(save file):M(File: Save)(savefile) --><!-- I(save file):O(Popup: Save) -->
- <!-- I(save file as):M(File: Save as)(savefileas) -->
- <!-- I(revert file):M(File: Revert)(revertfile) --><!-- I(open file read-only):M(File: View)(viewfile) -->
- <!-- I(create new file):M(File: New)(newfile) --><!-- I(create new file):A(newfile) -->
- <!-- I(print file):M(File: Print)(printfile) --><!-- I(exit Snd):M(File: Exit)(exitfile) -->
- <!-- I(file formats):M(File: Save as)(savefileas) --><!-- I(exit Snd):O(window menu: close or exit) -->
- <!-- I(update file):M(File: Update)(updatefile) --><!-- I(update file):K([Home]) --><!-- I(update file):A(updatefile) -->
- <!-- I(update file):O(auto-update)(autoupdateinterval) -->
- <!-- I(mix file):M(File: Mix)(mixingfiles) --> <!-- I(mix file):A(mixingfiles) -->
- <!-- I(insert file):M(File: Insert)(insertfile) --> <!-- I(insert file):A(insertfile) -->
- <!-- I(record sound):M(File: Record)(recordfile) --> <!-- I(record sound):A(recordfile) -->
- <!-- I(change format):M(File: Save as)(savefileas) --><!-- I(change format):O(Edit: Edit header)(editheader) -->
<p>When invoked, Snd scans
its arguments for file names, and opens any it finds.
@@ -528,7 +506,6 @@ precede the file name with <A class=def NAME="minusl">"-l"</a> or "-load" (or us
<p>opens the sound file oboe.snd and loads the Scheme code in <a href="sndscm.html#exampdoc">examp.scm</a>.
</p>
- <!-- I(continue session):O(-l switch to Snd)(minusl) -->
<p>Normally Snd adds each new sound below those currently being
displayed.
@@ -557,7 +534,6 @@ explicit setting:
<p>For more on resources and defaults, see <a href="grfsnd.html#startup">Snd Startup</a>.
</p>
-<!-- I(horizontal panes):O(-h switch to Snd)(verticalpane) --><!-- I(horizontal panes):A(verticalpane) -->
<A NAME="openfile"></a>
@@ -574,7 +550,6 @@ explicit setting:
<p>A file can be opened from the File menu via Open
or View. <A class=def NAME="viewfile">View</a> opens the file read-only, whereas Open
-<!-- I(open file read-only):A(viewfile) -->
allows it to be changed. The equivalent keyboard
command is C-x C-f.
If a file cannot be changed (either it was opened read-only
@@ -605,6 +580,7 @@ see should always be up-to-date. The name field has TAB completion, of course, a
watches as you type a new name, reflecting that partial name by moving the file list to
display possible matches.
</p>
+
<!-- INDEX formats:Headers and Data formats -->
<A NAME="formats"></a>
<p>Snd can handle the following file and data types:</p>
@@ -645,7 +621,6 @@ display possible matches.
</pre>
</td></tr></table>
- <!-- I(file formats):A(formats) -->
<p>
The files can have any number of channels.
@@ -694,7 +669,6 @@ operations, a 'unite' button (if the sound has more than one channel),
and a 'play' button to play the
current (edited) state of the file.
</p>
- <!-- I(control panel):O(drag pane sash)(panecontrol) -->
<A NAME="newfile"></a><p>To open a new, empty file, use the File:New option.
The default values for the fields can be set by clicking "Reset". These values are <a href="extsnd.html#defaultoutputchans">default-output-chans</a>,
@@ -736,7 +710,7 @@ then click 'Extract'.
<A NAME="revertfile"></a><p>To undo all edits and return to the last saved state
of a file, use the Revert option. The edit history
is still available, so you can redo all the edits
-in order simply by calling <a href="#undoredo">Redo</a> repeatedly.
+in order by calling <a href="#undoredo">Redo</a> repeatedly.
There's also a list on the left of each channel pane containing a list of
the current edits. You can click anywhere in the list to move to that
edit.
@@ -767,11 +741,7 @@ The <a href="#insertfile">Insert</a> option inserts a file at the cursor.
temporary files, and cleaning up some system stuff),
use the Exit option. Unsaved edits are silently
flushed (but see the function check-for-unsaved-edits in <a href="sndscm.html#checkforunsavededits">extensions.scm</a>).</p>
- <!-- I(close file):K(C-x k)(cxk) --><!-- I(close file):A(closefile) --><!-- I(save file):A(savefile) --><!-- I(exit Snd):A(exitfile) -->
- <!-- I(save file):K(C-x C-s)(cxcs) --><!-- I(save selection):K(C-x w)(cxw) --><!-- I(save channel):K(C-x C-w)(cxcw) -->
- <!-- I(extract channel):K(C-x C-w)(cxcw) --><!-- I(extract channel):A(cxcw) -->
- <!-- I(save channel):A(cxcw) -->
- <!-- I(revert file):A(revertfile) --><!-- I(print file):A(printfile) -->
+
<br>
<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="viewing">The Display</a></h3></td></tr></table>
@@ -793,16 +763,6 @@ flushed (but see the function check-for-unsaved-edits in <a href="sndscm.html#ch
<tr><td><a href="#zoomoption">Zoom focus</a></td><td>where to focus during zooms</td></tr>
</table>
- <!-- I(control panel):M(View: Show controls)(controls) --><!-- I(control panel):K(C-x C-o, C-x C-c)(cxco) -->
- <!-- I(combine channels):M(View: Channel style)(unitebutton) -->
- <!-- I(combine channels):A(unitebutton) --><!-- I(describe file):M(Popup: Info)(viewinfo) -->
- <!-- I(describe file):A(viewinfo) --><!-- I(describe file):O(Edit: Edit Header)(viewinfo) -->
- <!-- I(dots or lines):M(View: Dots)(viewdots) --><!-- I(dots or lines):O(dot-size: numberpad '.', '0')(dotsize) -->
- <!-- I(y=0 line):M(View: Show y=0)(viewy0) --><!-- I(describe sample):M(View: Verbose cursor)(withverbosecursor) -->
- <!-- I(describe sample):L(with-verbose-cursor)(withverbosecursor) --><!-- I(describe sample):A(withverbosecursor) -->
- <!-- I(examine regions):M(View: Regions)(regionbrowser) --><!-- I(color):M(View: Color)(colorbrowser) -->
- <!-- I(file lists):M(View: Files)(viewfiles) -->
- <!-- I(X axis units):M(View: X axis units)(xaxisstyle) --><!-- I(X axis units):A(xaxisstyle) -->
<p>The sound display can be modified in various ways. <A NAME="viewdots"></a>Choose View:Graph style:dots
to view the sound as dots rather than connected lines
@@ -811,7 +771,7 @@ Y = 0, use the y=0 option. The Region browser is described under
<a href="#regions">Regions</a>. To open the control panel, use Show Controls.
To open or close the listener, use Open listener.
</p>
- <!-- I(dots or lines):A(viewdots) --><!-- I(y=0 line):A(viewy0) -->
+
<p>The <A class=def NAME="colorbrowser">Color/Orientation</a> option
activates a window that sets various aspects of the sonogram, spectrogram,
@@ -819,7 +779,7 @@ and wavogram displays. There are fifteen or so colormaps available along with
ways to invert the maps, and scale (darken) them differently according to screen or
printer characteristics.
</p>
- <!-- I(color):A(colorbrowser) --><!-- I(orientation):A(colorbrowser) -->
+
<p>The <A class=def NAME="viewinfo">Popup menu's Info</a> dialog can be left in view and updated with M-v i
to reflect the currently active sound. The same information is displayed in the
@@ -851,9 +811,6 @@ about each file as the mouse passes over it.
</p>
<br clear=left>
- <!-- I(file lists):A(viewfiles) --><!-- I(play file):M(Popup: Play) -->
- <!-- I(play file):O(File or main window: 'play') --><!-- I(select sound):O(File dialog: click file) -->
- <!-- I(open file):O(Files dialog: click file) -->
<p>The <a href="#regionbrowser">Regions</a> and <a href="#mixdialog">Mix Dialog</a> options are described below.</p>
@@ -870,22 +827,6 @@ about each file as the mouse passes over it.
<tr><td><a href="#preferencesbrowser">Preferences</a></td><td>customize Snd</td></tr>
</table>
- <!-- I(fft size):M(Options: Transform)(fftsize) --><!-- I(fft size):O(transform-size: numberpad: '*', '/')(transformsize) -->
- <!-- I(fft size):A(fftsize) --><!-- I(fft peaks):M(Options: Transform)(showpeaks) -->
- <!-- I(fft normalization):M(Options: Transform)(normalizefft) -->
- <!-- I(fft peaks):A(showpeaks) --><!-- I(fft log freq):M(Options: Transform)(logfreq) -->
- <!-- I(fft log freq):A(logfreq) --><!-- I(fft in dB):M(Options: Transform)(fftindb) -->
- <!-- I(fft in dB):A(fftindb) --><!-- I(fft/sono/spectrogram):M(Options: Transform)(transformgraphtype) -->
- <!-- I(sonogram):M(Options: Transform)(fftstyle) --><!-- I(sonogram):O(colormap)(colormap) -->
- <!-- I(spectrogram):M(Options: Transform)(fftstyle) --><!-- I(spectrogram):O(orientation, scaling)(spectrumend) -->
- <!-- I(fft/sono/spectrogram):A(fftstyle) --><!-- I(sonogram):A(fftstyle) -->
- <!-- I(spectrogram):A(fftstyle) --><!-- I(fft window):M(Options: Transform)(menufftwindow) -->
- <!-- I(fft window):A(menufftwindow) --><!-- I(fft window parameter):M(Options: Transform)(Xfftbeta) -->
- <!-- I(fft window parameter):A(Xfftbeta) --><!-- I(zoom focus):M(Options: Zoom style)(zoomoption) -->
- <!-- I(save options):M(Options: Save options)(saveoptions) -->
- <!-- I(save session):M(Options: Save session)(savedstate) -->
- <!-- I(speed units):A(speedstyle) -->
- <!-- I(wavelets):A(menutransformtype) --><!-- I(wavelets):M(Options: Transform)(menutransformtype) -->
<A NAME="viewfft"></a><p>
Transform Options applies mainly to the FFT display triggered
@@ -942,7 +883,6 @@ updated.
normally the Fourier Transform, but others are available, including
about 20 wavelet choices, and <A NAME="autocorrelation">autocorrelation</a>.</p>
- <!-- I(autocorrelation):A(autocorrelation) --><!-- I(autocorrelation):M(Options: Transform)(viewfft) -->
<A NAME="fftstyle"></a><p>The top three buttons in the transform dialog choose between a normal
fft, a sonogram, or a spectrogram. The <A NAME="showpeaks"></a>peaks
@@ -984,7 +924,6 @@ or the numeric keypad + and - keys.
</p>
<img src="pix/wavo.png" alt="wavogram of oboe" hspace=20>
- <!-- I(wavogram):A(wavogram) --><!-- I(wavogram):L(time-graph-type)(wavogram) --><!-- I(wavogram):O(wavo-trace, wavo-hop)(wavohop) -->
<A NAME="saveoptions"></a><p>The Save options menu option is a part
of the <a href="extsnd.html#appearance">customization</a> process. It
@@ -999,7 +938,6 @@ The default is to zoom onto the cursor or the beginning of the current
selection if either is visible. You can also have
zoom focus on the left edge, right edge, or
midpoint of the current window.</p>
- <!-- I(save options):A(saveoptions) --><!-- I(zoom focus):A(zoomoption) -->
<A NAME="preferencesbrowser"></a>
<p>The Preferences dialog tries to make it easier to set up Snd initially. It is a GUI-based way to
@@ -1037,16 +975,6 @@ if you linger over some other topic, its help info will be posted in the help di
<tr><td><a href="#editheader">Edit Header</a></td><td>Edit or view file header</td><td></td></tr>
</table>
- <!-- I(undo edit):M(Edit: Undo)(undoredo) --><!-- I(undo edit):K(C-_ or C-x C-u)(cxcu) --><!-- I(undo edit):O(Popup: Undo) -->
- <!-- I(redo edit):M(Edit: Redo)(undoredo) --><!-- I(redo edit):K(C-x C-r)(cxcr) --><!-- I(redo edit):O(Popup: Redo) -->
- <!-- I(find):M(Edit: Find)(menufind) --><!-- I(find):K(C-s or C-r)(cs) --><!-- I(cut selection):M(Edit: Cut)(editcut) -->
- <!-- I(find):L(find-channel)(findchannel) --><!-- I(find):O(count-matches)(countmatches) -->
- <!-- I(cut selection):A(editoperations) --><!-- I(delete samples):M(Edit: Cut)(editcut) --><!-- I(delete samples):A(editoperations) -->
- <!-- I(insert selection):M(Edit: Paste)(editcut) --><!-- I(insert selection):K(C-y or C-x i)(cxi) --><!-- I(insert selection):A(editcut) -->
- <!-- I(mix selection):M(Edit: Mix)(editcut) --><!-- I(mix selection):K(C-x q)(cxq) --><!-- I(mix selection):A(editcut) -->
- <!-- I(play selection):M(Edit: Play)(cxp) --><!-- I(play selection):K(C-x p)(cxp) --><!-- I(play selection):A(cxp) -->
- <!-- I(save selection):M(Edit: Save selection)(cxw) --><!-- I(save selection):A(cxw) -->
- <!-- I(edit header):M(Edit: Edit Header)(editheader) --><!-- I(edit header):A(editheader) -->
<p>Editing in Snd is modelled after Emacs in many regards. Each
channel has a cursor (a big "+"), a set of marks, and a list of
@@ -1084,7 +1012,7 @@ or the <a href="extsnd.html#selectedgraphcolor">selected-graph-color</a>:</p>
</pre>
<p>The selected channel receives keyboard commands. You can
also move between windows with <A NAME="cxo"></a>C-x o.</p>
- <!-- I(select sound):K(C-x o)(cxo) -->
+
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>Moving the Cursor</h4></td></tr></table>
@@ -1116,10 +1044,6 @@ To move the cursor from the keyboard, use:</p>
If the argument is a float, it is multiplied by the sampling
rate before being applied to the command, so C-u 2.1 C-f moves
the cursor forward 2.1 seconds in the data.</p>
- <!-- I(move cursor ahead):K(C-f, C-n, C-e)(ce)(movecursor) --><!-- I(move cursor back):K(C-b, C-p, C-a)(ca)(movecursor) -->
- <!-- I(move cursor ahead):O(also &gt;) --><!-- I(move cursor back):O(also &lt;) --><!-- I(describe sample):K(C-i)(ci) -->
- <!-- I(move to mark):K(C-j, C-x j)(cj) --><!-- I(move to mark):O(C-x j -&gt; named mark)(cxj) -->
- <!-- I(move to mark):A(cj) --><!-- I(numeric arguments):A(cu) -->
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>Moving the Window</h4></td></tr></table>
@@ -1165,14 +1089,6 @@ If you'd like far more precise window moving and zooming control,
see <a href="extsnd.html#moveonepixel">move-one-pixel</a> and
<a href="extsnd.html#zoomonepixel">zoom-one-pixel</a>.
</p>
- <!-- I(zoom window):O(control keys intensify)(movingwindow) -->
- <!-- I(zoom window):A(movingwindow) --><!-- I(move window back):A(movingwindow) -->
- <!-- I(move window ahead):A(movingwindow) --><!-- I(move window back):O(scroll bars) -->
- <!-- I(move window ahead):O(scroll bars) --><!-- I(center cursor):A(movewindow) -->
- <!-- I(center cursor):K(C-l, C-v)(cv) --><!-- I(move window ahead):K([Left], C-x f)(cxf)(movewindow) -->
- <!-- I(move window back):K([Right], C-x b)(movewindow) --><!-- I(zoom window):K([Up],[Down]) -->
- <!-- I(center selection):K(C-x l)(cxl) --><!-- I(center selection):A(cxl) -->
- <!-- I(axis bounds):K(C-x C-b, C-x C-p)(cxcb) --><!-- I(axis bounds):A(cxcb) -->
<br>
<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="marks">Marks</a></h3></td></tr></table>
@@ -1219,7 +1135,6 @@ getting the distance.</p>
<p>The function <a href="extsnd.html#savemarks">save-marks</a> saves the current marks in a
file.
</p>
- <!-- I(save marks):A(savemarks) -->
<br>
<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="regions">Regions</a></h3></td></tr></table>
@@ -1256,8 +1171,7 @@ A region can also be defined with keyboard
commands, much as in Emacs. C-[space] starts the
region definition and the various cursor moving
commands continue the definition.</p>
- <!-- I(define selection):O(mouse drag)(mousedefsect) --><!-- I(define selection):A(mousedefsect) -->
- <!-- I(define selection):M(Edit: Select All)(menuselectall) -->
+
<A NAME="regionbrowser"></a><p>Once defined, the copied region
is added to a list of currently
@@ -1357,9 +1271,7 @@ See <a href="extsnd.html#editlists">Edit Lists</a> for more details.
</ul>
</td></tr></table>
- <!-- I(amp env):A(ampenvs) --><!-- I(undo edit):A(undoredo) --><!-- I(redo edit):A(undoredo) -->
- <!-- I(find):A(menufind) --><!-- I(play file):A(play) --><!-- I(keyboard macros):A(kbdmacros) -->
- <!-- I(amp env):M(Edit: Edit Env)(editenvelope) -->
+
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="saveopen">Save, open, close, print</a></h4></td></tr></table>
@@ -1379,7 +1291,6 @@ be invoked from the keyboard:</p>
</pre>
<p>The Print command produces a PostScript
file which can be sent to directly a printer or saved for later use.</p>
- <!-- I(open file):K(C-x C-f)(cxcf) --><!-- I(open file):A(saveopen) -->
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="deleteinsert">Delete, insert, mix</a></h4></td></tr></table>
@@ -1452,7 +1363,6 @@ channel to affect all channels at once.
The superimposed channels display is not very useful if you're trying to
edit the sound; it's aimed more at FFT comparisons and so on.
</p>
- <!-- I(multichannel ops):A(multichannel) --><!-- I(multichannel ops):O(sync button)(syncbutton) -->
<p>To get multichannel selections, set the sync
button, then define the selection (by dragging
@@ -1510,7 +1420,6 @@ variable to #t, since 1.0 itself is not representable,
the actual scaled-to value is just less than 1.0 to avoid the
(unwanted) wrap-around.
</p>
- <!-- I(amp env):O(scale-to, scale-by)(scaleto) -->
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="menufind">Find</a></h4></td></tr></table>
@@ -1568,7 +1477,6 @@ See also the functions <a href="extsnd.html#findchannel">find-channel</a> and <a
at the cursor to .1. To set several samples to zero, use C-u &lt;number&gt; C-z.
</p>
- <!-- I(change samples):A(changesamples) --><!-- I(change samples):K(C-z, C-x C-z)(cz) -->
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="undoredo">Undo, redo, revert</a></h4></td></tr></table>
@@ -1637,9 +1545,6 @@ My initialization file uses <code>(mus-oss-set-buffers 2 12)</code>.
</p>
- <!-- I(tracking cursor):O(control click 'play')(trackingcursor) -->
- <!-- I(tracking cursor):L(with-tracking-cursor)(withtrackingcursor) -->
- <!-- I(tracking cursor):A(trackingcursor) -->
<A NAME="cq"></a><p>The keyboard commands for playing are:</p>
<pre>
@@ -1647,7 +1552,7 @@ My initialization file uses <code>(mus-oss-set-buffers 2 12)</code>.
C-t stop playing
<A NAME="cxp"></a>C-x p play region (numeric arg selects region)
</pre>
- <!-- I(play channel):K(C-q, C-t)(cq) --><!-- I(play channel):A(cq) -->
+
<p>In a multichannel file, C-q plays all channels from the current channel's
cursor if the sync button is on, and otherwise plays only the current channel.
Except in the browsers, what is actually
@@ -1681,15 +1586,15 @@ mix. The amplitude, amplitude envelope, and speed (resampling rate) of the mixe
be changed independently of anything else either through such functions as
<a href="extsnd.html#mixamp">mix-amp</a>, or through the View:Mix Dialog.
</p>
- <!-- I(move mixed file):O(drag mix tag)(mixingfiles) -->
- <!-- I(move mixed file):A(mixingfiles) -->
<img src="pix/mixer.png" alt="mix tags">
<br>
<br>
<table width="35%" border=0><tr><td bgcolor="#FDFDF2" valign="middle"><A NAME="mixdialog">The Mix Dialog</a></td></tr></table>
-<p>The Mix Dialog (under the View Menu) provides various
+<img src="pix/mixdialog.png" alt="mix dialog" align=right>
+
+<p>The Mix Dialog (click a mix tag, or look in the View Menu) provides various
commonly-used controls on the currently chosen mix. At the top are
the mix id (an integer), its begin and end times, and a play button for the mix.
Beneath that are various sliders
@@ -1698,6 +1603,8 @@ and beneath that an envelope editor for the mix's amplitude envelope.
The current mix amp env is not actually changed until you click 'Apply Env'.
The editor envelope is drawn in black with dots whereas the current
mix amp env (if any) is drawn in blue.
+If the mix's sync field is not 0, any other mixes that share that sync field
+are edited in parallel with the current one.
</p>
@@ -1711,8 +1618,6 @@ produces a container with each sound represented by an icon;
you can drag-and-drop the icon to the place where you want it mixed,
or drop it on the main menubar to open it.
</p>
- <!-- I(move to mix):K(C-x C-j)(cxcj) -->
- <!-- I(move to mix):A(gotomix) -->
<br>
@@ -1726,8 +1631,7 @@ function save-macros saves all currently named macros.
See the <a href="extsnd.html#lisplistener">lisp</a> section for
more details.</p>
- <!-- I(keyboard macros):K(C-(, C-x e)(kce) --><!-- ) -->
- <!-- I(save macros):A(kbdmacros) -->
+
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="changeformat">Change file format</a></h4></td></tr></table>
@@ -1737,8 +1641,6 @@ Choose the header type you want, then the data format,
choice). The File:Save dialog saves the currently selected sound.
The Edit:Save dialog saves the selection in a new file.
</p>
- <!-- I(save file as):A(changeformat) -->
- <!-- I(change format):A(changeformat) -->
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="extendfile">Extend a File</a></h4></td></tr></table>
@@ -1752,7 +1654,7 @@ to add a second, C-&gt; C-u 1.0 C-o. The same sequence
can be used to add silence to the start of a file.
Functions such as <a href="extsnd.html#insertsound">insert-sound</a>
automatically pad with zeros, if necessary.
- <!-- I(extend file):A(extendfile) --><!-- I(extend file):K(C-o)(co) -->
+
</p>
<br>
<!-- INDEX recordfile:Recording -->
@@ -1852,8 +1754,6 @@ improve the fit. In this case, the X axis goes from 0 Hz to half the sampling r
</p>
- <!-- I(edit env):A(editenvelope) --><!-- I(edit env):M(Edit: Edit Env)(editenvelope) -->
- <!-- I(view envs):A(editenvelope) --><!-- I(view envs):M(Edit: Edit Env)(editenvelope) -->
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="editheader">Edit, add, or remove the header</a></h4></td></tr></table>
@@ -1880,9 +1780,7 @@ with this file name and the "-l" switch: snd -l name.
This file is in exactly the same format as the <a href="grfsnd.html#sndinitfile">initialization file</a>, and can be edited, renamed, or
whatever. To load such a file after startup, <code>(load name)</code>.
</p>
- <!-- I(continue session):A(savedstate) -->
- <!-- I(save session):A(savedstate) -->
- <!-- I(save session):L(save-state)(savestate) -->
+
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="centeryaxis">Center a tiny signal with DC</a></h4></td></tr></table>
@@ -1894,7 +1792,7 @@ For example, if your signal is a very soft recording setting only the lowest two
of a 16 bit signal but with DC offset due to the recording conditions,
M-x (set! (<a class=quiet href="extsnd.html#ybounds" onmouseout="UnTip()" onmouseover="Tip(extsnd_ybounds_tip)">y-bounds</a>) '(-.01 .01)) and try the scroller.</p>
- <!-- I(center tiny signal):A(centeryaxis) --><!-- I(center tiny signal):L(y-bounds)(ybounds) -->
+
<br>
<table width="50%" border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4><A NAME="misccommands">Miscellaneous commands</a></h4></td></tr></table>
@@ -1904,8 +1802,6 @@ computations (search, eval expression, and the various envelope applications).
If you notice one that is not interruptible, send me a note &mdash; I probably just
forgot about it.
</p>
-<!-- I(interrupt Snd):A(kgc) -->
-<!-- I(interrupt Snd):K(C-g)(kgc) -->
<p><A NAME="kcu"></a>C-u introduces a numeric argument. Besides the integer and
float cases mentioned several times above, you can also
@@ -1941,11 +1837,6 @@ the selection, carriage-return accepts the current selection, mouse click on any
any other character removes the list.
</p>
- <!-- I(abort command):K(C-g)(kgc) --><!-- I(abort command):O(mouse click) --><!-- I(abort command):A(kgc) -->
- <!-- I(numeric arguments):K(C-u)(kcu) --><!-- I(numeric arguments):O(see marks as args)(kcu) -->
- <!-- I(temp directory):K(C-x d)(ktempdir) --><!-- I(temp directory):A(ktempdir) -->
- <!-- I(temp directory):O(TMPDIR or /var/tmp) -->
- <!-- I(change key binding):A(bindkey) --><!-- I(change key binding):L(bind-key)(bindkey) -->
<br>
<table width="80%" border=0><tr><td bgcolor="lightsteelblue" valign="middle"><h3><A NAME="keyboardcommands">Keyboard Commands</a></h3></td></tr></table>
@@ -2035,13 +1926,10 @@ all the samples between the cursor and the next mark.</p>
<tr><td>C-y</td><td>paste in selection</td><td><code>(lambda (arg) (<a class=quiet href="extsnd.html#insertselection" onmouseout="UnTip()" onmouseover="Tip(extsnd_insertselection_tip)">insert-selection</a> (<a class=quiet href="extsnd.html#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>)))</code></td></tr>
<tr><td>C-z</td><td>set current sample to 0.0</td><td><code>(lambda (arg) (set! (<a class=quiet href="extsnd.html#samples" onmouseout="UnTip()" onmouseover="Tip(extsnd_samples_tip)">samples</a> (<a class=quiet href="extsnd.html#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>) arg) (<a class=quiet href="extsnd.html#makevct" onmouseout="UnTip()" onmouseover="Tip(extsnd_makevct_tip)">make-vct</a> arg)))</code></td></tr>
<tr><td>C-_</td><td>undo last edit</td><td><code>(lambda (arg) (<a class=quiet href="extsnd.html#undo" onmouseout="UnTip()" onmouseover="Tip(extsnd_undo_tip)">undo</a> arg))</code></td></tr>
-<tr><td>C-[Space]</td><td colspan=2>start region definition (arg&lt;0 =&gt; cancel and deselect)</td></tr>
+<tr><td>C-[Space]</td><td colspan=2>start selection definition (arg&lt;0 =&gt; cancel and deselect)</td></tr>
<tr><td>C-?</td><td colspan=2>look for a function name and print snd-help for it</td></tr>
<tr><td>C-M-g</td><td>delete listener text from start to cursor</td><td><code>(<a class=quiet href="extsnd.html#clearlistener" onmouseout="UnTip()" onmouseover="Tip(extsnd_clearlistener_tip)">clear-listener)</a></code></td></tr>
<tr><td>C-_</td><td>delete listener text back to previous command</td><td></td></tr>
- <!-- I(delete samples):K(C-d, C-h, C-k)(ck) --><!-- I(insert zeros):K(C-o, C-z)(cz) --><!-- I(insert zeros):A(co) -->
- <!-- I(cut selection):K(C-w)(cw) --><!-- I(define selection):K(C-[space], C-x c)(cxc) -->
-
<tr><td>C-x a</td><td>apply envelope to selection</td><td><code>(lambda () (<a class=quiet href="extsnd.html#promptinminibuffer" onmouseout="UnTip()" onmouseover="Tip(extsnd_promptinminibuffer_tip)">prompt</a> "env:" <a class=quiet href="extsnd.html#envselection" onmouseout="UnTip()" onmouseover="Tip(extsnd_envselection_tip)">env-selection</a>))</code></td></tr>
<tr><td>C-x b</td><td>position window so cursor is on left</td><td><code>(lambda () <a class=quiet href="extsnd.html#bindkey" onmouseout="UnTip()" onmouseover="Tip(extsnd_bindkey_tip)">cursor-on-left</a>)</code></td></tr>
<tr><td valign=top>C-x c</td><td>define selection from cursor to nth mark</td><td></td></tr>
@@ -2066,7 +1954,7 @@ all the samples between the cursor and the next mark.</p>
(set! (<a class=quiet href="extsnd.html#xbounds" onmouseout="UnTip()" onmouseover="Tip(extsnd_xbounds_tip)">x-bounds</a>) (list minx (+ minx range)))))
</pre></td></tr>
<tr><td>C-x o</td><td>move to next or previous graph</td><td><code>(lambda (arg) (<a class=quiet onmouseout="UnTip()" onmouseover="Tip('forward-graph selects the next graph (snd7.scm)')">forward-graph</a> arg)) ;snd7.scm</code></td></tr>
-<tr><td>C-x p</td><td>play selection or region n</td><td><code>(lambda (arg) (<a class=quiet href="extsnd.html#playregion" onmouseout="UnTip()" onmouseover="Tip(extsnd_playregion_tip)">play-region</a> arg)) ;<a class=quiet href="extsnd.html#playselection" onmouseout="UnTip()" onmouseover="Tip(extsnd_playselection_tip)">play-selection</a> if no arg</code></td></tr>
+<tr><td>C-x p</td><td>play selection</td><td><code>(play (selection))</code></td></tr>
<tr><td>C-x q</td><td>mix in region</td><td><code>(lambda (arg) (<a class=quiet href="extsnd.html#mixregion" onmouseout="UnTip()" onmouseover="Tip(extsnd_mixregion_tip)">mix-region</a> (integer-&gt;region arg) (<a class=quiet href="extsnd.html#cursor" onmouseout="UnTip()" onmouseover="Tip(extsnd_cursor_tip)">cursor</a>))) ;<a class=quiet href="extsnd.html#mixselection" onmouseout="UnTip()" onmouseover="Tip(extsnd_mixselection_tip)">mix-selection</a> if no arg</code></td></tr>
<tr><td>C-x r</td><td>redo last undone edit</td><td><code>(lambda (arg) (<a class=quiet href="extsnd.html#redo" onmouseout="UnTip()" onmouseover="Tip(extsnd_redo_tip)">redo</a> arg))</code></td></tr>
<tr><td>C-x u</td><td>undo last edit</td><td><code>(lambda (arg) (<a class=quiet href="extsnd.html#undo" onmouseout="UnTip()" onmouseover="Tip(extsnd_undo_tip)">undo</a> arg))</code></td></tr>
@@ -2086,11 +1974,6 @@ all the samples between the cursor and the next mark.</p>
</pre></td></tr>
<tr><td>C-x ( <!-- ) --></td><td>begin keyboard macro definition</td><td><code>; bind-key</code></td></tr>
<tr><td>C-x ) <!-- ( --></td><td>end keyboard macro definition</td><td></td></tr>
-
- <!-- I(smooth selection):K(C-x z)(cxz) --><!-- I(smooth selection):A(cxz) --><!-- I(define mark):K(C-x /, C-x C-m)(cxcm) -->
- <!-- I(define mark):O(also C-m)(cm) --><!-- I(delete mark):K(- C-m)(cm) --><!-- I(delete mark):A(marks) -->
- <!-- I(smooth selection):L(smooth-selection)(smoothselection) -->
-
<tr><td>C-x C-a</td><td>apply amplitude envelope</td><td><code>(lambda () (<a class=quiet href="extsnd.html#promptinminibuffer" onmouseout="UnTip()" onmouseover="Tip(extsnd_promptinminibuffer_tip)">prompt</a> "amp env:" <a class=quiet href="extsnd.html#envsound" onmouseout="UnTip()" onmouseover="Tip(extsnd_envsound_tip)">env-sound</a>))</code></td></tr>
<tr><td>C-x C-b</td><td>set left sample (via C-u arg)</td><td><code>(lambda (arg) (set! (<a class=quiet href="extsnd.html#leftsample" onmouseout="UnTip()" onmouseover="Tip(extsnd_leftsample_tip)">left-sample</a>) arg))</code></td></tr>
<tr><td>C-x C-c</td><td>hide ("close") controls</td><td><code>(lambda () (set! (<a class=quiet href="extsnd.html#showcontrols" onmouseout="UnTip()" onmouseover="Tip(extsnd_showcontrols_tip)">show-controls</a>) #f))</code></td></tr>
@@ -2149,12 +2032,6 @@ error messages. C-g interrupts the computation, C-M-g clears out all the error
and M-p reloads the listener with the last line you typed, ready to be edited.
To delete listener text back to the previous command, use C-_.
</p>
- <!-- I(amp env):K(C-x C-a, C-x a)(cxca) --><!-- I(print file):K(C-x C-d)(cxcd) --><!-- I(insert file):K(C-x C-i)(cxci) -->
- <!-- I(mix file):K(C-x C-q)(cxcq) -->
- <!-- I(smooth samples):K(C-x C-z)(cxcz) --><!-- I(smooth samples):A(cxcz) -->
- <!-- I(continue session):K(C-x C-l)(cxcl) -->
- <!-- I(smooth samples):O(smooth-sound)(smoothsound) -->
- <!-- I(smooth samples):L(smooth-channel)(smoothchannel) -->
<br>
<!-- INDEX controls:Control Panel -->
<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
@@ -2198,9 +2075,6 @@ The arrow button on the right determines
the direction Snd moves through the data.
The scroll bar position is normally interpreted
as a float between .05 and 20.
- <!-- I(change pitch):O(see 'speed' control)(speed) --><!-- I(change pitch):A(speed) -->
- <!-- I(change srate):O(see 'speed' control)(speed) --><!-- I(change srate):A(speed) -->
- <!-- I(change srate):M(Edit: Edit Env)(editenvelope) --><!-- I(change pitch):M(Edit: Edit Env)(editenvelope) -->
</p>
<p><A NAME="expand"></a>'Expand' refers to granular
@@ -2218,7 +2092,7 @@ comes from rubber-sound in rubber.scm, but unfortunately
it only works on well-behaved sounds.
The expander is on only if the expand
button is set.
- <!-- I(change tempo):O(see 'expand' control)(expand) --><!-- I(change tempo):A(expand) -->
+
</p>
<p><A NAME="reverb"></a>The reverberator is a version of Michael
@@ -2231,7 +2105,7 @@ if the reverb button is set. The reverb length
field takes effect only when the reverb is
set up (when the DAC is started by clicking
'play' when nothing else is being played).
- <!-- I(reverberate file):O(see 'reverb' controls)(reverb) --><!-- I(reverberate file):A(reverb) -->
+
</p>
<p><A NAME="contrast"></a>'Contrast enhancement' is my name for a
@@ -2246,7 +2120,6 @@ returns the channel's maximum amplitude, so the
inverse of that is a good first guess for
contrast-control-amp. Contrast is on only if the contrast
button is set.
- <!-- I(brighten file):O(see 'contrast' control)(contrast) --><!-- I(brighten file):A(contrast) -->
</p>
<p>The <A NAME="filtercontrol"></a>filter is an arbitrary (even) order FIR filter
@@ -2264,7 +2137,7 @@ returning in this case a list of breakpoints; you can
define a function that returns the list you want, then call that function
in the text field.
The filter is on only if the filter button is set.
- <!-- I(filter):O(see filter controls)(filtercontrol) --><!-- I(filter):A(filtercontrol) -->
+
</p>
<p>There are many variables that reflect or control
the panel's various sliders; each also has a default
@@ -2298,138 +2171,6 @@ panel are:</p>
<p>For information on the extension language functions, see <a href="extsnd.html#extsndcontents">extsnd.html</a>.
For information on initialization, configuration, and connections to other programs, see <a href="grfsnd.html#grfsndcontents">grfsnd.html</a>.
</p>
-<br><br>
-
-<table border=0 bordercolor="lightgreen" width=100% cellpadding=2 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2><A NAME="index">Index</a></h2></td></tr></table>
-</td></tr></table>
-
-<br>
-
-<table border=1 rows=118 hspace=20 cellpadding=4>
-
- <!-- created 7-Jun-06 -->
- <tr><th bgcolor="beige">Action</th><th bgcolor="beige">Menu</th><th bgcolor="beige">Keyboard</th><th bgcolor="beige">Lisp</th><th bgcolor="beige">Other</th></tr>
-
- <tr><td><a href="#kgc">abort command</a></td><td><br></td><td><a href="#kgc"><small>Cg</small></a></td><td><a href="extsnd.html#cgp"><small>c-g?</small></a></td><td><small>mouse click</small></td></tr>
- <tr><td><a href="#ampenvs">amp env</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><a href="#cxca"><small>Cx Ca, Cx a</small></a></td><td><a href="extsnd.html#envsound"><small>env-sound</small></a></td><td><a href="extsnd.html#scaleto"><small>scale-to, scale-by</small></a></td></tr>
- <tr><td><a href="sndscm.html#autosave">auto save</a></td><td><br></td><td><br></td><td><a href="sndscm.html#autosave"><small>auto-save</small></a></td><td><small>autosave.scm</small></td></tr>
- <tr><td><a href="#autocorrelation">autocorrelation</a></td><td><small>Options: <a href="#viewfft">Transform</a></small></td><td><br></td><td><a href="sndclm.html#autocorrelate"><small>autocorrelate</small></a></td><td><br></td></tr>
- <tr><td><a href="#cxcb">axis bounds</a></td><td><br></td><td><a href="#cxcb"><small>Cx Cb, Cx Cp</small></a></td><td><a href="extsnd.html#xbounds"><small>[xy]-bounds</small></a></td><td><a href="extsnd.html#axisinfo"><small>axis-info</small></a></td></tr>
- <tr><td><a href="#contrast">brighten file</a></td><td><br></td><td><br></td><td><br></td><td><a href="#contrast"><small>see 'contrast' control</small></a></td></tr>
- <tr><td><a href="#movewindow">center cursor</a></td><td><br></td><td><a href="#cv"><small>Cl, Cv</small></a></td><td><br></td><td><br></td></tr>
- <tr><td><a href="#cxl">center selection</a></td><td><br></td><td><a href="#cxl"><small>Cx l</small></a></td><td><br></td><td><br></td></tr>
- <tr><td><a href="#centeryaxis">center tiny signal</a></td><td><br></td><td><br></td><td><a href="extsnd.html#ybounds"><small>y-bounds</small></a></td><td><br></td></tr>
- <tr><td><a href="grfsnd.html#aboutcolors">change colors</a></td><td><br></td><td><br></td><td><a href="grfsnd.html#aboutcolors"><small>make-color</small></a></td><td><a href="grfsnd.html#sndresources"><small>resources</small></a></td></tr>
- <tr><td><a href="#changeformat">change format</a></td><td><small>File: <a href="#savefileas">Save as</a></small></td><td><br></td><td><a href="extsnd.html#savesoundas"><small>save-sound-as</small></a></td><td><a href="#editheader"><small>Edit: Edit header</small></a></td></tr>
- <tr><td><a href="extsnd.html#bindkey">change key binding</a></td><td><br></td><td><br></td><td><a href="extsnd.html#bindkey"><small>bind-key</small></a></td><td><br></td></tr>
- <tr><td><a href="#speed">change pitch</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#srcsound"><small>src-sound</small></a></td><td><a href="#speed"><small>see 'speed' control</small></a></td></tr>
- <tr><td><a href="#changesamples">change samples</a></td><td><br></td><td><a href="#cz"><small>Cz, Cx Cz</small></a></td><td><a href="extsnd.html#setsamples"><small>set-samples</small></a></td><td><a href="extsnd.html#edithook"><small>edit-hook</small></a></td></tr>
- <tr><td><a href="#speed">change srate</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#srcsound"><small>src-sound</small></a></td><td><a href="#speed"><small>see 'speed' control</small></a></td></tr>
- <tr><td><a href="#expand">change tempo</a></td><td><small>Effects: <a href="sndscm.html#menusdoc">Expsrc</a></small></td><td><br></td><td><a href="extsnd.html#expandcontrol"><small>expand</small></a></td><td><a href="#expand"><small>see 'expand' control</small></a></td></tr>
- <tr><td><a href="#closefile">close file</a></td><td><small>File: <a href="#closefile">Close</a></small></td><td><a href="#cxk"><small>Cx k</small></a></td><td><a href="extsnd.html#closesound"><small>close-sound</small></a></td><td><a href="extsnd.html#closehook"><small>close-hook</small></a></td></tr>
- <tr><td><a href="#colorbrowser">color</a></td><td><small>View: <a href="#colorbrowser">Color</a></small></td><td><br></td><td><a href="extsnd.html#colororientationdialog"><small>color-orientation-dialog</small></a></td><td><a href="extsnd.html#colorscale"><small>color-scale,color-cutoff</small></a></td></tr>
- <tr><td><a href="#unitebutton">combine channels</a></td><td><small>View: <a href="#unitebutton">Channel style</a></small></td><td><br></td><td><a href="extsnd.html#channelstyle"><small>channel-style</small></a></td><td><br></td></tr>
- <tr><td><a href="#savedstate">continue session</a></td><td><br></td><td><a href="#cxcl"><small>Cx Cl</small></a></td><td><small>load</small></td><td><a href="#minusl"><small>-l switch to Snd</small></a></td></tr>
- <tr><td><a href="#controls">control panel</a></td><td><small>View: <a href="#controls">Show controls</a></small></td><td><a href="#cxco"><small>Cx Co, Cx Cc</small></a></td><td><a href="extsnd.html#showcontrols"><small>show-controls</small></a></td><td><a href="#panecontrol"><small>drag pane sash</small></a></td></tr>
- <tr><td><a href="sndclm.html#convolve">convolution</a></td><td><br></td><td><br></td><td><a href="sndclm.html#convolve"><small>convolution</small></a></td><td><a href="extsnd.html#convolvewith"><small>convolve-with</small></a></td></tr>
- <tr><td><a href="extsnd.html#countmatches">count matches</a></td><td><br></td><td><br></td><td><a href="extsnd.html#countmatches"><small>count-matches</small></a></td><td><br></td></tr>
- <tr><td><a href="#newfile">create new file</a></td><td><small>File: <a href="#newfile">New</a></small></td><td><br></td><td><a href="extsnd.html#newsound"><small>new-sound</small></a></td><td><a href="extsnd.html#defaultoutputsrate"><small>default-output-srate</small></a></td></tr>
- <tr><td><a href="#editoperations">cut selection</a></td><td><small>Edit: <a href="#editcut">Cut</a></small></td><td><a href="#cw"><small>Cw</small></a></td><td><a href="extsnd.html#deleteselection"><small>delete-selection</small></a></td><td><br></td></tr>
- <tr><td><a href="#marks">define mark</a></td><td><br></td><td><a href="#cxcm"><small>Cx /, Cx Cm</small></a></td><td><a href="extsnd.html#addmark"><small>add-mark</small></a></td><td><a href="#cm"><small>also Cm</small></a></td></tr>
- <tr><td><a href="#mousedefsect">define selection</a></td><td><small>Edit: <a href="#menuselectall">Select All</a></small></td><td><a href="#cxc"><small>C[space], Cx c</small></a></td><td><a href="extsnd.html#makeregion"><small>make-region</small></a></td><td><a href="#mousedefsect"><small>mouse drag</small></a></td></tr>
- <tr><td><a href="#marks">delete mark</a></td><td><br></td><td><a href="#cm"><small>- Cm</small></a></td><td><a href="extsnd.html#deletemark"><small>delete-mark</small></a></td><td><a href="extsnd.html#deletemarks"><small>delete-marks</small></a></td></tr>
- <tr><td><a href="#editoperations">delete samples</a></td><td><small>Edit: <a href="#editcut">Cut</a></small></td><td><a href="#ck"><small>Cd, Ch, Ck</small></a></td><td><a href="extsnd.html#deletesamples"><small>delete-samples</small></a></td><td><br></td></tr>
- <tr><td><a href="extsnd.html#musaudiodescribe">describe audio</a></td><td><br></td><td><br></td><td><a href="extsnd.html#musaudiodescribe"><small>mus-audio-describe</small></a></td><td><br></td></tr>
- <tr><td><a href="#viewinfo">describe file</a></td><td><small>Popup: <a href="#viewinfo">Info</a></small></td><td><br></td><td><a href="extsnd.html#sndinfo"><small>info</small></a></td><td><a href="#viewinfo"><small>Edit: Edit Header</small></a></td></tr>
- <tr><td><a href="extsnd.html#withverbosecursor">describe sample</a></td><td><small>View: <a href="extsnd.html#withverbosecursor">Verbose cursor</a></small></td><td><a href="#ci"><small>Ci</small></a></td><td><a href="extsnd.html#withverbosecursor"><small>with-verbose-cursor</small></a></td><td><br></td></tr>
- <tr><td><a href="#viewdots">dots or lines</a></td><td><small>View: <a href="#viewdots">Dots</a></small></td><td><br></td><td><a href="extsnd.html#graphstyle"><small>graph-style</small></a></td><td><a href="extsnd.html#dotsize"><small>dot-size: numberpad '.', '0'</small></a></td></tr>
- <tr><td><a href="#editenvelope">edit env</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#enveddialog"><small>enved-dialog</small></a></td><td><a href="extsnd.html#envedhook"><small>enved-hook</small></a></td></tr>
- <tr><td><a href="#editheader">edit header</a></td><td><small>Edit: <a href="#editheader">Edit Header</a></small></td><td><br></td><td><a href="extsnd.html#editheaderdialog"><small>edit-header-dialog</small></a></td><td><br></td></tr>
- <tr><td><a href="#regions">examine regions</a></td><td><small>View: <a href="#regionbrowser">Regions</a></small></td><td><br></td><td><a href="extsnd.html#viewregionsdialog"><small>view-regions-dialog</small></a></td><td><br></td></tr>
- <tr><td><a href="#exitfile">exit Snd</a></td><td><small>File: <a href="#exitfile">Exit</a></small></td><td><br></td><td><a href="extsnd.html#exit"><small>exit</small></a></td><td><small>window menu: close or exit</small></td></tr>
- <tr><td><a href="#extendfile">extend file</a></td><td><br></td><td><a href="#co"><small>Co</small></a></td><td><a href="extsnd.html#padchannel"><small>pad-channel</small></a></td><td><br></td></tr>
- <tr><td><a href="#cxcw">extract channel</a></td><td><br></td><td><a href="#cxcw"><small>Cx Cw</small></a></td><td><a href="extsnd.html#savesoundas"><small>save-sound-as</small></a></td><td><a href="extsnd.html#channeltovct"><small>channel-&gt;vct</small></a></td></tr>
- <tr><td><a href="#fftindb">fft in dB</a></td><td><small>Options: <a href="#fftindb">Transform</a></small></td><td><br></td><td><a href="extsnd.html#fftlogmagnitude"><small>fft-log-magnitude</small></a></td><td><br></td></tr>
- <tr><td><a href="#logfreq">fft log freq</a></td><td><small>Options: <a href="#logfreq">Transform</a></small></td><td><br></td><td><a href="extsnd.html#fftlogfrequency"><small>fft-log-frequency</small></a></td><td><br></td></tr>
- <tr><td><a href="extsnd.html#normalizefft">fft normalization</a></td><td><small>Options: <a href="extsnd.html#normalizefft">Transform</a></small></td><td><br></td><td><a href="extsnd.html#normalizefft"><small>transform-normalization</small></a></td><td><br></td></tr>
- <tr><td><a href="#showpeaks">fft peaks</a></td><td><small>Options: <a href="#showpeaks">Transform</a></small></td><td><br></td><td><a href="extsnd.html#showtransformpeaks"><small>show-transform-peaks</small></a></td><td><a href="extsnd.html#peaks"><small>peaks</small></a></td></tr>
- <tr><td><a href="#fftsize">fft size</a></td><td><small>Options: <a href="#fftsize">Transform</a></small></td><td><br></td><td><a href="extsnd.html#transformsize"><small>transform-size</small></a></td><td><a href="extsnd.html#transformsize"><small>transform-size: numberpad: '*', '/'</small></a></td></tr>
- <tr><td><a href="#menufftwindow">fft window</a></td><td><small>Options: <a href="#menufftwindow">Transform</a></small></td><td><br></td><td><a href="extsnd.html#fftwindow"><small>fft-window</small></a></td><td><br></td></tr>
- <tr><td><a href="#Xfftbeta">fft window parameter</a></td><td><small>Options: <a href="#Xfftbeta">Transform</a></small></td><td><br></td><td><a href="extsnd.html#fftbeta"><small>fft-window-beta</small></a></td><td><br></td></tr>
- <tr><td><a href="#fftstyle">fft/sono/spectrogram</a></td><td><small>Options: <a href="extsnd.html#transformgraphtype">Transform</a></small></td><td><br></td><td><a href="extsnd.html#transformgraphtype"><small>transform-graph-type</small></a></td><td><br></td></tr>
- <tr><td><a href="#formats">file formats</a></td><td><small>File: <a href="#savefileas">Save as</a></small></td><td><br></td><td><a href="extsnd.html#dataformat"><small>data-format</small></a></td><td><br></td></tr>
- <tr><td><a href="#viewfiles">file lists</a></td><td><small>View: <a href="#viewfiles">Files</a></small></td><td><br></td><td><a href="extsnd.html#viewfilesdialog"><small>view-files-dialog</small></a></td><td><a href="extsnd.html#mouseenterlabelhook"><small>mouse-enter-label-hook</small></a></td></tr>
- <tr><td><a href="#filtercontrol">filter</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#filtercontrolenvelope"><small>filter-control-envelope</small></a></td><td><a href="#filtercontrol"><small>see filter controls</small></a></td></tr>
- <tr><td><a href="extsnd.html#filtersound">filter samples</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#filtersound"><small>filter-sound</small></a></td><td><a href="extsnd.html#filterselection"><small>filter-selection</small></a></td></tr>
- <tr><td><a href="#menufind">find</a></td><td><small>Edit: <a href="#menufind">Find</a></small></td><td><a href="#cs"><small>Cs or Cr</small></a></td><td><a href="extsnd.html#findchannel"><small>find-channel</small></a></td><td><a href="extsnd.html#countmatches"><small>count-matches</small></a></td></tr>
- <tr><td><a href="#verticalpane">horizontal panes</a></td><td><br></td><td><br></td><td><a href="extsnd.html#graphshorizontal"><small>graphs-horizontal</small></a></td><td><a href="#verticalpane"><small>-h switch to Snd</small></a></td></tr>
- <tr><td><a href="#insertfile">insert file</a></td><td><small>File: <a href="#insertfile">Insert</a></small></td><td><a href="#cxci"><small>Cx Ci</small></a></td><td><a href="extsnd.html#insertsound"><small>insert-sound</small></a></td><td><br></td></tr>
- <tr><td><a href="#editcut">insert selection</a></td><td><small>Edit: <a href="#editcut">Paste</a></small></td><td><a href="#cxi"><small>Cy or Cx i</small></a></td><td><a href="extsnd.html#insertselection"><small>insert-selection</small></a></td><td><a href="extsnd.html#insertregion"><small>insert-region</small></a></td></tr>
- <tr><td><a href="#co">insert zeros</a></td><td><small>Effects: <a href="sndscm.html#menusdoc">Add Silence</a></small></td><td><a href="#cz"><small>Co, Cz</small></a></td><td><a href="extsnd.html#insertsilence"><small>insert-silence</small></a></td><td><a href="extsnd.html#padchannel"><small>pad-channel</small></a></td></tr>
- <tr><td><a href="#kgc">interrupt Snd</a></td><td><br></td><td><a href="#kgc"><small>Cg</small></a></td><td><a href="extsnd.html#stopplaying"><small>stop-playing</small></a></td><td><a href="extsnd.html#cgx"><small>c-g!</small></a></td></tr>
- <tr><td><a href="#kbdmacros">keyboard macros</a></td><td><br></td><td><a href="#kce"><small>C(, Cx e</small></a></td><td><a href="extsnd.html#key"><small>key</small></a></td><td><br></td></tr> <!-- ) -->
- <tr><td><a href="extsnd.html#maxamp">max amp</a></td><td><br></td><td><br></td><td><a href="extsnd.html#maxamp"><small>maxamp</small></a></td><td><br></td></tr>
- <tr><td><a href="#mixingfiles">mix file</a></td><td><small>File: <a href="#mixingfiles">Mix</a></small></td><td><a href="#cxcq"><small>Cx Cq</small></a></td><td><a href="extsnd.html#mix"><small>mix</small></a></td><td><small>see mix.scm for tracks</small></td></tr>
- <tr><td><a href="#editcut">mix selection</a></td><td><small>Edit: <a href="#editcut">Mix</a></small></td><td><a href="#cxq"><small>Cx q</small></a></td><td><a href="extsnd.html#mixselection"><small>mix-selection</small></a></td><td><a href="extsnd.html#mixregion"><small>mix-region</small></a></td></tr>
- <tr><td><a href="#thecursor">move cursor ahead</a></td><td><br></td><td><a href="#ce"><small>Cf, Cn, Ce</small></a></td><td><a href="extsnd.html#cursor"><small>set cursor</small></a></td><td><small>also &gt;</small></td></tr>
- <tr><td><a href="#thecursor">move cursor back</a></td><td><br></td><td><a href="#ca"><small>Cb, Cp, Ca</small></a></td><td><a href="extsnd.html#cursor"><small>set cursor</small></a></td><td><small>also &lt;</small></td></tr>
- <tr><td><a href="#mixingfiles">move mixed file</a></td><td><br></td><td><br></td><td><a href="extsnd.html#mixposition"><small>mix-position</small></a></td><td><a href="#mixingfiles"><small>drag mix tag</small></a></td></tr>
- <tr><td><a href="#cj">move to mark</a></td><td><br></td><td><a href="#cj"><small>Cj, Cx j</small></a></td><td><br></td><td><a href="#cxj"><small>Cx j -&gt; named mark</small></a></td></tr>
- <tr><td><a href="#gotomix">move to mix</a></td><td><br></td><td><a href="#cxcj"><small>Cx Cj</small></a></td><td><br></td><td><br></td></tr>
- <tr><td><a href="#movingwindow">move window ahead</a></td><td><br></td><td><a href="#cxf"><small>[Left], Cx f</small></a></td><td><a href="extsnd.html#rightsample"><small>right-sample</small></a></td><td><small>scroll bars</small></td></tr>
- <tr><td><a href="#movingwindow">move window back</a></td><td><br></td><td><a href="#movewindow"><small>[Right], Cx b</small></a></td><td><a href="extsnd.html#leftsample"><small>left-sample</small></a></td><td><small>scroll bars</small></td></tr>
- <tr><td><a href="#multichannel">multichannel ops</a></td><td><br></td><td><br></td><td><a href="extsnd.html#sync"><small>sync</small></a></td><td><a href="#syncbutton"><small>sync button</small></a></td></tr>
- <tr><td><a href="sndscm.html#menusdoc">normalize sound</a></td><td><small>Effects: <a href="sndscm.html#menusdoc">Normalize</a></small></td><td><br></td><td><a href="extsnd.html#scaleto"><small>scale-to</small></a></td><td><br></td></tr>
- <tr><td><a href="#cu">numeric arguments</a></td><td><br></td><td><a href="#kcu"><small>Cu</small></a></td><td><br></td><td><a href="#kcu"><small>see marks as args</small></a></td></tr>
- <tr><td><a href="#saveopen">open file</a></td><td><small>File: <a href="#openfile">Open</a></small></td><td><a href="#cxcf"><small>Cx Cf</small></a></td><td><a href="extsnd.html#opensound"><small>open-sound</small></a></td><td><small>Files dialog: click file</small></td></tr>
- <tr><td><a href="#viewfile">open file read-only</a></td><td><small>File: <a href="#viewfile">View</a></small></td><td><br></td><td><a href="extsnd.html#viewsound"><small>view-sound</small></a></td><td><br></td></tr>
- <tr><td><a href="#colorbrowser">orientation</a></td><td><small>View: <a href="#colorbrowser">Orientation</a></small></td><td><br></td><td><a href="extsnd.html#colororientationdialog"><small>orientation-dialog</small></a></td><td><a href="extsnd.html#spectroxangle"><small>spectro-x-angle etc</small></a></td></tr>
- <tr><td><a href="extsnd.html#graphdata">overlay sounds</a></td><td><br></td><td><br></td><td><a href="extsnd.html#graphdata"><small>graph-data</small></a></td><td><br></td></tr>
- <tr><td><a href="#cq">play channel</a></td><td><br></td><td><a href="#cq"><small>Cq, Ct</small></a></td><td><a href="extsnd.html#playchannel"><small>play-channel</small></a></td><td><a href="extsnd.html#play"><small>play</small></a></td></tr>
- <tr><td><a href="extsnd.html#play">play file</a></td><td><small>Popup: Play</small></td><td><br></td><td><a href="extsnd.html#play"><small>play, stop</small></a></td><td><small>File or main window: 'play'</small></td></tr>
- <tr><td><a href="#cxp">play selection</a></td><td><small>Edit: <a href="#cxp">Play</a></small></td><td><a href="#cxp"><small>Cx p</small></a></td><td><a href="extsnd.html#playselection"><small>play-selection</small></a></td><td><a href="extsnd.html#playregion"><small>play-region</small></a></td></tr>
- <tr><td><a href="#printfile">print file</a></td><td><small>File: <a href="#printfile">Print</a></small></td><td><a href="#cxcd"><small>Cx Cd</small></a></td><td><a href="extsnd.html#graphtops"><small>graph-&gt;ps</small></a></td><td><br></td></tr>
- <tr><td><a href="#recordfile">record sound</a></td><td><small>File: <a href="#recordfile">Record</a></small></td><td><br></td><td><a href="extsnd.html#recorderdialog"><small>recorder-dialog</small></a></td><td><br></td></tr>
- <tr><td><a href="#undoredo">redo edit</a></td><td><small>Edit: <a href="#undoredo">Redo</a></small></td><td><a href="#cxcr"><small>Cx Cr</small></a></td><td><a href="extsnd.html#redo"><small>redo</small></a></td><td><small>Popup: Redo</small></td></tr>
- <tr><td><a href="extsnd.html#srcsound">resample</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#srcsound"><small>src-sound</small></a></td><td><a href="extsnd.html#srcsoundselection"><small>src-selection</small></a></td></tr>
- <tr><td><a href="#reverb">reverberate file</a></td><td><small>Effects: <a href="sndscm.html#menusdoc">Reverberate</a></small></td><td><br></td><td><a href="extsnd.html#convolvewith"><small>convolve-with</small></a></td><td><a href="#reverb"><small>see 'reverb' controls</small></a></td></tr>
- <tr><td><a href="extsnd.html#reversesound">reverse samples</a></td><td><small>Effects: <a href="sndscm.html#menusdoc">Reverse</a></small></td><td><br></td><td><a href="extsnd.html#reversesound"><small>reverse-sound</small></a></td><td><a href="extsnd.html#reverseselection"><small>reverse-selection</small></a></td></tr>
- <tr><td><a href="#revertfile">revert file</a></td><td><small>File: <a href="#revertfile">Revert</a></small></td><td><br></td><td><a href="extsnd.html#revertsound"><small>revert-sound</small></a></td><td><br></td></tr>
- <tr><td><a href="#cxcw">save channel</a></td><td><br></td><td><a href="#cxcw"><small>Cx Cw</small></a></td><td><a href="extsnd.html#savesoundas"><small>save-sound-as</small></a></td><td><br></td></tr>
- <tr><td>save control panel</td><td><br></td><td><br></td><td><a href="extsnd.html#savecontrols"><small>save-controls</small></a></td><td><br></td></tr>
- <tr><td><a href="#savefile">save file</a></td><td><small>File: <a href="#savefile">Save</a></small></td><td><a href="#cxcs"><small>Cx Cs</small></a></td><td><a href="extsnd.html#savesound"><small>save-sound</small></a></td><td><small>Popup: Save</small></td></tr>
- <tr><td><a href="#changeformat">save file as</a></td><td><small>File: <a href="#savefileas">Save as</a></small></td><td><br></td><td><a href="extsnd.html#savesoundas"><small>save-sound-as</small></a></td><td><br></td></tr>
- <tr><td><a href="#kbdmacros">save macros</a></td><td><br></td><td><br></td><td><a href="extsnd.html#savemacros"><small>save-macros</small></a></td><td><br></td></tr>
- <tr><td><a href="extsnd.html#savemarks">save marks</a></td><td><br></td><td><br></td><td><a href="extsnd.html#savemarks"><small>save-marks</small></a></td><td><br></td></tr>
- <tr><td><a href="#saveoptions">save options</a></td><td><small>Options: <a href="#saveoptions">Save options</a></small></td><td><br></td><td><br></td><td><br></td></tr>
- <tr><td><a href="#cxw">save selection</a></td><td><small>Edit: <a href="#cxw">Save selection</a></small></td><td><a href="#cxw"><small>Cx w</small></a></td><td><a href="extsnd.html#saveregion"><small>save-region</small></a></td><td><a href="extsnd.html#saveselection"><small>save-selection</small></a></td></tr>
- <tr><td><a href="#savedstate">save session</a></td><td><small>Options: <a href="#savedstate">Save session</a></small></td><td><br></td><td><a href="extsnd.html#savestate"><small>save-state</small></a></td><td><br></td></tr>
- <tr><td>select sound</td><td><br></td><td><a href="#cxo"><small>Cx o</small></a></td><td><a href="extsnd.html#selectedsound"><small>selected-sound</small></a></td><td><small>File dialog: click file</small></td></tr>
- <tr><td><a href="#fw">show freq domain</a></td><td><br></td><td><br></td><td><a href="extsnd.html#transformgraphp"><small>transform-graph?</small></a></td><td><a href="#fw"><small>'f' button</small></a></td></tr>
- <tr><td><a href="extsnd.html#showmarks">show marks</a></td><td><br></td><td><br></td><td><a href="extsnd.html#showmarks"><small>show-marks</small></a></td><td><br></td></tr>
- <tr><td><a href="#fw">show time domain</a></td><td><br></td><td><br></td><td><a href="extsnd.html#timegraphp"><small>time-graph?</small></a></td><td><a href="#fw"><small>'w' button</small></a></td></tr>
- <tr><td><a href="#cxcz">smooth samples</a></td><td><br></td><td><a href="#cxcz"><small>Cx Cz</small></a></td><td><a href="extsnd.html#smoothchannel"><small>smooth-channel</small></a></td><td><a href="extsnd.html#smoothsound"><small>smooth-sound</small></a></td></tr>
- <tr><td><a href="#cxz">smooth selection</a></td><td><br></td><td><a href="#cxz"><small>Cx z</small></a></td><td><a href="extsnd.html#smoothselection"><small>smooth-selection</small></a></td><td><br></td></tr>
- <tr><td><a href="#fftstyle">sonogram</a></td><td><small>Options: <a href="#fftstyle">Transform</a></small></td><td><br></td><td><a href="extsnd.html#transformgraphtype"><small>transform-graph-type</small></a></td><td><a href="extsnd.html#colormap"><small>colormap</small></a></td></tr>
- <tr><td><a href="#fftstyle">spectrogram</a></td><td><small>Options: <a href="#fftstyle">Transform</a></small></td><td><br></td><td><a href="extsnd.html#transformgraphtype"><small>transform-graph-type</small></a></td><td><a href="extsnd.html#spectrumend"><small>orientation, scaling</small></a></td></tr>
- <tr><td><a href="extsnd.html#speedstyle">speed units</a></td><td><br></td><td><br></td><td><a href="extsnd.html#speedstyle"><small>speed-control-style</small></a></td><td><a href="extsnd.html#speedtones"><small>speed-control-tones</small></a></td></tr>
- <tr><td><a href="extsnd.html#srcsound">srate conversion</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#srcsound"><small>src-sound</small></a></td><td><a href="extsnd.html#srcsoundselection"><small>src-selection</small></a></td></tr>
- <tr><td><a href="extsnd.html#swapchannels">swap channels</a></td><td><br></td><td><br></td><td><a href="extsnd.html#swapchannels"><small>swap-channels</small></a></td><td><br></td></tr>
- <tr><td><a href="#ktempdir">temp directory</a></td><td><br></td><td><a href="#ktempdir"><small>Cx d</small></a></td><td><a href="extsnd.html#tempdir"><small>temp-dir</small></a></td><td><small>TMPDIR or /var/tmp</small></td></tr>
- <tr><td><a href="#trackingcursor">tracking cursor</a></td><td><br></td><td><br></td><td><a href="extsnd.html#withtrackingcursor"><small>with-tracking-cursor</small></a></td><td><a href="#trackingcursor"><small>control click 'play'</small></a></td></tr>
- <tr><td><a href="sndscm.html#menusdoc">trim sound</a></td><td><small>Edit: <a href="sndscm.html#menusdoc">Trim</a></small></td><td><br></td><td><br></td><td><br></td></tr>
- <tr><td><a href="#undoredo">undo edit</a></td><td><small>Edit: <a href="#undoredo">Undo</a></small></td><td><a href="#cxcu"><small>C_ or Cx Cu</small></a></td><td><a href="extsnd.html#undo"><small>undo</small></a></td><td><small>Popup: Undo</small></td></tr>
- <tr><td><a href="#updatefile">update file</a></td><td><small>File: <a href="#updatefile">Update</a></small></td><td><small>[Home]</small></td><td><a href="extsnd.html#updatesound"><small>update</small></a></td><td><a href="extsnd.html#autoupdateinterval"><small>auto-update</small></a></td></tr>
- <tr><td><a href="#editenvelope">view envs</a></td><td><small>Edit: <a href="#editenvelope">Edit Env</a></small></td><td><br></td><td><a href="extsnd.html#enveddialog"><small>enved-dialog</small></a></td><td><br></td></tr>
- <tr><td><a href="#menutransformtype">wavelets</a></td><td><small>Options: <a href="#menutransformtype">Transform</a></small></td><td><br></td><td><a href="extsnd.html#wavelettype"><small>wavelet-type</small></a></td><td><br></td></tr>
- <tr><td><a href="#wavogram">wavogram</a></td><td><br></td><td><br></td><td><a href="#wavogram"><small>time-graph-type</small></a></td><td><a href="extsnd.html#wavohop"><small>wavo-trace, wavo-hop</small></a></td></tr>
- <tr><td><a href="extsnd.html#xaxisstyle">X axis units</a></td><td><small>View: <a href="extsnd.html#xaxisstyle">X axis units</a></small></td><td><br></td><td><a href="extsnd.html#xaxisstyle"><small>x-axis-style</small></a></td><td><br></td></tr>
- <tr><td><a href="#viewy0">y=0 line</a></td><td><small>View: <a href="#viewy0">Show y=0</a></small></td><td><br></td><td><a href="extsnd.html#showyzero"><small>show-y-zero</small></a></td><td><br></td></tr>
- <tr><td><a href="#zoomoption">zoom focus</a></td><td><small>Options: <a href="#zoomoption">Zoom style</a></small></td><td><br></td><td><a href="extsnd.html#zoomfocusstyle"><small>zoom-focus-style</small></a></td><td><br></td></tr>
- <tr><td><a href="#movingwindow">zoom window</a></td><td><br></td><td><small>[Up],[Down]</small></td><td><a href="extsnd.html#xbounds"><small>x-bounds</small></a></td><td><a href="#movingwindow"><small>control keys intensify</small></a></td></tr>
-
-</table>
<br>
diff --git a/snd11.scm b/snd11.scm
new file mode 100644
index 0000000..b7742f4
--- /dev/null
+++ b/snd11.scm
@@ -0,0 +1,140 @@
+;;; backwards compatibility for snd 11
+
+
+;;; -------- with-mix --------
+;;;
+;;; weird syntax = with-mix (with-sound-args) file-name start-in-output &body body
+;;;
+;;; (with-sound ()
+;;; (with-mix () "section-1" 0 (fm-violin 0 1 440 .1)
+;;; (fm-violin 1 2 660 .1))
+;;; ...)
+
+(define (with-mix-find-file-with-extensions file extensions)
+ "(with-mix-find-file-with-extensions file extensions) helps the with-mix macro find checkpoint files"
+ (if (file-exists? file)
+ file
+ (call-with-exit
+ (lambda (found-one)
+ (for-each
+ (lambda (ext)
+ (let ((new-file (string-append file "." ext)))
+ (if (file-exists? new-file)
+ (found-one new-file))))
+ extensions)
+ #f))))
+
+(define (with-mix-file-extension file default)
+ "(with-mix-file-extension file default) is a helper function for the with-mix macro"
+ (let ((len (string-length file)))
+ (call-with-exit
+ (lambda (ok)
+ (do ((i (- len 1) (- i 1)))
+ ((= i 0))
+ (if (char=? (string-ref file i) #\.)
+ (ok (substring file (+ 1 i) len))))
+ default))))
+
+(defmacro with-mix (options ur-chkpt-file ur-beg . body)
+ `(let ((chkpt-file ,ur-chkpt-file)
+ (beg-1 ,ur-beg))
+ (if (not (list? ',options))
+ (throw 'with-sound-interrupt (format #f "with-mix options list (arg 1) is ~A?~%;" ',options))
+ (if (not (string? chkpt-file))
+ (throw 'with-sound-interrupt (format #f "with-mix file (arg 2) is ~A?~%;" ,ur-chkpt-file))
+ (if (not (number? beg-1))
+ (throw 'with-sound-interrupt (format #f "with-mix begin time (arg 3) for ~S = ~A?~%;" chkpt-file beg-1))
+ (let ((beg (round (* (mus-srate) beg-1))))
+ (if (null? ',body)
+ (mus-mix *output* chkpt-file beg)
+ (let* ((call-str (object->string ',body))
+ (option-str (object->string ',options))
+ (sndf (with-mix-find-file-with-extensions chkpt-file (list (with-mix-file-extension *clm-file-name* "snd") "snd")))
+ (revf (and sndf *reverb* (with-mix-find-file-with-extensions chkpt-file (list "rev"))))
+ (mix-values (and sndf
+ (or (not *reverb*)
+ revf)
+ (let ((comment (mus-sound-comment sndf)))
+ (and (string? comment)
+ (catch #t
+ (lambda ()
+ (eval-string comment))
+ (lambda args #f))))))) ; any error means we lost
+ (if (and sndf
+ (or (not *reverb*)
+ revf)
+ (list? mix-values)
+ (= (length mix-values) 2)
+ (string? (car mix-values))
+ (string? (cadr mix-values))
+ (string=? (car mix-values) option-str)
+ (string=? (cadr mix-values) call-str))
+ (begin
+ (if *clm-verbose* (snd-print (format #f "mix ~S at ~,3F~%" sndf beg)))
+ (mus-mix *output* sndf beg)
+ (if revf (mus-mix *reverb* revf beg)))
+ ;; else recompute
+ (let ((old-to-snd *to-snd*))
+ (set! *to-snd* #f)
+ (if *clm-verbose* (snd-print (format #f "remake ~S at ~,3F~%" chkpt-file beg)))
+ (let ((new-sound
+ (apply with-sound-helper
+ (lambda () ,@body)
+ (append (list :output
+ (string-append chkpt-file "." (with-mix-file-extension *clm-file-name* "snd")))
+ (list :comment
+ (format #f "(begin~%;; written ~A (Snd: ~A)~%(list ~S ~S))~%"
+ (strftime "%a %d-%b-%Y %H:%M %Z" (localtime (current-time)))
+ (snd-version)
+ option-str
+ call-str))
+ (if (and (> (channels *output*) 1)
+ (not (member :channels ',options)))
+ (list :channels (channels *output*))
+ '())
+ ',options))))
+ (set! *to-snd* old-to-snd)
+ (mus-mix *output* new-sound beg)
+ (if revf (mus-mix *reverb* revf beg)))))))))))))
+
+
+#|
+;;; this is the with-mix documentation:
+
+<br>
+<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
+<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>with-mix</h4></td></tr></table>
+</td></tr></table>
+
+<p><a name="with-mix">with-mix</a> is a "checkpointing" version of with-sound, more useful in the bad old days when computers
+were incredibly slow, but lingering on...
+It is a macro, callable within <a href="#wsdoc">with-sound</a> or <a href="#clmload">clm-load</a>,
+which saves the computation in its body in a separate file, and
+then upon a subsequent recomputation, tries to tell (via a string comparison) when that file's data is up to date
+and does not need to be recomputed.
+</p>
+
+<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
+<pre>
+(<a class=quiet href="#wsdoc" onmouseout="UnTip()" onmouseover="Tip(sndscm_wsdoc_tip)">with-sound</a> ()
+ (fm-violin 0 .1 440 .1)
+ (<em class=red>with-mix</em> () "sec1" .5
+ (fm-violin 0 .1 550 .1)
+ (fm-violin .1 .1 660 .1))
+ (<em class=red>with-mix</em> (:reverb jc-reverb) "sec2" 1.0
+ (fm-violin 0 .1 880 .1 :reverb-amount .2)
+ (fm-violin .1 .1 1320 .1 :reverb-amount .2))
+ (fm-violin 2 .1 220 .1)
+ (<em class=red>mix</em> "/zap/slow.snd"))
+</pre>
+</td></tr></table>
+
+<p>Now, if we change just the first note in the with-mix call, the
+second with-mix section will not be recomputed, but will be mixed in from the
+saved file "sec2.snd".
+In the old days, when notes took hours to compute, this was a big deal,
+but not anymore.
+</p>
+
+|#
+
diff --git a/snd_conffile.scm b/snd_conffile.scm
index 479ff56..cbe5e31 100644
--- a/snd_conffile.scm
+++ b/snd_conffile.scm
@@ -287,7 +287,7 @@
(c-define *c-color-cutoff* 0.0)
(set! (color-cutoff) *c-color-cutoff*)
-(c-define *c-colormap* 4)
+(c-define *c-colormap* bone-colormap)
(set! (colormap) *c-colormap*)
(c-define *c-transform-size* 1024)
@@ -635,7 +635,7 @@
(= axis time-graph))
(let ((samp (max 0 (c-integer (* (srate snd) (position->x x snd chn)))))
(dasspeed (speed-control))
- (play (c-p snd)))
+ (play (selected-sound) :start (c-p snd)))
(cond ((= button 4)
(if (< dasspeed 0)
(set! (speed-control) (* -1 dasspeed)))
@@ -654,7 +654,7 @@
#!
(set! (speed-control) -1)
-(play (- (frames) 1000) #f #f #f 1000 #f #f)
+(play (selected-sound) (- (frames) 1000) 1000)
!#
@@ -701,7 +701,7 @@
(def-method (play pos)
(define (das-play)
- (play 0 #f #f #f #f #f das-callback))
+ (play (selected-sound) 0 :stop das-callback))
(define (das-callback x)
(if (and (= x 0) *c-islooping*)
(das-play)
@@ -712,7 +712,7 @@
(if (c-use-rt-player?)
(rt-snd-play snd 0 #f startplaypos)
- (play startplaypos #f #f #f #f #f das-callback)))
+ (play (selected-sound) startplaypos :stop das-callback)))
;; Stops if allready playing
(def-method (play2 pos)
@@ -725,7 +725,7 @@
(def-method (play-selection #:optional (pos (get-selection-start)))
(define (das-play)
- (play (get-selection-start) #f #f #f (get-selection-end) #f das-callback))
+ (play (selected-sound) :start (get-selection-start) :end (get-selection-end) :stop das-callback))
(define (das-callback x)
(if (and (= x 0) *c-islooping*)
(das-play)
@@ -737,7 +737,7 @@
(rt-snd-play snd (get-selection-start) (get-selection-end) (if (>= (speed-control snd) 0)
pos
(1- (get-selection-end))))
- (play pos #f #f #f (get-selection-end) #f das-callback)))
+ (play (selected-sound) pos (get-selection-end) :stop das-callback)))
(def-method (stop #:optional pos)
(set! (cursor-follows-play) #f)
diff --git a/snd_frg.scm b/snd_frg.scm
deleted file mode 100644
index a715f19..0000000
--- a/snd_frg.scm
+++ /dev/null
@@ -1,2635 +0,0 @@
-;; My config file for snd.
-;; Olivier Doaré
-;; Kjetil S. Matheussen.
-
-;; Should work for gtk and perhaps motif.
-
-
-
-(define (atleast1.6.4?)
- (let ((version (map string->number (string-split (version) #\.))))
- (or (> (car version) 1)
- (and (= 1 (car version))
- (or (> (cadr version) 6)
- (and (= 6 (cadr version))
- (>= (caddr version) 4)))))))
-
-(if (not (atleast1.6.4?))
- (begin
- (display "Warning, snd_conffile.scm has not been tested with earlier versions of Guile than 1.6.4.")(newline)
- (display "In case of problems, please upgrade Guile to the latest version, and recompile Snd.")(newline)))
-
-
-
-(use-modules (ice-9 debug))
-(use-modules (ice-9 rdelim))
-
-(provide 'snd-snd_frg.scm)
-
-
-(set! (show-backtrace) #t)
-(debug-enable 'debug)
-(if #t
- (begin
- (read-enable 'positions)
- (debug-enable 'debug)
- (debug-enable 'backtrace)
- (debug-set! frames 8)
- (debug-set! depth 50)))
-
-
-
-;;##############################################################
-;; c-define is used instead of define when theres a variable the
-;; user might want to define before loading this file.
-;;##############################################################
-
-(define-macro (c-define name val)
- (if (not (defined? name))
- `(define ,name ,val)))
-
-
-
-;;##############################################################
-;; Let everything that is printed to the listener go to stdout
-;; as well. (Error printing from hooks and timed callbacks)
-;;##############################################################
-
-(add-hook! print-hook
- (lambda (msg)
- (display msg)
- (newline)
- #f))
-
-
-(add-hook! snd-error-hook
- (lambda (msg)
- (display "snd-error!")(newline)
- (display msg)
- (newline)
- #f))
-
-;;##############################################################
-;; Various settings.
-;; (ladspa-dir), %load-path, (temp-dir) and (save-dir) are
-;; variables you might want to set in your .snd file.
-;;##############################################################
-
-(if (defined? 'notam-settings)
- ;; This is the settings used at Notam/Oslo. May not suite your setup.
- (begin
- (set! (ladspa-dir) "/usr/lib/ladspa")
- (set! %load-path (cons "/hom/kjetism/snd/snd-run" %load-path))
- (set! (temp-dir) "/lyd/local/tmp")
- (set! (save-dir) "/lyd/local/tmp")))
-
-(if (defined? 'kjetil-settings)
- ;; This is for my personal computers settings. May not suite your setup.
- (begin
- (set! %load-path (cons "/hom/kjetil/snd-run" %load-path))
- (set! (temp-dir) "/lyd/local/tmp")
- (set! (save-dir) "/lyd/local/tmp")))
-
-
-
-
-
-
-;;##############################################################
-;; Load various files
-;;##############################################################
-
-
-;;(if (not (provided? 'snd-snd-hobbit.scm))
-;; (load-from-path "snd-hobbit.scm"))
-
-
-
-(if (not (provided? 'snd-gui.scm))
- (load-from-path "gui.scm"))
-
-
-(if (not use-gtk)
- (c-display "Motif is currently not much supported in snd_conffile.scm."
- "You should compile up Snd using the --with-gtk and --with-static-xm configure options."))
-
-
-(c-load-from-path rgb)
-
-
-(define-macro (c-show-times time force)
- `(call-non-cons c-show-times-das ,time ,force))
-
-
-
-
-;;(load-from-path "bird.scm")
-
-
-
-
-;;##############################################################
-;; Set various variables
-;;##############################################################
-
-;;(set! *snd-remember-paths* #t)
-
-(set! (just-sounds) #t)
-
-(c-define c-default-output-srate 44100)
-(set! (default-output-srate) c-default-output-srate)
-
-(c-define c-default-output-type mus-riff)
-(set! (default-output-type) c-default-output-type)
-
-(c-define c-default-output-chans 2)
-(set! (default-output-chans) c-default-output-chans)
-
-(c-define c-default-output-format mus-lfloat)
-(set! (default-output-format) c-default-output-format)
-
-(c-define c-show-backtrace #t)
-(set! (show-backtrace) c-show-backtrace)
-
-(c-define c-show-indices #t)
-(set! (show-indices) c-show-indices)
-
-(c-define c-auto-resize #f)
-(set! (auto-resize) c-auto-resize)
-
-; Regions are created when needed when using the ctrl+y and ctrl+w keybindings.
-(set! (selection-creates-region) #f)
-
-;; Less than 64 seems to be very unreliable.
-(c-define *c-minimum-dac-size* 1024)
-(if (< (dac-size) *c-minimum-dac-size*)
- (set! (dac-size) *c-minimum-dac-size*))
-
-
-;; Set graph-style to dots and lines.
-;; Dot size is adjusted according to zoom level (see below)
-(set! (graph-style) graph-dots-and-lines)
-;(set! (graph-style) graph-filled)
-
-;; This is the value for the loop-button.
-(c-define *c-islooping* #t)
-
-(c-define *c-backgroundcolor* (make-color 0.99 0.99 0.99))
-(c-define *c-selectioncolor* (make-color 0 0.1 0.3))
-(c-define *c-cursor-color* (make-color 0 0.5 0))
-(c-define *c-basic-color* ivory2)
-(c-define *c-listener-color* (make-color 0.7 0.7 1))
-
-(c-define *c-restore-previous-session* #t)
-(c-define *c-use-envelope* #f)
-(c-define *c-cursor-color* blue)
-
-(c-define *c-zoomfactor* 1.2)
-
-;; Percent of the window to move the cursor forward/backward using which keys.
-(c-define *c-cursormovetime-rightleft* 2)
-(c-define *c-cursormovetime-updown* 10)
-(c-define *c-cursormovetime-pageupdown* 50)
-
-;; Hopefully this will change.
-(define c-setting-cursor-color-cause-redraw #t)
-
-(define c-is-stop-hooks-here #f)
-;;(defined? 'stop-playing-hook))
-
-
-(define *c-is-starting-up* #t)
-
-
-;;##############################################################
-;; Set some colors
-;;##############################################################
-
-;; Bacground
-(set! (selected-graph-color) *c-backgroundcolor*)
-(set! (graph-color) *c-backgroundcolor*)
-(set! (basic-color) *c-basic-color*)
-(set! (listener-color) *c-listener-color*)
-;; Selection
-(set! (cursor-color) *c-cursor-color*)
-(set! (data-color) *c-selectioncolor*)
-(set! (selected-data-color) *c-selectioncolor*)
-(set! (selection-color) *c-selectioncolor*)
-
-(set! (listener-font) "-*-courier-medium-r-*-*-*-100-*-*-*-*-*-*")
-
-;; Do not show axes labels
-(set! (show-axes) show-all-axes-unlabelled)
-
-;; ##################################
-;; Default parameters for fft display
-;; ##################################
-
-(set! (peaks-font) "Monospace 8")
-(set! (bold-peaks-font) "Monospace bold 8")
-(set! (fft-log-frequency) #t)
-(set! (fft-log-magnitude) #t)
-(set! (show-transform-peaks) #t)
-
-
-
-;;##############################################################
-;; Documentation for this configuration file.
-;;##############################################################
-
-(add-to-menu 4 "--------------------------------" (lambda () #t) 0)
-(add-to-menu 4 "But! How do I..."
- (lambda ()
- (help-dialog "How do I..."
- (apply string-append (map (lambda (s) (string-append s (string #\newline)))
- '(
- "Play from cursor : <Space>"
- "Play selection : p"
- "Stop playing : <Space>"
- "Pause playing : p"
- ""
- "Zooming horizontally :"
- "In : <arrow up> or <mouse wheel up>"
- "Out : <arrow down> or <mouse wheel down>"
- ""
- "Zooming vertically :"
- "In : <Ctrl>+<arrow up> or <mouse wheel up>"
- "Out : <Ctrl>+<arrow down> or <mouse wheel down>"
- ""
- "Switch zooming horizontally of vertically with wheel : z"
- ""
- "Show all the sound : a"
- "Show selection : s"
- "Select all : <Ctrl>+a"
- "Unselect : <Ctrl>+u"
- "Switch selection of both channels or only selected channel : <F2>"
- ""
- "Undo : <Ctrl>+_"
- ""
- "Make mark : m"
- "Make named mark : M"
- "Select between marks : move playhead between marks and press n or <middle-mouse-button>"
- ""
- "Move cursor ~1 pixel fwd : <Arrow right>"
- "Move cursor ~1 pixel bwd : <Arrow left>"
- "Move cursor 50 percent backward : <Page Up>"
- "Move cursor 50 percent forward : <Page Down>"
- "Set cursor at beginning : <"
- "Set cursor at end : >"
- "Set cursor at beginning of selection : <Ctrl>+<Home>"
- "Set cursor at end of selection : <Ctrl>+<end>"
- "Change selection without destroying the old one : <Ctrl> + <Mouse> OR <ctrl>+<left or right arrow>"
- "Move selected area : <Shift> + <Mouse>"
- ""
- "Copy : <Ctrl>+c"
- "Cut : <Ctrl>+x"
- "Paste : <Ctrl>+v"
- "Mix-Paste : <Ctrl>+b"
- "Selection -> New : <Ctrl>+e"
- ""
- "New file : <Ctrl>+n"
- ""
- "Inverse play direction : Q"
- "Accelerate 1 semitone : A"
- "Decelerate 1 semitone : W"
- "Restore normal playing : S"
- ""
- "Fade in selection : I"
- "Fade out selection : O"
- "Silent selection : S"
- ""
- "Toggle on/off grid : g"
- ""
- "Remove Node : <Right Mouse click> OR <Shift> + <Right Mouse>"
- "Set Node at Middle position : <Shift> + <Mouse>"
- "Finetune Node position : <Ctrl> + <Mouse>"
- "Move node only in x or y direction : <Right Mouse button>"
- ""
- ))))
- )
- 0)
-
-
-;;##############################################################
-;; Various more or less general functions
-;;##############################################################
-
-
-(define (c-get-nameform snd)
- (if use-gtk
- (GTK_BOX (list-ref (sound-widgets snd) 10))
- (find-child (list-ref (sound-widgets snd) 2) "snd-name-form")))
-
-(define (c-for-each-nameform-button snd name func)
- (for-each-child (c-get-nameform snd)
- (lambda (w)
- (if use-gtk
- (if (and (GTK_IS_BUTTON w)
- (string=? name (gtk_button_get_label (GTK_BUTTON w))))
- (func (GTK_BUTTON w)))
- (if (string=? (XtName w) name)
- (func w))))))
-
-(define (c-get-nameform-button snd name)
- (call-with-current-continuation
- (lambda (return)
- (c-for-each-nameform-button snd name return)
- #f)))
-
-
-(define (c-redraw)
- (set! (cursor-color) (cursor-color)))
-
-;; Selection-position and selection-frames doesn't allways work properly.
-(define (c-selection-position)
- (selection-position (c-selected-sound)))
-(define (c-selection-frames)
- (selection-frames (c-selected-sound)))
-
-(define* (c-set-selection-position! snd ch val #:optional (dassync (c-sync? snd)))
- (let ((mustredraw #f))
- (c-for 0 < (chans snd) 1
- (lambda (n)
- (if (or dassync
- (= n ch))
- (set! (selection-position snd n) val)
- (if (selection-member? snd n)
- (begin
- (set! mustredraw #t)
- (set! (selection-member? snd n) #f))))))
- (if mustredraw
- (c-redraw))))
-
-
-(define* (c-set-selection-frames! snd ch val #:optional (dassync (c-sync? snd)))
- (c-for 0 < (chans snd) 1
- (lambda (n)
- (if (or dassync
- (= n ch))
- (set! (selection-frames snd n) val)))))
-
-
-(define* (c-set-selection! snd ch start end #:optional (dassync (c-sync? snd)))
- (c-set-selection-position! snd ch start dassync)
- (c-set-selection-frames! snd ch (- end start -1) dassync))
-
-;; Like (selection?) but only for the selected sound.
-(define (c-selection?)
- (selection-member? (c-selected-sound)))
-
-
-
-;; Returns true if file is allready loaded. Necesarry to unscrew up open-hook handling.
-(define (c-isloaded? filename)
- (member filename (map (lambda (snd) (file-name snd))
- (sounds))))
-
-
-(define (c-set-cursor-pos pos)
- (c-for-each-channel2 (c-selected-sound)
- (lambda (ch)
- (set! (cursor (c-selected-sound) ch) (c-integer pos)))))
-
-
-(define* (c-use-rt-player? #:optional (snd (c-selected-sound)))
- (and (defined? '*rt-use-rt-player*)
- *rt-use-rt-player*
- (<= num-running-ladspas 0)
- (not (expand-control? snd))
- (not (filter-control? snd))
- (not (contrast-control? snd))
- (not (reverb-control? snd))))
-
-
-(define (c-playing)
- (or (playing)
- (and (c-use-rt-player?)
- (rt-snd-is-playing?))))
-
-;; Like (set-cursor-pos pos), but legalize pos and
-;; calls c-show-times as well. Also works when playing.
-(define (c-set-cursor-pos2 pos)
- (let ((isplaying (c-playing))
- (legalpos (min (frames) (max 0 pos))))
- (if isplaying
- (-> (c-p) set-cursor legalpos)
- (begin
- (c-show-times-nolv)
- (c-set-cursor-pos legalpos)))))
-
-
-(define c-snd-putgetdata (make-hash-table 32))
-
-(define (c-put snd name data)
- (hash-set! (hash-ref c-snd-putgetdata snd) name data))
-
-
-(define* (c-get snd name #:optional default)
- (hash-ref (hash-ref c-snd-putgetdata snd) name default))
-
-
-
-;; This following command had to be moved nearly to the end of this file, before opening previous files:
-;(add-hook! after-open-hook
-; (lambda (snd)
-; (hash-set! c-snd-putgetdata snd (make-hash-table 16))
-; #f))
-
-
-
-
-
-
-;;##############################################################
-;; Customize the cursor look
-;;##############################################################
-
-(if (not c-setting-cursor-color-cause-redraw)
- (add-hook! start-playing-hook
- (lambda (snd)
- (set! (cursor-color) yellow)
- #f)))
-
-(set! (cursor-color) *c-cursor-color*)
-
-(if (not c-setting-cursor-color-cause-redraw)
- (add-hook! stop-playing-hook
- (lambda (snd)
- (set! (cursor-color) blue)
- ;;(gc)
- #f)))
-
-;; Set different color on the cursor when playing selection.
-(if (not c-setting-cursor-color-cause-redraw)
- (add-hook! start-playing-selection-hook
- (lambda ()
- ;;(display "Start playing selection")(newline)
- (set! (cursor-color) green)
- #f)))
-
-
-(if (not c-setting-cursor-color-cause-redraw)
- (add-hook! stop-playing-selection-hook
- (lambda ()
- ;;(display "Stop playing selection")(newline)
- (set! (cursor-color) blue)
- #f)))
-
-
-
-;; Let the cursor move when playing. (copied from the manual)
-(add-hook! after-open-hook
- (lambda (snd)
- (c-for-each-channel2 snd
- (lambda (i)
- (set! (cursor snd i) 0)))
- (c-set-sound-cursor snd cursor-line)
- #f))
-
-(set! (cursor-follows-play) #t)
-
-
-
-
-
-
-
-
-
-
-
-
-;;##############################################################
-;; Various mouse handling
-;;##############################################################
-
-
-;; Removes default mouse-click-hook handling. The possibility to paste with
-;; mouse-button 2 is really annoying when using a wheel mouse.
-(add-hook! mouse-click-hook (lambda (snd chn button state x y axis)
- #t))
-
-;;
-;; Mouse click hooks have been moved below (nolv)
-;;
-
-
-;; Moves the playing position when clicking in the editor if clicking button 1 or 4.
-;; Moves cursor and stops playing if clicking buttton 5. (wheel down)
-;; Moves cursor and starts playing if clicking button 4. (wheel up)
-
-#!(add-hook! mouse-click-hook
- (lambda (snd chn button state x y axis)
- (if (and (not (= state 260))
- (= axis time-graph))
- (let ((samp (max 0 (c-integer (* (srate snd) (position->x x snd chn)))))
- (dasspeed (speed-control))
- (play (c-p snd)))
- (cond ((= button 4)
- (if (< dasspeed 0)
- (set! (speed-control) (* -1 dasspeed)))
- (-> play play2 samp))
- ((= button 5)
- (if (> dasspeed 0)
- (set! (speed-control) (* -1 dasspeed)))
- (-> play play2 samp))
- (else
- (c-show-times samp #t)
- (if (-> play isplaying)
- (-> play stop samp)
- (set! (cursor snd) samp))))))
- #f))!#
-
-
-#!
-(set! (speed-control) -1)
-(play (- (frames) 1000) #f #f #f 1000 #f #f)
-!#
-
-
-;;##############################################################
-;; Playing
-;;##############################################################
-
-
-(def-class (<play> snd)
- (define isplaying #f)
- (define startplaypos 0)
- (define playtype 'song)
-
- (define (get-selection-start)
- (if (c-use-rt-player?)
- (if (selection-member? snd)
- (selection-position snd)
- 0)
- (if (selection-member? snd)
- (if (< (speed-control snd) 0)
- (+ (selection-position snd) (selection-frames snd))
- (selection-position snd))
- (if (< (speed-control snd) 0)
- (1- (frames snd))
- 0))))
-
- (define (get-selection-end)
- (if (c-use-rt-player?)
- (if (selection-member? snd)
- (+ (selection-position snd) (selection-frames snd))
- (frames snd))
- (if (selection-member? snd)
- (if (< (speed-control snd) 0)
- (selection-position snd)
- (+ (selection-position snd) (selection-frames snd)))
- (if (< (speed-control snd) 0)
- 0
- (1- (frames snd))))))
-
- (define (my-stop-playing)
- (if (c-use-rt-player?)
- (rt-snd-stop-playing))
- (stop-playing))
-
- (def-method (play pos)
- (define (das-play)
- (play 0 #f #f #f #f #f das-callback))
- (define (das-callback x)
- (if (and (= x 0) *c-islooping*)
- (das-play)
- (set! isplaying #f)))
- (set! isplaying #t)
- (set! startplaypos (if pos (c-integer pos) (cursor snd)))
- (set! playtype 'song)
-
- (if (c-use-rt-player?)
- (rt-snd-play snd 0 #f startplaypos)
- (play startplaypos #f #f #f #f #f das-callback)))
-
- ;; Stops if allready playing
- (def-method (play2 pos)
- (if isplaying
- (begin
- (set! (cursor-follows-play) #f)
- (my-stop-playing)
- (set! (cursor-follows-play) #t)))
- (this->play pos))
-
- (def-method (play-selection #:optional (pos (get-selection-start)))
- (define (das-play)
- (play (get-selection-start) #f #f #f (get-selection-end) #f das-callback))
- (define (das-callback x)
- (if (and (= x 0) *c-islooping*)
- (das-play)
- (set! isplaying #f)))
- (set! isplaying #t)
- (set! startplaypos (c-integer pos))
- (set! playtype 'selection)
- (if (c-use-rt-player?)
- (rt-snd-play snd (get-selection-start) (get-selection-end) (if (>= (speed-control snd) 0)
- pos
- (1- (get-selection-end))))
- (play pos #f #f #f (get-selection-end) #f das-callback)))
-
- (def-method (stop #:optional pos)
- (set! (cursor-follows-play) #f)
- (my-stop-playing)
- (set! (cursor) (if pos (c-integer pos) startplaypos))
- (set! (cursor-follows-play) #t))
-
- (def-method (pause)
- (set! (cursor-follows-play) #f)
- (let ((pos (cursor snd)))
- (my-stop-playing)
- (set! (cursor snd) pos)
- (set! (cursor-follows-play) #t)))
-
- (def-method (continue #:optional (pos (cursor snd)))
- (if (eq? playtype 'song)
- (this->play pos)
- (this->play-selection pos)))
-
-
- (def-method (isplaying)
- (c-playing))
-
- (def-method (set-cursor pos)
- (set! (cursor-follows-play) #f)
- (my-stop-playing)
- (this->continue pos)
- (set! (cursor-follows-play) #t))
-
- (def-method (dosomepause thunk)
- (if (this->isplaying)
- (begin
- (this->pause)
- (thunk)
- (this->continue))
- (thunk)))
-
- (def-method (selection-is-changed)
- (if (this->isplaying)
- (begin
- (set! (cursor-follows-play) #f)
- (my-stop-playing)
- (this->continue (get-selection-start))
- (set! (cursor-follows-play) #t))))
-
- )
-
-
-
-(add-hook! after-open-hook
- (lambda (snd)
- (c-put snd 'play (<play> snd))))
-
-(define* (c-p #:optional (snd (c-selected-sound)))
- (c-get snd 'play))
-
-(define* (c-play #:optional samp)
- (-> (c-p) play samp))
-(define (c-stop)
- (-> (c-p) stop))
-(define (c-pause)
- (-> (c-p) pause))
-(define (c-continue)
- (-> (c-p) continue))
-(define (c-play-selection)
- (-> (c-p) play-selection))
-
-
-
-;; Can't play many minutes before memory is used up: (and allocating memory stops the world as well)
-(if (defined? 'c-stop-gc-when-playing)
- (begin
- (add-hook! stop-dac-hook
- (lambda ()
- (c-gc-on)))
- (add-hook! stop-playing-hook
- (lambda (snd)
- (c-gc-on)))
- (add-hook! stop-playing-selection-hook
- (lambda ()
- (c-gc-on)))
- (add-hook! start-playing-hook
- (lambda (snd)
- (c-gc-off #f)))
- (add-hook! start-playing-selection-hook
- (lambda ()
- (c-gc-off #f)))))
-
-
-#!
-Doesnt work any more.
-(add-hook! stop-playing-hook
- (lambda (snd)
- (c-display "stop-playing-hook")
- (set! (cursor-follows-play) #f)
- (c-set-cursor-pos (cursor))
- (c-show-times (cursor) #t)
- (set! (cursor-follows-play) #t)))
-!#
-
-
-
-;; space and P keys are reverted with respect to K.S.M. conffile
-
-;; Key p starts playing from the begining of the selection,
-;; all channels. And pause playing if allready playing.
-(bind-key (char->integer #\p ) 0
- (lambda ()
- (if (-> (c-p) isplaying)
- (-> (c-p) pause)
- (if (c-selection?)
- (-> (c-p) play-selection)
- (-> (c-p) play #f))
- )))
-
-;; Makes the SPACE key a STOP button. If playing, stops playing, and reset the cursor pos.
-;; If not playing, starts playing from cursor.
-(bind-key (char->integer #\ ) 0
- (lambda x
- (if (-> (c-p) isplaying)
- (-> (c-p) stop)
- (-> (c-p) play #f))))
-
-
-;;##############################################################
-;; View
-;;##############################################################
-
-;; Displays dots at high zooming factors
-
-(define (dsize)
- (let ((largeur (- (car (cdr (x-bounds))) (car (x-bounds)))))
- (if (> largeur 0.005)
- 1
- 5)))
-
-;; (define (graphic-style)
-;; (let ((largeur (- (car (cdr (x-bounds))) (car (x-bounds)))))
-;; (if (> largeur 0.1)
-;; graph-filled
-;; graph-dots-and-lines)))
-
-(add-hook! after-graph-hook
- (lambda (snd ch)
- (set! (dot-size) (dsize))))
-
-;; The g keys toggles on/off the grid
-(bind-key (char->integer #\g) 0
- (lambda ()
- (set! (show-grid)
- (if (show-grid)
- #f
- #t))))
-
-;; Set y=0 axis visible
-(set! (show-y-zero) #t)
-
-;; Let the "a" key be a "show-all" key.
-(bind-key (char->integer #\a) 0
- (lambda ()
- (set! (x-bounds) (list 0.0 (/ (frames) (srate))))))
-
-
-;; Let the "s" key be a "show-selection" key.
-(bind-key (char->integer #\s) 0
- (lambda ()
- (set! (x-bounds) (list (/ (c-selection-position) (srate))
- (/ (+ (c-selection-position) (c-selection-frames)) (srate))))))
-
-;; C-u : Unselect
-(bind-key (char->integer #\u) 4
- (lambda ()
- (begin
- (set! (selection-member? #t) #f)
- (report-in-minibuffer "no selection"))))
-
-;; C-a : Select all
-(bind-key (char->integer #\a) 4
- (lambda ()
- (begin
- (select-all)
- (report-in-minibuffer "entire sound selected"))))
-
-
-(define (c-set-x-bounds! x1 x2)
- (let* ((all (/ (frames) (srate)))
- (n-x1 (max 0 x1))
- (n-x2 (min all (+ (- n-x1 x1) x2))))
- (if (> x2 all)
- (set! n-x1 (max 0 (- n-x1 (- x2 all)))))
- (if (and (or (>= (* (abs (- n-x1 (car (x-bounds)))) (srate)) 1)
- (>= (* (abs (- n-x2 (cadr (x-bounds)))) (srate)) 1))
- (>= (* (srate) (- n-x2 n-x1)) (if (< (- (frames) (cursor)) 10) 10 1)))
- (set! (x-bounds) (list n-x1 n-x2)))))
-
-(define (c-zoom zoomfactor)
- (let* ((cursor (/ (cursor) (srate)))
- (x1 (car (x-bounds)))
- (x2 (cadr (x-bounds)))
- (length (- x2 x1))
- (n-length (* zoomfactor length))
- (n-x2 (/ (+ (* 2 cursor) n-length) 2))
- (n-x1 (- n-x2 n-length)))
- (c-set-x-bounds! n-x1 n-x2)))
-
-;; MODIFS
-
-;; up: Zoom in
-(bind-key #xFF54 0
- (lambda ()
- (c-zoom *c-zoomfactor*)))
-
-;; down: Zoom out
-(bind-key #xFF52 0
- (lambda ()
- (c-zoom (/ 1 *c-zoomfactor*))))
-
-;; ctrl up : Zoom in vertically
-(bind-key #xFF54 4
- (lambda ()
- (begin
- (set! (y-zoom-slider) (* (y-zoom-slider) 1.2))
- (set! (y-position-slider) (- 0.5 (* 0.5 (y-zoom-slider)))))))
-
-;; ctrl down: Zoom out vertically
-(bind-key #xFF52 4
- (lambda ()
- (begin
- (set! (y-zoom-slider) (/ (y-zoom-slider) 1.2))
- (set! (y-position-slider) (- 0.5 (* 0.5 (y-zoom-slider)))))))
-
-
-;; Shows the full sound after opening.
-(add-hook! after-open-hook
- (lambda (n)
- (set! (x-bounds) (list 0.0 (/ (+ (frames) 1) (srate))))
- #f))
-
-;(add-hook! initial-graph-hook
-; (lambda (snd chn dur)
-; (list 0.0 dur)))
-
-
-
-
-;; Some code borrowed from snd7.scm and sligthly modified, used to select between marks
-(define (back-or-forth-mark-n count snd chn)
- (if (not (= count 0))
- (let ((mx (marks snd chn)))
- (if (not (null? mx))
- (let ((len (length mx)))
- (if (= len 1)
- (begin
- (set! (cursor snd chn) (mark-sample (car mx)))
- (car mx))
- (let ((sorted-mx (sort mx (lambda (a b) (< (mark-sample a) (mark-sample b)))))
- (pos (cursor snd chn))
- (curpos (if (> count 0) -1 0)))
- (if (>= pos (mark-sample (car sorted-mx)))
- (call-with-current-continuation
- (lambda (break)
- (for-each
- (lambda (m)
- (if (or (and (> count 0)
- (< pos (mark-sample m)))
- (and (< count 0)
- (<= pos (mark-sample m))))
- (break)
- (set! curpos (1+ curpos))))
- sorted-mx))))
-;; (set! curpos (modulo (+ curpos count) len))
-;; (set! (cursor snd chn) (mark-sample (list-ref sorted-mx curpos)))
- (list-ref sorted-mx curpos))))
- #f))
- #f))
-
-
-(define* (backward-mark-n #:optional (count 1) snd chn)
- (back-or-forth-mark-n count (or snd (selected-sound) (car (sounds))) (or chn (selected-channel) 0)))
-
-(define* (forward-mark-n #:optional (count 1) snd chn)
- (back-or-forth-mark-n (- count) (or snd (selected-sound) (car (sounds))) (or chn (selected-channel) 0)))
-
-
-(bind-key (char->integer #\n) 0
- (lambda ()
- (begin
- (define-selection-via-marks (backward-mark-n) (forward-mark-n))
- (c-show-times-nolv))))
-
-(define horiz-zooming #t)
-
-(bind-key (char->integer #\z) 0
- (lambda ()
- (begin
- (set! horiz-zooming (not horiz-zooming))
- (report-in-minibuffer (if horiz-zooming
- "horizontal zooming"
- "vertical zooming" )))))
-
-(add-hook! mouse-click-hook
- (lambda (snd chn button state x y axis)
- (if (and (not (= state 260))
- (= axis time-graph))
- (let ((samp (max 0 (c-integer (* (srate snd) (position->x x snd chn)))))
- (dasspeed (speed-control))
- (play (c-p snd)))
- (cond ((= button 5)
- (if (not (c-ctrl? state))
- (c-zoom (* 1.5 *c-zoomfactor*))
- (begin
- (set! (y-zoom-slider) (* (y-zoom-slider) 1.2))
- (set! (y-position-slider) (- 0.5 (* 0.5 (y-zoom-slider)))))))
- ((= button 4)
- (if (not (c-ctrl? state))
- (c-zoom (/ 1 (* 1.5 *c-zoomfactor*)))
- (begin
- (set! (y-zoom-slider) (/ (y-zoom-slider) 1.2))
- (set! (y-position-slider) (- 0.5 (* 0.5 (y-zoom-slider)))))))
- ((= button 1)
- (if (-> play isplaying)
- (-> play play2 samp)
- (begin
- (set! (cursor snd) samp)
- (c-show-times-nolv))))
- ((= button 2)
- (begin
- (define-selection-via-marks (backward-mark-n) (forward-mark-n))
- (c-show-times-nolv)))
- )))
- #f))
-
-(-> mouse-doubleclick-hook add!
- (lambda (snd x y stat)
- (begin
- (define-selection-via-marks (backward-mark-n) (forward-mark-n))
- (c-show-times-nolv)
- (c-display "double-click" snd x y stat))))
-
-
-;;##############################################################
-;; Cursor position
-;;##############################################################
-
-(define (step)
- (let ((largeur (- (car (cdr (x-bounds))) (car (x-bounds)))))
- (if (> largeur 0.01) (* largeur 100) 1)))
-
-(let ((m (lambda (func percent)
- (lambda ()
- (c-set-cursor-pos2 (func (cursor) (* (srate)
- (- (cadr (x-bounds)) (car (x-bounds)))
- 0.01
- percent)))))))
-
-;; Page up/down
- (bind-key #xFF56 0
- (m + 52))
-
- (bind-key #xFF55 0
- (m - 52))
-
-;; Left/right : moves one sample at high zoom factors, moves approximately one pixel at low zoom factors
- (bind-key #xFF51 0
- (lambda () (c-set-cursor-pos2 (- (cursor) (step)) )))
-
- (bind-key #xFF53 0
- (lambda () (c-set-cursor-pos2 (+ (cursor) (step)) )))
-
-;; ctrl - Left/right : moves one sample at high zoom factors, moves approximately one pixel at low zoom factors
-;; and adjust selection
-
- (bind-key #xFF51 4
- (lambda ()
- (begin
- (c-set-cursor-pos2 (- (cursor) (step)))
- (if (selection?)
- (cond
- ((< (cursor) (selection-position))
- (set! (selection-position) (cursor)))
- ((> (cursor) (+ (selection-position) (- (selection-frames) 1)))
- (set! (selection-frames) (- (+ 1 (cursor)) (selection-position))))
- (else
- (if (<= (- (+ (selection-position) (selection-frames)) (cursor) 1) (- (cursor) (selection-position)))
- (set! (selection-frames) (- (+ 1 (cursor)) (selection-position)))
- (set! (selection-position) (cursor)))))
- (make-selection (cursor) (+ (cursor) (step)) (selected-sound) (selected-channel)))
-;; (c-redraw)
- (c-show-times-nolv))))
-
- (bind-key #xFF53 4
- (lambda ()
- (begin
- (c-set-cursor-pos2 (+ (cursor) (step)))
- (if (selection?)
- (cond
- ((< (cursor) (selection-position))
- (set! (selection-position) (cursor)))
- ((> (cursor) (+ (selection-position) (- (selection-frames) 1)))
- (set! (selection-frames) (- (+ 1 (cursor)) (selection-position))))
- (else
- (if (>= (- (+ (selection-position) (selection-frames)) (cursor) 1) (- (cursor) (selection-position)))
- (set! (selection-position) (cursor))
- (set! (selection-frames) (- (+ 1 (cursor)) (selection-position))))))
- (make-selection (- (cursor) (step)) (cursor) (selected-sound) (selected-channel)))
-;; (c-redraw)
- (c-show-times-nolv))))
-
-;; c-home c-end : moves to begining/end of selection
- (bind-key #xFF50 4
- (lambda ()
- (c-set-cursor-pos2 (if (selection?)
- (selection-position)
- (cursor) ))))
-
- (bind-key #xFF57 4
- (lambda ()
- (c-set-cursor-pos2 (if (selection?)
- (+ (selection-position) (- (selection-frames) 1))
- (cursor)))))
-
- (unbind-key #xFF50 0 #f)
- (bind-key #xFF50 0
- (lambda ()
- (c-set-cursor-pos2 (* (srate) (+ 1e-5 (car (x-bounds)))))))
-
- (unbind-key #xFF57 0 #f)
-
- (bind-key #xFF57 0
- (lambda ()
- (c-set-cursor-pos2 (* (srate) (cadr (x-bounds))))))
-
-;; < > : goto begining, end of sound
- (bind-key (char->integer #\<) 0
- (lambda () (c-set-cursor-pos2 0)))
-
- (bind-key (char->integer #\>) 0
- (lambda () (c-set-cursor-pos2 frames))))
-
-
-;; F2 : Switch selection all-channels <-> only selected channel
-(bind-key #xFFBF 0
- (lambda ()
- (cond ((= (selection-chans) 1)
- (begin
- (make-selection (c-selection-position) (+ (- (c-selection-frames) 1) (c-selection-position)) (selected-sound) (all-chans))
- (c-redraw)))
- ((> (selection-chans) 1)
- (begin
- (make-selection (c-selection-position) (+ (- (c-selection-frames) 1) (c-selection-position)) (selected-sound) (selected-channel))
- (c-redraw))))))
-
-
-
-
-
-
-;;##############################################################
-;; Various key-bindings
-;;##############################################################
-
-;;Make snd quit when pressing C-x-c, just like emacs.
-;; (bind-key (char->integer #\c) 4
-;; (lambda ()
-;; (exit))
-;; #t)
-
-;; Make C-q quit, just like most other programs
-(bind-key (char->integer #\q) 4
- (lambda ()
- (exit)))
-
-
-;; Let "c" turn on/off controls
-(bind-key (char->integer #\c) 0
- (lambda ()
- (set! (show-controls)
- (if (show-controls)
- #f
- #t))))
-
-#!
-(add-hook! key-press-hook
- (lambda (snd chn key state)
- (c-display "key: " key)))
-!#
-
-
-;; MODIFS
-
-;; Speed controls
-
-;; inverse play direction
-(bind-key (char->integer #\S) 0
- (lambda ()
- (set! (speed-control) (* -1 (speed-control)))))
-;; slower
-(bind-key (char->integer #\W) 0
- (lambda ()
- (set! (speed-control) (* 0.943874312681693 (speed-control)))))
-;; faster
-(bind-key (char->integer #\A) 0
- (lambda ()
- (set! (speed-control) (* 1.05946309435930 (speed-control)))))
-;; reset speed=1 direction=forward
-(bind-key (char->integer #\Q) 0
- (lambda ()
- (set! (speed-control) 1)))
-
-;; fade in/out/silent selection
-(bind-key (char->integer #\I) 0
- (lambda ()
- (env-selection '(0 0 1 1))))
-(bind-key (char->integer #\O) 0
- (lambda ()
- (env-selection '(0 1 1 0))))
-(bind-key (char->integer #\S) 0
- (lambda ()
- (env-selection '(0 0 1 0))))
-
-
-;; reverse selection
-(bind-key (char->integer #\k) 0
- (lambda ()
- (reverse-selection)))
-
-
-;; selcetion->new
-(bind-key (char->integer #\e) 4
- (lambda ()
- (selection->new)))
-
-;; new sound
-(bind-key (char->integer #\n) 4
- (lambda ()
- (new-sound)))
-
-;; /MODIFS
-
-
-
-
-
-;;##############################################################
-;; Minibuffer-stuff
-;;##############################################################
-
-(define c-is-prompting-in-minibuffer #f)
-(define prompt-in-minibuffer-old prompt-in-minibuffer)
-(define report-in-minibuffer-old report-in-minibuffer)
-
-(define (prompt-in-minibuffer question func . rest)
- (set! c-is-prompting-in-minibuffer #t)
- (apply prompt-in-minibuffer-old (append (list question
- (lambda (response)
- (let ((ret (func response)))
- (set! c-is-prompting-in-minibuffer #f)
- ret)))
- rest)))
-(define (report-in-minibuffer . args)
- (if (not c-is-prompting-in-minibuffer)
- (apply report-in-minibuffer-old args)))
-
-
-
-;;##############################################################
-;; Marks
-;;##############################################################
-
-; Let M make a named mark, and sync it if the current sound is synced.
-(bind-key (char->integer #\M) 0
- (lambda ()
- (define (my-add-mark sample snd ch syncnum name)
- (if (> ch -1)
- (let ((newmark (add-mark sample snd ch)))
- (set! (mark-sync newmark) syncnum)
- (set! (mark-name newmark) name)
- (my-add-mark sample snd (1- ch) syncnum name))))
- (define my-mark-sync-max
- (let ((max-mark-sync 1000))
- (lambda ()
- (set! max-mark-sync (max (1+ (mark-sync-max)) (1+ max-mark-sync)))
- max-mark-sync)))
- (report-in-minibuffer "")
- (prompt-in-minibuffer "mark: "
- (lambda (ret)
- (if (> (sync) 0)
- (my-add-mark (cursor) (c-selected-sound) (1- (channels)) (my-mark-sync-max) ret)
- (set! (mark-name (add-mark (cursor))) ret)))
- (c-selected-sound)
- #t)))
-
-
-; Let m make a non-named mark, and sync it if the current sound is synced.
-(bind-key (char->integer #\m) 0
- (lambda ()
- (define (my-add-mark sample snd ch syncnum name)
- (if (> ch -1)
- (let ((newmark (add-mark sample snd ch)))
- (set! (mark-sync newmark) syncnum)
- (set! (mark-name newmark) name)
- (my-add-mark sample snd (1- ch) syncnum name))))
- (define my-mark-sync-max
- (let ((max-mark-sync 1000))
- (lambda ()
- (set! max-mark-sync (max (1+ (mark-sync-max)) (1+ max-mark-sync)))
- max-mark-sync)))
- (if (> (sync) 0)
- (my-add-mark (cursor) (selected-sound) (1- (channels)) (my-mark-sync-max) "")
- (set! (mark-name (add-mark (cursor))) ""))))
-
-(c-load-from-path marks)
-
-;; The following mark-related lines are copied from marks.scm. For some reason the functions was commented away.
-
-(define (eval-header sndf)
- (and (string? (comment sndf))
- (catch #t
- (lambda ()
- (eval-string (comment sndf)))
- (lambda args #f))))
-
-
-(define (marks->string sndf)
- (let ((str (format #f "(if (not (defined? 'mark-property)) (load \"marks.scm\"))~%(let ((m #f))~%"))
- (chan 0))
- (for-each
- (lambda (chan-marks)
- (for-each
- (lambda (m)
- (set! str
- (string-append str
- (format #f
- " (set! m (add-mark ~A #f ~D))~%"
- (mark-sample m)
- chan)))
- (if (and (string? (mark-name m))
- (> (string-length (mark-name m)) 0))
- (set! str
- (string-append str
- (format #f
- " (set! (mark-name m) ~S)~%"
- (mark-name m)))))
- (if (not (null? (mark-properties m)))
- (set! str
- (string-append str
- (format #f
- " (set! (mark-properties m) '~A)~%"
- (mark-properties m))))))
- chan-marks)
- (set! chan (1+ chan)))
- (marks sndf))
- (string-append str (format #f " m)~%"))))
-
-(add-hook! output-comment-hook (lambda (str) (marks->string (c-selected-sound)) #f))
-(add-hook! after-open-hook (lambda (snd) (eval-header snd) #f))
-
-
-
-
-
-
-;;##############################################################
-;; Replace mouse-selection handling. (probably broken for motif)
-;;##############################################################
-
-
-(let ((about-to-move #f)
- (selection-starting-point #f)
- (dassync #f))
-
- (define (mouse-press-callback snd ch x y button state)
- (if (c-leftbutton? button)
- (let ((samp (c-integer (* (srate snd) (position->x x snd ch))))
- (selmember (selection-member? snd ch)))
- (set! dassync (> (position->y y snd 0) 0))
- (if (< samp 0) (set! samp 0))
- (if (and (c-ctrl? state) selmember)
- (let ((selpos (selection-position snd ch))
- (selframes (selection-frames snd ch)))
- (if (< samp (+ (/ selframes 2) selpos))
- (set! selection-starting-point (+ selpos selframes))
- (set! selection-starting-point selpos))
- (mouse-motion-callback snd ch x y button state))
- (if (and (c-shift? state) selmember)
- (let ((selpos (selection-position snd ch))
- (selframes (selection-frames snd ch)))
- (color-samples-allchans (channels) green selpos selframes)
- (set! about-to-move (<array> selpos selframes)))
- (set! selection-starting-point samp)))
- 'allways-stop!)))
-
- (define (mouse-motion-callback snd ch x y button state)
- (let ((samp (max 0 (c-integer (* (srate snd) (position->x x snd ch))))))
- (if about-to-move
- (c-set-selection! snd ch samp (+ samp (about-to-move 1)) dassync)
- (begin
- (if (not (selection-member? snd ch))
- (if (< x selection-starting-point)
- (c-set-selection! snd ch x selection-starting-point dassync)
- (c-set-selection! snd ch selection-starting-point x dassync))
- (let* ((selstart (selection-position snd ch))
- (selframes (selection-frames snd ch))
- (newselstart (if (< samp selection-starting-point)
- samp
- selection-starting-point))
- (newselframes (if (< samp selection-starting-point)
- (- selection-starting-point samp)
- (1+ (- samp selection-starting-point)))))
- (if (and (or (not (= selstart newselstart))
- (not (= selframes newselframes)))
- (not (= samp selection-starting-point)))
- (begin
- (c-put snd 'region-generation (1+ (c-get snd 'region-generation 0)))
- (c-set-selection! snd ch newselstart (+ newselstart newselframes) dassync)))))
- (c-show-times-nolv)))))
-
- (define (mouse-release-callback snd ch x y button state)
- (define (nofunc . x)
- #t)
- (let ((samp (max 0 (c-integer (* (srate snd) (position->x x snd ch))))))
- (if about-to-move
- (begin
- (add-hook! graph-hook nofunc)
- (c-set-selection! snd ch (about-to-move 0) (+ (about-to-move 0) (about-to-move 1)) dassync)
- (c-cut)
- (c-set-cursor-pos samp)
- (remove-hook! graph-hook nofunc)
- (c-paste)
- (c-set-selection! snd ch samp (+ samp (about-to-move 1)) dassync)
- (set! about-to-move #f))
- (begin
- (if selection-starting-point
- (if (not (= samp selection-starting-point))
- (begin
- (if (< samp selection-starting-point)
- (c-set-selection! snd ch samp selection-starting-point dassync)
- (c-set-selection! snd ch selection-starting-point samp dassync))
- (c-gc-on)
- (gc))))
- (c-show-times-nolv)
- (set! selection-starting-point #f))))
- (-> (c-p snd) selection-is-changed)
- (c-gc-on))
-
-
- (<mouse-cycle> mouse-press-callback mouse-motion-callback mouse-release-callback)
-
- )
-
-
-
-
-
-
-
-
-;;##############################################################
-;; Copy, Cut, Delete, Paste and mix
-;;##############################################################
-
-
-;; Replace the C-y and C-w keybindings. These are equal, but writes
-;; "Please wait" to the window bar, colorize the inserted region and
-;; automaticly creates regions when needed if (selection-creates-region) is false.
-
-(define c-iscolorized #f)
-
-(define (color-samples-allchans chans color start end)
- (if (> chans 0)
- (begin
- (if (eq? color 'black)
- (uncolor-samples (c-selected-sound) (- chans 1))
- (color-samples color start end (c-selected-sound) (- chans 1)))
- (color-samples-allchans (- chans 1) color start end))))
-
-
-
-(define (c-clear-report-hook snd ch)
- (remove-hook! after-graph-hook c-clear-report-hook)
- (c-report " ")
- #f)
-
-
-;; Prints a message to the title-bar, and takes it away when the graph-hook is called.
-(define (c-report-and-clear message)
- (c-report message)
- (add-hook! after-graph-hook c-clear-report-hook))
-
-
-
-#!
-;;This one could have been very nice, but the graph-hook is called very often,
-;;and then the window bar changes title too often too, which is disturbing.
-(add-hook! graph-hook
- (lambda (snd ch y0 y1)
- (c-report-and-clear "Please wait, updating time graph...")
- #f))
-!#
-
-
-(define (c-make-region)
- (if (not (selection-creates-region))
- (if (> (c-get (c-selected-sound) 'region-generation 0) 0)
- (begin
- (c-put (c-selected-sound) 'region-generation 0)
- (c-report-and-clear "Please wait, making region...")
- (make-region)))))
-
-(bind-key (char->integer #\r) 0
- c-make-region)
-
-
-(define (c-paste)
- (if (c-selection?)
- (c-make-region))
- (if (> (length (regions)) 0)
- (begin
- (c-report "Please wait, inserting region...")
- (color-samples-allchans (channels) 'black 0 0)
- (let ((length (region-frames))
- (curspos (cursor)))
- (if (> length 5000000)
- (begin
- (set! (with-background-processes) #f) ;; To prevent using horrible long time, and the little picture not to update properly.
- (insert-region curspos)
- (set! (with-background-processes) #t))
- (insert-region curspos)) ;; The little picture might not update properly. But turning off background-processes slows down pasting of small regions a lot.
- (if (> (sync) 0)
- (color-samples-allchans (channels) green curspos (region-frames))
- (color-samples green curspos (region-frames)))
- (set! c-iscolorized #t)
- (c-report-and-clear "Please wait, updating time graph...")
- (update-time-graph)))))
-
-(bind-key (char->integer #\v) 4
- c-paste)
-
-
-(define (c-cut)
- (if (c-selection?)
- (let ((curspos (c-selection-position)))
- (color-samples-allchans (channels) 'black 0 0)
- (c-set-cursor-pos curspos)
- (c-make-region)
- (c-report-and-clear "Please wait, deleting selection...")
- (delete-selection)
- (set! c-iscolorized #f))))
-
-(bind-key (char->integer #\x) 4
- (lambda ()
- (begin
- (c-cut)
- (report-in-minibuffer "test"))))
-
-(define (c-copy)
- (if (c-selection?)
- (let ((curspos (c-selection-position)))
- (color-samples-allchans (channels) 'black 0 0)
- (c-set-cursor-pos curspos)
- (c-make-region)
- (c-report-and-clear "Please wait, copying selection...")
- (set! c-iscolorized #f))))
-
-(bind-key (char->integer #\c) 4
- c-copy)
-
-(bind-key #xFF08 0
- (lambda ()
- (if (c-selection?)
- (delete-selection))))
-
-(bind-key (char->integer #\b) 4
- (lambda ()
- (mix-region (cursor))))
-
-
-;;##############################################################
-;; Progress reporting (graphic)
-;;##############################################################
-
-(define c-last-report-value 0.0)
-
-(define (progress-report pct . various) ;name current-channel channels snd)
- (c-get-bounds (c-selected-sound) 0
- (lambda (minx miny maxx maxy)
- (let ((width (- maxx minx)))
- (if (> (abs (- pct c-last-report-value)) (/ 1 width))
- (let ((old-color (foreground-color))
- (height 10)
- (new-report-value (/ (floor (* 100 pct)) 100)))
- (if (and (defined? 'rational?)
- (rational? new-report-value))
- (set! new-report-value (exact->inexact new-report-value)))
- (set! (foreground-color) blue)
- (fill-rectangle minx miny (* pct width) height)
- (set! (foreground-color) old-color)
- (report-in-minibuffer (string-append (number->string new-report-value)
- (if (member new-report-value '(0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9))
- "0"
- "")))
- (set! c-last-report-value pct)))))))
-
-(define (start-progress-report . snd)
- (set! c-last-report-value 0.0)
- (report-in-minibuffer "0.00"))
-
-
-
-(define (finish-progress-report . snd)
- (report-in-minibuffer ""))
-
-
-
-
-
-
-;;##############################################################
-;; Show times
-;;##############################################################
-
-;; Show cursor and selection position in minutes, seconds and 1/10th seconds.
-;; This function is often called when playing, so I have tried as much as possible to avoid triggering a garbage collection.
-;; (without very much (if any) success by the way). Would be extremely nice if Guile could collect garbage in a seperate thread.
-;; No, the garbage collector can't just be turned off while playing. I have tried many times,
-;; but theres a huge chance everything goes bananas because of a swapping hell that is eventually
-;; going to happen. Its a scary amount of memory that is allocated by guile just doing small things.
-
-;; (define c-show-times-das
-;;
-;; (let (
-;;
-;; (c-dodasprint
-;; (let* ((lastpainted (list-tabulate 3 (lambda (n) (list-tabulate 4 (lambda (n) #f)))))
-;; (fontwidth 9)
-;; (fontheight 12)
-;; (stringlen (* fontwidth 7))
-;;
-;; (sound-widget #f)
-;; (width #f)
-;; (x #f)
-;; (dim #f)
-;;
-;; (old-color #f)
-;; (height #f)
-;; (y #f))
-;;
-;; (lambda-non-cons (string level color framepos force)
-;; (set! sound-widget (c-editor-widget (c-selected-sound)))
-;; (set! width (- (car (widget-size sound-widget)) fontwidth))
-;; (set! x (min (- width stringlen) (x->position (/ framepos (srate)))))
-;; (set! dim (list-ref lastpainted level))
-;;
-;; (if (or force
-;; (not (car dim))
-;; (not (= x (car dim))))
-;; (begin
-;; (set! old-color (foreground-color))
-;; (set! height (cadr (widget-size sound-widget)))
-;; (set! y (+ (- (* fontheight level) (* 1.5 fontheight))
-;; (- (/ (- height fontheight) 2) fontheight)))
-;;
-;; (if (car dim)
-;; (begin
-;; (set! (foreground-color) *c-backgroundcolor*)
-;; ;(c-draw-string sound-widget
-;; ; (list-ref (snd-gcs) 1)
-;; ; (car dim) (+ fontheight (cadr dim))
-;; ; (cadddr dim))
-;; (fill-rectangle (car dim) (cadr dim) (caddr dim) (+ 2 fontheight))
-;; ))
-;; (c-draw-string sound-widget
-;; color
-;; x (+ fontheight y)
-;; string)
-;;
-;; (set-car! dim x)
-;; (set-car! (cdr dim) y)
-;; (set-car! (cddr dim) stringlen)
-;; (set-car! (cdddr dim) string)
-;; (set! (foreground-color) old-color))))))
-;;
-;; (get-time-string
-;; (let* ((ret-string " ")
-;; (intdiv (lambda-non-cons (a b)
-;; (c-integer (/ a b))))
-;; (int->char (lambda-non-cons (i)
-;; (integer->char (+ (char->integer #\0) i))))
-;;
-;; (time #f)
-;; (minutes #f)
-;; (minutes100 #f)
-;; (minutes10 #f)
-;; (minutes1 #f)
-;; (seconds #f)
-;; (seconds10 #f)
-;; (seconds1 #f)
-;; (seconds-1 #f)
-;;
-;; (p (lambda-non-cons (n)
-;; (if (< minutes 10)
-;; (max 0 (- n 2))
-;; (if (< minutes 100)
-;; (max 0 (- n 1))
-;; n)))))
-;;
-;; (lambda-non-cons (dastime)
-;; (set! time (/ (floor (* 10 (/ dastime (srate (c-selected-sound))))) 10))
-;; (set! minutes (call-non-cons intdiv time 60))
-;; (set! minutes100 (call-non-cons intdiv minutes 100))
-;; (set! minutes10 (call-non-cons intdiv (- minutes (* minutes100 100)) 10))
-;; (set! minutes1 (- minutes (* minutes100 100) (* minutes10 10)))
-;; (set! seconds (/ (floor (* 10 (- time (* minutes 60)))) 10))
-;; (set! seconds10 (call-non-cons intdiv seconds 10))
-;; (set! seconds1 (c-integer (floor (- seconds (* seconds10 10)))))
-;; (set! seconds-1 (c-integer (floor (* 10 (- seconds (* 10 seconds10) seconds1)))))
-;;
-;; (if (< minutes 100)
-;; (string-set! ret-string 7 #\ )
-;; (string-set! ret-string 0 (call-non-cons int->char minutes100)))
-;; (if (< minutes 10)
-;; (string-set! ret-string 6 #\ )
-;; (string-set! ret-string (call-non-cons p 1) (call-non-cons int->char minutes10)))
-;;
-;; (string-set! ret-string (call-non-cons p 2) (call-non-cons int->char minutes1))
-;; (string-set! ret-string (call-non-cons p 3) #\:)
-;; (string-set! ret-string (call-non-cons p 4) (call-non-cons int->char seconds10))
-;; (string-set! ret-string (call-non-cons p 5) (call-non-cons int->char seconds1))
-;; (string-set! ret-string (call-non-cons p 6) #\.)
-;; (string-set! ret-string (call-non-cons p 7) (call-non-cons int->char seconds-1))
-;;
-;; ret-string)))
-;;
-;;
-;; (last-time-showed 0)
-;; (largestring " ")
-;;
-;; (largetimechange #f)
-;; (stereocombined #f)
-;; (wanttoupdate #f))
-;;
-;;
-;; (lambda-non-cons (dastime force)
-;; (set! largetimechange (>= (abs (- dastime last-time-showed))
-;; (/ (srate (c-selected-sound)) 5)))
-;; (set! stereocombined (and (= (channels) 2)
-;; (= (channel-style (c-selected-sound)) channels-combined)))
-;; (set! wanttoupdate (or force largetimechange))
-;; (if wanttoupdate
-;; (set! last-time-showed dastime))
-;;
-;; (if stereocombined
-;; (begin
-;; (call-non-cons c-dodasprint (call-non-cons get-time-string dastime) 0 (list-ref (snd-gcs) 9) dastime wanttoupdate)
-;; (if (and force (c-selection?))
-;; (begin
-;; (call-non-cons c-dodasprint (call-non-cons get-time-string (c-selection-position)) 1 (list-ref (snd-gcs) 3) (c-selection-position) #t)
-;; (call-non-cons c-dodasprint (call-non-cons get-time-string (+ (c-selection-position) (c-selection-frames))) 2 (list-ref (snd-gcs) 3) (+ (c-selection-position) (c-selection-frames)) #t))))
-;; (if wanttoupdate
-;; (report-in-minibuffer (if (c-selection?)
-;; (begin
-;; (substring-move! (call-non-cons get-time-string dastime) 0 7 largestring 0)
-;; (substring-move! (call-non-cons get-time-string (c-selection-position)) 0 7 largestring 9)
-;; (substring-move! (call-non-cons get-time-string (+ (c-selection-position) (c-selection-frames))) 0 7 largestring 18)
-;; largestring)
-;; (call-non-cons get-time-string dastime))))))))
-
-
-(define c-display-format 1)
-
-;;
-
-(bind-key (char->integer #\d) 0
- (lambda ()
- (begin
- (set! c-display-format (if (= c-display-format 2)
- 1
- (+ c-display-format 1)))
- (report-in-minibuffer (let ((df-strings '("min:sec:10th" "seconds" "frames")))
- (list-ref df-strings c-display-format)))
- (c-redraw))))
-
-
-
-(define c-show-times-nolv
- (let (
- (get-time-string
- (lambda (df time-to-display)
- (cond ((= df 0)
- (let* ((ret-string " ")
- (intdiv (lambda-non-cons (a b)
- (c-integer (/ a b))))
- (int->char (lambda-non-cons (i)
- (integer->char (+ (char->integer #\0) i))))
-
- (time #f)
- (minutes #f)
- (minutes100 #f)
- (minutes10 #f)
- (minutes1 #f)
- (seconds #f)
- (seconds10 #f)
- (seconds1 #f)
- (seconds-1 #f)
-
- (p (lambda-non-cons (n)
- (if (< minutes 10)
- (max 0 (- n 2))
- (if (< minutes 100)
- (max 0 (- n 1))
- n)))))
-
- (set! time (/ (floor (* 10 (/ time-to-display (srate (selected-sound))))) 10))
- (set! minutes (call-non-cons intdiv time 60))
- (set! minutes100 (call-non-cons intdiv minutes 100))
- (set! minutes10 (call-non-cons intdiv (- minutes (* minutes100 100)) 10))
- (set! minutes1 (- minutes (* minutes100 100) (* minutes10 10)))
- (set! seconds (/ (floor (* 10 (- time (* minutes 60)))) 10))
- (set! seconds10 (call-non-cons intdiv seconds 10))
- (set! seconds1 (c-integer (floor (- seconds (* seconds10 10)))))
- (set! seconds-1 (c-integer (floor (* 10 (- seconds (* 10 seconds10) seconds1)))))
-
- (if (< minutes 100)
- (string-set! ret-string 7 #\ )
- (string-set! ret-string 0 (call-non-cons int->char minutes100)))
- (if (< minutes 10)
- (string-set! ret-string 6 #\ )
- (string-set! ret-string (call-non-cons p 1) (call-non-cons int->char minutes10)))
-
- (string-set! ret-string (call-non-cons p 2) (call-non-cons int->char minutes1))
- (string-set! ret-string (call-non-cons p 3) #\:)
- (string-set! ret-string (call-non-cons p 4) (call-non-cons int->char seconds10))
- (string-set! ret-string (call-non-cons p 5) (call-non-cons int->char seconds1))
- (string-set! ret-string (call-non-cons p 6) #\.)
- (string-set! ret-string (call-non-cons p 7) (call-non-cons int->char seconds-1))
- ret-string))
- ((= df 1)
- (let ((takebeg (lambda (chaine)
- (substring
- chaine
- 0
- (if (< (string-length chaine) 7)
- (string-length chaine)
- 7) ))))
- (takebeg (number->string (/ time-to-display (srate (selected-sound)))))))
- ((= df 2)
- (number->string time-to-display)))))
- (time-unity
- (lambda (df)
- (list-ref '("" "s" "f") df)))
- (old-color #f))
- (lambda ()
- (report-in-minibuffer (string-append "Sound: "
- (get-time-string c-display-format (frames))
- (time-unity c-display-format)
- " Pos: "
- (get-time-string c-display-format (cursor))
- (time-unity c-display-format)
- (if (selection?) (string-append " Sel: "
- (get-time-string c-display-format (selection-frames))
- (time-unity c-display-format)
- " b: "
- (get-time-string c-display-format (selection-position))
- (time-unity c-display-format)
- " e: "
- (get-time-string c-display-format (+ (selection-position) (selection-frames) -1))
- (time-unity c-display-format))
- ""))))))
-
-
-;; F1 -> show-times
-(bind-key #xFFBE 0
- (lambda ()
- (c-show-times-nolv)))
-
-
-
-
-
-
-
-;; Show the time in the minibuffer when playing
-(let ((samplecount 0))
- (add-hook! play-hook
- (lambda (samples)
- (set! samplecount (+ samplecount (* 40 samples)))
- (if (> samplecount (srate (c-selected-sound)))
- (begin
- (set! samplecount 0)
- (c-show-times-nolv)))
- #f)))
-
-
-;; ..And when updating the graphics.
-;(add-hook! after-graph-hook
-; (lambda (snd ch)
-; (if (= 0 ch)
-; (c-show-times (cursor snd) #t))
-; #f))
-
-
-
-
-
-
-
-;;##############################################################
-;; The Sync and Loop buttons
-;;##############################################################
-
-;; Doing several things after opening a file.
-;; -Sync and Unite newly loaded files by default.
-;; The sync value should be unique for each sound.
-;; -Replace the sync button with a new one that uses get-unique-sync-num
-;; as the sync-number. Simply using (+ 1 snd) doesn't work when a sound is closed
-;; in certain situations.
-;; -Remove the play button. Its useless now with the way p, space and the mouse scroll-button is configured.
-;; -Added a loop button where the play button was.
-
-(define c-get-unique-sync-num
- (let ((unique-sync-num 0))
- (lambda ()
- (set! unique-sync-num (+ unique-sync-num 1))
- unique-sync-num)))
-
-#!
-(display-widget-tree (list-ref (sound-widgets (c-selected-sound)) 2))
-(find-child (list-ref (sound-widgets (c-selected-sound)) 2) "snd-name-form")
-!#
-
-(add-hook! close-hook
- (lambda (snd)
- (c-for-each-nameform-button snd "loop" checkbutton-remove)
- (c-for-each-nameform-button snd "sync" checkbutton-remove)
- #f))
-
-#!
-(checkbutton-remove (c-get-nameform-button (c-selected-sound) "sync"))
-!#
-
-(define *loop-on-off-hook* (<hook>))
-
-
-(let ((not-now #f))
- (add-hook! after-open-hook
- (lambda (snd)
-
- (checkbutton-remove (c-get-nameform-button snd "unite"))
-
- (let ((oldplay (c-get-nameform-button snd "play")))
- (<checkbutton> (c-get-nameform snd)
- "loop"
- (lambda (on)
- (if (not not-now) ;; checkbutton-set or focus-widget triggers a button-get-active callback, which again
- ;;;;;;;;;;;;;;;; cause checkbutton-set or focus-widget to be called for all other sounds, which again... etc.: and stack runs out.
- (begin
- (set! not-now #t)
- (set! *c-islooping* on)
- (-> *loop-on-off-hook* run on)
- (for-each (lambda (s)
- (if (not (= s snd)) (c-for-each-nameform-button s "loop"
- (lambda (b)
- (checkbutton-set b *c-islooping*)))))
- (sounds))
- (focus-widget (c-editor-widget snd))
- (set! not-now #f))))
- *c-islooping*
- (if use-gtk '() (list XmNx (car (widget-position oldplay)))))
- (checkbutton-remove oldplay))
-
- (if (> (channels snd) 1)
- (set! (channel-style snd) channels-combined))
- (set! (sync snd) (c-get-unique-sync-num))
-
- (let ((oldsync (c-get-nameform-button snd "sync")))
- (<checkbutton> (c-get-nameform snd)
- "sync"
- (lambda (on)
- (if on
- (set! (sync snd) (c-get-unique-sync-num))
- (set! (sync snd) 0))
-
- (focus-widget (c-editor-widget snd)))
- #t
- (if use-gtk '() (list XmNx (car (widget-position oldsync)))))
- (checkbutton-remove oldsync))
-
- #f)))
-
-
-
-
-
-
-;;##############################################################
-;; Gain node-line
-;;##############################################################
-
-;; (define c-apply-envelope
-;; (let ((isenving #f))
-;; (lambda* (snd #:optional (upperval 2) (lowerval 0))
-;; (if (not isenving)
-;; (let* ((snd (c-selected-sound))
-;; (nodelines (c-get snd 'nodelines))
-;; (doit (lambda (ch)
-;; (let* ((nodeline (nodelines ch))
-;; (sel (selection-member? snd ch))
-;; (start (if sel (selection-position snd ch) 0))
-;; (start2 (c-scale start 0 (frames snd ch) 0 1))
-;; (length (if sel (selection-frames snd ch) (frames snd ch))))
-;; (env-channel (apply append (map (lambda (xy) (list (- (car xy) start2) (c-scale (cadr xy) 0 1 upperval lowerval)))
-;; (-> nodeline get-graph
-;; start2
-;; (c-scale (+ start length) 0 (frames snd ch) 0 1))))
-;; start length snd ch)))))
-;; (set! isenving #t)
-;; (c-for-each-channel snd doit)
-;; (set! isenving #f))))))
-;;
-;;
-;; (define (c-make-envelope snd)
-;; (c-put snd 'nodelines
-;; (<array/map> (channels snd)
-;; (lambda (ch)
-;; (<editor-nodeline> snd ch 0.5
-;; (lambda (val)
-;; (format #f "~1,3f" (c-scale val 0 1 2 0)))
-;; (lambda (this)
-;; (if (c-sync? snd)
-;; (c-for-each-channel2 snd
-;; (lambda (newch)
-;; (if (not (= ch newch))
-;; (-> ((c-get snd 'nodelines) newch) set-graph!
-;; (-> this get-graph))))))))))))
-;;
-;; (define (c-envfunc1)
-;; (lambda ()
-;; (c-apply-envelope (c-selected-sound))))
-;; (define (c-envfunc3 snd)
-;; (c-make-envelope snd)
-;; #f)
-;;
-;; (define *c-envelope-enabled* #f)
-;;
-;; (define (c-enable-envelope)
-;; (if (not *c-envelope-enabled*)
-;; (begin
-;; (set! *c-envelope-enabled* #t)
-;; (for-each (lambda (snd)
-;; (c-make-envelope snd))
-;; (sounds))
-;; (bind-key (char->integer #\v) 0 c-envfunc1)
-;; (add-hook! after-open-hook c-envfunc3))))
-;;
-;; (define (c-disable-envelope)
-;; (if *c-envelope-enabled*
-;; (begin
-;; (set! *c-envelope-enabled* #f)
-;; (bind-key (char->integer #\v) 0 (lambda x x))
-;; (for-each (lambda (snd)
-;; (let ((envbutton (c-get snd 'envbutton)))
-;; (if envbutton
-;; (-> envbutton remove)))
-;; (let ((nodelines (c-get snd 'nodelines)))
-;; (if nodelines
-;; (begin
-;; (-> nodelines for-each
-;; (lambda (n nodeline)
-;; (-> nodeline delete!)))))))
-;; (sounds))
-;; (c-redraw)
-;; (remove-hook! after-open-hook c-envfunc3))))
-;;
-;; (add-hook! after-open-hook
-;; (lambda (snd)
-;; (c-put snd 'envbutton (<button> (c-get-nameform snd)
-;; "Env"
-;; (lambda ()
-;; (if (not *c-envelope-enabled*)
-;; (c-enable-envelope)
-;; (c-apply-envelope snd)))))
-;; (gtk_widget_set_name (-> (c-get snd 'envbutton) button) "doit_button")))
-;;
-;; (add-hook! close-hook
-;; (lambda (snd)
-;; (-> (c-get snd 'envbutton) remove)))
-;;
-;; (if *c-use-envelope*
-;; (c-enable-envelope))
-
-;;(bind-key (char->integer #\e) 0
-;; (lambda () (c-enable-envelope)))
-
-
-;;(add-hook! after-open-hook
-;; (lambda (snd)
-
-#!
-(c-disable-envelope)
-(c-enable-envelope)
-!#
-
-
-
-;;##################################################################
-;; Focus
-;;##################################################################
-
-#!
-;; The brutal method:
-(define (fokus-right)
- (let ((snd (c-selected-sound)))
- (if snd
- (focus-widget (c-editor-widget snd))))
- (in 100 fokus-right))
-
-(fokus-right)
-!#
-
-(add-hook! mouse-enter-graph-hook
- (lambda (snd chn)
- (if (sound? snd) (focus-widget (car (channel-widgets snd chn))))))
-
-(add-hook! mouse-leave-text-hook
- (lambda (w)
- (in 100
- (lambda ()
- (let ((snd (c-selected-sound)))
- (if snd
- (focus-widget (c-editor-widget snd))))))))
-
-(add-hook! mouse-enter-listener-hook
- (lambda (widget)
- (focus-widget widget)))
-
-
-(define *c-control-hook* (<hook>))
-(define *c-controls-on-off-hook* (<hook>))
-
-;; All checkbuttons in the control-panel.
-(add-hook! after-open-hook
- (lambda (snd)
- (let ((ws '()))
- (define (fixit w)
- (if (not (member w ws))
- (begin
- (set! ws (cons w ws))
- (for-each-child w
- (lambda (w)
- (if (and (GTK_IS_BUTTON w)
- (string? (gtk_button_get_label (GTK_BUTTON w)))
- (string=? "Apply" (gtk_button_get_label (GTK_BUTTON w))))
- (begin
- (c-remove-handler w "clicked")
- (c-g_signal_connect w "clicked"
- (lambda (w c)
- (if (selection-member? snd)
- (apply-controls snd 2)
- (apply-controls))
- (focus-widget (c-editor-widget snd))
- #t)))
- (if (GTK_IS_CHECK_BUTTON w)
- (c-g_signal_connect w "button_release_event"
- (lambda (w e i)
- (-> (c-p snd) dosomepause (lambda ()
- (gtk_button_released (GTK_BUTTON w))
- (-> *c-controls-on-off-hook* run)
- (focus-widget (c-editor-widget snd))))))))
-
- (if (and (GTK_IS_SCROLLBAR w)
- (GTK_IS_RANGE w))
- (let ((adj (gtk_range_get_adjustment (GTK_RANGE w))))
- (c-g_signal_connect adj "value_changed"
- (lambda (w d)
- (-> *c-control-hook* run)))))
-
- (if (GTK_IS_CONTAINER w)
- (fixit w)))))))
- (fixit (caddr (sound-widgets snd))))))
-
-
-
-;;##############################################################
-;; dac-size slider in the control-panel
-;;##############################################################
-
-(add-hook! after-open-hook
- (lambda (snd)
- (let ((control-panel (list-ref (sound-widgets snd) 2))
- (iswaiting #f)
- (must-wait-more #f))
- (define (waitfunc)
- (in 50
- (lambda ()
- (if must-wait-more
- (begin
- (set! must-wait-more #f)
- (waitfunc))
- (begin
- (-> (c-p snd) continue)
- (set! iswaiting #f))))))
- (c-put snd 'dac-slider
- (<slider> control-panel "dac-size" 1 (dac-size) 8192
- (lambda (val)
- (let ((isplaying (c-playing)))
- (if isplaying
- (-> (c-p snd) pause))
- (set! (dac-size) (c-integer val))
- (focus-widget (c-editor-widget snd))
- (if isplaying
- (if iswaiting
- (set! must-wait-more #t)
- (begin
- (set! iswaiting #t)
- (waitfunc))))))
- 1)))))
-
-#!
-(set! (verbose-cursor) #t)
-(set! (with-tracking-cursor) #f)
-(cursor-update-interval)
-(set! (tracking-cursor-style 0 0) 1)
-!#
-
-(add-hook! close-hook
- (lambda (snd)
- (-> (c-get snd 'dac-slider) delete!)))
-
-
-
-;;##############################################################
-;; Buffer-menu
-;;##############################################################
-
-;; Makes the buffer-menu a bit more pleasent to use. This is code
-;; copied from examp.scm and modified.
-
-(c-load-from-path examp)
-
-
-;;;;;;;;;;;;;;;;
-;;(set! last-height 500)
-;;(set! last-width 700)
-
-(define c-sounds-in-menu '())
-(define (c-remove-sounds-in-menu filename)
- (set! c-sounds-in-menu (remove (lambda (name) (string=? name filename))
- c-sounds-in-menu)))
-
-;; For gtk, the -notebook switch doesn't seem to work very well.
-;; For motif, the -notebook switch doesn't seem to work very well either.
-(if (or (not use-gtk)
- (not (string=? "GtkNotebook" (gtk_widget_get_name (list-ref (main-widgets) 5)))))
-
- (let ((buffer-menu (add-to-main-menu "Buffers")))
-
- (define* (c-switch-to-buf filename #:optional from-select-sound)
- (let* ((width (car (widget-size (car (sound-widgets (car current-buffer))))))
- (height (cadr (widget-size (car (sound-widgets (car current-buffer)))))))
-
- ;;(c-display "saving:" (c-selected-sound))
- (if (selection-member? (c-selected-sound))
- (begin
- (c-put (c-selected-sound) 'selection-position (c-selection-position))
- (c-put (c-selected-sound) 'selection-frames (c-selection-frames))))
-
- (call-with-current-continuation
- (lambda (give-up)
- (if (or (not (string? filename))
- (= (string-length filename) 0))
- (let ((temp current-buffer))
- (if last-buffer
- (set! current-buffer last-buffer)
- (let ((index (new-sound)))
- (set! current-buffer (list index 0))))
- (set! last-buffer temp))
- (let ((index (find-sound filename)))
- (if index
- (begin
- (set! last-buffer current-buffer)
- (set! current-buffer (list index 0)))
- (give-up (report-in-minibuffer (format #f "can't find ~A" response))))))
- (close-all-buffers)
- (report-in-minibuffer "")
- (open-current-buffer width height)
- (set! (selection-member? #t) #f)
- (let ((selpos (c-get (c-selected-sound) 'selection-position)))
- ;;(c-display (c-selected-sound) selpos)
- (if selpos
- (begin
- (c-set-selection-position! (c-selected-sound) 0 selpos #t)
- (c-set-selection-frames! (c-selected-sound) 0 (c-get (c-selected-sound) 'selection-frames) #t))))))))
-
-
- ;;(set! (widget-size (car (sound-widgets (car current-buffer)))) (list 1000 1000) )
- (define position 0)
- ;;(define num 0)
- (define (c-open-buffer filename)
- (if (c-isloaded? filename)
- (begin
- (c-switch-to-buf filename)
- #t)
- (letrec ((was-starting-up? *c-is-starting-up*)
- (is-in-menu? (member filename c-sounds-in-menu))
- (add-buffer-menu (lambda (position addstar?)
- (let ((gen-filename filename ));; (let ((ret (string-append (number->string num) " " filename))) (set! num (1+ num)) ret)))
- (add-to-menu buffer-menu
- gen-filename
- (lambda ()
- (if was-starting-up?
- (begin
- ;;(c-display "here")
- (c-remove-sounds-in-menu filename)
- (remove-from-menu buffer-menu gen-filename)
- (open-sound filename))
- (begin
- ;;(c-display "not here")
- (remove-from-menu buffer-menu gen-filename)
- (add-buffer-menu position #t)
- (c-switch-to-buf filename))))
- position)))))
- (if *c-is-starting-up*
- (set! c-sounds-in-menu (cons filename c-sounds-in-menu)))
- (add-buffer-menu position #f)
- ;;(c-display "position" position)
- (if (not was-starting-up?)
- (set! position (1+ position)))
- *c-is-starting-up*)))
-
- (define (c-close-buffer snd)
- "(close-buffer snd) removes the menu item associated with snd (use with close-hook)"
- (let ((filename (file-name snd)))
- ;;(remove-from-menu buffer-menu (string-append "* " filename))
- (remove-from-menu buffer-menu filename)
- (remove-from-menu buffer-menu filename)
- (c-remove-sounds-in-menu filename))
- (if (and (= 1 (length (sounds)))
- (> (length c-sounds-in-menu) 1))
- (let ((filename (find (lambda (name)
- (not (member name (map file-name (sounds)))))
- c-sounds-in-menu)))
- (if filename
- (begin
- ;;(c-display "opening " filename)
- (open-sound filename)))))
- #f)
-
- (add-hook! select-sound-hook (lambda (snd)
- (if current-buffer
- (let* ((width (car (widget-size (car (sound-widgets (car current-buffer))))))
- (height (cadr (widget-size (car (sound-widgets (car current-buffer)))))))
- (set! current-buffer (list snd 0))
- (let ((sound-pane (car (sound-widgets (car current-buffer)))))
- (if sound-pane
- (begin
- (close-all-buffers)
- (show-widget sound-pane))))))))
-
- (add-hook! open-hook c-open-buffer)
- (add-hook! close-hook c-close-buffer)
- ;;(bind-key (char->integer #\b) 0 (lambda (x) (switch-to-buf)))
- (add-hook! close-hook xb-close)
- (add-hook! after-open-hook
- (lambda (snd)
- (set! (selection-member? #t) #f)))
- (add-hook! after-open-hook xb-open)))
-
-
-
-
-
-;;##############################################################
-;; Various
-;;##############################################################
-
-;;"various generally useful Snd extensions". See source.
-(c-load-from-path extensions)
-
-
-;; When exiting.
-(check-for-unsaved-edits #t)
-
-
-(c-load-from-path edit-menu)
-
-
-;; (DO NOT) Show the little picture of the whole sound in the upper right corner.
-(c-load-from-path draw)
-;(make-current-window-display)
-
-
-;; The background-process slows things down when the little picture is active and loading large files.
-;; Better turn off the background-process when loading.
-(add-hook! open-hook (lambda (filename) (if (c-isloaded? filename)
- #t
- (begin
- (c-report (string-append "Please wait, making waveform-data for \"" filename "\"."))
- (set! (with-background-processes) #f)
- #f))))
-(add-hook! after-open-hook (lambda (filename)
- (set! (with-background-processes) #t)
- (c-report " ")
- #f))
-
-
-
-;; Adds a lot of things when pressing the right mouse button. Very nice.
-(if use-gtk
- (c-load-from-path gtk-popup)
- (c-load-from-path popup))
-
-
-(if use-gtk
- (c-load-from-path gtk-effects)
- (c-load-from-path new-effects))
-
-
-(if (provided? 'snd-ladspa)
- (c-load-from-path ladspa))
-
-
-;; Stores the peak information for sounds in the ~/peaks/ directory. Seems to work correctly. I have tried
-;; to fool it in many ways, but it seems to be very intelligent. Extremely nice.
-;; The point is to decrease the loading time.
-; First make sure the peaks directory is present
-(system (string-append "mkdir " (getenv "HOME") "/peaks >/dev/null 2>/dev/null"))
-(c-load-from-path peak-env)
-(add-hook! after-open-hook save-peak-env-info)
-;;(add-hook! after-save-hook save-peak-env-info)
-;;(add-hook! after-save-as-hook save-peak-env-info)
-
-(if use-gtk
- (c-load-from-path snd-gtk)
- (c-load-from-path snd-motif))
-
-
-;; Shows diskspace for the partition the opened sound was placed on.
-;(add-hook! after-open-hook show-disk-space)
-
-;; Add extra control for the controls dialog.
-(make-hidden-controls-dialog)
-
-;; Add rename option to the file menu.
-(if (not use-gtk)
- (add-rename-option))
-
-
-
-;; Dave Phillips fft-menu.
-(if (not (provided? 'snd-fft-menu.scm))
- (load-from-path "fft-menu.scm"))
-
-;; Dave Phillips panic-menu
-(if (not (provided? 'snd-panic.scm))
- (load-from-path "panic.scm"))
-
-;; Dave Phillips special-menu
-;;(if (not (provided? 'snd-special-menu.scm))
-;; (load-from-path "special-menu.scm"))
-
-
-;; (load-from-path "plugins-menu.scm")
-
-
-;; All of Dave Phillips nice things.
-;; Uncomment to try. (Most of it is already present)
-;;(if (not (defined? 'change-selection-popup-color))
-;; (load-from-path "misc.scm"))
-
-
-(add-hook! after-save-as-hook
- (lambda (snd filename from-dialog)
- (if from-dialog
- (open-sound filename))))
-
-
-
-;;##############################################################
-;; Add/Remove things to the edit-menu
-;;##############################################################
-
-;;; -------- Insert/append file
-;;; Code copied from dlp/special-menu
-
-(add-to-menu edit-menu #f #f)
-
-;;; this is now built-in (27-Jul-05)
-#!
-(add-to-menu edit-menu "Insert file"
- (lambda ()
- (select-file
- (lambda (filename)
- (let ((chans (mus-sound-chans filename)))
- (if (= 1 chans)
- (insert-sound filename (cursor) 0 (c-selected-sound) (selected-channel))
- (insert-sound filename))))
- "Insert file" "." "*" "File will be inserted at cursor location.")))
-!#
-
-(define (append-sound filename)
- ;; appends sound file
- (insert-sound filename (frames)))
-
-(add-to-menu edit-menu "Append file"
- (lambda ()
- (select-file
- (lambda (filename)
- (append-sound filename)))))
-
-(add-to-menu edit-menu #f #f)
-
-(for-each (lambda (name) (remove-from-menu edit-menu name))
- (list "Delete Selection"
- "Insert Selection"
- "Play Selection"
- "Mix Selection"))
-
-
-
-
-;;##############################################################
-;; Store and restore list of used sound-files
-;;##############################################################
-
-(define (c-open-sounds-filename)
- (string-append (getenv "HOME") "/.snd_soundfilelist"))
-
-
-;; Save all filenames when exiting.
-(define (c-save-all-filenames filename)
- (let ((fd (open-file filename "w")))
- (if (c-selected-sound)
- (for-each (lambda (filename)
- (write-line filename fd))
- (reverse (delete-duplicates (append (map (lambda (snd) (file-name snd))
- (cons (c-selected-sound) (sounds)))
- c-sounds-in-menu)))))
- (close fd)))
-
-
-(add-hook! exit-hook (lambda args
- (c-save-all-filenames (c-open-sounds-filename))
- #f))
-
-
-(add-hook! after-open-hook (lambda args
- (if (not *c-is-starting-up*)
- (c-save-all-filenames (c-open-sounds-filename)))
- #f))
-
-
-
-(add-hook! after-open-hook
- (lambda (snd)
- (hash-set! c-snd-putgetdata snd (make-hash-table 16))
- #f))
-
-
-;; Load GTK mnemonics code from Maxim Krikun.
-(load-from-path "kmenu.scm")
-
-
-;;##############################################################
-;; Load rt-player. Takes some time.
-;;##############################################################
-
-(eval-c (string-append "-I" snd-header-files-path)
- "#include <_sndlib.h>"
- (proto->public "int mus_audio_api(void)")
- (variables->public
- (<int> JACK_API ALSA_API OSS_API)))
-
-(if (= (mus_audio_api) (JACK_API))
- (load-from-path "rt-player.scm"))
-
-;; redefine the rt-snd-cursorupdate to use show-times-nolv
-(define (rt-snd-cursorupdate)
- (let ((player (rt-snd-get-player)))
- (if player
- (begin
- (if (not (= (if (>= (speed-control) 0) 1 -1)
- (-> player direction)))
- (let ((start (-> player start))
- (end (-> player end))
- (position (c-integer (rt-snd-twofloats->int (vct-ref (-> player positions1) 0)
- (vct-ref (-> player positions2) 0)))))
- (rt-snd-play (c-selected-sound) start end position)
- (rt-snd-stop player))
- (begin
- (write-var rt-snd-cursorupdate-inc (1+ (read-var rt-snd-cursorupdate-inc)))
- (if (> (read-var rt-snd-cursorupdate-inc) 100000)
- (write-var rt-snd-cursorupdate-inc 0))
- (let ((pos (rt-snd-get-play-pos (c-selected-sound))))
- (if pos
- (let ((newdropouts (-> *rt-engine* num_max_cpu_interrupts)))
- (if (not (= newdropouts rt-snd-last-dropouts))
- (begin
- (c-display "RT-PLAYER: Error, the player engine used too much CPU, so some processing was skipped.")
- (if (< (- (read-var rt-snd-cursorupdate-inc) (read-var rt-snd-cursorupdate-dropout-num)) 4)
- (begin
- (if (> (rte-time) (+ (read-var rt-snd-cursorupdate-lasttime) 5))
- (begin
- (c-display "RT-PLAYER: Too much cpu time spent. Stopping player.")
- (rt-snd-stop-playing))))
- (write-var rt-snd-cursorupdate-lasttime (rte-time)))
- (write-var rt-snd-cursorupdate-dropout-num (read-var rt-snd-cursorupdate-inc))
- (set! rt-snd-last-dropouts newdropouts))
- (write-var rt-snd-cursorupdate-lasttime (rte-time)))
- (set! (cursor) pos)
- (c-show-times-nolv)))))))))
- (if rt-snd-cursorupdate-run
- (in rt-snd-cursorupdate-interval
- rt-snd-cursorupdate)))
-
-
-;;##############################################################
-;; Load files from previous session.
- ;;##############################################################
-
-(if *c-restore-previous-session*
- (let ((filename #f))
- (system (string-append "touch " (c-open-sounds-filename) " >/dev/null 2>/dev/null"))
- (for-each-line-in-file (c-open-sounds-filename)
- (lambda (line)
- (if (not (access? line F_OK))
- (c-display "File \"" line "\" not found.")
- (catch #t
- (lambda ()
- (if filename
- (open-sound filename))
- (set! filename line))
- (lambda (key . args)
- (c-display "File \"" line "\" not found.")
- #f)))))
- (if filename
- (begin
- (set! *c-is-starting-up* #f)
- (open-sound filename)
- (set! *c-is-starting-up* #t)))
- (in (if use-gtk 0 2000)
- (lambda ()
- (set! (window-width) 800)
- (set! (window-height) 600)))))
-
-
-
-
-
-
-;;##############################################################
-;; Try to make the window-size stay the same.
-;; Seems to work for me at least.
-;;##############################################################
-
-(let ((width 800)
- (height 600)
- (num-retries 0)
- (isretrying #f))
-
-
- (define (dotheretry)
- (if (> num-retries 0)
- (begin
- (if (not (= (window-width) width))
- (set! (window-width) width))
- (if (not (= (window-height) height))
- (set! (window-height) height))
- (set! num-retries (1- num-retries))
- (in 2 dotheretry))
- (set! isretrying #f)))
-
- (add-hook! open-hook
- (lambda (filename)
- (set! height (window-height))
- (set! width (window-width))
- (set! num-retries 250)))
-
- (add-hook! close-hook
- (lambda (snd)
- (set! height (window-height))
- (set! width (window-width))
- (set! num-retries 250)))
-
- (add-hook! graph-hook
- (lambda (snd chn y0 y1)
- (if (not isretrying)
- (begin
- (set! isretrying #t)
- (dotheretry))))))
-
-
-
-
-
-
-(set! *c-is-starting-up* #f)
-
-
-(newline)
-(c-display "#:snd_frg.scm loaded."
- (if (not (provided? 'snd-rt-player.scm))
- "SND is currently not using jack, so the RT-Player is not initialized."
- "The RT-Player is currently configured only to run when not using LADSPA or the Expand, Contrast, Reverb or Filter control."))
-
-
-
diff --git a/sndclm.html b/sndclm.html
index c5cc97b..5362098 100644
--- a/sndclm.html
+++ b/sndclm.html
@@ -608,13 +608,12 @@ with_sound(:play, true) do
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
+lambda: ( -- )
440.0 make-oscil { gen }
- len 0 ?do
- i gen 0.0 0.0 oscil 0.5 f* *output* outa drop
+ 44100 0 do
+ i gen 0 0 oscil f2/ *output* outa drop
loop
-;
-:play #t :channels 1 :srate 44100 with-sound
+; :play #t with-sound drop
</pre>
</td>
</tr>
@@ -745,15 +744,14 @@ keep the spectra steady, and in the second, I fix up the PM index.
</td></tr></table>
-<table border=2 cellpadding=6 hspace=20 vspace=20>
-<tr><td>
-<p>To show CLM in its various embodiments, here are the Scheme, Common Lisp, Ruby, Forth, and C versions of the bird instrument;
+<p>To show CLM in its various embodiments, here are the Scheme, Common Lisp, Ruby, Forth, and C versions of the bird instrument;
it produces a sinusoid with (usually very elaborate) amplitude and frequency envelopes.
</p>
-</td></tr><tr><td>
+<table border=2 cellpadding=6 hspace=20 vspace=20>
+<tr><td bgcolor="#f0f4ff">
-<table border=0 hspace=20><tr><td>
+<table border=0 hspace=20><tr><td bgcolor="#f0f4ff">
<pre>
(define (scheme-bird start dur frequency freqskew amplitude freq-envelope amp-envelope)
(let* ((gls-env (<a class=quiet href="#make-env" onmouseout="UnTip()" onmouseover="Tip(sndclm_make_env_tip)">make-env</a> freq-envelope (<a class=quiet href="#hztoradians" onmouseout="UnTip()" onmouseover="Tip(sndclm_hztoradians_tip)">hz-&gt;radians</a> freqskew) dur))
@@ -770,9 +768,9 @@ it produces a sinusoid with (usually very elaborate) amplitude and frequency env
</pre>
</td></tr></table>
-</td></tr><tr><td>
+</td></tr><tr><td bgcolor="#fbf4f0">
-<table border=0 hspace=20><tr><td>
+<table border=0 hspace=20><tr><td bgcolor="#fbf4f0">
<pre>
(definstrument common-lisp-bird (startime dur frequency freq-skew amplitude freq-envelope amp-envelope)
(multiple-value-bind (beg end) (times-&gt;samples startime dur)
@@ -786,9 +784,9 @@ it produces a sinusoid with (usually very elaborate) amplitude and frequency env
</pre>
</td></tr></table>
-</td></tr><tr><td>
+</td></tr><tr><td bgcolor="#fbfbf0">
-<table border=0 hspace=20><tr><td>
+<table border=0 hspace=20><tr><td bgcolor="#fbfbf0">
<pre>
def ruby_bird(start, dur, freq, freqskew, amp, freq_envelope, amp_envelope)
gls_env = make_env(:envelope, freq_envelope, :scaler, hz2radians(freqskew), :duration, dur)
@@ -801,9 +799,9 @@ end
</pre>
</td></tr></table>
-</td></tr><tr><td>
+</td></tr><tr><td bgcolor="#effdef">
-<table border=0 hspace=20><tr><td>
+<table border=0 hspace=20><tr><td bgcolor="#effdef">
<pre>
instrument: forth-bird { f: start f: dur f: freq f: freq-skew f: amp freqenv ampenv -- }
:frequency freq make-oscil { os }
@@ -818,9 +816,9 @@ instrument: forth-bird { f: start f: dur f: freq f: freq-skew f: amp freqenv amp
</pre>
</td></tr></table>
-</td></tr><tr><td>
+</td></tr><tr><td bgcolor="#f0f0f0">
-<table border=0 hspace=20><tr><td>
+<table border=0 hspace=20><tr><td bgcolor="#f0f0f0">
<pre>
void c_bird(double start, double dur, double frequency, double freqskew, double amplitude,
double *freqdata, int freqpts, double *ampdata, int amppts, mus_any *output)
@@ -1056,9 +1054,10 @@ at 440 Hz when the srate is 1000, 4000, and 16000:
<pre>
(with-sound (:play #t)
(let ((gen (make-oscil 440.0))
- (ampf (make-env '(0 0 .01 1 .25 .1 .5 .01 1 0)
- :scaler 0.5
- :length 44100)))
+ (ampf (make-env
+ '(0 0 .01 1 .25 .1 1 0)
+ :scaler 0.5
+ :length 44100)))
(do ((i 0 (+ 1 i)))
((= i 44100))
(outa i (* (env ampf) (oscil gen))))))
@@ -1071,15 +1070,31 @@ at 440 Hz when the srate is 1000, 4000, and 16000:
<pre>
with_sound(:play, true) do
gen = make_oscil(440.0);
- ampf = make_env([0, 0, 0.01, 1.0, 0.25, 0.1, 0.5, 0.01, 1, 0],
- :scaler, 0.5,
- :length, 44100);
+ ampf = make_env(
+ [0, 0, 0.01, 1.0, 0.25, 0.1, 1, 0],
+ :scaler, 0.5,
+ :length, 44100);
44100.times do |i|
outa(i, env(ampf) * oscil(gen), $output)
end
end.output
</pre>
</td>
+
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 440.0 make-oscil { gen }
+ '( 0 0 0.01 1 0.25 0.1 1 0 )
+ :scaler 0.5 :length 44100 make-env { ampf }
+ 44100 0 do
+ i gen 0 0 oscil ampf env f* *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -1437,33 +1452,41 @@ step envelope in pitch: <a href="#rxyk!cos">brassy</a> in generators.scm<br>
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=8 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
<pre>
(with-sound (:play #t)
- (let ((gen (make-table-lookup 440.0
- :wave (partials-&gt;wave '(1 .5 2 .5)))))
+ (let ((gen (make-table-lookup 440.0 :wave (partials-&gt;wave '(1 .5 2 .5)))))
(do ((i 0 (+ 1 i)))
((= i 44100))
(outa i (* 0.5 (table-lookup gen))))))
</pre>
</td>
-
-<td width=4></td>
-
+</tr><tr>
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
- gen = make_table_lookup(440.0,
- :wave, partials2wave([1.0, 0.5, 2.0, 0.5]));
+ gen = make_table_lookup(440.0, :wave, partials2wave([1.0, 0.5, 2.0, 0.5]));
44100.times do |i|
outa(i, 0.5 * table_lookup(gen), $output)
end
end.output
</pre>
</td>
+</tr><tr>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 440.0 :wave '( 1 0.5 2 0.5 ) #f #f partials-&gt;wave make-table-lookup { gen }
+ 44100 0 do
+ i gen 0 table-lookup f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -1595,7 +1618,7 @@ Say we have a sine wave in a table with L elements, and we want to read it at a
f Hz at a sampling rate of Fs. This requires that we read the table at locations that are multiples of
L * f / Fs. This is ordinarily not an integer (that is, we've fallen between the
table elements). We have no data between the elements, but we can make (plenty of)
-assumptions about what ought to be there. In the no-interpolation case (type = <code>mus-interp-none</code>), we simply take the floor of
+assumptions about what ought to be there. In the no-interpolation case (type = <code>mus-interp-none</code>), we take the floor of
the table-relative phase, returning a squared-off sine-wave:
</p>
@@ -1681,8 +1704,8 @@ is higher (by n^2) than the fundamental's. We either have to use enormous
tables or stick to low
numbered partials. To keep the noise components out of sight in 16-bit output (down 90 dB),
we need 180 elements per period. So a table with a 50th harmonic has to be at least length 8192.
-It's odd that the cutoff here is basically the same as
-in the waveshaping case; a 50-th harmonic is trouble in either case.
+It's odd that the cutoff here is so similar to
+the waveshaping case; a 50-th harmonic is trouble in either case.
(This leaves an opening for <a href="#ncos">ncos</a> and friends even when dynamic spectra aren't the issue).
</p>
@@ -1871,18 +1894,16 @@ with_sound(:play, true) do
</pre>
</td>
-
<td width=4></td>
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
- 440.0 '( 1 0.5 2 0.5 ) 1 make-polywave { gen }
- len 0 ?do
- i gen 0.0 polywave 0.5 f* *output* outa drop
+lambda: ( -- )
+ 440.0 :partials '( 1 0.5 2 0.5 ) make-polywave { gen }
+ 44100 0 do
+ i gen 0 polywave f2/ *output* outa drop
loop
-;
-:play #t :channels 1 :srate 44100 with-sound
+; :play #t with-sound drop
</pre>
</td>
@@ -1959,7 +1980,7 @@ vcts of component amplitudes.
These functions makes it easy to do additive synthesis
with any number of harmonics (I've tried 16384), each with arbitrary
initial-phase and amplitude, and each harmonic independently changeable
-in phase and amplitude at run-time simply by setting a vct value.
+in phase and amplitude at run-time by setting a vct value.
</p>
@@ -2646,13 +2667,12 @@ with_sound(:play, true) do
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
+lambda: ( -- )
440.0 make-triangle-wave { gen }
- len 0 ?do
- i gen 0.0 triangle-wave 0.5 f* *output* outa drop
+ 44100 0 do
+ i gen 0 triangle-wave f2/ *output* outa drop
loop
-;
-:play #t :channels 1 :srate 44100 with-sound
+; :play #t with-sound drop
</pre>
</td>
</tr>
@@ -2680,7 +2700,7 @@ One popular kind of vibrato is:
is useful; the others are silly).
sawtooth-wave ramps from -1 to 1, then goes immediately back to -1.
Use a negative frequency to turn the "teeth" the other way.
-To get a sawtooth from 0 to 1, you can simply use modulo:
+To get a sawtooth from 0 to 1, you can use modulo:
</p>
<pre>
(with-sound () (do ((i 0 (+ i 1)) (x 0.0 (+ x .01))) ((= i 22050)) (outa i (modulo x 1.0))))
@@ -3372,13 +3392,12 @@ with_sound(:play, true) do
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
+lambda: ( -- )
440.0 10 make-ncos { gen }
- len 0 ?do
- i gen 0.0 ncos 0.5 f* *output* outa drop
+ 44100 0 do
+ i gen 0 ncos f2/ *output* outa drop
loop
-;
-:play #t :channels 1 :srate 44100 with-sound
+; :play #t with-sound drop
</pre>
</td>
</tr>
@@ -3720,7 +3739,7 @@ despite having the same spectrum. We confront the burning question: given n equ
harmonically related sinusoids, what is the minimum peak amplitude? sqrt(n) is too low. Here are (some of) the
best minimum peaks I've found:
<pre>
- 1 1.0, 2 1.76, 4 2.04, 8 2.79, 16 3.97, 32 5.75, 64 9.70, 128 15.12, 2048 89.56
+ 1 1.0, 2 1.76, 4 2.04, 8 2.79, 16 3.87, 32 5.65, 64 8.57, 128 13.15, 256 20.37, 512 32.42, 1024 50.83, 2048 80.09
</pre>
For the actual phases, investigated with
amiable, if sometimes incomprehensible advice from Bill Gosper, Marc LeBrun,
@@ -4342,17 +4361,17 @@ with_sound(:play, true) do
end.output
</pre>
</td>
+
<td width=4></td>
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
- 440.0 1.0 10 0.5 make-nrxycos { gen }
- len 0 ?do
- i gen 0.0 nrxycos 0.5 f* *output* outa drop
+lambda: ( -- )
+ 440.0 :n 10 make-nrxycos { gen }
+ 44100 0 ?do
+ i gen 0 nrxycos f2/ *output* outa drop
loop
-;
-:play #t :channels 1 :srate 44100 with-sound
+; :play #t with-sound drop
</pre>
</td>
</tr>
@@ -4526,12 +4545,13 @@ In the graph, r is 0 at the midpoint, r goes from -1.0 to 1.0 along the horizont
<tr>
<td bgcolor="#f0f4ff">
<pre>
-(with-sound (:play #t :statistics #t :srate 44100)
+(with-sound (:play #t :srate 44100)
(let ((shifter (make-ssb-am 440.0 20))
(osc (make-oscil 440.0)))
(do ((i 0 (+ 1 i)))
((= i 44100))
- (outa i (* 0.5 (ssb-am shifter (oscil osc)))))))
+ (outa i (* 0.5 (ssb-am shifter
+ (oscil osc)))))))
</pre>
</td>
@@ -4539,16 +4559,31 @@ In the graph, r is 0 at the midpoint, r goes from -1.0 to 1.0 along the horizont
<td bgcolor="#fbfbf0">
<pre>
-with_sound(:play, true, :statistics, true, :srate, 44100) do
+with_sound(:play, true, :srate, 44100) do
shifter = make_ssb_am(440.0, 20);
osc = make_oscil(440.0);
44100.times do |i|
- outa(i, 0.5 * ssb_am(shifter, oscil(osc)), $output);
+ outa(i,
+ 0.5 * ssb_am(shifter, oscil(osc)),
+ $output);
end
end.output
</pre>
</td>
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 440.0 20 make-ssb-am { shifter }
+ 440.0 make-oscil { osc }
+ 44100 0 ?do
+ i shifter osc 0 0 oscil 0 ssb-am f2/ *output* outa drop
+ loop
+; :play #t :srate 44100 with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -4791,6 +4826,21 @@ with_sound(:play, true) do
</pre>
</td>
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 400 10 make-ncos { g }
+ g -0.5 pi f* set-mus-phase drop
+ 64 make-vct map! g 0 ncos end-map { v }
+ 440.0 :wave v make-wave-train { gen }
+ 44100 0 do
+ i gen 0 wave-train f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -4976,7 +5026,7 @@ trigger, and mus-reset to restart an envelope.
</pre>
</td>
-<td width=4></td>
+</tr><tr>
<td bgcolor="#fbfbf0">
<pre>
@@ -4992,6 +5042,23 @@ with_sound(:play, true, :channels, 2) do
end.output
</pre>
</td>
+
+</tr><tr>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 5.0 220.0 hz-&gt;radians make-rand { ran1 }
+ 5.0 330.0 hz-&gt;radians make-rand-interp { ran2 }
+ 440.0 make-oscil { osc1 }
+ 1320.0 make-oscil { osc2 }
+ 88200 0 do
+ i osc1 ran1 0 rand 0 oscil f2/ *output* outa drop
+ i osc2 ran2 0 rand-interp 0 oscil f2/ *output* outb drop
+ loop
+; :channels 2 :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -5084,7 +5151,7 @@ both reflect that in their spectra (spectrum y axis is in dB):
<p>where the ".01"'s affect how tightly the resultant values cluster toward 0.0 &mdash;
set them to .0001, for example, to get most of the random values close to 0.0.
The central-limit theorem says that you can get closer and closer to gaussian
-noise simply by adding rand's together. Orfanidis in
+noise by adding rand's together. Orfanidis in
"Introduction to Signal Processing" says 12 calls on rand will
do perfectly well:
</p><pre>
@@ -5396,7 +5463,8 @@ and <a href="#green-noise">green-noise</a> (bounded Brownian noise).
(ran1 (make-rand 10000.0 .002)))
(do ((i 0 (+ 1 i)))
((= i 44100))
- (outa i (* 0.5 (two-pole flt (rand ran1)))))))
+ (outa i (* 0.5 (two-pole flt
+ (rand ran1)))))))
</pre>
</td>
@@ -5408,12 +5476,27 @@ with_sound(:play, true) do
flt = make_two_pole(1000.0, 0.999);
ran1 = make_rand(10000.0, 0.002);
44100.times do |i|
- outa(i, 0.5 * two_pole(flt, rand(ran1)), $output);
+ outa(i,
+ 0.5 * two_pole(flt, rand(ran1)),
+ $output);
end
end.output
</pre>
</td>
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 1000.0 0.999 make-two-pole { flt }
+ 10000.0 0.002 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand two-pole f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -5572,7 +5655,8 @@ as the response at that frequency (in terms of a sampling rate of 1.0):
(ran1 (make-rand 10000.0 5.0)))
(do ((i 0 (+ 1 i)))
((= i 44100))
- (outa i (* 0.5 (firmant flt (rand ran1)))))))
+ (outa i (* 0.5 (firmant flt
+ (rand ran1)))))))
</pre>
</td>
@@ -5584,12 +5668,27 @@ with_sound(:play, true) do
flt = make_firmant(1000.0, 0.999);
ran1 = make_rand(10000.0, 5.0);
44100.times do |i|
- outa(i, 0.5 * firmant(flt, rand(ran1)), $output);
+ outa(i,
+ 0.5 * firmant(flt, rand(ran1)),
+ $output);
end
end.output
</pre>
</td>
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 1000.0 0.999 make-firmant { flt }
+ 10000.0 5.0 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand #f firmant f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -5825,7 +5924,7 @@ example that puts formant on the edge of disaster (the glitch is about to explod
</pre>
</td>
-<td width=4></td>
+</tr><tr>
<td bgcolor="#fbfbf0">
<pre>
@@ -5839,6 +5938,19 @@ with_sound(:play, true) do
</pre>
</td>
+</tr><tr>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 3 vct( 0.0 -1.978 0.998 ) make-iir-filter { flt }
+ 10000.0 0.002 make-rand { ran1 }
+ 44100 0 do
+ i flt ran1 0 rand iir-filter f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -6011,13 +6123,32 @@ with_sound(:play, true) do
osc1 = make_oscil(440.0);
osc2 = make_oscil(660.0);
44100.times do |i|
- outa(i, 0.5 * (oscil(osc1) +
- delay(dly, oscil(osc2))), $output);
+ outa(i,
+ 0.5 * (oscil(osc1) +
+ delay(dly, oscil(osc2))),
+ $output);
end
end.output
</pre>
</td>
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 0.5 seconds-&gt;samples make-delay { dly }
+ 440.0 make-oscil { osc1 }
+ 660.0 make-oscil { osc2 }
+ 44100 0 do
+ i
+ osc1 0 0 oscil
+ dly osc2 0 0 oscil 0 delay f+
+ f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -6125,7 +6256,7 @@ and is the basis for about a dozen extensions (comb and friends below).
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=8 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
@@ -6133,24 +6264,21 @@ and is the basis for about a dozen extensions (comb and friends below).
(with-sound (:play #t)
(let ((cmb (make-comb 0.4 (seconds-&gt;samples 0.4)))
(osc (make-oscil 440.0))
- (ampf (make-env '(0 0 1 1 2 1 3 0)
- :length 4410)))
+ (ampf (make-env '(0 0 1 1 2 1 3 0) :length 4410)))
(do ((i 0 (+ 1 i)))
((= i 88200))
- (outa i (* 0.5 (comb cmb (* (env ampf)
- (oscil osc))))))))
+ (outa i (* 0.5 (comb cmb (* (env ampf) (oscil osc))))))))
</pre>
</td>
-<td width=4></td>
+</tr><tr>
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
cmb = make_comb(0.4, seconds2samples(0.4));
osc = make_oscil(440.0);
- ampf = make_env([0.0, 0.0, 1.0, 1.0, 2.0, 1.0, 3.0, 0.0],
- :length, 4410);
+ ampf = make_env([0.0, 0.0, 1.0, 1.0, 2.0, 1.0, 3.0, 0.0], :length, 4410);
88200.times do |i|
outa(i, 0.5 * (comb(cmb, env(ampf) * oscil(osc))), $output);
end
@@ -6158,6 +6286,24 @@ with_sound(:play, true) do
</pre>
</td>
+</tr><tr>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 0.4 0.4 seconds-&gt;samples make-comb { cmb }
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 2 1 3 0 ) :length 4410 make-env { ampf }
+ 88200 0 do
+ i
+ cmb ( gen )
+ ampf env osc 0 0 oscil f* ( val )
+ 0 ( pm )
+ comb f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -6343,7 +6489,7 @@ in the feedback loop:
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=12 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
@@ -6354,26 +6500,42 @@ in the feedback loop:
(ampf (make-env '(0 0 1 1 2 1 3 0) :length 4410)))
(do ((i 0 (+ 1 i)))
((= i 88200))
- (outa i (* 0.5 (all-pass alp (* (env ampf)
- (oscil osc))))))))
+ (outa i (* 0.5 (all-pass alp (* (env ampf) (oscil osc))))))))
</pre>
</td>
-
-<td width=4></td>
-
+</tr>
+<tr>
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
alp = make_all_pass(-0.4, 0.4, seconds2samples(0.4));
osc = make_oscil(440.0);
- ampf = make_env([0.0, 0.0, 1.0, 1.0, 2.0, 1.0, 3.0, 0.0],
- :length, 4410);
+ ampf = make_env([0.0, 0.0, 1.0, 1.0, 2.0, 1.0, 3.0, 0.0], :length, 4410);
88200.times do |i|
outa(i, 0.5 * (all_pass(alp, env(ampf) * oscil(osc))), $output);
end
end.output
</pre>
</td>
+</tr>
+
+<tr>
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ -0.4 0.4 0.4 seconds-&gt;samples make-all-pass { alp }
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 2 1 3 0 ) :length 4410 make-env { ampf }
+ 88200 0 do
+ i
+ alp ( gen )
+ ampf env osc 0 0 oscil f* ( val )
+ 0 ( pm )
+ all-pass f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -6432,16 +6594,14 @@ To get the "all-pass" behavior, set feedback equal to -feedforward.
(do ((i 0 (+ 1 i)))
((= i stop))
(let ((val (oscil osc)))
- (outa i (* val
- (moving-average avg (abs val))))))
+ (outa i (* val (moving-average avg (abs val))))))
(do ((i stop (+ 1 i)))
((= i 44100))
- (outa i (* (oscil osc)
- (moving-average avg 0.0))))))
+ (outa i (* (oscil osc) (moving-average avg 0.0))))))
</pre>
</td>
-<td width=4></td>
+</tr><tr>
<td bgcolor="#fbfbf0">
<pre>
@@ -6454,12 +6614,30 @@ with_sound(:play, true) do
outa(i, val * moving_average(avg, val.abs), $output);
end
4410.times do |i|
- outa(stop + i, oscil(osc) *
- moving_average(avg, 0.0), $output);
+ outa(stop + i, oscil(osc) * moving_average(avg, 0.0), $output);
end
end.output</pre>
</td>
+</tr><tr>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 4410 make-moving-average { avg }
+ 440.0 make-oscil { osc }
+ 44100 4410 - { stop }
+ 0.0 { val }
+ stop 0 do
+ osc 0 0 oscil to val
+ i avg val fabs moving-average val f* *output* outa drop
+ loop
+ 44100 stop do
+ i avg 0.0 moving-average osc 0 0 oscil f* *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -6529,7 +6707,7 @@ that are squelched and those that are unchanged (to avoid clicks):
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=8 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
@@ -6544,14 +6722,13 @@ that are squelched and those that are unchanged (to avoid clicks):
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true, :srate, 22050) do
rd = make_readin("oboe.snd");
len = 2 * mus_sound_frames("oboe.snd");
- sr = make_src(lambda do |dir| readin(rd) end, 0.5);
+ sr = make_src(lambda do |dir|
+ readin(rd) end, 0.5);
len.times do |i|
outa(i, src(sr), $output);
end
@@ -6559,8 +6736,21 @@ with_sound(:play, true, :srate, 22050) do
</pre>
</td>
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ "oboe.snd" make-readin { rd }
+ rd 0.5 make-src { sr }
+ "oboe.snd" mus-sound-frames 2* ( len ) 0 do
+ i sr 0 #f src *output* outa drop
+ loop
+; :play #t :srate 22050 with-sound drop
+</pre>
+</td>
+
</tr>
<tr>
+
<td bgcolor="#f0f4ff">
<pre>
(with-sound (:play #t)
@@ -6574,8 +6764,6 @@ with_sound(:play, true, :srate, 22050) do
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
@@ -6591,6 +6779,25 @@ with_sound(:play, true) do
</pre>
</td>
+<td bgcolor="#effdef">
+<pre>
+: make-src-proc { osc -- prc; dir self -- val }
+ 1 proc-create osc , ( prc )
+ does> { dir self -- val }
+ self @ ( osc ) 0 0 oscil
+;
+
+lambda: ( -- )
+ 440.0 make-oscil { osc }
+ osc make-src-proc { prc }
+ :srate 2.0 make-src { sr }
+ 44100 0 do
+ i sr 0 prc src *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
+
</tr>
</table>
@@ -6707,7 +6914,7 @@ envelope so that the result has a given duration, use <a href="sndscm.html#srcfi
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=8 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
@@ -6715,27 +6922,39 @@ envelope so that the result has a given duration, use <a href="sndscm.html#srcfi
(with-sound (:play #t :statistics #t)
(let ((cnv (make-convolve
(make-readin "pistol.snd")
- (file-&gt;vct "oboe.snd")))) ; in examp.scm
+ (file-&gt;vct "oboe.snd")))) ; examp.scm
(do ((i 0 (+ 1 i)))
((= i 88200))
(outa i (* 0.25 (convolve cnv))))))
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true, :statistics, true) do
rd = make_readin("oboe.snd");
- flt = file2vct("pistol.snd"); # in examp.rb
- cnv = make_convolve(lambda { |dir| readin(rd)}, flt);
+ flt = file2vct("pistol.snd"); # examp.rb
+ cnv = make_convolve(lambda { |dir|
+ readin(rd)}, flt);
88200.times do |i|
outa(i, 0.25 * convolve(cnv), $output);
end
end.output
</pre>
</td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ "pistol.snd" make-readin ( rd )
+ "oboe.snd" file-&gt;vct ( v ) make-convolve { cnv }
+ 88200 0 do
+ i cnv #f convolve 0.25 f* *output* outa drop
+ loop
+; :play #t :statistics #t with-sound drop
+</pre>
+</td>
+
</tr>
<tr>
@@ -6754,8 +6973,6 @@ with_sound(:play, true, :statistics, true) do
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
@@ -6771,6 +6988,20 @@ with_sound(:play, true) do
end.output
</pre>
</td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ "oboe.snd" "pistol.snd" 0.5 "convolved.snd" convolve-files { tempfile }
+ tempfile make-readin { reader }
+ tempfile mus-sound-frames ( len ) 0 do
+ i reader readin *output* outa drop
+ loop
+ tempfile file-delete
+; :play #t with-sound drop
+</pre>
+</td>
+
</tr>
</table>
@@ -6844,7 +7075,7 @@ but convolve uses an FFT internally, rather than a laborious dot-product.
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=8 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
@@ -6857,19 +7088,29 @@ but convolve uses an FFT internally, rather than a laborious dot-product.
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
rd = make_readin("oboe.snd");
- grn = make_granulate(lambda do |dir| readin(rd) end, 2.0);
+ grn = make_granulate(lambda do |dir|
+ readin(rd) end, 2.0);
88200.times do |i|
outa(i, granulate(grn), $output);
end
end.output
</pre>
</td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ "oboe.snd" make-readin 2.0 make-granulate { grn }
+ 44100 0 do
+ i grn #f #f granulate *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
<tr>
@@ -6891,8 +7132,6 @@ with_sound(:play, true) do
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
@@ -6910,6 +7149,25 @@ with_sound(:play, true) do
end.output
</pre>
</td>
+
+<td bgcolor="#effdef">
+<pre>
+: make-granulate-proc { osc sweep -- prc; dir self -- val }
+ 1 proc-create osc , sweep , ( prc )
+ does> { dir self -- val }
+ self @ ( osc ) self cell+ @ ( sweep ) env 0 oscil 0.2 f*
+;
+
+lambda: ( -- )
+ 440.0 make-oscil { osc }
+ '( 0 0 1 1 ) :scaler 440.0 hz-&gt;radians :length 44100 make-env { sweep }
+ osc sweep make-granulate-proc :expansion 2.0 :length 0.5 make-granulate { grn }
+ 88200 0 do
+ i grn #f #f granulate *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -7055,7 +7313,7 @@ In the following example, we use the edit function to reverse every other grain:
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 cellspacing=8 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
@@ -7069,20 +7327,30 @@ In the following example, we use the edit function to reverse every other grain:
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true) do
rd = make_readin("oboe.snd");
pv = make_phase_vocoder(
- lambda do |dir| readin(rd) end, :pitch, 2.0);
+ lambda do |dir|
+ readin(rd) end, :pitch, 2.0);
88200.times do |i|
outa(i, phase_vocoder(pv), $output);
end
end.output
</pre>
</td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ "oboe.snd" make-readin :pitch 2.0 make-phase-vocoder { pv }
+ 44100 0 do
+ i pv #f #f #f #f phase-vocoder *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
<tr>
@@ -7100,8 +7368,6 @@ with_sound(:play, true) do
</pre>
</td>
-<td width=4></td>
-
<td bgcolor="#fbfbf0">
<pre>
with_sound(:play, true, :srate, 22050) do
@@ -7116,6 +7382,17 @@ with_sound(:play, true, :srate, 22050) do
end.output
</pre>
</td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ "oboe.snd" make-readin :interp 256 make-phase-vocoder { pv }
+ "oboe.snd" mus-sound-frames 2* ( samps ) 0 do
+ i pv #f #f #f #f phase-vocoder *output* outa drop
+ loop
+; :play #t :srate 22050 with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -7137,7 +7414,7 @@ phase-vocoder generator. The analyze argument is a function of two arguments, t
the input function. The default is to read the current input,
take an fft, get the new amplitudes and phases (as the edit
function default), then resynthesize using sines; so, the
-default case simply returns a resynthesis of the original input. The "interp" argument sets the time between
+default case returns a resynthesis of the original input. The "interp" argument sets the time between
ffts (for time stretching, etc).
</p>
@@ -7260,6 +7537,18 @@ with_sound(:play, true) do
</pre>
</td>
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 440.0 0.0 0.9 0.5 make-asymmetric-fm { fm }
+ 44100 0 do
+ i fm 1.0 0 asymmetric-fm f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -7581,6 +7870,22 @@ with_sound(:channels, 2) do
</pre>
</td>
+<td width=4></td>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ "stereo.snd" make-file-&gt;frame { input }
+ 2 make-frame { frm }
+ "stereo.snd" mus-sound-frames ( len ) 0 do
+ input i frm file-&gt;frame ( frm ) 1 frame-ref ( val1 )
+ frm 0 frame-ref ( val0 ) frm 1 rot frame-set! drop
+ ( val1 ) frm 0 rot frame-set! drop
+ *output* i frm frame-&gt;file drop
+ loop
+; :channels 2 :play #t with-sound drop
+</pre>
+</td>
</tr>
</table>
@@ -7662,13 +7967,12 @@ with_sound(:play, true) do
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
+lambda: ( -- )
"oboe.snd" make-readin { reader }
- len 0 ?do
- i reader readin 2.0 f* *output* outa drop
+ 44100 0 do
+ i reader readin f2/ *output* outa drop
loop
-;
-:play #t :channels 1 :srate 44100 with-sound
+; :play #t with-sound drop
</pre>
</td>
</tr>
@@ -7746,7 +8050,7 @@ readin and <a href="#env">env</a>:
<pre>
(with-sound (:play #t)
(let ((infile
- (make-file->sample "oboe.snd")))
+ (make-file-&gt;sample "oboe.snd")))
(do ((i 0 (+ 1 i)))
((= i 44100))
(out-any i (in-any i 0 infile) 0))))
@@ -7771,13 +8075,12 @@ with_sound(:play, true) do
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
- "oboe.snd" make-file->sample { infile }
- len 0 ?do
- i i 0 infile in-any 0 out-any drop
+lambda: ( -- )
+ "oboe.snd" make-file-&gt;sample { infile }
+ 44100 0 do
+ i i 0 infile in-any 0 *output* out-any drop
loop
-;
-:play #f :channels 1 :srate 44100 with-sound
+; :play #t with-sound drop
</pre>
</td>
</tr>
@@ -7788,16 +8091,16 @@ with_sound(:play, true) do
<p>These are the "generic" input and output functions.
out-any adds its "data" argument (a sound sample) into the "output" object at sample
position "loc".
-The "output" argument can be a vct, a sound-data object, or a function, as well as the more usual frame-&gt;file object.
+The "output" argument can be a vct, a vector, a sound-data object, or a function, as well as the more usual frame-&gt;file object.
or any output-capable CLM generator.
In with-sound, the current output is *output* and the reverb output is *reverb*.
outa is the same as out-any with a channel of 0. It is not an error to try to write to a channel that doesn't exist;
-the function simply returns.
+the function just returns.
</p>
<p>in-any returns the sample at position "loc" in
"input". ina is the same as in-any with a channel of 0.
-As in out-any and friends, the "input" argument can be a file-&gt;frame object, a vct, sound-data object, or a function.
+As in out-any and friends, the "input" argument can be a file-&gt;frame object, a vct, a vector, sound-data object, or a function.
If "input" is a function, it should take two arguments, the location and the channel number.
</p>
@@ -7947,14 +8250,13 @@ with_sound(:play, true, :channels, 2) do
<td bgcolor="#effdef">
<pre>
-44100 lambda: &lt;{ len }&gt;
- 60.0 :output *output* make-locsig { loc }
+lambda: ( -- )
+ 60.0 make-locsig { loc }
440.0 make-oscil { osc }
- len 0 ?do
- loc i osc 0.0 0.0 oscil 0.5 f* locsig drop
+ 44100 0 do
+ loc i osc 0 0 oscil f2/ locsig drop
loop
-;
-:play #t :channels 2 :srate 44100 with-sound
+; :play #t :channels 2 with-sound drop
</pre>
</td>
</tr>
@@ -8772,7 +9074,6 @@ If you sweep the index, the bandwidth is the same as in normal FM (J2k(B) is abo
but the B/2 factor causes
the individual component amplitudes to follow the Bessel functions half as fast.
So j0evencos produces a spectral sweep that is like FM's but smoother.
-The effect is very subtle &mdash; the Man will not be impressed.
</p>
<table border=0 hspace=40 cellspacing=20><tr><td>
@@ -9023,9 +9324,9 @@ think there would be any difference, even taking FM into account.
as the carrier, there's no point in an ssb version. nxy1cos is the same as nxycos, but every other
component is multiplied by -1, and "n" produces 2n components.
Normalization in the "sin" cases is tricky. If ratio is 1, we can use nsin's normalization, and if ratio = 2, noddsin's,
-but otherwise nxysin currently simply uses 1/n. This ensures that the generator output is always between -1 and 1,
+but otherwise nxysin currently uses 1/n. This ensures that the generator output is always between -1 and 1,
but in some cases (mainly involving low "n" and simple "ratio"), the output might not be full amplitude. nxy1sin is
-even trickier, so it simply divides by "n".
+even trickier, so it divides by "n".
</p>
<br>
@@ -10260,7 +10561,7 @@ And a sort of converse is <a href="sndscm.html#soundinterp">sound-interp</a>.
</pre>
-<table border=1 bordercolor="lightgray" hspace=20 vspace=10 cellspacing=2 cellpadding=5>
+<table border=1 bordercolor="lightgray" hspace=20 vspace=10 cellspacing=8 cellpadding=5>
<tr>
<td bgcolor="#f0f4ff">
@@ -10270,13 +10571,11 @@ And a sort of converse is <a href="sndscm.html#soundinterp">sound-interp</a>.
(osc2 (make-oscil 220.0)))
(do ((i 0 (+ 1 i)))
((= i 44100))
- (outa i (* 0.5 (amplitude-modulate 0.3
- (oscil osc1)
- (oscil osc2)))))))
+ (outa i (* 0.5 (amplitude-modulate 0.3 (oscil osc1) (oscil osc2)))))))
</pre>
</td>
-<td width=4></td>
+</tr><tr>
<td bgcolor="#fbfbf0">
<pre>
@@ -10284,14 +10583,29 @@ with_sound(:play, true) do
osc1 = make_oscil(440.0);
osc2 = make_oscil(220.0);
44100.times do |i|
- outa(i, 0.5 * amplitude_modulate(0.3,
- oscil(osc1),
- oscil(osc2)),
- $output);
+ outa(i, 0.5 * amplitude_modulate(0.3, oscil(osc1), oscil(osc2)), $output);
end
end.output
</pre>
</td>
+
+</tr><tr>
+
+<td bgcolor="#effdef">
+<pre>
+lambda: ( -- )
+ 440.0 make-oscil { osc1 }
+ 220.0 make-oscil { osc2 }
+ 44100 0 do
+ i
+ 0.3 ( car )
+ osc1 0 0 oscil ( in1 )
+ osc2 0 0 oscil ( in2 ) amplitude-modulate f2/ *output* outa drop
+ loop
+; :play #t with-sound drop
+</pre>
+</td>
+
</tr>
</table>
diff --git a/sndinfo.c b/sndinfo.c
index f5b68df..d988916 100644
--- a/sndinfo.c
+++ b/sndinfo.c
@@ -22,17 +22,20 @@ static char *display_maxamps(const char *filename, int chans)
{
char *ampstr;
char fstr[16];
- int i;
+ int i, len;
mus_sample_t *vals;
mus_long_t *times;
- ampstr = (char *)calloc(chans * 32, sizeof(char));
+
+ len = chans * 32;
+ ampstr = (char *)calloc(len, sizeof(char));
vals = (mus_sample_t *)calloc(chans, sizeof(mus_sample_t));
times = (mus_long_t *)calloc(chans, sizeof(mus_long_t));
- sprintf(ampstr, "\n max amp%s: ", (chans > 1) ? "s" : "");
+
+ snprintf(ampstr, len, "\n max amp%s: ", (chans > 1) ? "s" : "");
mus_sound_maxamps(filename, chans, vals, times);
for (i = 0; i < chans; i++)
{
- sprintf(fstr, "%.3f ", MUS_SAMPLE_TO_FLOAT(vals[i]));
+ snprintf(fstr, 16, "%.3f ", MUS_SAMPLE_TO_FLOAT(vals[i]));
strcat(ampstr, fstr);
}
free(vals);
@@ -80,8 +83,8 @@ int main(int argc, char *argv[])
format = mus_sound_original_format(argv[ctr]);
format_name = (char *)mus_header_original_format_name(format, type);
if (format_name)
- sprintf(format_info, "%d (%s)", format, format_name);
- else sprintf(format_info, "%d", format);
+ snprintf(format_info, 64, "%d (%s)", format, format_name);
+ else snprintf(format_info, 64, "%d", format);
}
fprintf(stdout, "%s:\n srate: %d\n chans: %d\n length: %f",
argv[ctr], srate, chans, length);
diff --git a/sndins/README b/sndins/README
index cec040b..6e14f9b 100644
--- a/sndins/README
+++ b/sndins/README
@@ -157,89 +157,89 @@ like output channels.
The following functions are accessible from C.
-** mus_any *mus_make_fcomb(mus_float_t scaler, int size, mus_float_t a0, mus_float_t a1);
+** mus_any *mus_make_fcomb(Float scaler, int size, Float a0, Float a1);
** int mus_fcomb_p(mus_any *ptr);
-** mus_float_t mus_fcomb(mus_any *ptr, mus_float_t input, mus_float_t ignored);
-
-** off_t ins_fm_violin(mus_float_t start,
- mus_float_t dur,
- mus_float_t freq,
- mus_float_t amp,
- mus_float_t fm_index,
- mus_float_t *amp_env,
+** Float mus_fcomb(mus_any *ptr, Float input, Float ignored);
+
+** off_t ins_fm_violin(Float start,
+ Float dur,
+ Float freq,
+ Float amp,
+ Float fm_index,
+ Float *amp_env,
int amp_len,
- mus_float_t periodic_vibrato_rate,
- mus_float_t periodic_vibrato_amp,
- mus_float_t random_vibrato_rate,
- mus_float_t random_vibrato_amp,
- mus_float_t noise_freq,
- mus_float_t noise_amount,
- mus_float_t ind_noise_freq,
- mus_float_t ind_noise_amount,
- mus_float_t amp_noise_freq,
- mus_float_t amp_noise_amount,
- mus_float_t *gliss_env,
+ Float periodic_vibrato_rate,
+ Float periodic_vibrato_amp,
+ Float random_vibrato_rate,
+ Float random_vibrato_amp,
+ Float noise_freq,
+ Float noise_amount,
+ Float ind_noise_freq,
+ Float ind_noise_amount,
+ Float amp_noise_freq,
+ Float amp_noise_amount,
+ Float *gliss_env,
int gliss_len,
- mus_float_t gliss_amount,
- mus_float_t *fm1_env,
+ Float gliss_amount,
+ Float *fm1_env,
int fm1_len,
- mus_float_t *fm2_env,
+ Float *fm2_env,
int fm2_len,
- mus_float_t *fm3_env,
+ Float *fm3_env,
int fm3_len,
- mus_float_t fm1_rat,
- mus_float_t fm2_rat,
- mus_float_t fm3_rat,
- mus_float_t fm1_index,
- mus_float_t fm2_index,
- mus_float_t fm3_index,
- mus_float_t base,
- mus_float_t degree,
- mus_float_t distance,
- mus_float_t reverb_amount,
+ Float fm1_rat,
+ Float fm2_rat,
+ Float fm3_rat,
+ Float fm1_index,
+ Float fm2_index,
+ Float fm3_index,
+ Float base,
+ Float degree,
+ Float distance,
+ Float reverb_amount,
bool index_type,
bool no_waveshaping,
mus_any *out,
mus_any *rev,
mus_interp_t mode);
-** off_t ins_jc_reverb(mus_float_t start,
- mus_float_t dur,
- mus_float_t volume,
+** off_t ins_jc_reverb(Float start,
+ Float dur,
+ Float volume,
bool low_pass,
bool doubled,
- mus_float_t delay1,
- mus_float_t delay2,
- mus_float_t delay3,
- mus_float_t delay4,
- mus_float_t *amp_env,
+ Float delay1,
+ Float delay2,
+ Float delay3,
+ Float delay4,
+ Float *amp_env,
int amp_len,
mus_any *out,
mus_any *rev);
-** off_t ins_nrev(mus_float_t start,
- mus_float_t dur,
- mus_float_t reverb_factor,
- mus_float_t lp_coeff,
- mus_float_t lp_out_coeff,
- mus_float_t output_scale,
- mus_float_t volume,
- mus_float_t *amp_env,
+** off_t ins_nrev(Float start,
+ Float dur,
+ Float reverb_factor,
+ Float lp_coeff,
+ Float lp_out_coeff,
+ Float output_scale,
+ Float volume,
+ Float *amp_env,
int amp_len,
mus_any *out,
mus_any *rev);
-** off_t ins_freeverb(mus_float_t start,
- mus_float_t dur,
- mus_float_t room_decay,
- mus_float_t damping,
- mus_float_t global,
- mus_float_t predelay,
- mus_float_t output_gain,
- mus_float_t scale_room_decay,
- mus_float_t offset_room_decay,
- mus_float_t scale_damping,
- mus_float_t stereo_spread,
+** off_t ins_freeverb(Float start,
+ Float dur,
+ Float room_decay,
+ Float damping,
+ Float global,
+ Float predelay,
+ Float output_gain,
+ Float scale_room_decay,
+ Float offset_room_decay,
+ Float scale_damping,
+ Float stereo_spread,
int *combtuning,
int comb_len,
int *allpasstuning,
diff --git a/sndlib.html b/sndlib.html
index 9d4deb9..037abc7 100644
--- a/sndlib.html
+++ b/sndlib.html
@@ -1147,103 +1147,6 @@ constants and functions described above into Scheme. To initialize sndlib, call
(<a class=quiet href="extsnd.html#mussoundcloseinput" onmouseout="UnTip()" onmouseover="Tip(extsnd_mussoundcloseinput_tip)">mus-sound-close-input</a> sound-fd)
(<a class=quiet href="extsnd.html#musaudioclose" onmouseout="UnTip()" onmouseover="Tip(extsnd_musaudioclose_tip)">mus-audio-close</a> audio-fd)))))
</pre>
-<p>You can load sndlib into the standard Guile interpreter:
-</p>
-<pre>
-guile&gt; (define lib (<em class=red>dynamic-link</em> "/home/bil/sndlib/sndlib.so"))
-guile&gt; (<em class=red>dynamic-call</em> "mus_sndlib_xen_initialize" lib)
-guile&gt; (<a class=quiet href="extsnd.html#mussoundsrate" onmouseout="UnTip()" onmouseover="Tip(extsnd_mussoundsrate_tip)">mus-sound-srate</a> "/home/bil/cl/oboe.snd")
-22050
-guile&gt; (<em class=red>dynamic-call</em> "mus_xen_init" lib)
-guile&gt; (define osc (<a class=quiet href="sndclm.html#make-oscil" onmouseout="UnTip()" onmouseover="Tip(sndclm_make_oscil_tip)">make-oscil</a> 440))
-guile&gt; (<a class=quiet href="sndclm.html#oscil" onmouseout="UnTip()" onmouseover="Tip(sndclm_oscil_tip)">oscil</a> osc)
-0.0
-</pre>
-<p>The first dynamic-call (mus_sndlib_xen_initialize) ties sndlib2xen.c into
-Guile, and the second (mus_xen_init) ties clm2xen.c into Guile. See bess.scm
-and bess.rb in the Snd tarball.
-Here's a more extended example, using code from Snd's play.scm, slightly revised
-to make it independent of Snd:
-</p>
-<br>
-<table border=0 cellpadding=5><tr><td><pre>
-(use-modules (ice-9 format) (ice-9 optargs))
-
-(define lib (dynamic-link "/home/bil/test/sndlib/sndlib.so"))
-(dynamic-call "mus_sndlib_xen_initialize" lib)
-(dynamic-call "mus_xen_init" lib)
-
-(define* (open-play-output :optional out-chans out-srate out-format out-bufsize)
- ;; returns (list audio-fd chans frames)
- (let* ((outchans (or out-chans 1))
- (cur-srate (or out-srate (and (not (null? (sounds))) (srate)) 22050))
- (pframes (or out-bufsize 256))
- (frm (or out-format mus-lshort))
- (outbytes (* pframes 2)) ; 2 here since we'll first try to send short (16-bit) data to the DAC
- (audio-fd ;; ALSA throws an error where the rest of the audio cases simply report failure
- ;; so we turn off the "error" printout, catch the error itself, and toss it
- (let ((val (catch #t
- (lambda ()
- (mus-audio-open-output mus-audio-default cur-srate outchans frm outbytes))
- (lambda args -1)))) ; -1 returned in case of error
- val)))
- (if (= audio-fd -1)
- ;; ask card what it wants &mdash; ALSA with some cards, for example, insists on 10 (virtual) channels and mus-lintn data!
- (let ((vals (make-vct 32)))
- (mus-audio-mixer-read mus-audio-default mus-audio-format 32 vals)
- (let ((fmt (inexact-&gt;exact (vct-ref vals 1))))
- (mus-audio-mixer-read mus-audio-default mus-audio-channel 32 vals)
- (set! outchans (inexact-&gt;exact (vct-ref vals 0)))
- (let ((err (mus-audio-mixer-read mus-audio-default mus-audio-samples-per-channel 2 vals)))
- (if (not (= err -1))
- (set! pframes (inexact-&gt;exact (vct-ref vals 0))))
- (let* ((bps (mus-bytes-per-sample fmt)))
- (set! outbytes (* bps pframes outchans))
- (set! audio-fd (catch #t
- (lambda ()
- (mus-audio-open-output mus-audio-default cur-srate outchans fmt outbytes))
- (lambda args -1))))))))
- (list audio-fd outchans pframes)))
-
-(define* (play-sine freq amp)
- "(play-sine freq amp) plays a 1 second sinewave at freq and amp"
- (let* ((audio-info (open-play-output 1 22050 #f 256))
- (audio-fd (car audio-info))
- (outchans (cadr audio-info))
- (pframes (caddr audio-info)))
- (if (not (= audio-fd -1))
- (let ((len 22050)
- (osc (make-oscil freq))
- (data (make-sound-data outchans pframes)))
- (do ((beg 0 (+ beg pframes)))
- ((&gt; beg len))
- (do ((i 0 (+ 1 i)))
- ((= i pframes))
- (sound-data-set! data 0 i (* amp (oscil osc))))
- (mus-audio-write audio-fd data pframes))
- (mus-audio-close audio-fd))
- #f)))
-</pre></td></tr></table>
-<p>
-Now, load this code into s7+sndlib, and <code>(play-sine 440 .1)</code>.
-</p>
-
-<p>In Ruby, the sndlib shared library can be loaded via
-</p>
-<pre>
- require 'sndlib'
-</pre>
-<p>and all the initialization takes place automatically. On the Mac (OSX),
-this library is named sndlib.bundle, but elsewhere it is sndlib.so.
-</p>
-<pre>
- Users/bil/test/sndlib/ irb
- irb(main):001:0&gt; require 'sndlib'
- =&gt; true
- irb(main):002:0&gt; Welch_window
- =&gt; 2
- irb(main):003:0&gt; quit
-</pre>
<center>
diff --git a/sndlib2xen.c b/sndlib2xen.c
index dcd7959..8ebab98 100644
--- a/sndlib2xen.c
+++ b/sndlib2xen.c
@@ -13,10 +13,6 @@
#define PROC_FALSE "#f"
#define PROC_TRUE "#t"
#endif
- #if HAVE_CL
- #define PROC_FALSE "nil"
- #define PROC_TRUE "t"
- #endif
#endif
#include <stddef.h>
@@ -43,9 +39,6 @@
#if HAVE_FORTH
#define S_setB "set-"
#endif
- #if HAVE_CL
- #define S_setB "setf"
- #endif
#endif
@@ -2718,6 +2711,8 @@ XEN_NARGIFY_1(g_mus_set_max_table_size_w, g_mus_set_max_table_size)
#endif
+/* TODO: remove the "with-modules" support (also in sndlib itself) */
+
#if WITH_MODULES
static void sndlib2xen_init(void *ignore)
#else
diff --git a/sndscm.html b/sndscm.html
index a0e4827..2fa6cbf 100644
--- a/sndscm.html
+++ b/sndscm.html
@@ -54,8 +54,8 @@
<A NAME="introduction"></a>
-<p>This file contains notes on the Scheme, Ruby, and Forth files included with Snd.
-To use any of these files, load them:
+<p>This file describes the Scheme, Ruby, and Forth code included with Snd.
+To use this code, load the relevant file:
</p>
<pre>
Scheme: (load "dsp.scm") or (load-from-path "dsp.scm")
@@ -525,7 +525,7 @@ in the duration.
</pre>
<p>
I have this action bound to the "m" key in my ~/.snd initialization file. The change is reflected in
-the envelope editor. We can draw the amplitude envelope simply by approximating the shape. Call it "hairy-amp".
+the envelope editor. We can define the amplitude envelope by approximating the shape. Call it "hairy-amp".
</p>
<img src="pix/hairy3.png" alt="get amp env" hspace=40>
@@ -704,17 +704,12 @@ stops autosaving, and <code>(auto-save)</code> restarts it.
<A NAME="bessdoc"></a><table width="100%" border=0><tr><td bgcolor="beige" align="center" valign="middle"><h2>bess</h2></td></tr></table>
</td></tr></table>
-<p>bess.scm is a Scheme file that can be run either as a
-Guile script (independent of Snd) or loaded into Snd.
-As a Guile script,
-it loads sndlib and xmlib, and creates its own application windows.
-In Snd, it creates a new dialog.
-In either case, it opens the DAC, puts up a bunch of scale widgets, and starts two CLM oscils doing
+<p>bess.scm creates a dialog (named "FM Forever!"),
+opens the DAC, puts up a bunch of scale widgets, and starts two CLM oscils doing
frequency modulation in semi-real-time (how "real-time" it is depends on your
audio setup).
Michael Scholz has contributed a Ruby translation of this with many improvements:
-bess.rb. To use bess.scm as a script, you may need to make it executable: <code>chmod 777 bess.scm</code>.
-If you get "command not found", you need to edit the path to guile in the source.
+bess.rb.
</p>
<table border=0 hspace=20>
@@ -735,8 +730,8 @@ If you get "command not found", you need to edit the path to guile in the source
</td></tr></table>
<br>
-<p>bess1.scm and bess1.rb are scripts (independent of Snd), similar to bess.scm and bess.rb,
-that give you real-time GUI-based control over the fm-violin while it cycles around in a simple
+<p>bess1.scm and bess1.rb
+give you real-time GUI-based control over the fm-violin while it cycles around in a simple
compositional algorithm. Both were written by
Michael Scholz, based on CLM's bess5.cl and rt.lisp.
</p>
@@ -1131,7 +1126,7 @@ But, it is an historical artifact, so I'm reluctant to change it.
</p>
<p>To try out any of these instruments, start Snd, set optimization to 6, load ws.scm and clm-ins.scm, then
-simply paste the with-sound call into the listener. It will automatically write the
+paste the with-sound call into the listener. It will automatically write the
new sound file and open it in Snd.
</p>
@@ -3291,7 +3286,7 @@ Main features are:
<p>
env.scm provides a variety envelope functions.
-An envelope in Snd/CLM is simply a list of breakpoint pairs. In the function names,
+An envelope in Snd/CLM is a list of breakpoint pairs. In the function names,
I try to remember to use "envelope" to be a list of breakpoints, and "env" to be the result of <a href="sndclm.html#make-env">make-env</a>,
a CLM env structure passed to the <a href="sndclm.html#env">env</a> generator.
In an envelope,
@@ -4766,7 +4761,7 @@ See also remove-single-sample-clicks and remove-pops in clean.scm.
<tr><td colspan=2 bgcolor="#f2f4ff">
<em class=emdef>snd-out</em>
</td></tr><tr><td></td><td>
-A minor irritation in the current Guile system is that Scheme's "display" function
+A minor irritation in the current Guile system is that it's "display" function
writes to 'current-output-port', but there's no simple way to redirect that
elsewhere. So, if your code calls display, the result may be invisible.
One way around this is to reset the current-output-port to be a soft port
@@ -5855,8 +5850,8 @@ describe-hook tries to decipher the functions on the hook list; this is almost i
<tr><td colspan=2 bgcolor="#f2f4ff">
<a class=def name="hookmember">hook-member</a> <code>(func hook)</code>
</td></tr><tr><td></td><td>
-hook-member returns #t if 'func' is already on the hook list.
-It is simply <code>(member value (hook-&gt;list hook))</code>
+hook-member returns #t if 'func' is already on the hook list, equivalent to
+<code>(member value (hook-&gt;list hook))</code>
<pre>
:<em class=typing>(hook-member save-peak-env-info <a class=quiet href="extsnd.html#closehook" onmouseout="UnTip()" onmouseover="Tip(extsnd_closehook_tip)">close-hook</a>)</em>
<em class=listener>(#&lt;procedure save-peak-env-info ((snd) ...))&gt;</em>
@@ -6540,7 +6535,7 @@ syncup synchronizes a list of marks (positions them all at the same sample numbe
</table>
<p>marks.scm also has code that tries to make it simpler to sync marks together &mdash;
-you simply click the marks that should share a <a href="extsnd.html#marksync">mark-sync</a> field,
+you just click the marks that should share a <a href="extsnd.html#marksync">mark-sync</a> field,
rather than laboriously setting each one in the listener;
see <b>start-sync</b> and <b>stop-sync</b>.
There is also some code (look for "eval-header" toward the end of the file) that saves mark info in a
@@ -6797,6 +6792,15 @@ you want to your initialization file.
<table border=0 cellspacing=4 cellpadding=6 hspace=20>
+<!-- check-mix-tags -->
+<tr><td colspan=2 bgcolor="#f2f4ff">
+<a class=def name="checkmixtags">check-mix-tags</a> <code>(:optional snd chn)</code>
+</td></tr><tr><td></td><td>
+check-mix-tags looks at the current mix tags in the given channel, and if any are
+found that appear to be overlapping, it moves one of them down a ways.
+</td></tr><tr><td colspan=2 height=16></td></tr>
+
+
<!-- color-mixes -->
<tr><td colspan=2 bgcolor="#f2f4ff">
<a class=def name="colormixes">color-mixes</a> <code>(mix-list new-color)</code>
@@ -6992,14 +6996,6 @@ play-mixes plays the mixes in 'mix-list'.
</td></tr><tr><td colspan=2 height=16></td></tr>
-<!-- save-mix -->
-<tr><td colspan=2 bgcolor="#f2f4ff">
-<a class=def name="savemix">save-mix</a> <code>(mix filename)</code>
-</td></tr><tr><td></td><td>
-save-mix saves a given mix's data in a file.
-</td></tr><tr><td colspan=2 height=16></td></tr>
-
-
<!-- save-mixes -->
<tr><td colspan=2 bgcolor="#f2f4ff">
<a class=def name="savemixes">save-mixes</a> <code>(mix-list filename)</code>
@@ -7103,7 +7099,7 @@ transpose-mixes sets the speed of mix in 'mix-list' to cause a transposition by
<br>
<table bgcolor="aliceblue" border=0><tr><td>
-<pre>see also: <a href="extsnd.html#sndmixes">Mixes</a> <a href="snd.html#mixingfiles">View:Mix</a> <a href="#mixchannel">mix-channel</a> <a href="#fadedoc">dissolve-fade</a> <a href="#musmix">mus-mix</a> <a href="#with-mix">with-mix</a>
+<pre>see also: <a href="extsnd.html#sndmixes">Mixes</a> <a href="snd.html#mixingfiles">View:Mix</a> <a href="#mixchannel">mix-channel</a> <a href="#fadedoc">dissolve-fade</a> <a href="#musmix">mus-mix</a>
</pre></td>
</tr></table>
@@ -7883,7 +7879,8 @@ A laborious search finds these values:
1.9798054823222 #(0.0 1.41027488757208596670267297668033279478 1.68333243067326587816268101960304193198)
</pre>
<p>which shows that the minima are essentially at (23/39 19/60), (16/39 101/60), (1 + 23/39, 19/60), and (1 + 16/39, 101/60),
-all numbers multiplied by pi of course.
+all numbers multiplied by pi of course. (Our labor was mostly wasted; once we find one such point, the other 3
+can easily be calculated; see find-other-mins in peak-phases.scm).
</p>
<!--
@@ -8043,7 +8040,7 @@ here also, so despite appearances, blue is a maximum, and we're looking for the
(set! (spectro-x-scale) 0.9) ; was .75
(set! (spectro-y-scale) 0.9)
(set! (spectro-z-scale) 1.0) ; was .9
- (set! (colormap) 7) ; jet
+ (set! (colormap) jet-colormap)
(set! (color-cutoff) 0.001)
(set! (color-scale) 1.0) ; 50%
(set! (time-graph-type) graph-as-wavogram))
@@ -8058,35 +8055,37 @@ in a few cases, it is possible to get below the square root (see peak-phases.scm
<pre>
n peak (log peak n) n peak (log peak n)
-all 20 4.2972 0.4867, odd 11 3.1771 0.4821
-all 14 3.6148 0.4869, odd 9 2.8865 0.4824
+all 20 4.2924 0.4863, odd 11 3.1771 0.4821
+all 14 3.6144 0.4869, odd 9 2.8865 0.4824
all 11 3.2185 0.4875, odd 10 3.0538 0.4848
-all 23 4.6269 0.4886, odd 14 3.5998 0.4854
-all 16 3.8769 0.4887, odd 17 3.9558 0.4854
-all 15 3.7707 0.4901, odd 13 3.4758 0.4857
-all 17 4.0179 0.4909, odd 18 4.0793 0.4864
-all 13 3.5252 0.4912, odd 19 4.1940 0.4869
-all 12 3.3894 0.4912, odd 16 3.8607 0.4872
-all 10 3.1027 0.4917, odd 15 3.7418 0.4873
-all 19 4.2714 0.4931, odd 12 3.3628 0.4881
-all 18 4.1595 0.4932, odd 21 4.4620 0.4912
-all 27 5.0836 0.4934, odd 20 4.3752 0.4927
-all 22 4.5965 0.4935, odd 8 2.7908 0.4936
-all 9 2.9618 0.4942, odd 24 4.8070 0.4940
-all 21 4.5025 0.4942, odd 22 4.6110 0.4945
-all 8 2.7947 0.4942, odd 7 2.6184 0.4947
-all 25 4.9111 0.4944, odd 23 4.7242 0.4952
-all 24 4.8284 0.4954, odd 25 4.9268 0.4954
-all 26 5.0273 0.4957, odd 29 5.3165 0.4962
-all 29 5.3326 0.4971, odd 28 5.2302 0.4965
-all 33 5.6965 0.4976, odd 27 5.1390 0.4966
-all 31 5.5242 0.4977, odd 26 5.0493 0.4970
-all 32 5.6193 0.4981, odd 30 5.4464 0.4983
-all 30 5.4512 0.4986, odd 32 5.6270 0.4985
-all 28 5.2679 0.4987, odd 31 5.5606 0.4996
+all 23 4.6133 0.4876, odd 17 3.9551 0.4853
+all 16 3.8763 0.4887, odd 14 3.5998 0.4854
+all 15 3.7707 0.4901, odd 13 3.4757 0.4857
+all 24 4.7536 0.4905, odd 18 4.0787 0.4864
+all 17 4.0177 0.4909, odd 19 4.1926 0.4868
+all 13 3.5251 0.4912, odd 16 3.8601 0.4872
+all 12 3.3894 0.4912, odd 15 3.7418 0.4873
+all 10 3.1027 0.4917, odd 12 3.3628 0.4881
+all 27 5.0712 0.4926, odd 21 4.4570 0.4909
+all 25 4.8848 0.4928, odd 20 4.3706 0.4923
+all 19 4.2707 0.4931, odd 22 4.5901 0.4930
+all 18 4.1587 0.4931, odd 23 4.6958 0.4933
+all 22 4.5920 0.4931, odd 8 2.7908 0.4936
+all 21 4.4916 0.4934, odd 24 4.8007 0.4936
+all 9 2.9618 0.4942, odd 28 5.1814 0.4937
+all 8 2.7947 0.4942, odd 25 4.9147 0.4947
+all 29 5.3057 0.4956, odd 7 2.6184 0.4947
+all 26 5.0265 0.4956, odd 31 5.4732 0.4950
+all 32 5.5791 0.4960, odd 33 5.6590 0.4957
+all 31 5.5090 0.4969, odd 29 5.3099 0.4958
+all 33 5.6831 0.4969, odd 27 5.1276 0.4960
+all 37 6.0270 0.4975, odd 26 5.0365 0.4962
+all 28 5.2477 0.4975, odd 30 5.4193 0.4969
+all 30 5.4390 0.4979, odd 32 5.6068 0.4974
+all 35 5.8797 0.4983, odd 34 5.8081 0.4989
+all 34 5.7983 0.4984, odd 35 5.9042 0.4994
all 7 2.6394 0.4988
-all 37 6.0662 0.4992
-all 34 5.8160 0.4993
+all 36 5.9831 0.4992
</pre>
</td></tr></table>
@@ -8098,22 +8097,20 @@ all 34 5.8160 0.4993
<pre>
n peak (log peak n) n peak (log peak n)
-all 35 5.9412 0.5012, odd 35 5.9265 0.5005
-all 36 6.0636 0.5029, odd 34 5.8426 0.5006
-all 38 6.2914 0.5056, odd 33 5.7652 0.5010
-all 44 6.7910 0.5062, odd 39 6.3385 0.5041
-all 46 6.9547 0.5066, odd 36 6.0996 0.5046
-all 40 6.4878 0.5069, odd 37 6.2069 0.5056
-all 41 6.5697 0.5069, odd 40 6.4588 0.5057
-all 43 6.7320 0.5070, odd 38 6.2994 0.5060
-all 39 6.4294 0.5079, odd 42 6.6727 0.5078
-all 42 6.6817 0.5082, odd 43 6.7842 0.5090
-all 45 6.9651 0.5099, odd 41 6.6495 0.5102
+all 38 6.2036 0.5017, odd 40 6.3490 0.5010
+all 39 6.3202 0.5033, odd 42 6.5376 0.5023
+all 44 6.7521 0.5047, odd 36 6.0528 0.5024
+all 46 6.9060 0.5047, odd 39 6.3194 0.5032
+all 41 6.5222 0.5050, odd 37 6.1763 0.5042
+all 40 6.4546 0.5055, odd 38 6.2801 0.5051
+all 43 6.7008 0.5057, odd 43 6.7140 0.5063
+all 42 6.6632 0.5074, odd 41 6.6002 0.5082
+all 45 6.9378 0.5088, odd 46 7.0204 0.5090
</pre>
</td></tr></table>
<p>
-Here is a graph of the values I've found so far (as of June 2009), followed by a graph of
+Here is a graph of the values I've found so far (as of October 2009), followed by a graph of
the exponent vs n (n^y = peak amp).
One very good
set for all harmonics up to n=40 is given in Horner and Beauchamp, "a genetic algorithm-based method
@@ -8334,11 +8331,50 @@ As you increase "n", the minimum peak amplitude waveform approaches
white noise (in sound as well as appearance); here is a small portion of one period when n=65536 (the prescaling peak was 704):
</p>
+
<table hspace=40 border=0><tr><td>
<img src="pix/s65536.png" alt="65536 harmonics">
</td></tr></table>
<br>
+
+<p>It's curious that the "min-peak-amplitude versus n" graphs look continuous; what
+happens to the minima as we slowly add the next higher harmonic? In the n=2 case,
+each minimum splits in two, then smoothly moves to its next minimum location (where the
+3rd harmonic has amplitude 1.0). Here's a graph of the moving minima,
+showing also the resultant peak amplitude:
+</p>
+
+<img src="pix/phase-paths.png">
+<img src="pix/peak-path.png">
+
+<p>In the first graph, each dot is at the phase location of the minimum peak amplitude as the
+3rd harmonic is increased in amplitude by 0.025. The turning points are just before the 3rd harmonic
+reaches an amplitude of 0.5. The n=2 minima are at (0, 0), (red and green, with
+the green x=2 rather than 0), and (0, 1), (black and blue). Each splits and wanders eventually to
+the n=3 global minima at (0.41 1.68), (1.41, 1.68), (1.59, 0.32), and (0.59, 0.32).
+Each of the n=2 global minima ends up at 2 of the 4 n=3 global minima! How lucky can we be?
+If this worked in general, we could use it to speed up our search by following a minimum of n harmonics as it meanders to a minimum of n+1 harmonics:
+</p>
+<pre>
+;; this starts at the current min and marches to an n+1 min
+(let ((n 3))
+ (let ((phases (vector 0.0 0.0 1.0)))
+ (do ((x 0.1 (+ x .1)))
+ ((&gt;= x 1.0))
+ (let ((p (fpsaf x 0 n 1000 0.1 50 #f #t phases)))
+ (format #t ";~A: ~A~%" x p)
+ (do ((k 0 (+ k 1)))
+ ((= k n))
+ (vector-set! phases k (modulo (vct-ref p k) 2.0)))))))
+</pre>
+<p>
+Since we can restrict our search to 0.1 (maybe less) in each direction (rather than 2.0), we
+get a reduction of 20^n in the size of the space we are searching. But, as usual, there's
+a problem. The search works for n=2 -&gt; 3 -&gt; 4 -&gt; 5, but going from 5 to 6, I seem to fall into a
+non-optimal (but still very good) path.
+</p>
+
<br><br>
@@ -11119,7 +11155,7 @@ we want to hear an arpeggio from the fm-violin:
</pre>
<p>
-with-sound opens an output object, either a sound file, a vct, or a sound-data object: (*output*), and
+with-sound opens an output object, either a sound file, a vct, a vector, or a sound-data object: (*output*), and
optionally a reverb output object: *reverb*. Each instrument uses <a href="sndclm.html#out-any">out-any</a> to add its sounds to the
*output* results. with-sound next sets up a variety of variables describing the current
output, and establishes an environment where various problems can be handled nicely (in Scheme,
@@ -11330,7 +11366,7 @@ begin time) in the Snd window title bar, and tries to use the xm module if it is
(set! (<a class=quiet href="extsnd.html#windowproperty" onmouseout="UnTip()" onmouseover="Tip(extsnd_windowproperty_tip)">window-property</a> "SND_VERSION" "WM_NAME") new-title)))))
</pre>
-<p>The "output" argument can be a vct or a sound-data object, as well as a filename:
+<p>The "output" argument can be a vct, a vector, or a sound-data object, as well as a filename:
</p>
<pre>
(with-sound (:output (<a class=quiet href="extsnd.html#makevct" onmouseout="UnTip()" onmouseover="Tip(extsnd_makevct_tip)">make-vct</a> 44100)) (fm-violin 0 1 440 .1))
@@ -11423,7 +11459,7 @@ avoid lists, if possible, and fancy stuff like map or apply, and you should be f
<br>
-<p>There are several other versions of with-sound: with-temp-sound, with-threaded-sound, with-mixed-sound, sound-let, clm-load, with-mix, and the Common Music
+<p>There are several other versions of with-sound: with-temp-sound, with-threaded-sound, with-mixed-sound, sound-let, clm-load, and the Common Music
handles, init-with-sound and finish-with-sound.
<a name="withtempsound">with-temp-sound</a> and <a name="sound-let">sound-let</a> set up temporary bindings for embedded with-sounds.
</p>
@@ -11593,6 +11629,30 @@ in the minibuffer.
(fm-violin 1 .1 660 .1 :degree 45))
</pre>
+<p>There's also a quick sound file mixer named mus-mix:
+</p>
+
+<pre>
+ <a class=def name="musmix">mus-mix</a> outfile infile :optional (outloc 0) (frames) (inloc 0) mixer envs
+</pre>
+
+<p>This function
+mixes 'infile' into 'outfile' starting at 'outloc' in 'outfile' and 'inloc' in 'infile',
+mixing 'frames' frames into 'outfile'. 'frames' defaults to the length of 'infile'. If 'mixer',
+use it to scale the various channels; if 'envs' (an array of envelope generators), use
+it in conjunction with mixer to scale and envelope all the various ins and outs.
+'outfile' can also be a <a href="sndclm.html#frametofile">frame-&gt;file</a> generator, and 'infile' can be a
+<a href="sndclm.html#filetoframe">file-&gt;frame</a> generator.
+</p>
+
+<table border=0 cellpadding=5 hspace=20><tr><td><pre>
+(<a class=quiet href="#wsdoc" onmouseout="UnTip()" onmouseover="Tip(sndscm_wsdoc_tip)">with-sound</a> ()
+ (fm-violin 0 .1 440 .1)
+ (<a class=quiet href="#musmix" onmouseout="UnTip()" onmouseover="Tip(sndscm_musmix_tip)">mus-mix</a> <a class=quiet onmouseout="UnTip()" onmouseover="Tip(sndclm_output_tip)">*output*</a> "oboe.snd")
+ (fm-violin .1 .1 660 .1))
+</pre></td></tr></table>
+
+
<br>
<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
@@ -11646,65 +11706,6 @@ split with-sound into two pieces, primarily for Common Music's benefit.
<br>
<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
-<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>with-mix</h4></td></tr></table>
-</td></tr></table>
-
-<p><a name="with-mix">with-mix</a> is a "checkpointing" version of with-sound, more useful in the bad old days when computers
-were incredibly slow, but lingering on...
-It is a macro, callable within <a href="#wsdoc">with-sound</a> or <a href="#clmload">clm-load</a>,
-which saves the computation in its body in a separate file, and
-then upon a subsequent recomputation, tries to tell (via a string comparison) when that file's data is up to date
-and does not need to be recomputed.
-</p>
-
-<table border=0 hspace=40 cellpadding=8 cellspacing=3><tr><td>
-<pre>
-(<a class=quiet href="#wsdoc" onmouseout="UnTip()" onmouseover="Tip(sndscm_wsdoc_tip)">with-sound</a> ()
- (fm-violin 0 .1 440 .1)
- (<em class=red>with-mix</em> () "sec1" .5
- (fm-violin 0 .1 550 .1)
- (fm-violin .1 .1 660 .1))
- (<em class=red>with-mix</em> (:reverb jc-reverb) "sec2" 1.0
- (fm-violin 0 .1 880 .1 :reverb-amount .2)
- (fm-violin .1 .1 1320 .1 :reverb-amount .2))
- (fm-violin 2 .1 220 .1)
- (<em class=red>mix</em> "/zap/slow.snd"))
-</pre>
-</td></tr></table>
-
-<p>Now, if we change just the first note in the with-mix call, the
-second with-mix section will not be recomputed, but will be mixed in from the
-saved file "sec2.snd".
-In the old days, when notes took hours to compute, this was a big deal,
-but not anymore.
-</p>
-
-<p>There's also a quick sound file mixer named mus-mix:
-</p>
-
-<pre>
- <a class=def name="musmix">mus-mix</a> outfile infile :optional (outloc 0) (frames) (inloc 0) mixer envs
-</pre>
-
-<p>This function
-mixes 'infile' into 'outfile' starting at 'outloc' in 'outfile' and 'inloc' in 'infile',
-mixing 'frames' frames into 'outfile'. 'frames' defaults to the length of 'infile'. If 'mixer',
-use it to scale the various channels; if 'envs' (an array of envelope generators), use
-it in conjunction with mixer to scale and envelope all the various ins and outs.
-'outfile' can also be a <a href="sndclm.html#frametofile">frame-&gt;file</a> generator, and 'infile' can be a
-<a href="sndclm.html#filetoframe">file-&gt;frame</a> generator.
-</p>
-
-<table border=0 cellpadding=5 hspace=20><tr><td><pre>
-(<a class=quiet href="#wsdoc" onmouseout="UnTip()" onmouseover="Tip(sndscm_wsdoc_tip)">with-sound</a> ()
- (fm-violin 0 .1 440 .1)
- (<a class=quiet href="#musmix" onmouseout="UnTip()" onmouseover="Tip(sndscm_musmix_tip)">mus-mix</a> <a class=quiet onmouseout="UnTip()" onmouseover="Tip(sndclm_output_tip)">*output*</a> "oboe.snd")
- (fm-violin .1 .1 660 .1))
-</pre></td></tr></table>
-
-
-<br>
-<table border=0 bordercolor="lightgreen" width=50% cellpadding=1 cellspacing=0><tr><td bgcolor="lightgreen">
<table width=100% border=0><tr><td bgcolor="#EEFDEE" valign="middle"><h4>def-clm-struct</h4></td></tr></table>
</td></tr></table>
diff --git a/sound.c b/sound.c
index 750a5ab..b94ec94 100644
--- a/sound.c
+++ b/sound.c
@@ -509,21 +509,22 @@ static sound_file *find_sound_file(const char *name)
static void display_sound_file_entry(FILE *fp, const char *name, sound_file *sf)
{
+ #define TIME_BUFFER_SIZE 64
int i, lim;
time_t date;
- char timestr[64];
+ char timestr[TIME_BUFFER_SIZE];
char *comment;
date = sf->write_date;
if (date != 0)
{
#if HAVE_STRFTIME
- strftime(timestr, 64, "%a %d-%b-%Y %H:%M:%S", localtime(&date));
+ strftime(timestr, TIME_BUFFER_SIZE, "%a %d-%b-%Y %H:%M:%S", localtime(&date));
#else
- sprintf(timestr, "%d", (int)date);
+ snprintf(timestr, TIME_BUFFER_SIZE, "%d", (int)date);
#endif
}
- else sprintf(timestr, "(date cleared)");
+ else snprintf(timestr, TIME_BUFFER_SIZE, "(date cleared)");
fprintf(fp, " %s: %s, chans: %d, srate: %d, type: %s, format: %s, samps: " MUS_LD,
name,
@@ -690,7 +691,7 @@ static void sound_table_lock_error_handler(int type, char *msg)
pthread_setspecific(mus_thread_error_handler, (void *)old_header_read_error_handler);
pthread_setspecific(mus_thread_previous_error_handler, (void *)old_previous_header_read_error_handler);
MUS_UNLOCK(&sound_table_lock);
- mus_error(type, msg);
+ mus_error(type, "%s", msg);
}
#endif
diff --git a/spokenword.scm b/spokenword.scm
index 6ef3f79..0d91f68 100644
--- a/spokenword.scm
+++ b/spokenword.scm
@@ -136,13 +136,13 @@
(if (and (not (c-g?))
(= reason 0))
(begin
- (play in-position #f #f #f (+ in-position preview-length)))))
+ (play (selected-sound) in-position (+ in-position preview-length)))))
(if (and
(not (eq? in-mark #f))
(not (eq? out-mark #f)))
(if (< out-position in-position)
(play (max 0 (- out-position preview-length)) #f #f #f out-position #f play-next))
- (play (cursor) #f #f #f (+ (cursor) preview-length)))))
+ (play (selected-sound) (cursor) (+ (cursor) preview-length)))))
; Copied from examp.scm
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -225,7 +225,7 @@
(set! (with-tracking-cursor) #t)
(if (playing)
(stop-playing)
- (play (cursor)))
+ (play (selected-sound) (cursor)))
cursor-in-view))
(bind-key #\l 0
diff --git a/tools/README b/tools/README
index 9134d46..05923d3 100644
--- a/tools/README
+++ b/tools/README
@@ -10,17 +10,17 @@ va.scm Check for common spelling mistakes, lack of trailing NULLs
compsnd Run a bazillion configuration/compilation tests
testsnd Run a bazillion tests
gtk-headers-diffs Find changes in Gtk headers (for xgdata.scm)
-shipit Expect script to load changes onto a Zip drive
sarchive Update backup directory, report changes
table.scm make snd-test contents list
nor.scm change \r\n to \n
crossref.c simple-minded cross referencer
-.gbdinit gbd stuff
-sed-href sed script to add silent urls
makexg.scm + xgdata.scm Build xg.c, xg-ruby.c, xg-x11.h
makegl.scm + gldata.scm Build gl.c
index.cl Build index.html, snd-xref.c, elaborate html error checking
-snd-index.cl Build the index at the end of snd.html
snd.supp Valgrind suppressions
-check-gtk.scm check for hidden version assumptions
make-snd-diffs
+exs7.c some s7 examples (extracted from s7.h)
+check-help.scm bug checks for help strings
+
+ecl.txt, gauche.txt, librep.txt
+ saved stuff about other extension language choices \ No newline at end of file
diff --git a/tools/compsnd b/tools/compsnd
index 254ce03..d3b3be3 100755
--- a/tools/compsnd
+++ b/tools/compsnd
@@ -323,9 +323,9 @@ make allclean
echo ' '
echo ' '
echo ' -------------------------------------------------------------------------------- '
-echo ' ----- --with-forth --with-gtk --with-static-xg --with-gl --- '
+echo ' ----- --with-forth --with-gtk --with-static-xg --- '
echo ' -------------------------------------------------------------------------------- '
-./configure --quiet --with-forth --with-gtk --with-static-xg --with-gl LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include"
+./configure --quiet --with-forth --with-gtk --with-static-xg LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include"
make
./snd --version
./snd -noinit --features "'clm 'snd-gtk 'xg 'gl"
@@ -378,9 +378,9 @@ echo ' '
make allclean
echo ' -------------------------------------------------------------------------------- '
-echo ' ---- --without-extension-language --with-gtk --with-gl ------ '
+echo ' ---- --without-extension-language --with-gtk ------ '
echo ' -------------------------------------------------------------------------------- '
-./configure --quiet --without-extension-language --with-gtk --with-gl
+./configure --quiet --without-extension-language --with-gtk
make
echo ' '
echo ' '
@@ -453,9 +453,9 @@ make allclean
echo ' '
echo ' '
echo ' -------------------------------------------------------------------------------- '
-echo ' ---- --with-guile --with-gtk --with-static-xg --with-gl --- '
+echo ' ---- --with-guile --with-gtk --with-static-xg --- '
echo ' -------------------------------------------------------------------------------- '
-./configure --quiet --with-guile --with-gtk --with-static-xg --with-gl LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include"
+./configure --quiet --with-guile --with-gtk --with-static-xg LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include"
make
./snd --version
./snd -noinit --features "'clm 'snd-gtk 'xg 'gl"
@@ -533,9 +533,9 @@ rm -f mus-config.h
rm -f sndinfo
echo ' -------------------------------------------------------------------------------- '
-echo ' ---- --without-float-samples --without-ladspa --with-gl --with-gl2ps --with-modules --without-gsl --without-xpm '
+echo ' ---- --without-float-samples --without-ladspa --with-gl --with-gl2ps --without-gsl --without-xpm '
echo ' -------------------------------------------------------------------------------- '
-./configure --quiet LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include" --without-float-samples --without-ladspa --with-gl --with-gl2ps --with-modules --without-gsl --without-xpm
+./configure --quiet LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include" --without-float-samples --without-ladspa --with-gl --with-gl2ps --without-gsl --without-xpm
make
echo ' '
echo ' '
@@ -646,9 +646,9 @@ echo ' '
make allclean
echo ' -------------------------------------------------------------------------------- '
-echo ' ----- GTK_DISABLE_DEPRECATED G_DISABLE_DEPRECATED GDK_DISABLE_DEPRECATED --with-gtk --with-static-xm --with-x11 '
+echo ' ----- GTK_DISABLE_DEPRECATED G_DISABLE_DEPRECATED GDK_DISABLE_DEPRECATED --with-gtk --with-static-xm '
echo ' -------------------------------------------------------------------------------- '
-./configure --quiet --disable-deprecated CFLAGS="-Wall -I/usr/X11R6/include -D_FORTIFY_SOURCE" --with-gtk --with-static-xm --with-x11
+./configure --quiet --disable-deprecated CFLAGS="-Wall -I/usr/X11R6/include -D_FORTIFY_SOURCE" --with-gtk --with-static-xm
make
echo ' '
echo ' '
@@ -730,9 +730,9 @@ rm -f snd
rm -f config.cache
echo ' -------------------------------------------------------------------------------- '
-echo ' ---- --enable-snd-debug --with-gtk --with-gsl --with-gl --with-gl2ps '
+echo ' ---- --enable-snd-debug --with-gtk --with-gsl '
echo ' -------------------------------------------------------------------------------- '
-./configure --quiet LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include -DXEN_DEBUGGING" --enable-snd-debug --with-gtk --with-gsl --with-gl --with-gl2ps
+./configure --quiet LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include -DXEN_DEBUGGING" --enable-snd-debug --with-gtk --with-gsl
make
echo ' '
echo ' '
@@ -840,9 +840,9 @@ echo ' '
make allclean
echo ' -------------------------------------------------------------------------------- '
-echo ' ---- GTK_DISABLE_DEPRECATED G_DISABLE_DEPRECATED GDK_DISABLE_DEPRECATED --with-ruby --with-static-xm --with-gtk --with-x11 --with-gl '
+echo ' ---- GTK_DISABLE_DEPRECATED G_DISABLE_DEPRECATED GDK_DISABLE_DEPRECATED --with-ruby --with-static-xm --with-gtk '
echo ' -------------------------------------------------------------------------------- '
-./configure --quiet --disable-deprecated LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include -D_FORTIFY_SOURCE" --with-ruby --with-static-xm --with-gtk --with-x11 --with-gl
+./configure --quiet --disable-deprecated LDFLAGS="-L/usr/X11R6/lib" CFLAGS="-Wall -I/usr/X11R6/include -D_FORTIFY_SOURCE" --with-ruby --with-static-xm --with-gtk
make
echo ' '
echo ' '
@@ -1116,9 +1116,9 @@ echo ' '
echo ' '
echo ' -------------------------------------------------------------------------------- '
-echo ' ----- --without-extension-language --with-gtk --with-static-xg --with-gl '
+echo ' ----- --without-extension-language --with-gtk --with-static-xg '
echo ' -------------------------------------------------------------------------------- '
-./configure --without-extension-language --with-gtk --with-static-xg --with-gl --quiet
+./configure --without-extension-language --with-gtk --with-static-xg --quiet
make
./snd --version
make allclean
@@ -1276,7 +1276,7 @@ g++ -o exs7 exs7.c s7.o -lm -DEX3
echo ' -------------------------------------------------------------------------------- '
echo ' -------------------------------- ex 4 -------------------------------- '
echo ' -------------------------------------------------------------------------------- '
-g++ -o exs7 exs7.c s7.o -lm -DEX4
+g++ -o exs7 exs7.c s7.o -lm -DEX4 /home/bil/test/sndlib/libsndlib.a -lgsl -lgslcblas -lasound
echo ' -------------------------------------------------------------------------------- '
echo ' -------------------------------- ex 5 -------------------------------- '
echo ' -------------------------------------------------------------------------------- '
diff --git a/tools/crossref.c b/tools/crossref.c
index e58f0ac..ed8de48 100644
--- a/tools/crossref.c
+++ b/tools/crossref.c
@@ -338,6 +338,10 @@ int main(int argc, char **argv)
add_file("sc.c");
add_file("ffi.lisp");
add_file("sndlib2clm.lisp");
+ add_file("run.lisp");
+ add_file("clm1.lisp");
+
+ add_file("sndins/sndins.c");
for (i = 0; i < headers_ctr; i++)
{
diff --git a/tools/gldata.scm b/tools/gldata.scm
index c9f0149..eb817d4 100644
--- a/tools/gldata.scm
+++ b/tools/gldata.scm
@@ -1600,167 +1600,3 @@
(CINT "GLU_TESS_WINDING_NEGATIVE")
(CINT "GLU_TESS_WINDING_ABS_GEQ_TWO")
;(CINT "GLU_TESS_MAX_COORD") ; this is a float (1e150)
-
-
-;;; gtkglext removed 17-Oct-08
-#|
-(CINT-G5 "GDKGLEXT_MAJOR_VERSION")
-(CINT-G5 "GDKGLEXT_MINOR_VERSION")
-(CINT-G5 "GDKGLEXT_MICRO_VERSION")
-(CINT-G5 "GDKGLEXT_INTERFACE_AGE")
-(CINT-G5 "GDKGLEXT_BINARY_AGE")
-(CINT-G "GDK_GL_SUCCESS")
-(CINT-G "GDK_GL_ATTRIB_LIST_NONE")
-(CINT-G "GDK_GL_USE_GL")
-(CINT-G "GDK_GL_BUFFER_SIZE")
-(CINT-G "GDK_GL_LEVEL")
-(CINT-G "GDK_GL_RGBA")
-(CINT-G "GDK_GL_DOUBLEBUFFER")
-(CINT-G "GDK_GL_STEREO")
-(CINT-G "GDK_GL_AUX_BUFFERS")
-(CINT-G "GDK_GL_RED_SIZE")
-(CINT-G "GDK_GL_GREEN_SIZE")
-(CINT-G "GDK_GL_BLUE_SIZE")
-(CINT-G "GDK_GL_ALPHA_SIZE")
-(CINT-G "GDK_GL_DEPTH_SIZE")
-(CINT-G "GDK_GL_STENCIL_SIZE")
-(CINT-G "GDK_GL_ACCUM_RED_SIZE")
-(CINT-G "GDK_GL_ACCUM_GREEN_SIZE")
-(CINT-G "GDK_GL_ACCUM_BLUE_SIZE")
-(CINT-G "GDK_GL_ACCUM_ALPHA_SIZE")
-(CINT-G "GDK_GL_X_VISUAL_TYPE")
-(CINT-G "GDK_GL_CONFIG_CAVEAT")
-(CINT-G "GDK_GL_TRANSPARENT_TYPE")
-(CINT-G "GDK_GL_TRANSPARENT_INDEX_VALUE")
-(CINT-G "GDK_GL_TRANSPARENT_RED_VALUE")
-(CINT-G "GDK_GL_TRANSPARENT_GREEN_VALUE")
-(CINT-G "GDK_GL_TRANSPARENT_BLUE_VALUE")
-(CINT-G "GDK_GL_TRANSPARENT_ALPHA_VALUE")
-(CINT-G "GDK_GL_DRAWABLE_TYPE")
-(CINT-G "GDK_GL_RENDER_TYPE")
-(CINT-G "GDK_GL_X_RENDERABLE")
-(CINT-G "GDK_GL_FBCONFIG_ID")
-(CINT-G "GDK_GL_MAX_PBUFFER_WIDTH")
-(CINT-G "GDK_GL_MAX_PBUFFER_HEIGHT")
-(CINT-G "GDK_GL_MAX_PBUFFER_PIXELS")
-(CINT-G "GDK_GL_VISUAL_ID")
-(CINT-G5 "GDK_GL_SAMPLE_BUFFERS")
-(CINT-G5 "GDK_GL_SAMPLES")
-(CINT-G "GDK_GL_BAD_SCREEN")
-(CINT-G "GDK_GL_BAD_ATTRIBUTE")
-(CINT-G "GDK_GL_NO_EXTENSION")
-(CINT-G "GDK_GL_BAD_VISUAL")
-(CINT-G "GDK_GL_BAD_CONTEXT")
-(CINT-G "GDK_GL_BAD_VALUE")
-(CINT-G "GDK_GL_BAD_ENUM")
-(CINT-G "GDK_GL_DONT_CARE")
-(CINT-G "GDK_GL_RGBA_BIT")
-(CINT-G "GDK_GL_COLOR_INDEX_BIT")
-(CINT-G "GDK_GL_WINDOW_BIT")
-(CINT-G "GDK_GL_PIXMAP_BIT")
-(CINT-G "GDK_GL_PBUFFER_BIT")
-(CINT-G "GDK_GL_NONE")
-(CINT-G "GDK_GL_SLOW_CONFIG")
-(CINT-G "GDK_GL_NON_CONFORMANT_CONFIG")
-(CINT-G "GDK_GL_TRUE_COLOR")
-(CINT-G "GDK_GL_DIRECT_COLOR")
-(CINT-G "GDK_GL_PSEUDO_COLOR")
-(CINT-G "GDK_GL_STATIC_COLOR")
-(CINT-G "GDK_GL_GRAY_SCALE")
-(CINT-G "GDK_GL_STATIC_GRAY")
-(CINT-G "GDK_GL_TRANSPARENT_RGB")
-(CINT-G "GDK_GL_TRANSPARENT_INDEX")
-(CINT-G "GDK_GL_PRESERVED_CONTENTS")
-(CINT-G "GDK_GL_LARGEST_PBUFFER")
-(CINT-G "GDK_GL_PBUFFER_HEIGHT")
-(CINT-G "GDK_GL_PBUFFER_WIDTH")
-(CINT-G "GDK_GL_WIDTH")
-(CINT-G "GDK_GL_HEIGHT")
-(CINT-G "GDK_GL_EVENT_MASK")
-(CINT-G "GDK_GL_RGBA_TYPE")
-(CINT-G "GDK_GL_COLOR_INDEX_TYPE")
-(CINT-G "GDK_GL_SCREEN")
-(CINT-G "GDK_GL_PBUFFER_CLOBBER_MASK")
-(CINT-G "GDK_GL_DAMAGED")
-(CINT-G "GDK_GL_SAVED")
-(CINT-G "GDK_GL_WINDOW")
-(CINT-G "GDK_GL_PBUFFER")
-(CINT-G "GDK_GL_FRONT_LEFT_BUFFER_BIT")
-(CINT-G "GDK_GL_FRONT_RIGHT_BUFFER_BIT")
-(CINT-G "GDK_GL_BACK_LEFT_BUFFER_BIT")
-(CINT-G "GDK_GL_BACK_RIGHT_BUFFER_BIT")
-(CINT-G "GDK_GL_AUX_BUFFERS_BIT")
-(CINT-G "GDK_GL_DEPTH_BUFFER_BIT")
-(CINT-G "GDK_GL_STENCIL_BUFFER_BIT")
-(CINT-G "GDK_GL_ACCUM_BUFFER_BIT")
-;;; removed 0.7.0 (CINT-G "GDK_GL_VENDOR")
-;;; (CINT-G "GDK_GL_VERSION")
-;;; (CINT-G "GDK_GL_EXTENSIONS")
-(CINT-G "GDK_GL_MODE_RGB")
-(CINT-G "GDK_GL_MODE_RGBA")
-(CINT-G "GDK_GL_MODE_INDEX")
-(CINT-G "GDK_GL_MODE_SINGLE")
-(CINT-G "GDK_GL_MODE_DOUBLE")
-(CINT-G "GDK_GL_MODE_ACCUM")
-(CINT-G "GDK_GL_MODE_ALPHA")
-(CINT-G "GDK_GL_MODE_DEPTH")
-(CINT-G "GDK_GL_MODE_STENCIL")
-(CINT-G "GDK_GL_MODE_STEREO")
-(CINT-G "GDK_GL_MODE_MULTISAMPLE")
-;;; removed 0.7.0 (CINT-G "GDK_GL_MODE_LUMINANCE")
-(CINT-G5 "GTKGLEXT_MAJOR_VERSION")
-(CINT-G5 "GTKGLEXT_MINOR_VERSION")
-(CINT-G5 "GTKGLEXT_MICRO_VERSION")
-(CINT-G5 "GTKGLEXT_INTERFACE_AGE")
-(CINT-G5 "GTKGLEXT_BINARY_AGE")
-
-(CFNC-G "gboolean gdk_gl_query_extension void")
-(CFNC-G "gboolean gdk_gl_query_version int* major int* minor")
-(CFNC-G "gboolean gdk_gl_query_gl_extension char* extension")
-(CFNC-G "GdkGLConfig* gdk_gl_config_new int* attrib_list")
-(CFNC-G "GdkGLConfig* gdk_gl_config_new_by_mode GdkGLConfigMode mode")
-(CFNC-G "gboolean gdk_gl_config_get_attrib GdkGLConfig* glconfig int attribute int* [value]")
-(CFNC-G "GdkColormap* gdk_gl_config_get_colormap GdkGLConfig* glconfig")
-(CFNC-G "GdkVisual* gdk_gl_config_get_visual GdkGLConfig* glconfig")
-(CFNC-G "gint gdk_gl_config_get_depth GdkGLConfig* glconfig")
-(CFNC-G "gboolean gdk_gl_config_is_rgba GdkGLConfig* glconfig")
-(CFNC-G "gboolean gdk_gl_config_is_double_buffered GdkGLConfig* glconfig")
-(CFNC-G "gboolean gdk_gl_config_is_stereo GdkGLConfig* glconfig")
-(CFNC-G "gboolean gdk_gl_config_has_alpha GdkGLConfig* glconfig")
-(CFNC-G "gboolean gdk_gl_config_has_depth_buffer GdkGLConfig* glconfig")
-(CFNC-G "gboolean gdk_gl_config_has_stencil_buffer GdkGLConfig* glconfig")
-(CFNC-G "gboolean gdk_gl_config_has_accum_buffer GdkGLConfig* glconfig")
-(CFNC-G "GdkGLDrawable* gdk_gl_context_get_gl_drawable GdkGLContext* glcontext")
-(CFNC-G "GdkGLConfig* gdk_gl_context_get_gl_config GdkGLContext* glcontext")
-(CFNC-G "GdkGLContext* gdk_gl_context_get_share_list GdkGLContext* glcontext")
-(CFNC-G "gboolean gdk_gl_context_is_direct GdkGLContext* glcontext")
-(CFNC-G "int gdk_gl_context_get_render_type GdkGLContext* glcontext")
-;;; removed 0.7.0 (CFNC-G "GdkColormap* gdk_gl_context_get_colormap GdkGLContext* glcontext")
-(CFNC-G "gboolean gdk_gl_drawable_make_current GdkGLDrawable* gldrawable GdkGLContext* glcontext")
-(CFNC-G "gboolean gdk_gl_drawable_is_double_buffered GdkGLDrawable* gldrawable")
-(CFNC-G "void gdk_gl_drawable_swap_buffers GdkGLDrawable* gldrawable")
-(CFNC-G "void gdk_gl_drawable_wait_gl GdkGLDrawable* gldrawable")
-(CFNC-G "void gdk_gl_drawable_wait_gdk GdkGLDrawable* gldrawable")
-(CFNC-G5 "gboolean gdk_gl_drawable_gl_begin GdkGLDrawable* gldrawable GdkGLContext* glcontext")
-(CFNC-G5 "void gdk_gl_drawable_gl_end GdkGLDrawable* gldrawable")
-(CFNC-G "GdkGLConfig* gdk_gl_drawable_get_gl_config GdkGLDrawable* gldrawable")
-(CFNC-G "void gdk_gl_drawable_get_size GdkGLDrawable* gldrawable gint* [width] gint* [height]")
-(CFNC-G "GdkGLPixmap* gdk_gl_pixmap_new GdkGLConfig* glconfig GdkPixmap* pixmap int* attrib_list")
-(CFNC-G "GdkPixmap* gdk_gl_pixmap_get_pixmap GdkGLPixmap* glpixmap")
-(CFNC-G "GdkGLPixmap* gdk_pixmap_set_gl_capability GdkPixmap* pixmap GdkGLConfig* glconfig int* attrib_list")
-(CFNC-G "void gdk_pixmap_unset_gl_capability GdkPixmap* pixmap")
-(CFNC-G "gboolean gdk_pixmap_is_gl_capable GdkPixmap* pixmap")
-(CFNC-G "GdkGLPixmap* gdk_pixmap_get_gl_pixmap GdkPixmap* pixmap")
-(CFNC-G "GdkGLWindow* gdk_gl_window_new GdkGLConfig* glconfig GdkWindow* window int* attrib_list")
-(CFNC-G "GdkWindow* gdk_gl_window_get_window GdkGLWindow* glwindow")
-(CFNC-G "GdkGLWindow* gdk_window_set_gl_capability GdkWindow* window GdkGLConfig* glconfig int* attrib_list")
-(CFNC-G "void gdk_window_unset_gl_capability GdkWindow* window")
-(CFNC-G "gboolean gdk_window_is_gl_capable GdkWindow* window")
-(CFNC-G "GdkGLWindow* gdk_window_get_gl_window GdkWindow* window")
-(CFNC-G "PangoFont* gdk_gl_font_use_pango_font PangoFontDescription* font_desc int first int count int list_base")
-(CFNC-G "gboolean gtk_widget_set_gl_capability GtkWidget* widget GdkGLConfig* glconfig GdkGLContext* share_list gboolean direct int render_type")
-(CFNC-G "gboolean gtk_widget_is_gl_capable GtkWidget* widget")
-(CFNC-G "GdkGLConfig* gtk_widget_get_gl_config GtkWidget* widget")
-(CFNC-G "GdkGLContext* gtk_widget_get_gl_context GtkWidget* widget")
-(CFNC-G "GdkGLWindow* gtk_widget_get_gl_window GtkWidget* widget")
-|#
diff --git a/tools/index.cl b/tools/index.cl
index e4250dc..546de7f 100644
--- a/tools/index.cl
+++ b/tools/index.cl
@@ -1,11 +1,11 @@
;;; index -- read clm.html (or whatever) and make a column-ized index
;;; html-check -- look for dangling hrefs
-;;; (index '("clm.html") "test.html" 5 '("XmHTML" "AIFF" "NeXT" "Sun" "RIFF" "IRCAM" "FIR" "IIR" "Hilbert" "AIFC") nil nil t)
+;;; (index '("clm.html") "test.html" 5 '("AIFF" "NeXT" "Sun" "RIFF" "IRCAM" "FIR" "IIR" "Hilbert" "AIFC") nil nil t)
;;; (index '("cmn.html") "test.html" 4 nil nil nil t)
-;;; (index '("extsnd.html" "grfsnd.html" "sndscm.html" "sndlib.html" "sndclm.html" "s7.html") "test.html" 5 '("XmHTML" "AIFF" "NeXT" "Sun" "RIFF" "IRCAM" "FIR" "IIR" "Hilbert" "AIFC") t t)
+;;; (index '("extsnd.html" "grfsnd.html" "sndscm.html" "sndlib.html" "sndclm.html" "s7.html") "test.html" 5 '("AIFF" "NeXT" "Sun" "RIFF" "IRCAM" "FIR" "IIR" "Hilbert" "AIFC") t t)
;;; use (make-index)
;;; for snd.html table, see snd-index.cl (snd-index "test.html")
@@ -29,12 +29,13 @@
(defvar xrefs nil)
(defvar topics nil)
-(setf names (make-array 2048 :initial-element nil))
-(setf files (make-array 2048 :initial-element nil))
-(setf generals (make-array 1024))
-(setf xrefs (make-array 1024))
-(setf gfiles (make-array 1024 :initial-element nil))
-(setf topics (make-array 2048 :initial-element nil))
+(defvar array-length 4096)
+(setf names (make-array array-length :initial-element nil))
+(setf files (make-array array-length :initial-element nil))
+(setf generals (make-array array-length))
+(setf xrefs (make-array array-length))
+(setf gfiles (make-array array-length :initial-element nil))
+(setf topics (make-array array-length :initial-element nil))
(defstruct ind name sortby topic file general indexed)
@@ -339,11 +340,11 @@
(current-general 0)
(got-tr nil)
(topic nil))
- (dotimes (i 2048)
+ (dotimes (i array-length)
(setf (aref names i) nil)
(setf (aref files i) nil)
(setf (aref topics i) nil))
- (dotimes (i 1024)
+ (dotimes (i array-length)
(setf (aref gfiles i) nil)
(setf (aref generals i) nil))
(loop for file in file-names and file-ctr from 0 do
@@ -543,7 +544,7 @@
(setf help-urls (reverse help-urls))
(let ((len (length help-names)))
(format sfil "#define HELP_NAMES_SIZE ~D~%" len)
- (format sfil "#if HAVE_SCHEME || HAVE_FORTH || HAVE_CL~%")
+ (format sfil "#if HAVE_SCHEME || HAVE_FORTH~%")
(format sfil "static const char *help_names[HELP_NAMES_SIZE] = {~% ")
(format sfil "~S" (car help-names))
(loop for ctr from 1 and name in (cdr help-names) do
@@ -635,7 +636,12 @@
(progn
(warn "~A[~D]: nested <!--?" file linectr)
(decf comments)))
- (setf in-comment t))))
+ (setf in-comment t)))
+ (if (and (not in-comment)
+ (< i (- len 1))
+ (char= (elt line (+ i 1)) #\space))
+ (warn "~A[~D]: '< ' in ~A?" file linectr line))
+ )
(if (char= c #\>)
(progn
(decf openctr)
@@ -652,7 +658,15 @@
(if (and (not (= openctr 0))
(not (> p-quotes 0)))
(if (not in-comment) (warn "~A[~D]: ~A has unmatched >?" file linectr line))))
- (setf openctr 0))
+ (setf openctr 0)
+ (if (and (not in-comment)
+ (>= i 2)
+ (char= (elt line (- i 1)) #\-)
+ (not (char= (elt line (- i 2)) #\-))
+ (< i (- len 1))
+ (alphanumericp (elt line (+ i 1))))
+ (warn "~A[~D]: untranslated '>': ~A" file linectr line))
+ )
(if (char= c #\&)
(if (and (not in-comment)
(not (string-equal "&gt;" (my-subseq line i (+ i 4))))
@@ -955,7 +969,7 @@
(defun make-index ()
(check-all)
(index '("snd.html" "extsnd.html" "grfsnd.html" "sndscm.html" "sndlib.html" "sndclm.html" "fm.html" "quick.html" "s7.html")
- "test.html" 5 '("XmHTML" "AIFF" "NeXT" "Sun" "RIFF" "IRCAM" "FIR" "IIR" "Hilbert" "AIFC") t t))
+ "test.html" 5 '("AIFF" "NeXT" "Sun" "RIFF" "IRCAM" "FIR" "IIR" "Hilbert" "AIFC") t t))
(defun check-names ()
diff --git a/tools/makegl.scm b/tools/makegl.scm
index 4318b7e..117724a 100644..100755
--- a/tools/makegl.scm
+++ b/tools/makegl.scm
@@ -1,19 +1,5 @@
;;; makegl.scm creates the GL/GLU bindings using gldata.scm, writes gl.c
-;;; TODO: the 3 modules gl.c, xm.c, and xg.c have to agree with each other and with Snd
-;;; about whether something is a pointer (e.g. XtPointer) or a ulong (e.g. XID).
-;;; this choice needs to be made global or less prone to oversights.
-
-;(use-modules (ice-9 debug))
-;(use-modules (ice-9 format))
-;(use-modules (ice-9 optargs))
-;(use-modules (ice-9 common-list))
-
-;(debug-enable 'debug)
-;(debug-enable 'backtrace)
-;(read-enable 'positions)
-;(read-set! keywords 'prefix)
-
(define gl-file (open-output-file "gl.c"))
(define (hey . args)
@@ -407,54 +393,6 @@
(set! x-ints (cons name x-ints))
(set! names (cons (cons name 'int) names)))))
-
-
-;;; gtkglext bindings removed 17-Oct-08
-#|
-(define* (CFNC-G data :optional spec spec-name)
- (let ((name (cadr-str data))
- (args (caddr-str data)))
- (if (assoc name names)
- (display (format #f "~A CFNC-G~%" name))
- (let ((type (car-str data)))
- (if (not (member type g-types))
- (set! g-types (cons type g-types)))
- (let ((strs (parse-args args 'g)))
- (if spec
- (set! g-funcs (cons (list name type strs args spec spec-name) g-funcs))
- (set! g-funcs (cons (list name type strs args) g-funcs)))
- (set! names (cons (cons name 'fnc) names)))))))
-
-(define* (CFNC-G5 data :optional spec spec-name)
- (let ((name (cadr-str data))
- (args (caddr-str data)))
- (if (assoc name names)
- (display (format #f "~A CFNC-G5~%" name))
- (let ((type (car-str data)))
- (if (not (member type g-types))
- (set! g-types (cons type g-types)))
- (let ((strs (parse-args args 'g)))
- (if spec
- (set! g5-funcs (cons (list name type strs args spec spec-name) g5-funcs))
- (set! g5-funcs (cons (list name type strs args) g5-funcs)))
- (set! names (cons (cons name 'fnc) names)))))))
-
-(define* (CINT-G name :optional type)
- (if (assoc name names)
- (display (format #f "~A CINT-G~%" name))
- (begin
- (set! g-ints (cons name g-ints))
- (set! names (cons (cons name 'int) names)))))
-
-(define* (CINT-G5 name :optional type)
- (if (assoc name names)
- (display (format #f "~A CINT-G5~%" name))
- (begin
- (set! g5-ints (cons name g5-ints))
- (set! names (cons (cons name 'int) names)))))
-|#
-
-
(define (no-arg name)
(let ((len (string-length name)))
(call-with-exit
@@ -499,10 +437,6 @@
(hey "#if HAVE_EXTENSION_LANGUAGE~%")
-;(hey "#if USE_GTK~%")
-;(hey " #include <gtk/gtkgl.h>~%")
-;(hey "#endif~%")
-
(hey "#include <GL/gl.h>~%")
(hey "#if HAVE_GLU~%")
(hey " #include <GL/glu.h>~%")
@@ -827,13 +761,6 @@
(for-each handle-func (reverse x-funcs))
(hey "#endif~%")
-;(hey "#if USE_GTK~%")
-;(for-each handle-func (reverse g-funcs))
-;(hey "#ifdef GTKGLEXT_MAJOR_VERSION~%")
-;(for-each handle-func (reverse g5-funcs))
-;(hey "#endif~%")
-;(hey "#endif~%~%")
-
(for-each handle-func (reverse funcs))
(uncheck-glu)
@@ -866,13 +793,6 @@
(for-each argify-func (reverse x-funcs))
(hey "#endif~%")
-;(hey "#if USE_GTK~%")
-;(for-each argify-func (reverse g-funcs))
-;(hey "#ifdef GTKGLEXT_MAJOR_VERSION~%")
-;(for-each argify-func (reverse g5-funcs))
-;(hey "#endif~%")
-;(hey "#endif~%~%")
-
(for-each argify-func (reverse funcs))
(uncheck-glu)
@@ -901,13 +821,6 @@
(for-each unargify-func (reverse x-funcs))
(hey "#endif~%")
-;(hey "#if USE_GTK~%")
-;(for-each unargify-func (reverse g-funcs))
-;(hey "#ifdef GTKGLEXT_MAJOR_VERSION~%")
-;(for-each unargify-func (reverse g5-funcs))
-;(hey "#endif~%")
-;(hey "#endif~%~%")
-
(for-each unargify-func (reverse funcs))
(uncheck-glu)
@@ -940,13 +853,6 @@
(for-each defun (reverse x-funcs))
(hey "#endif~%")
-;(hey "#if USE_GTK~%")
-;(for-each defun (reverse g-funcs))
-;(hey "#ifdef GTKGLEXT_MAJOR_VERSION~%")
-;(for-each defun (reverse g5-funcs))
-;(hey "#endif~%")
-;(hey "#endif~%")
-
(for-each defun (reverse funcs))
(uncheck-glu)
@@ -970,19 +876,6 @@
(reverse x-ints))
(hey "#endif~%")
-;(hey "#if USE_GTK~%")
-;(for-each
-; (lambda (val)
-; (hey " DEFINE_INTEGER(~A);~%" val))
-; (reverse g-ints))
-;(hey "#ifdef GTKGLEXT_MAJOR_VERSION~%")
-;(for-each
-; (lambda (val)
-; (hey " DEFINE_INTEGER(~A);~%" val))
-; (reverse g5-ints))
-;(hey "#endif~%")
-;(hey "#endif~%")
-
(for-each
(lambda (val)
diff --git a/tools/makexg.scm b/tools/makexg.scm
index 6c52f1f..a9e42c0 100644..100755
--- a/tools/makexg.scm
+++ b/tools/makexg.scm
@@ -1,15 +1,5 @@
;;; makexg.scm creates the gtk2/gdk/pango/glib/cairo bindings using xgdata.scm, writes xg.c
-;(use-modules (ice-9 debug))
-;(use-modules (ice-9 format))
-;(use-modules (ice-9 optargs))
-;(use-modules (ice-9 common-list))
-
-;(debug-enable 'debug)
-;(debug-enable 'backtrace)
-;(read-enable 'positions)
-;(read-set! keywords 'prefix)
-
(define xg-file (open-output-file "xg.c"))
(define (hey . args)
@@ -161,6 +151,12 @@
(define names-2177 '())
(define types-2177 '())
+(define funcs-2190 '())
+(define casts-2190 '())
+(define checks-2190 '())
+(define names-2190 '())
+(define types-2190 '())
+
(define cairo-funcs '())
(define cairo-png-funcs '())
(define cairo-ints '())
@@ -239,6 +235,7 @@
"GdkDragAction" "GdkImageType"
"gdouble*" "GdkFill" "GdkSubwindowMode" "GdkLineStyle" "GdkCapStyle" "GdkJoinStyle"
+ "GtkInfoBar*" "GtkSpinner*"
))
(define no-xen-p
@@ -460,56 +457,28 @@
(if (not (member type all-types))
(begin
(set! all-types (cons type all-types))
- (if (equal? extra '21)
- (set! types-21 (cons type types-21))
- (if (equal? extra '22)
- (set! types-22 (cons type types-22))
- (if (or (equal? extra '23)
- (equal? extra 'callback-23))
- (set! types-23 (cons type types-23))
- (if (equal? extra '236)
- (set! types-236 (cons type types-236))
- (if (or (equal? extra '250)
- (equal? extra 'callback-250))
- (set! types-250 (cons type types-250))
- (if (or (equal? extra '256)
- (equal? extra 'callback-256))
- (set! types-256 (cons type types-256))
- (if (equal? extra '260)
- (set! types-260 (cons type types-260))
- (if (equal? extra '270)
- (set! types-270 (cons type types-270))
- (if (or (equal? extra 'callback-290)
- (equal? extra '290))
- (set! types-290 (cons type types-290))
- (if (or (equal? extra 'callback-210)
- (equal? extra '210))
- (set! types-210 (cons type types-210))
- (if (or (equal? extra 'callback-211)
- (equal? extra '211))
- (set! types-211 (cons type types-211))
- (if (or (equal? extra 'callback-213)
- (equal? extra '213))
- (set! types-213 (cons type types-213))
- (if (or (equal? extra 'callback-2134)
- (equal? extra '2134))
- (set! types-2134 (cons type types-2134))
- (if (or (equal? extra 'callback-2150)
- (equal? extra '2150))
- (set! types-2150 (cons type types-2150))
- (if (or (equal? extra 'callback-2172)
- (equal? extra '2172))
- (set! types-2172 (cons type types-2172))
- (if (or (equal? extra 'callback-2173)
- (equal? extra '2173))
- (set! types-2173 (cons type types-2173))
- (if (or (equal? extra 'callback-2177)
- (equal? extra '2177))
- (set! types-2177 (cons type types-2177))
- (if (equal? extra 'cairo)
- (set! cairo-types (cons type cairo-types))
- (if (not (member type types))
- (set! types (cons type types)))))))))))))))))))))))
+ (case extra
+ ((21) (set! types-21 (cons type types-21)))
+ ((22) (set! types-22 (cons type types-22)))
+ ((23 callback-23) (set! types-23 (cons type types-23)))
+ ((236) (set! types-236 (cons type types-236)))
+ ((250 callback-250) (set! types-250 (cons type types-250)))
+ ((256 callback-256) (set! types-256 (cons type types-256)))
+ ((260) (set! types-260 (cons type types-260)))
+ ((270) (set! types-270 (cons type types-270)))
+ ((290 callback-290) (set! types-290 (cons type types-290)))
+ ((210 callback-210) (set! types-210 (cons type types-210)))
+ ((211 callback-211) (set! types-211 (cons type types-211)))
+ ((213 callback-213) (set! types-213 (cons type types-213)))
+ ((2134 callback-2134) (set! types-2134 (cons type types-2134)))
+ ((2150 callback-2150) (set! types-2150 (cons type types-2150)))
+ ((2172 callback-2172) (set! types-2172 (cons type types-2172)))
+ ((2173 callback-2173) (set! types-2173 (cons type types-2173)))
+ ((2177 callback-2177) (set! types-2177 (cons type types-2177)))
+ ((2190) (set! types-2190 (cons type types-2190)))
+ ((cairo) (set! cairo-types (cons type cairo-types)))
+ (else (if (not (member type types))
+ (set! types (cons type types)))))))
(set! type #f))
(if (> i (+ 1 sp))
(set! type (substring args (+ 1 sp) i))))
@@ -1366,6 +1335,22 @@
(set! funcs-2177 (cons (list name type strs args) funcs-2177)))
(set! names (cons (cons name (func-type strs)) names)))))))
+(define* (CFNC-2190 data :optional spec)
+ (let ((name (cadr-str data))
+ (args (caddr-str data)))
+ (if (assoc name names)
+ (no-way "CFNC-2190: ~A~%" (list name data))
+ (let ((type (car-str data)))
+ (if (not (member type all-types))
+ (begin
+ (set! all-types (cons type all-types))
+ (set! types-2190 (cons type types-2190))))
+ (let ((strs (parse-args args '2190)))
+ (if spec
+ (set! funcs-2190 (cons (list name type strs args spec) funcs-2190))
+ (set! funcs-2190 (cons (list name type strs args) funcs-2190)))
+ (set! names (cons (cons name (func-type strs)) names)))))))
+
(define* (CAIRO-FUNC data :optional spec)
(let ((name (cadr-str data))
(args (caddr-str data)))
@@ -1851,6 +1836,13 @@
(set! casts-2173 (cons (list name type) casts-2173))
(set! names (cons (cons name 'def) names)))))
+(define (CCAST-2190 name type)
+ (if (assoc name names)
+ (no-way "~A CCAST-2190~%" name)
+ (begin
+ (set! casts-2190 (cons (list name type) casts-2190))
+ (set! names (cons (cons name 'def) names)))))
+
(define (CCHK name type)
(if (assoc name names)
(no-way "~A CCHK~%" name)
@@ -1928,6 +1920,13 @@
(set! checks-2173 (cons (list name type) checks-2173))
(set! names (cons (cons name 'def) names)))))
+(define (CCHK-2190 name type)
+ (if (assoc name names)
+ (no-way "~A CCHK-2190~%" name)
+ (begin
+ (set! checks-2190 (cons (list name type) checks-2190))
+ (set! names (cons (cons name 'def) names)))))
+
(define (STRUCT data)
(let ((name (car-str data)) ; struct name (type)
@@ -2087,6 +2086,11 @@
(thunk)
(dpy "#endif~%~%"))
+(define (with-2190 dpy thunk)
+ (dpy "#if HAVE_GTK_SPINNER_NEW~%")
+ (thunk)
+ (dpy "#endif~%~%"))
+
(define (with-cairo dpy thunk)
(dpy "#if HAVE_CAIRO_CREATE~%")
@@ -2133,6 +2137,9 @@
(hey " * HAVE_GTK_ADJUSTMENT_GET_UPPER for 2.13.4..6~%")
(hey " * HAVE_GTK_SCALE_ADD_MARK for 2.15.0~%")
(hey " * HAVE_GTK_INFO_BAR_NEW for 2.17.2~%")
+(hey " * HAVE_GTK_STATUS_ICON_GET_TITLE for 2.17.3~%")
+(hey " * HAVE_GTK_WIDGET_GET_VISIBLE for 2.17.7~%")
+(hey " * HAVE_GTK_SPINNER_NEW for 2.19.0~%")
(hey " * HAVE_CAIRO_CREATE for cairo~%")
(hey " * HAVE_CAIRO_GET_USER_DATA for cairo 1.4.0~%")
(hey " * HAVE_CAIRO_FORMAT_STRIDE_FOR_WIDTH for cairo 1.6.4~%")
@@ -2451,27 +2458,18 @@
(hey "~%~%/* ---------------------------------------- types ---------------------------------------- */~%~%")
(for-each type-it (reverse types))
+(for-each
+ (lambda (type-list with-func)
+ (if (not (null? type-list))
+ (with-func hey (lambda ()
+ (for-each type-it (reverse type-list))))))
+ (list types-21 types-22 types-23 types-236 types-250 types-256 types-260 types-270 types-290
+ types-210 types-211 types-213 types-2134 types-2150 types-2172 types-2173 types-2177 types-2190
+ cairo-types cairo-types-140 cairo-types-164)
+ (list with-21 with-22 with-23 with-236 with-250 with-256 with-260 with-270 with-290
+ with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2177 with-2190
+ with-cairo with-cairo-140 with-cairo-164))
-(if (not (null? types-21)) (with-21 hey (lambda () (for-each type-it (reverse types-21)))))
-(if (not (null? types-22)) (with-22 hey (lambda () (for-each type-it (reverse types-22)))))
-(if (not (null? types-23)) (with-23 hey (lambda () (for-each type-it (reverse types-23)))))
-(if (not (null? types-236)) (with-236 hey (lambda () (for-each type-it (reverse types-236)))))
-(if (not (null? types-250)) (with-250 hey (lambda () (for-each type-it (reverse types-250)))))
-(if (not (null? types-256)) (with-256 hey (lambda () (for-each type-it (reverse types-256)))))
-(if (not (null? types-260)) (with-260 hey (lambda () (for-each type-it (reverse types-260)))))
-(if (not (null? types-270)) (with-270 hey (lambda () (for-each type-it (reverse types-270)))))
-(if (not (null? types-290)) (with-290 hey (lambda () (for-each type-it (reverse types-290)))))
-(if (not (null? types-210)) (with-210 hey (lambda () (for-each type-it (reverse types-210)))))
-(if (not (null? types-211)) (with-211 hey (lambda () (for-each type-it (reverse types-211)))))
-(if (not (null? types-213)) (with-213 hey (lambda () (for-each type-it (reverse types-213)))))
-(if (not (null? types-2134)) (with-2134 hey (lambda () (for-each type-it (reverse types-2134)))))
-(if (not (null? types-2150)) (with-2150 hey (lambda () (for-each type-it (reverse types-2150)))))
-(if (not (null? types-2172)) (with-2172 hey (lambda () (for-each type-it (reverse types-2172)))))
-(if (not (null? types-2173)) (with-2173 hey (lambda () (for-each type-it (reverse types-2173)))))
-(if (not (null? types-2177)) (with-2177 hey (lambda () (for-each type-it (reverse types-2177)))))
-(if (not (null? cairo-types)) (with-cairo hey (lambda () (for-each type-it (reverse cairo-types)))))
-(if (not (null? cairo-types-140)) (with-cairo-140 hey (lambda () (for-each type-it (reverse cairo-types-140)))))
-(if (not (null? cairo-types-164)) (with-cairo-164 hey (lambda () (for-each type-it (reverse cairo-types-164)))))
(hey "#define XLS(a, b) XEN_TO_C_gchar_(XEN_LIST_REF(a, b))~%")
(hey "#define XLI(a, b) ((int)XEN_TO_C_INT(XEN_LIST_REF(a, b)))~%")
@@ -3094,28 +3092,17 @@
(for-each handle-func (reverse funcs))
-(if (not (null? funcs-21)) (with-21 hey (lambda () (for-each handle-func (reverse funcs-21)))))
-(if (not (null? funcs-22)) (with-22 hey (lambda () (for-each handle-func (reverse funcs-22)))))
-(if (not (null? funcs-23)) (with-23 hey (lambda () (for-each handle-func (reverse funcs-23)))))
-(if (not (null? funcs-236)) (with-236 hey (lambda () (for-each handle-func (reverse funcs-236)))))
-(if (not (null? funcs-250)) (with-250 hey (lambda () (for-each handle-func (reverse funcs-250)))))
-(if (not (null? funcs-256)) (with-256 hey (lambda () (for-each handle-func (reverse funcs-256)))))
-(if (not (null? funcs-260)) (with-260 hey (lambda () (for-each handle-func (reverse funcs-260)))))
-(if (not (null? funcs-270)) (with-270 hey (lambda () (for-each handle-func (reverse funcs-270)))))
-(if (not (null? funcs-273)) (with-273 hey (lambda () (for-each handle-func (reverse funcs-273)))))
-(if (not (null? funcs-290)) (with-290 hey (lambda () (for-each handle-func (reverse funcs-290)))))
-(if (not (null? funcs-210)) (with-210 hey (lambda () (for-each handle-func (reverse funcs-210)))))
-(if (not (null? funcs-211)) (with-211 hey (lambda () (for-each handle-func (reverse funcs-211)))))
-(if (not (null? funcs-213)) (with-213 hey (lambda () (for-each handle-func (reverse funcs-213)))))
-(if (not (null? funcs-2134)) (with-2134 hey (lambda () (for-each handle-func (reverse funcs-2134)))))
-(if (not (null? funcs-2150)) (with-2150 hey (lambda () (for-each handle-func (reverse funcs-2150)))))
-(if (not (null? funcs-2172)) (with-2172 hey (lambda () (for-each handle-func (reverse funcs-2172)))))
-(if (not (null? funcs-2173)) (with-2173 hey (lambda () (for-each handle-func (reverse funcs-2173)))))
-(if (not (null? funcs-2177)) (with-2177 hey (lambda () (for-each handle-func (reverse funcs-2177)))))
-(if (not (null? cairo-funcs)) (with-cairo hey (lambda () (for-each handle-func (reverse cairo-funcs)))))
-(if (not (null? cairo-png-funcs)) (with-cairo-png hey (lambda () (for-each handle-func (reverse cairo-png-funcs)))))
-(if (not (null? cairo-funcs-140)) (with-cairo-140 hey (lambda () (for-each handle-func (reverse cairo-funcs-140)))))
-(if (not (null? cairo-funcs-164)) (with-cairo-164 hey (lambda () (for-each handle-func (reverse cairo-funcs-164)))))
+(for-each
+ (lambda (func-list with-func)
+ (if (not (null? func-list))
+ (with-func hey (lambda ()
+ (for-each handle-func (reverse func-list))))))
+ (list funcs-21 funcs-22 funcs-23 funcs-236 funcs-250 funcs-256 funcs-260 funcs-270 funcs-273 funcs-290
+ funcs-210 funcs-211 funcs-213 funcs-2134 funcs-2150 funcs-2172 funcs-2173 funcs-2177 funcs-2190
+ cairo-funcs cairo-png-funcs cairo-funcs-140 cairo-funcs-164)
+ (list with-21 with-22 with-23 with-236 with-250 with-256 with-260 with-270 with-273 with-290
+ with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2177 with-2190
+ with-cairo with-cairo-png with-cairo-140 with-cairo-164))
(hey "#define WRAPPED_OBJECT_P(Obj) (XEN_LIST_P(Obj) && (XEN_LIST_LENGTH(Obj) >= 2) && (XEN_SYMBOL_P(XEN_CAR(Obj))))~%~%")
@@ -3131,19 +3118,13 @@
(hey " {return(XEN_LIST_2(C_STRING_TO_XEN_SYMBOL(\"gpointer\"), (WRAPPED_OBJECT_P(obj)) ? XEN_CADR(obj) : XEN_WRAP_C_POINTER(obj)));}~%")
(for-each cast-it (reverse casts))
-(if (not (null? casts-21)) (with-21 hey (lambda () (for-each cast-it (reverse casts-21)))))
-(if (not (null? casts-23)) (with-23 hey (lambda () (for-each cast-it (reverse casts-23)))))
-(if (not (null? casts-236)) (with-236 hey (lambda () (for-each cast-it (reverse casts-236)))))
-(if (not (null? casts-250)) (with-250 hey (lambda () (for-each cast-it (reverse casts-250)))))
-(if (not (null? casts-256)) (with-256 hey (lambda () (for-each cast-it (reverse casts-256)))))
-(if (not (null? casts-290)) (with-290 hey (lambda () (for-each cast-it (reverse casts-290)))))
-(if (not (null? casts-210)) (with-210 hey (lambda () (for-each cast-it (reverse casts-210)))))
-(if (not (null? casts-211)) (with-211 hey (lambda () (for-each cast-it (reverse casts-211)))))
-(if (not (null? casts-213)) (with-213 hey (lambda () (for-each cast-it (reverse casts-213)))))
-(if (not (null? casts-2134)) (with-2134 hey (lambda () (for-each cast-it (reverse casts-2134)))))
-(if (not (null? casts-2150)) (with-2150 hey (lambda () (for-each cast-it (reverse casts-2150)))))
-(if (not (null? casts-2172)) (with-2172 hey (lambda () (for-each cast-it (reverse casts-2172)))))
-(if (not (null? casts-2173)) (with-2173 hey (lambda () (for-each cast-it (reverse casts-2173)))))
+(for-each
+ (lambda (cast-list cast-func)
+ (if (not (null? cast-list))
+ (cast-func hey (lambda ()
+ (for-each cast-it (reverse cast-list))))))
+ (list casts-21 casts-23 casts-236 casts-250 casts-256 casts-290 casts-210 casts-211 casts-213 casts-2134 casts-2150 casts-2172 casts-2173 casts-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
;;; checks have to use the built-in macros, not local symbol-based type checks
@@ -3152,20 +3133,13 @@
(hey " {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && ~A((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}~%" (no-arg (car func))))
(for-each make-check (reverse checks))
-(if (not (null? checks-21)) (with-21 hey (lambda () (for-each make-check (reverse checks-21)))))
-(if (not (null? checks-23)) (with-23 hey (lambda () (for-each make-check (reverse checks-23)))))
-(if (not (null? checks-236)) (with-236 hey (lambda () (for-each make-check (reverse checks-236)))))
-(if (not (null? checks-250)) (with-250 hey (lambda () (for-each make-check (reverse checks-250)))))
-(if (not (null? checks-256)) (with-256 hey (lambda () (for-each make-check (reverse checks-256)))))
-(if (not (null? checks-290)) (with-290 hey (lambda () (for-each make-check (reverse checks-290)))))
-(if (not (null? checks-210)) (with-210 hey (lambda () (for-each make-check (reverse checks-210)))))
-(if (not (null? checks-211)) (with-211 hey (lambda () (for-each make-check (reverse checks-211)))))
-(if (not (null? checks-213)) (with-213 hey (lambda () (for-each make-check (reverse checks-213)))))
-(if (not (null? checks-2134)) (with-2134 hey (lambda () (for-each make-check (reverse checks-2134)))))
-(if (not (null? checks-2150)) (with-2150 hey (lambda () (for-each make-check (reverse checks-2150)))))
-(if (not (null? checks-2172)) (with-2172 hey (lambda () (for-each make-check (reverse checks-2172)))))
-(if (not (null? checks-2173)) (with-2173 hey (lambda () (for-each make-check (reverse checks-2173)))))
-
+(for-each
+ (lambda (check-list check-func)
+ (if (not (null? check-list))
+ (check-func hey (lambda ()
+ (for-each make-check (reverse check-list))))))
+ (list checks-21 checks-23 checks-236 checks-250 checks-256 checks-290 checks-210 checks-211 checks-213 checks-2134 checks-2150 checks-2172 checks-2173 checks-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
(hey "~%~%/* ---------------------------------------- special functions ---------------------------------------- */~%~%")
@@ -3472,29 +3446,20 @@
(car func) (car func))))
(hey "~%#ifdef XEN_ARGIFY_1~%")
+
(for-each argify-func (reverse funcs))
-(if (not (null? funcs-21)) (with-21 hey (lambda () (for-each argify-func (reverse funcs-21)))))
-(if (not (null? funcs-22)) (with-22 hey (lambda () (for-each argify-func (reverse funcs-22)))))
-(if (not (null? funcs-23)) (with-23 hey (lambda () (for-each argify-func (reverse funcs-23)))))
-(if (not (null? funcs-236)) (with-236 hey (lambda () (for-each argify-func (reverse funcs-236)))))
-(if (not (null? funcs-250)) (with-250 hey (lambda () (for-each argify-func (reverse funcs-250)))))
-(if (not (null? funcs-256)) (with-256 hey (lambda () (for-each argify-func (reverse funcs-256)))))
-(if (not (null? funcs-260)) (with-260 hey (lambda () (for-each argify-func (reverse funcs-260)))))
-(if (not (null? funcs-270)) (with-270 hey (lambda () (for-each argify-func (reverse funcs-270)))))
-(if (not (null? funcs-273)) (with-273 hey (lambda () (for-each argify-func (reverse funcs-273)))))
-(if (not (null? funcs-290)) (with-290 hey (lambda () (for-each argify-func (reverse funcs-290)))))
-(if (not (null? funcs-210)) (with-210 hey (lambda () (for-each argify-func (reverse funcs-210)))))
-(if (not (null? funcs-211)) (with-211 hey (lambda () (for-each argify-func (reverse funcs-211)))))
-(if (not (null? funcs-213)) (with-213 hey (lambda () (for-each argify-func (reverse funcs-213)))))
-(if (not (null? funcs-2134)) (with-2134 hey (lambda () (for-each argify-func (reverse funcs-2134)))))
-(if (not (null? funcs-2150)) (with-2150 hey (lambda () (for-each argify-func (reverse funcs-2150)))))
-(if (not (null? funcs-2172)) (with-2172 hey (lambda () (for-each argify-func (reverse funcs-2172)))))
-(if (not (null? funcs-2173)) (with-2173 hey (lambda () (for-each argify-func (reverse funcs-2173)))))
-(if (not (null? funcs-2177)) (with-2177 hey (lambda () (for-each argify-func (reverse funcs-2177)))))
-(if (not (null? cairo-funcs)) (with-cairo hey (lambda () (for-each argify-func (reverse cairo-funcs)))))
-(if (not (null? cairo-png-funcs)) (with-cairo-png hey (lambda () (for-each argify-func (reverse cairo-png-funcs)))))
-(if (not (null? cairo-funcs-140)) (with-cairo-140 hey (lambda () (for-each argify-func (reverse cairo-funcs-140)))))
-(if (not (null? cairo-funcs-164)) (with-cairo-164 hey (lambda () (for-each argify-func (reverse cairo-funcs-164)))))
+(for-each
+ (lambda (func-list with-func)
+ (if (not (null? func-list))
+ (with-func hey (lambda ()
+ (for-each argify-func (reverse func-list))))))
+ (list funcs-21 funcs-22 funcs-23 funcs-236 funcs-250 funcs-256 funcs-260 funcs-270 funcs-273 funcs-290
+ funcs-210 funcs-211 funcs-213 funcs-2134 funcs-2150 funcs-2172 funcs-2173 funcs-2177 funcs-2190
+ cairo-funcs cairo-png-funcs cairo-funcs-140 cairo-funcs-164)
+ (list with-21 with-22 with-23 with-236 with-250 with-256 with-260 with-270 with-273 with-290
+ with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2177 with-2190
+ with-cairo with-cairo-png with-cairo-140 with-cairo-164))
+
(define (ruby-cast func) (hey "XEN_NARGIFY_1(gxg_~A_w, gxg_~A)~%" (no-arg (car func)) (no-arg (car func))))
(hey "XEN_NARGIFY_1(gxg_GPOINTER_w, gxg_GPOINTER)~%")
@@ -3507,36 +3472,25 @@
(hey "XEN_NARGIFY_3(xg_object_get_w, xg_object_get);~%")
(define (ruby-cast func) (hey "XEN_NARGIFY_1(gxg_~A_w, gxg_~A)~%" (no-arg (car func)) (no-arg (car func))))
+
(for-each ruby-cast (reverse casts))
-(if (not (null? casts-21)) (with-21 hey (lambda () (for-each ruby-cast (reverse casts-21)))))
-(if (not (null? casts-23)) (with-23 hey (lambda () (for-each ruby-cast (reverse casts-23)))))
-(if (not (null? casts-236)) (with-236 hey (lambda () (for-each ruby-cast (reverse casts-236)))))
-(if (not (null? casts-250)) (with-250 hey (lambda () (for-each ruby-cast (reverse casts-250)))))
-(if (not (null? casts-256)) (with-256 hey (lambda () (for-each ruby-cast (reverse casts-256)))))
-(if (not (null? casts-290)) (with-290 hey (lambda () (for-each ruby-cast (reverse casts-290)))))
-(if (not (null? casts-210)) (with-210 hey (lambda () (for-each ruby-cast (reverse casts-210)))))
-(if (not (null? casts-211)) (with-211 hey (lambda () (for-each ruby-cast (reverse casts-211)))))
-(if (not (null? casts-213)) (with-213 hey (lambda () (for-each ruby-cast (reverse casts-213)))))
-(if (not (null? casts-2134)) (with-2134 hey (lambda () (for-each ruby-cast (reverse casts-2134)))))
-(if (not (null? casts-2150)) (with-2150 hey (lambda () (for-each ruby-cast (reverse casts-2150)))))
-(if (not (null? casts-2172)) (with-2172 hey (lambda () (for-each ruby-cast (reverse casts-2172)))))
-(if (not (null? casts-2173)) (with-2173 hey (lambda () (for-each ruby-cast (reverse casts-2173)))))
+(for-each
+ (lambda (cast-list cast-func)
+ (if (not (null? cast-list))
+ (cast-func hey (lambda ()
+ (for-each ruby-cast (reverse cast-list))))))
+ (list casts-21 casts-23 casts-236 casts-250 casts-256 casts-290 casts-210 casts-211 casts-213 casts-2134 casts-2150 casts-2172 casts-2173 casts-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
(define (ruby-check func) (hey "XEN_NARGIFY_1(gxg_~A_w, gxg_~A)~%" (no-arg (car func)) (no-arg (car func))))
(for-each ruby-check (reverse checks))
-(if (not (null? checks-21)) (with-21 hey (lambda () (for-each ruby-check (reverse checks-21)))))
-(if (not (null? checks-23)) (with-23 hey (lambda () (for-each ruby-check (reverse checks-23)))))
-(if (not (null? checks-236)) (with-236 hey (lambda () (for-each ruby-check (reverse checks-236)))))
-(if (not (null? checks-250)) (with-250 hey (lambda () (for-each ruby-check (reverse checks-250)))))
-(if (not (null? checks-256)) (with-256 hey (lambda () (for-each ruby-check (reverse checks-256)))))
-(if (not (null? checks-290)) (with-290 hey (lambda () (for-each ruby-check (reverse checks-290)))))
-(if (not (null? checks-210)) (with-210 hey (lambda () (for-each ruby-check (reverse checks-210)))))
-(if (not (null? checks-211)) (with-211 hey (lambda () (for-each ruby-check (reverse checks-211)))))
-(if (not (null? checks-213)) (with-213 hey (lambda () (for-each ruby-check (reverse checks-213)))))
-(if (not (null? checks-2134)) (with-2134 hey (lambda () (for-each ruby-check (reverse checks-2134)))))
-(if (not (null? checks-2150)) (with-2150 hey (lambda () (for-each ruby-check (reverse checks-2150)))))
-(if (not (null? checks-2172)) (with-2172 hey (lambda () (for-each ruby-check (reverse checks-2172)))))
-(if (not (null? checks-2173)) (with-2173 hey (lambda () (for-each ruby-check (reverse checks-2173)))))
+(for-each
+ (lambda (check-list check-func)
+ (if (not (null? check-list))
+ (check-func hey (lambda ()
+ (for-each ruby-check (reverse check-list))))))
+ (list checks-21 checks-23 checks-236 checks-250 checks-256 checks-290 checks-210 checks-211 checks-213 checks-2134 checks-2150 checks-2172 checks-2173 checks-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
(for-each (lambda (field) (hey "XEN_NARGIFY_1(gxg_~A_w, gxg_~A)~%" field field)) struct-fields)
@@ -3567,28 +3521,18 @@
(hey "/* not XEN_ARGIFY_1 */~%")
(for-each unargify-func (reverse funcs))
-(if (not (null? funcs-21)) (with-21 hey (lambda () (for-each unargify-func (reverse funcs-21)))))
-(if (not (null? funcs-22)) (with-22 hey (lambda () (for-each unargify-func (reverse funcs-22)))))
-(if (not (null? funcs-23)) (with-23 hey (lambda () (for-each unargify-func (reverse funcs-23)))))
-(if (not (null? funcs-236)) (with-236 hey (lambda () (for-each unargify-func (reverse funcs-236)))))
-(if (not (null? funcs-250)) (with-250 hey (lambda () (for-each unargify-func (reverse funcs-250)))))
-(if (not (null? funcs-256)) (with-256 hey (lambda () (for-each unargify-func (reverse funcs-256)))))
-(if (not (null? funcs-260)) (with-260 hey (lambda () (for-each unargify-func (reverse funcs-260)))))
-(if (not (null? funcs-270)) (with-270 hey (lambda () (for-each unargify-func (reverse funcs-270)))))
-(if (not (null? funcs-273)) (with-273 hey (lambda () (for-each unargify-func (reverse funcs-273)))))
-(if (not (null? funcs-290)) (with-290 hey (lambda () (for-each unargify-func (reverse funcs-290)))))
-(if (not (null? funcs-210)) (with-210 hey (lambda () (for-each unargify-func (reverse funcs-210)))))
-(if (not (null? funcs-211)) (with-211 hey (lambda () (for-each unargify-func (reverse funcs-211)))))
-(if (not (null? funcs-213)) (with-213 hey (lambda () (for-each unargify-func (reverse funcs-213)))))
-(if (not (null? funcs-2134)) (with-2134 hey (lambda () (for-each unargify-func (reverse funcs-2134)))))
-(if (not (null? funcs-2150)) (with-2150 hey (lambda () (for-each unargify-func (reverse funcs-2150)))))
-(if (not (null? funcs-2172)) (with-2172 hey (lambda () (for-each unargify-func (reverse funcs-2172)))))
-(if (not (null? funcs-2173)) (with-2173 hey (lambda () (for-each unargify-func (reverse funcs-2173)))))
-(if (not (null? funcs-2177)) (with-2177 hey (lambda () (for-each unargify-func (reverse funcs-2177)))))
-(if (not (null? cairo-funcs)) (with-cairo hey (lambda () (for-each unargify-func (reverse cairo-funcs)))))
-(if (not (null? cairo-png-funcs)) (with-cairo-png hey (lambda () (for-each unargify-func (reverse cairo-png-funcs)))))
-(if (not (null? cairo-funcs-140)) (with-cairo-140 hey (lambda () (for-each unargify-func (reverse cairo-funcs-140)))))
-(if (not (null? cairo-funcs-164)) (with-cairo-164 hey (lambda () (for-each unargify-func (reverse cairo-funcs-164)))))
+(for-each
+ (lambda (func-list with-func)
+ (if (not (null? func-list))
+ (with-func hey (lambda ()
+ (for-each unargify-func (reverse func-list))))))
+ (list funcs-21 funcs-22 funcs-23 funcs-236 funcs-250 funcs-256 funcs-260 funcs-270 funcs-273 funcs-290
+ funcs-210 funcs-211 funcs-213 funcs-2134 funcs-2150 funcs-2172 funcs-2173 funcs-2177 funcs-2190
+ cairo-funcs cairo-png-funcs cairo-funcs-140 cairo-funcs-164)
+ (list with-21 with-22 with-23 with-236 with-250 with-256 with-260 with-270 with-273 with-290
+ with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2177 with-2190
+ with-cairo with-cairo-png with-cairo-140 with-cairo-164))
+
(hey "#define gxg_GPOINTER_w gxg_GPOINTER~%")
(hey "#define c_array_to_xen_list_w c_array_to_xen_list~%")
@@ -3601,35 +3545,24 @@
(define (ruby-uncast func) (hey "#define gxg_~A_w gxg_~A~%" (no-arg (car func)) (no-arg (car func))))
(for-each ruby-uncast (reverse casts))
-(if (not (null? casts-21)) (with-21 hey (lambda () (for-each ruby-uncast (reverse casts-21)))))
-(if (not (null? casts-23)) (with-23 hey (lambda () (for-each ruby-uncast (reverse casts-23)))))
-(if (not (null? casts-236)) (with-236 hey (lambda () (for-each ruby-uncast (reverse casts-236)))))
-(if (not (null? casts-250)) (with-250 hey (lambda () (for-each ruby-uncast (reverse casts-250)))))
-(if (not (null? casts-256)) (with-256 hey (lambda () (for-each ruby-uncast (reverse casts-256)))))
-(if (not (null? casts-290)) (with-290 hey (lambda () (for-each ruby-uncast (reverse casts-290)))))
-(if (not (null? casts-210)) (with-210 hey (lambda () (for-each ruby-uncast (reverse casts-210)))))
-(if (not (null? casts-211)) (with-211 hey (lambda () (for-each ruby-uncast (reverse casts-211)))))
-(if (not (null? casts-213)) (with-213 hey (lambda () (for-each ruby-uncast (reverse casts-213)))))
-(if (not (null? casts-2134)) (with-2134 hey (lambda () (for-each ruby-uncast (reverse casts-2134)))))
-(if (not (null? casts-2150)) (with-2150 hey (lambda () (for-each ruby-uncast (reverse casts-2150)))))
-(if (not (null? casts-2172)) (with-2172 hey (lambda () (for-each ruby-uncast (reverse casts-2172)))))
-(if (not (null? casts-2173)) (with-2173 hey (lambda () (for-each ruby-uncast (reverse casts-2173)))))
+(for-each
+ (lambda (cast-list cast-func)
+ (if (not (null? cast-list))
+ (cast-func hey (lambda ()
+ (for-each ruby-uncast (reverse cast-list))))))
+ (list casts-21 casts-23 casts-236 casts-250 casts-256 casts-290 casts-210 casts-211 casts-213 casts-2134 casts-2150 casts-2172 casts-2173 casts-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
+
(define (ruby-uncheck func) (hey "#define gxg_~A_w gxg_~A~%" (no-arg (car func)) (no-arg (car func))))
(for-each ruby-uncheck (reverse checks))
-(if (not (null? checks-21)) (with-21 hey (lambda () (for-each ruby-uncheck (reverse checks-21)))))
-(if (not (null? checks-23)) (with-23 hey (lambda () (for-each ruby-uncheck (reverse checks-23)))))
-(if (not (null? checks-236)) (with-236 hey (lambda () (for-each ruby-uncheck (reverse checks-236)))))
-(if (not (null? checks-250)) (with-250 hey (lambda () (for-each ruby-uncheck (reverse checks-250)))))
-(if (not (null? checks-256)) (with-256 hey (lambda () (for-each ruby-uncheck (reverse checks-256)))))
-(if (not (null? checks-290)) (with-290 hey (lambda () (for-each ruby-uncheck (reverse checks-290)))))
-(if (not (null? checks-210)) (with-210 hey (lambda () (for-each ruby-uncheck (reverse checks-210)))))
-(if (not (null? checks-211)) (with-211 hey (lambda () (for-each ruby-uncheck (reverse checks-211)))))
-(if (not (null? checks-213)) (with-213 hey (lambda () (for-each ruby-uncheck (reverse checks-213)))))
-(if (not (null? checks-2134)) (with-2134 hey (lambda () (for-each ruby-uncheck (reverse checks-2134)))))
-(if (not (null? checks-2150)) (with-2150 hey (lambda () (for-each ruby-uncheck (reverse checks-2150)))))
-(if (not (null? checks-2172)) (with-2172 hey (lambda () (for-each ruby-uncheck (reverse checks-2172)))))
-(if (not (null? checks-2173)) (with-2173 hey (lambda () (for-each ruby-uncheck (reverse checks-2173)))))
+(for-each
+ (lambda (check-list check-func)
+ (if (not (null? check-list))
+ (check-func hey (lambda ()
+ (for-each ruby-uncheck (reverse check-list))))))
+ (list checks-21 checks-23 checks-236 checks-250 checks-256 checks-290 checks-210 checks-211 checks-213 checks-2134 checks-2150 checks-2172 checks-2173 checks-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
(for-each (lambda (field) (hey "#define gxg_~A_w gxg_~A~%" field field)) struct-fields)
(for-each (lambda (field) (hey "#define gxg_~A_w gxg_~A~%" field field)) settable-struct-fields)
@@ -3683,28 +3616,17 @@
(car func))))
(for-each defun (reverse funcs))
-(if (not (null? funcs-21)) (with-21 hey (lambda () (for-each defun (reverse funcs-21)))))
-(if (not (null? funcs-22)) (with-22 hey (lambda () (for-each defun (reverse funcs-22)))))
-(if (not (null? funcs-23)) (with-23 hey (lambda () (for-each defun (reverse funcs-23)))))
-(if (not (null? funcs-236)) (with-236 hey (lambda () (for-each defun (reverse funcs-236)))))
-(if (not (null? funcs-250)) (with-250 hey (lambda () (for-each defun (reverse funcs-250)))))
-(if (not (null? funcs-256)) (with-256 hey (lambda () (for-each defun (reverse funcs-256)))))
-(if (not (null? funcs-260)) (with-260 hey (lambda () (for-each defun (reverse funcs-260)))))
-(if (not (null? funcs-270)) (with-270 hey (lambda () (for-each defun (reverse funcs-270)))))
-(if (not (null? funcs-273)) (with-273 hey (lambda () (for-each defun (reverse funcs-273)))))
-(if (not (null? funcs-290)) (with-290 hey (lambda () (for-each defun (reverse funcs-290)))))
-(if (not (null? funcs-210)) (with-210 hey (lambda () (for-each defun (reverse funcs-210)))))
-(if (not (null? funcs-211)) (with-211 hey (lambda () (for-each defun (reverse funcs-211)))))
-(if (not (null? funcs-213)) (with-213 hey (lambda () (for-each defun (reverse funcs-213)))))
-(if (not (null? funcs-2134)) (with-2134 hey (lambda () (for-each defun (reverse funcs-2134)))))
-(if (not (null? funcs-2150)) (with-2150 hey (lambda () (for-each defun (reverse funcs-2150)))))
-(if (not (null? funcs-2172)) (with-2172 hey (lambda () (for-each defun (reverse funcs-2172)))))
-(if (not (null? funcs-2173)) (with-2173 hey (lambda () (for-each defun (reverse funcs-2173)))))
-(if (not (null? funcs-2177)) (with-2177 hey (lambda () (for-each defun (reverse funcs-2177)))))
-(if (not (null? cairo-funcs)) (with-cairo hey (lambda () (for-each defun (reverse cairo-funcs)))))
-(if (not (null? cairo-png-funcs)) (with-cairo-png hey (lambda () (for-each defun (reverse cairo-png-funcs)))))
-(if (not (null? cairo-funcs-140)) (with-cairo-140 hey (lambda () (for-each defun (reverse cairo-funcs-140)))))
-(if (not (null? cairo-funcs-164)) (with-cairo-164 hey (lambda () (for-each defun (reverse cairo-funcs-164)))))
+(for-each
+ (lambda (func-list with-func)
+ (if (not (null? func-list))
+ (with-func hey (lambda ()
+ (for-each defun (reverse func-list))))))
+ (list funcs-21 funcs-22 funcs-23 funcs-236 funcs-250 funcs-256 funcs-260 funcs-270 funcs-273 funcs-290
+ funcs-210 funcs-211 funcs-213 funcs-2134 funcs-2150 funcs-2172 funcs-2173 funcs-2177 funcs-2190
+ cairo-funcs cairo-png-funcs cairo-funcs-140 cairo-funcs-164)
+ (list with-21 with-22 with-23 with-236 with-250 with-256 with-260 with-270 with-273 with-290
+ with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2177 with-2190
+ with-cairo with-cairo-png with-cairo-140 with-cairo-164))
(define (cast-out func)
(hey " XG_DEFINE_PROCEDURE(~A, gxg_~A_w, 1, 0, 0, \"(~A obj) casts obj to ~A\");~%"
@@ -3716,19 +3638,14 @@
(hey " XG_DEFINE_PROCEDURE(GPOINTER, gxg_GPOINTER_w, 1, 0, 0, \"(GPOINTER obj) casts obj to GPOINTER\");~%")
(for-each cast-out (reverse casts))
-(if (not (null? casts-21)) (with-21 hey (lambda () (for-each cast-out (reverse casts-21)))))
-(if (not (null? casts-23)) (with-23 hey (lambda () (for-each cast-out (reverse casts-23)))))
-(if (not (null? casts-236)) (with-236 hey (lambda () (for-each cast-out (reverse casts-236)))))
-(if (not (null? casts-250)) (with-250 hey (lambda () (for-each cast-out (reverse casts-250)))))
-(if (not (null? casts-256)) (with-256 hey (lambda () (for-each cast-out (reverse casts-256)))))
-(if (not (null? casts-290)) (with-290 hey (lambda () (for-each cast-out (reverse casts-290)))))
-(if (not (null? casts-210)) (with-210 hey (lambda () (for-each cast-out (reverse casts-210)))))
-(if (not (null? casts-211)) (with-211 hey (lambda () (for-each cast-out (reverse casts-211)))))
-(if (not (null? casts-213)) (with-213 hey (lambda () (for-each cast-out (reverse casts-213)))))
-(if (not (null? casts-2134)) (with-2134 hey (lambda () (for-each cast-out (reverse casts-2134)))))
-(if (not (null? casts-2150)) (with-2150 hey (lambda () (for-each cast-out (reverse casts-2150)))))
-(if (not (null? casts-2172)) (with-2172 hey (lambda () (for-each cast-out (reverse casts-2172)))))
-(if (not (null? casts-2173)) (with-2173 hey (lambda () (for-each cast-out (reverse casts-2173)))))
+(for-each
+ (lambda (cast-list cast-func)
+ (if (not (null? cast-list))
+ (cast-func hey (lambda ()
+ (for-each cast-out (reverse cast-list))))))
+ (list casts-21 casts-23 casts-236 casts-250 casts-256 casts-290 casts-210 casts-211 casts-213 casts-2134 casts-2150 casts-2172 casts-2173 casts-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
+
(hey " XG_DEFINE_PROCEDURE(c-array->list, c_array_to_xen_list_w, 2, 0, 0, NULL);~%")
(hey " XG_DEFINE_PROCEDURE(list->c-array, xen_list_to_c_array_w, 2, 0, 0, NULL);~%")
@@ -3746,19 +3663,13 @@
(no-arg (car func))))
(for-each check-out (reverse checks))
-(if (not (null? checks-21)) (with-21 hey (lambda () (for-each check-out (reverse checks-21)))))
-(if (not (null? checks-23)) (with-23 hey (lambda () (for-each check-out (reverse checks-23)))))
-(if (not (null? checks-236)) (with-236 hey (lambda () (for-each check-out (reverse checks-236)))))
-(if (not (null? checks-250)) (with-250 hey (lambda () (for-each check-out (reverse checks-250)))))
-(if (not (null? checks-256)) (with-256 hey (lambda () (for-each check-out (reverse checks-256)))))
-(if (not (null? checks-290)) (with-290 hey (lambda () (for-each check-out (reverse checks-290)))))
-(if (not (null? checks-210)) (with-210 hey (lambda () (for-each check-out (reverse checks-210)))))
-(if (not (null? checks-211)) (with-211 hey (lambda () (for-each check-out (reverse checks-211)))))
-(if (not (null? checks-213)) (with-213 hey (lambda () (for-each check-out (reverse checks-213)))))
-(if (not (null? checks-2134)) (with-2134 hey (lambda () (for-each check-out (reverse checks-2134)))))
-(if (not (null? checks-2150)) (with-2150 hey (lambda () (for-each check-out (reverse checks-2150)))))
-(if (not (null? checks-2172)) (with-2172 hey (lambda () (for-each check-out (reverse checks-2172)))))
-(if (not (null? checks-2173)) (with-2173 hey (lambda () (for-each check-out (reverse checks-2173)))))
+(for-each
+ (lambda (check-list check-func)
+ (if (not (null? check-list))
+ (check-func hey (lambda ()
+ (for-each check-out (reverse check-list))))))
+ (list checks-21 checks-23 checks-236 checks-250 checks-256 checks-290 checks-210 checks-211 checks-213 checks-2134 checks-2150 checks-2172 checks-2173 checks-2190)
+ (list with-21 with-23 with-236 with-250 with-256 with-290 with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2190))
(hey "}~%~%")
@@ -3817,46 +3728,19 @@
(hey " DEFINE_INTEGER(~A);~%" val))
(reverse ints))
-(if (not (null? ints-22))
- (with-22 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-22)))))
-(if (not (null? ints-23))
- (with-23 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-23)))))
-(if (not (null? ints-236))
- (with-236 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-236)))))
-(if (not (null? ints-250))
- (with-250 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-250)))))
-(if (not (null? ints-256))
- (with-256 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-256)))))
-(if (not (null? ints-260))
- (with-260 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-260)))))
-(if (not (null? ints-270))
- (with-270 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-270)))))
-(if (not (null? ints-273))
- (with-273 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-273)))))
-(if (not (null? ints-290))
- (with-290 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-290)))))
-(if (not (null? ints-210))
- (with-210 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-210)))))
-(if (not (null? ints-211))
- (with-211 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-211)))))
-(if (not (null? ints-213))
- (with-213 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-213)))))
-(if (not (null? ints-2134))
- (with-2134 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-2134)))))
-(if (not (null? ints-2150))
- (with-2150 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-2150)))))
-(if (not (null? ints-2172))
- (with-2172 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-2172)))))
-(if (not (null? ints-2173))
- (with-2173 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-2173)))))
-(if (not (null? ints-2177))
- (with-2177 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse ints-2177)))))
-(if (not (null? cairo-ints))
- (with-cairo hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse cairo-ints)))))
-(if (not (null? cairo-ints-140))
- (with-cairo-140 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse cairo-ints-140)))))
-(if (not (null? cairo-ints-164))
- (with-cairo-164 hey (lambda () (for-each (lambda (val) (hey " DEFINE_INTEGER(~A);~%" val)) (reverse cairo-ints-164)))))
+(for-each
+ (lambda (ints-list with-ints)
+ (if (not (null? ints-list))
+ (with-ints hey (lambda ()
+ (for-each (lambda (val)
+ (hey " DEFINE_INTEGER(~A);~%" val))
+ (reverse ints-list))))))
+ (list ints-22 ints-23 ints-236 ints-250 ints-256 ints-260 ints-270 ints-273 ints-290
+ ints-210 ints-211 ints-213 ints-2134 ints-2150 ints-2172 ints-2173 ints-2177
+ cairo-ints cairo-ints-140 cairo-ints-164)
+ (list with-22 with-23 with-236 with-250 with-256 with-260 with-270 with-273 with-290
+ with-210 with-211 with-213 with-2134 with-2150 with-2172 with-2173 with-2177
+ with-cairo with-cairo-140 with-cairo-164))
(for-each
@@ -3865,27 +3749,16 @@
(hey " DEFINE_ULONG(~A);~%" val)))
(reverse ulongs))
-(if (not (null? ulongs-21))
- (with-21 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-21)))))
-(if (not (null? ulongs-23))
- (with-23 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-23)))))
-(if (not (null? ulongs-250))
- (with-250 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-250)))))
-(if (not (null? ulongs-256))
- (with-256 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-256)))))
-(if (not (null? ulongs-290))
- (with-290 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-290)))))
-(if (not (null? ulongs-211))
- (with-211 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-211)))))
-(if (not (null? ulongs-213))
- (with-213 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-213)))))
-(if (not (null? ulongs-2134))
- (with-2134 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-2134)))))
-(if (not (null? ulongs-2150))
- (with-2150 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-2150)))))
-(if (not (null? ulongs-2173))
- (with-2173 hey (lambda () (for-each (lambda (vals) (let ((val (car vals))) (hey " DEFINE_ULONG(~A);~%" val))) (reverse ulongs-2173)))))
-
+(for-each
+ (lambda (ulongs-list with-ulongs)
+ (if (not (null? ulongs-list))
+ (with-ulongs hey (lambda ()
+ (for-each (lambda (vals)
+ (let ((val (car vals)))
+ (hey " DEFINE_ULONG(~A);~%" val)))
+ (reverse ulongs-list))))))
+ (list ulongs-21 ulongs-23 ulongs-250 ulongs-256 ulongs-290 ulongs-211 ulongs-213 ulongs-2134 ulongs-2150 ulongs-2173)
+ (list with-21 with-23 with-250 with-256 with-290 with-211 with-213 with-2134 with-2150 with-2173))
(hey "}~%~%")
@@ -3935,24 +3808,16 @@
(hey "#endif~%")
(for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings))
-(if (not (null? strings-236))
- (with-236 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-236)))))
-(if (not (null? strings-250))
- (with-250 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-250)))))
-(if (not (null? strings-273))
- (with-273 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-273)))))
-(if (not (null? strings-290))
- (with-290 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-290)))))
-(if (not (null? strings-210))
- (with-210 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-210)))))
-(if (not (null? strings-211))
- (with-211 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-211)))))
-(if (not (null? strings-213))
- (with-213 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-213)))))
-(if (not (null? strings-2134))
- (with-2134 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-2134)))))
-(if (not (null? strings-2150))
- (with-2150 hey (lambda () (for-each (lambda (str) (hey " DEFINE_STRING(~A);~%" str)) (reverse strings-2150)))))
+(for-each
+ (lambda (strings-list with-strings)
+ (if (not (null? strings-list))
+ (with-strings hey (lambda ()
+ (for-each (lambda (str)
+ (hey " DEFINE_STRING(~A);~%" str))
+ (reverse strings-list))))))
+ (list strings-236 strings-250 strings-273 strings-290 strings-210 strings-211 strings-213 strings-2134 strings-2150)
+ (list with-236 with-250 with-273 with-290 with-210 with-211 with-213 with-2134 with-2150))
+
(hey "}~%~%")
diff --git a/tools/sarchive b/tools/sarchive
index 4c21115..2318120 100755
--- a/tools/sarchive
+++ b/tools/sarchive
@@ -75,6 +75,14 @@ foreach file (*.rb *.scm *.fth *.fs)
endif
end
+chdir /home/bil/cl
+foreach file (*.rb *.fth *.fs)
+ if (-e /home/bil/dist/snd/$file) then
+ else
+ echo $file ' does not exist in /home/bil/dist/snd'
+ endif
+end
+
chdir /home/bil/dist/snd
cp /home/bil/cl/configure /home/bil/dist/snd
diff --git a/tools/snd-index.cl b/tools/snd-index.cl
deleted file mode 100644
index 395c550..0000000
--- a/tools/snd-index.cl
+++ /dev/null
@@ -1,321 +0,0 @@
-;;; index snd.html
-(require :loop)
-
-(defstruct tp name m mh o oh c ch l lh nh)
-
-(defun snd-index (output)
- (let* ((index-size 2048)
- (names (make-array index-size :initial-element nil))
- (namesh (make-array index-size :initial-element nil))
- (menu (make-array index-size :initial-element nil))
- (other (make-array index-size :initial-element nil))
- (lisp (make-array index-size :initial-element nil))
- (cxcx (make-array index-size :initial-element nil))
- (menuh (make-array index-size :initial-element nil))
- (otherh (make-array index-size :initial-element nil))
- (lisph (make-array index-size :initial-element nil))
- (cxcxh(make-array index-size :initial-element nil))
- (topic-ctr -1)
- (topic -1)
- (snd-all-names (make-array (* 2 index-size) :initial-element nil))
- (ext-all-names (make-array (* 2 index-size) :initial-element nil))
- (grf-all-names (make-array (* 2 index-size) :initial-element nil))
- (scm-all-names (make-array (* 2 index-size) :initial-element nil))
- (clm-all-names (make-array (* 2 index-size) :initial-element nil))
- (snd-name-ctr 0)
- (ext-name-ctr 0)
- (grf-name-ctr 0)
- (scm-name-ctr 0)
- (clm-name-ctr 0))
-
- (flet ((addext (name)
- (if (find name ext-all-names :test #'string=)
- (format nil "extsnd.html#~A" name)
- (if (find name grf-all-names :test #'string=)
- (format nil "grfsnd.html#~A" name)
- (if (find name scm-all-names :test #'string=)
- (format nil "sndscm.html#~A" name)
- (if (find name clm-all-names :test #'string=)
- (format nil "clm.html#~A" name)
- (format nil "#~A" name)))))))
-
- (with-open-file (sndf "snd.html")
- (let ((happy t))
- (loop while happy do
- (let* ((line (read-line sndf nil :EOF)))
- (setf happy (not (eq line :EOF)))
- (when happy
- (let* ((simple-pos (or (search "<a name=" line) (search "<A NAME=" line)))
- (fancy-pos (or (search "<a class=def name=" line) (search "<A class=def NAME=" line)))
- (pos (or simple-pos fancy-pos))
- (pos-len (if simple-pos 9 19)))
- (if pos
- (let* ((epos (search ">" (subseq line pos)))
- (name (subseq line (+ pos pos-len) (+ pos epos -1))))
- (if (find name snd-all-names :test #'string=)
- (print (format nil "multiple definitions of ~A?" name))
- (progn
- (setf (aref snd-all-names snd-name-ctr) name)
- (incf snd-name-ctr)))))))))))
-
- (print (format nil "found ~D names in snd.html" snd-name-ctr))
-
- (with-open-file (sndf "extsnd.html")
- (let ((happy t))
- (loop while happy do
- (let* ((line (read-line sndf nil :EOF)))
- (setf happy (not (eq line :EOF)))
- (when happy
- (let* ((simple-pos (or (search "<a name=" line) (search "<A NAME=" line)))
- (fancy-pos (or (search "<a class=def name=" line) (search "<A class=def NAME=" line)))
- (pos (or simple-pos fancy-pos))
- (pos-len (if simple-pos 9 19)))
- (if pos
- (let* ((epos (search ">" (subseq line pos)))
- (name (subseq line (+ pos pos-len) (+ pos epos -1))))
- (if (or (find name ext-all-names :test #'string=)
- (find name snd-all-names :test #'string=))
- (print (format nil "multiple definitions of ~A?" name))
- (progn
- (setf (aref ext-all-names ext-name-ctr) name)
- (incf ext-name-ctr)))))))))))
- (print (format nil "found ~D names in extsnd.html" ext-name-ctr))
-
- (with-open-file (sndf "grfsnd.html")
- (let ((happy t))
- (loop while happy do
- (let* ((line (read-line sndf nil :EOF)))
- (setf happy (not (eq line :EOF)))
- (when happy
- (let* ((simple-pos (or (search "<a name=" line) (search "<A NAME=" line)))
- (fancy-pos (or (search "<a class=def name=" line) (search "<A class=def NAME=" line)))
- (pos (or simple-pos fancy-pos))
- (pos-len (if simple-pos 9 19)))
- (if pos
- (let* ((epos (search ">" (subseq line pos)))
- (name (subseq line (+ pos pos-len) (+ pos epos -1))))
- (if (or (find name grf-all-names :test #'string=)
- (find name ext-all-names :test #'string=)
- (find name snd-all-names :test #'string=))
- (print (format nil "multiple definitions of ~A?" name))
- (progn
- (setf (aref grf-all-names grf-name-ctr) name)
- (incf grf-name-ctr)))))))))))
- (print (format nil "found ~D names in grfsnd.html" grf-name-ctr))
-
- (with-open-file (sndf "sndscm.html")
- (let ((happy t))
- (loop while happy do
- (let* ((line (read-line sndf nil :EOF)))
- (setf happy (not (eq line :EOF)))
- (when happy
- (let* ((simple-pos (or (search "<a name=" line) (search "<A NAME=" line)))
- (fancy-pos (or (search "<a class=def name=" line) (search "<A class=def NAME=" line)))
- (pos (or simple-pos fancy-pos))
- (pos-len (if simple-pos 9 19)))
- (if pos
- (let* ((epos (search ">" (subseq line pos)))
- (name (subseq line (+ pos pos-len) (+ pos epos -1))))
- (if (or (find name scm-all-names :test #'string=)
- (find name grf-all-names :test #'string=)
- (find name ext-all-names :test #'string=)
- (find name snd-all-names :test #'string=))
- (print (format nil "multiple definitions of ~A?" name))
- (progn
- (setf (aref scm-all-names scm-name-ctr) name)
- (incf scm-name-ctr)))))))))))
- (print (format nil "found ~D names in sndscm.html" scm-name-ctr))
-
- (with-open-file (sndf "clm.html")
- (let ((happy t))
- (loop while happy do
- (let* ((line (read-line sndf nil :EOF)))
- (setf happy (not (eq line :EOF)))
- (when happy
- (let* ((simple-pos (or (search "<a name=" line) (search "<A NAME=" line)))
- (fancy-pos (or (search "<a class=def name=" line) (search "<A class=def NAME=" line)))
- (pos (or simple-pos fancy-pos))
- (pos-len (if simple-pos 9 19)))
- (if pos
- (let* ((epos (search ">" (subseq line pos)))
- (name (subseq line (+ pos pos-len) (+ pos epos -1))))
- (if (or (find name clm-all-names :test #'string=)
- (find name scm-all-names :test #'string=)
- (find name grf-all-names :test #'string=)
- (find name ext-all-names :test #'string=)
- (find name snd-all-names :test #'string=))
- (print (format nil "multiple definitions of ~A?" name))
- (progn
- (setf (aref clm-all-names clm-name-ctr) name)
- (incf clm-name-ctr)))))))))))
- (print (format nil "found ~D names in clm.html" clm-name-ctr))
- ;;; got names, now find index data
-
- (loop for file in '("snd.html" "extsnd.html" "grfsnd.html" "sndscm.html") do
- (with-open-file (sndf file)
- (let ((happy t))
- (loop while happy do
- (let* ((urline (read-line sndf nil :EOF))
- (line urline))
- (setf happy (not (eq urline :EOF)))
- (when happy
- ;; search for <!-- I(...
- (loop while line do
- (let ((pos (search "<!-- I(" line)))
- (if pos
- (let* ((epos (search "-->" line))
- (nline (subseq line (+ pos 7) epos)))
- (setf line (subseq line (+ epos 3)))
- (let* ((paren (search "):" nline))
- (curname (subseq nline 0 paren))
- (tpos (position curname names :test #'(lambda (a b) (and a b (string-equal a b))))))
- (if tpos
- (setf topic tpos)
- (progn
- (incf topic-ctr)
- (setf topic topic-ctr)
- (setf (aref names topic) curname)))
- (setf nline (subseq nline (+ paren 2)))
- (let ((type (elt nline 0)))
- (setf paren (search ")" nline))
- (let ((info (subseq nline 2 paren)))
- (if (char= type #\M)
- (progn
- (if (aref menu topic) (warn "~A menu ~A overwrites ~A~%" (aref names topic) info (aref menu topic)))
- (setf (aref menu topic) info))
- (if (char= type #\L)
- (progn
- (if (aref lisp topic) (warn "~A lisp ~A overwrites ~A~%" (aref names topic) info (aref lisp topic)))
- (setf (aref lisp topic) info))
- (if (char= type #\O)
- (progn
- (if (aref other topic) (warn "~A other ~A overwrites ~A~%" (aref names topic) info (aref other topic)))
- (setf (aref other topic) info))
- (if (char= type #\K)
- (progn
- (if (aref cxcx topic) (warn "~A cxcx ~A overwrites ~A~%" (aref names topic) info (aref cxcx topic)))
- (setf (aref cxcx topic) info))
- (if (char= type #\A)
- (progn
- (if (aref namesh topic) (warn "~A namesh ~A overwrites ~A~%" (aref names topic) info (aref namesh topic)))
- (setf (aref namesh topic) info))
- (error "unknown type: ~A in ~A from ~A" type nline urline)))))))
- (setf nline (subseq nline (+ paren 1)))
- (setf paren (search ")" nline))
- (if paren
- (if (char= type #\M)
- (progn
- (setf (aref menuh topic) (subseq nline 1 paren)))
- (if (char= type #\L)
- (progn
- (setf (aref lisph topic) (subseq nline 1 paren)))
- (if (char= type #\O)
- (progn
- (setf (aref otherh topic) (subseq nline 1 paren)))
- (if (char= type #\K)
- (progn
- (setf (aref cxcxh topic) (subseq nline 1 paren)))))))))))
- (setf line nil))))))))))
-
- (let ((tparr (make-array (1+ topic-ctr) :element-type 'tp)))
- (loop for i from 0 to topic-ctr do
- (if (and (aref namesh i)
- (not (find (aref namesh i) snd-all-names :test #'string=))
- (not (find (aref namesh i) ext-all-names :test #'string=))
- (not (find (aref namesh i) grf-all-names :test #'string=))
- (not (find (aref namesh i) clm-all-names :test #'string=))
- (not (find (aref namesh i) scm-all-names :test #'string=)))
- (print (format nil "no definition of ~A (~A)?" (aref namesh i) (aref names i))))
- (if (and (aref menuh i)
- (not (find (aref menuh i) snd-all-names :test #'string=))
- (not (find (aref menuh i) ext-all-names :test #'string=))
- (not (find (aref menuh i) grf-all-names :test #'string=))
- (not (find (aref menuh i) clm-all-names :test #'string=))
- (not (find (aref menuh i) scm-all-names :test #'string=)))
- (print (format nil "no definition of ~A (~A)?" (aref menuh i) (aref menu i))))
- (if (and (aref otherh i)
- (not (find (aref otherh i) snd-all-names :test #'string=))
- (not (find (aref otherh i) ext-all-names :test #'string=))
- (not (find (aref otherh i) grf-all-names :test #'string=))
- (not (find (aref otherh i) clm-all-names :test #'string=))
- (not (find (aref otherh i) scm-all-names :test #'string=)))
- (print (format nil "no definition of ~A (~A)?" (aref otherh i) (aref other i))))
- (if (and (aref lisph i)
- (not (find (aref lisph i) snd-all-names :test #'string=))
- (not (find (aref lisph i) ext-all-names :test #'string=))
- (not (find (aref lisph i) grf-all-names :test #'string=))
- (not (find (aref lisph i) clm-all-names :test #'string=))
- (not (find (aref lisph i) scm-all-names :test #'string=)))
- (print (format nil "no definition of ~A (~A)?" (aref lisph i) (aref lisp i))))
- (if (and (aref cxcxh i)
- (not (find (aref cxcxh i) snd-all-names :test #'string=))
- (not (find (aref cxcxh i) ext-all-names :test #'string=))
- (not (find (aref cxcxh i) grf-all-names :test #'string=))
- (not (find (aref cxcxh i) clm-all-names :test #'string=))
- (not (find (aref cxcxh i) scm-all-names :test #'string=)))
- (print (format nil "no definition of ~A (~A)?" (aref cxcxh i) (aref cxcx i))))
- (setf (aref tparr i) (make-tp :name (aref names i) :nh (aref namesh i)
- :m (aref menu i) :mh (aref menuh i)
- :o (aref other i) :oh (aref otherh i)
- :l (aref lisp i) :lh (aref lisph i)
- :c (aref cxcx i) :ch (aref cxcxh i))))
- (setf tparr (sort tparr #'string-lessp :key #'tp-name))
- (with-open-file (ofil output :direction :output :if-exists :supersede :if-does-not-exist :create)
- (format ofil "<html><body>~%~%<table border rows=~D>~% ~
- <caption>Index</caption>~% ~
- <!-- created ~A -->~% ~
- <tr><th>Action</th><th>Menu</th><th>Keyboard</th><th>Lisp</th><th>Other</th></tr>~%"
- (1+ topic-ctr)
- #+clm (clm::c-strftime "%a %d-%b-%y %H:%M %Z") #-clm "whenever")
- (loop for i from 0 to topic-ctr do
- (let ((top (aref tparr i)))
- (format ofil " <tr><td>~A</td><td>~A</td><td>~A</td><td>~A</td><td>~A</td></tr>~%"
- (if (tp-nh top)
- (format nil "<a href=\"~A\">~A</a>" (addext (tp-nh top)) (tp-name top))
- (tp-name top))
- (let ((pos (and (tp-mh top) (search ":" (tp-m top)))))
- (if pos
- (format nil "<small>~A: <a href=\"~A\">~A</a></small>"
- (subseq (tp-m top) 0 pos) (addext (tp-mh top)) (subseq (tp-m top) (+ pos 2)))
- (if (tp-mh top)
- (format nil "<a href=\"~A\"><small>~A</small></a>" (addext (tp-mh top)) (tp-m top))
- (if (tp-m top)
- (format nil "<small>~A</small>" (tp-m top))
- "<br>"))))
- (let* ((str (tp-c top))
- (str1 (make-string (length str)))
- (j 0))
- (dotimes (i (length str))
- (if (or (not (string= "-" (elt str i)))
- (= i 0))
- (progn
- (setf (elt str1 j) (elt str i))
- (incf j))))
- (if (tp-ch top)
- (format nil "<a href=\"~A\"><small>~A</small></a>" (addext (tp-ch top)) (subseq str1 0 j))
- (if (tp-c top)
- (format nil "<small>~A</small>" (subseq str1 0 j))
- "<br>")))
- (if (tp-lh top)
- (format nil "<a href=\"~A\"><small>~A</small></a>" (addext (tp-lh top)) (tp-l top))
- (if (tp-l top)
- (format nil "<small>~A</small>" (tp-l top))
- "<br>"))
- (let* ((str (tp-o top))
- (str1 (make-string (length str)))
- (j 0))
- (dotimes (i (length str))
- (if (or (not (string= "-" (elt str i)))
- (= i 0)
- (not (string= "C" (elt str (1- i)))))
- (progn
- (setf (elt str1 j) (elt str i))
- (incf j))))
- (if (tp-oh top)
- (format nil "<a href=\"~A\"><small>~A</small></a>" (addext (tp-oh top)) (subseq str1 0 j))
- (if (tp-o top)
- (format nil "<small>~A</small>" (subseq str1 0 j))
- "<br>"))))))
- (format ofil "</table>~%~%</body></html>~%"))))))
-
-
diff --git a/tools/testsnd b/tools/testsnd
index 4b026b5..d1e20cd 100755
--- a/tools/testsnd
+++ b/tools/testsnd
@@ -33,13 +33,6 @@ make xm
./snd --version
./snd -l snd-test 0
make allclean
-echo ' CC=g++ CFLAGS="-Wall -I/usr/X11R6/include" --with-guile '
-./configure --quiet CC=g++ CFLAGS="-Wall -I/usr/X11R6/include" --with-guile LDFLAGS="-L/usr/X11R6/lib"
-make
-make xm
-./snd --version
-./snd -l snd-test 1
-./snd -l snd-test 22
echo ' -------------------------------- with-no-gui -------------------------------- '
make allclean
@@ -157,8 +150,8 @@ rm -f config.cache
rm -f makefile
rm -f mus-config.h
rm -f sndinfo
-echo ' CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --without-ladspa --with-gl --with-modules --without-gsl --without-xpm '
-./configure --quiet CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --without-ladspa --with-gl --with-modules --without-gsl --without-xpm LDFLAGS="-L/usr/X11R6/lib"
+echo ' CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --without-ladspa --with-gl --without-gsl --without-xpm '
+./configure --quiet CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --without-ladspa --with-gl --without-gsl --without-xpm LDFLAGS="-L/usr/X11R6/lib"
make
make xm
echo ' '
@@ -175,14 +168,13 @@ rm -f config.cache
rm -f makefile
rm -f mus-config.h
rm -f sndinfo
-echo ' CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --with-modules '
-./configure --quiet CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --with-modules LDFLAGS="-L/usr/X11R6/lib"
+echo ' CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --with-modules --with-guile '
+./configure --quiet CFLAGS="-Wall -I/usr/X11R6/include" --with-float-samples --with-modules --with-guile LDFLAGS="-L/usr/X11R6/lib"
make
echo ' '
echo ' '
./snd --version
-./snd -l snd-test
-echo ' -------------------------------- that was full snd-test with-modules -------------------------------- '
+./snd -l snd-test 0
make clmclean
echo ' '
@@ -277,8 +269,8 @@ echo ' '
./snd -l snd-test
echo ' -------------------------------- that was full snd-test with-gtk -------------------------------- '
make allclean
-echo ' CFLAGS="-Wall -DGTK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED" --with-gtk --with-static-xm --with-x11 '
-./configure --quiet --disable-deprecated CFLAGS="-Wall" --with-gtk --with-static-xm --with-x11
+echo ' CFLAGS="-Wall -DGTK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED" --with-gtk --with-static-xm '
+./configure --quiet --disable-deprecated CFLAGS="-Wall" --with-gtk --with-static-xm
make
./snd --version
./snd -l snd-test 11
@@ -340,8 +332,8 @@ echo ' -------------------------------- gtk test -------------------------------
make allclean
rm -f snd
rm -f config.cache
-echo ' CFLAGS="-Wall" --enable-snd-debug --with-gtk --with-gsl --with-gl '
-./configure --quiet CFLAGS="-Wall" --enable-snd-debug --with-gtk --with-gsl --with-gl
+echo ' CFLAGS="-Wall" --enable-snd-debug --with-gtk --with-gsl '
+./configure --quiet CFLAGS="-Wall" --enable-snd-debug --with-gtk --with-gsl
make
make xg
echo ' '
@@ -406,8 +398,8 @@ echo ' '
echo ' '
./snd --version
make allclean
-echo ' CFLAGS="-Wall -DGTK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED" --with-ruby --with-static-xm --with-gtk --with-x11 --with-gl '
-./configure --quiet --disable-deprecated CFLAGS="-Wall" --with-ruby --with-static-xm --with-gtk --with-x11 --with-gl
+echo ' CFLAGS="-Wall -DGTK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED" --with-ruby --with-static-xm --with-gtk '
+./configure --quiet --disable-deprecated CFLAGS="-Wall" --with-ruby --with-static-xm --with-gtk
make
./snd -noinit -l snd-test.rb 2
echo ' '
diff --git a/tools/xgdata.scm b/tools/xgdata.scm
index 52bef6e..9225533 100644
--- a/tools/xgdata.scm
+++ b/tools/xgdata.scm
@@ -1325,11 +1325,11 @@
(CFNC "GtkWidget* gtk_button_new_with_label gchar* label")
(CFNC "GtkWidget* gtk_button_new_from_stock gchar* stock_id")
(CFNC "GtkWidget* gtk_button_new_with_mnemonic gchar* label")
-(CFNC "void gtk_button_pressed GtkButton* button")
-(CFNC "void gtk_button_released GtkButton* button")
+;;; out 2.19.0 (CFNC "void gtk_button_pressed GtkButton* button")
+;;; (CFNC "void gtk_button_released GtkButton* button")
(CFNC "void gtk_button_clicked GtkButton* button")
-(CFNC "void gtk_button_enter GtkButton* button")
-(CFNC "void gtk_button_leave GtkButton* button")
+;;; (CFNC "void gtk_button_enter GtkButton* button")
+;;; (CFNC "void gtk_button_leave GtkButton* button")
(CFNC "void gtk_button_set_relief GtkButton* button GtkReliefStyle newstyle")
(CFNC "GtkReliefStyle gtk_button_get_relief GtkButton* button")
(CFNC "void gtk_button_set_label GtkButton* button gchar* label")
@@ -1472,16 +1472,16 @@
(CFNC "void gtk_container_check_resize GtkContainer* container")
(CFNC "void gtk_container_foreach GtkContainer* container GtkCallback func lambda_data #func_info")
(CFNC "GList* gtk_container_get_children GtkContainer* container") ; FREE (g_list_free)
-(CCAST "GTK_CURVE(obj)" "GtkCurve*")
-(CCHK "GTK_IS_CURVE(obj)" "GtkCurve*")
+;;; out 2.19.0 (CCAST "GTK_CURVE(obj)" "GtkCurve*")
+;;; (CCHK "GTK_IS_CURVE(obj)" "GtkCurve*")
;;;;(CFNC "GType gtk_curve_get_type void")
-(CFNC "GtkWidget* gtk_curve_new void")
-(CFNC "void gtk_curve_reset GtkCurve* curve")
-(CFNC "void gtk_curve_set_gamma GtkCurve* curve gfloat gamma")
-(CFNC "void gtk_curve_set_range GtkCurve* curve gfloat min_x gfloat max_x gfloat min_y gfloat max_y")
-(CFNC "void gtk_curve_get_vector GtkCurve* curve int veclen gfloat* vector")
-(CFNC "void gtk_curve_set_vector GtkCurve* curve int veclen gfloat* vector")
-(CFNC "void gtk_curve_set_curve_type GtkCurve* curve GtkCurveType type")
+;;; (CFNC "GtkWidget* gtk_curve_new void")
+;;; (CFNC "void gtk_curve_reset GtkCurve* curve")
+;;; (CFNC "void gtk_curve_set_gamma GtkCurve* curve gfloat gamma")
+;;; (CFNC "void gtk_curve_set_range GtkCurve* curve gfloat min_x gfloat max_x gfloat min_y gfloat max_y")
+;;; (CFNC "void gtk_curve_get_vector GtkCurve* curve int veclen gfloat* vector")
+;;; (CFNC "void gtk_curve_set_vector GtkCurve* curve int veclen gfloat* vector")
+;;; (CFNC "void gtk_curve_set_curve_type GtkCurve* curve GtkCurveType type")
;(CINT "GTK_DEBUG_MISC")
;(CINT "GTK_DEBUG_PLUGSOCKET")
;(CINT "GTK_DEBUG_TEXT")
@@ -1615,9 +1615,9 @@
(CINT "GTK_BUTTONBOX_START" "GtkButtonBoxStyle")
(CINT "GTK_BUTTONBOX_END" "GtkButtonBoxStyle")
(CINT-211 "GTK_BUTTONBOX_CENTER" "GtkButtonBoxStyle")
-(CINT "GTK_CURVE_TYPE_LINEAR" "GtkCurveType")
-(CINT "GTK_CURVE_TYPE_SPLINE" "GtkCurveType")
-(CINT "GTK_CURVE_TYPE_FREE" "GtkCurveType")
+;;; (CINT "GTK_CURVE_TYPE_LINEAR" "GtkCurveType")
+;;; (CINT "GTK_CURVE_TYPE_SPLINE" "GtkCurveType")
+;;; (CINT "GTK_CURVE_TYPE_FREE" "GtkCurveType")
(CINT "GTK_DELETE_CHARS" "GtkDeleteType")
(CINT "GTK_DELETE_WORD_ENDS" "GtkDeleteType")
(CINT "GTK_DELETE_WORDS" "GtkDeleteType")
@@ -1825,10 +1825,10 @@
(CFNC "void gtk_frame_get_label_align GtkFrame* frame gfloat* [xalign] gfloat* [yalign]")
(CFNC "void gtk_frame_set_shadow_type GtkFrame* frame GtkShadowType type")
(CFNC "GtkShadowType gtk_frame_get_shadow_type GtkFrame* frame")
-(CCAST "GTK_GAMMA_CURVE(obj)" "GtkGammaCurve*")
-(CCHK "GTK_IS_GAMMA_CURVE(obj)" "GtkGammaCurve*")
+;;; (CCAST "GTK_GAMMA_CURVE(obj)" "GtkGammaCurve*")
+;;; (CCHK "GTK_IS_GAMMA_CURVE(obj)" "GtkGammaCurve*")
;;;;(CFNC "GType gtk_gamma_curve_get_type void")
-(CFNC "GtkWidget* gtk_gamma_curve_new void")
+;;; (CFNC "GtkWidget* gtk_gamma_curve_new void")
(CFNC "GdkGC* gtk_gc_get gint depth GdkColormap* colormap GdkGCValues* values GdkGCValuesMask values_mask")
(CFNC "void gtk_gc_release GdkGC* gc")
(CCAST "GTK_HANDLE_BOX(obj)" "GtkHandleBox*")
@@ -1977,10 +1977,10 @@
;;;;(CFNC "GType gtk_im_multicontext_get_type void")
(CFNC "GtkIMContext* gtk_im_multicontext_new void")
(CFNC "void gtk_im_multicontext_append_menuitems GtkIMMulticontext* context GtkMenuShell* menushell")
-(CCAST "GTK_INPUT_DIALOG(obj)" "GtkInputDialog*")
-(CCHK "GTK_IS_INPUT_DIALOG(obj)" "GtkInputDialog*")
+;;; (CCAST "GTK_INPUT_DIALOG(obj)" "GtkInputDialog*")
+;;; (CCHK "GTK_IS_INPUT_DIALOG(obj)" "GtkInputDialog*")
;;;;(CFNC "GType gtk_input_dialog_get_type void")
-(CFNC "GtkWidget* gtk_input_dialog_new void")
+;;; (CFNC "GtkWidget* gtk_input_dialog_new void")
(CCAST "GTK_INVISIBLE(obj)" "GtkInvisible*")
(CCHK "GTK_IS_INVISIBLE(obj)" "GtkInvisible*")
;;;;(CFNC "GType gtk_invisible_get_type void")
@@ -2225,8 +2225,8 @@
(CFNC "void gtk_notebook_set_menu_label GtkNotebook* notebook GtkWidget* child GtkWidget* menu_label")
(CFNC "void gtk_notebook_set_menu_label_text GtkNotebook* notebook GtkWidget* child gchar* menu_text")
(CFNC "gchar* gtk_notebook_get_menu_label_text GtkNotebook* notebook GtkWidget* child")
-(CFNC "void gtk_notebook_query_tab_label_packing GtkNotebook* notebook GtkWidget* child gboolean* [expand] gboolean* [fill] GtkPackType* [pack_type]")
-(CFNC "void gtk_notebook_set_tab_label_packing GtkNotebook* notebook GtkWidget* child gboolean expand gboolean fill GtkPackType pack_type")
+;;; out 2.19.0 (CFNC "void gtk_notebook_query_tab_label_packing GtkNotebook* notebook GtkWidget* child gboolean* [expand] gboolean* [fill] GtkPackType* [pack_type]")
+;;; (CFNC "void gtk_notebook_set_tab_label_packing GtkNotebook* notebook GtkWidget* child gboolean expand gboolean fill GtkPackType pack_type")
(CFNC "void gtk_notebook_reorder_child GtkNotebook* notebook GtkWidget* child gint position")
;;; the following changed returned type 2.3.2
(CFNC-236 "gint gtk_notebook_append_page GtkNotebook* notebook GtkWidget* child GtkWidget* @tab_label")
@@ -3924,7 +3924,7 @@
(CLNG "GTK_TYPE_COLOR_SELECTION")
;;; out 2.3 (CLNG "GTK_TYPE_COMBO")
(CLNG "GTK_TYPE_CONTAINER")
-(CLNG "GTK_TYPE_CURVE")
+;;; (CLNG "GTK_TYPE_CURVE")
(CLNG "GTK_TYPE_DIALOG")
(CLNG "GTK_TYPE_DRAWING_AREA")
(CLNG "GTK_TYPE_EDITABLE")
@@ -3935,7 +3935,7 @@
(CLNG "GTK_TYPE_FONT_SELECTION")
(CLNG "GTK_TYPE_FONT_SELECTION_DIALOG")
(CLNG "GTK_TYPE_FRAME")
-(CLNG "GTK_TYPE_GAMMA_CURVE")
+;;; (CLNG "GTK_TYPE_GAMMA_CURVE")
(CLNG "GTK_TYPE_HANDLE_BOX")
(CLNG "GTK_TYPE_HBUTTON_BOX")
(CLNG "GTK_TYPE_HBOX")
@@ -3950,7 +3950,7 @@
(CLNG "GTK_TYPE_IM_CONTEXT")
(CLNG "GTK_TYPE_IM_CONTEXT_SIMPLE")
(CLNG "GTK_TYPE_IM_MULTICONTEXT")
-(CLNG "GTK_TYPE_INPUT_DIALOG")
+;;; (CLNG "GTK_TYPE_INPUT_DIALOG")
(CLNG "GTK_TYPE_INVISIBLE")
;;; out 2.3 (CLNG "GTK_TYPE_ITEM_FACTORY")
(CLNG "GTK_TYPE_ITEM")
@@ -7042,3 +7042,18 @@
(CFNC-2177 "void gdk_window_flush GdkWindow* window")
+;;; 2.19.0
+(CFNC-2190 "GtkWidget* gtk_dialog_get_widget_for_response GtkDialog* dialog gint response_id")
+(CFNC-2190 "void gtk_tooltip_set_icon_from_gicon GtkTooltip* tooltip GIcon* gicon GtkIconSize size")
+(CFNC-2190 "GdkWindow* gtk_viewport_get_bin_window GtkViewport* viewport")
+(CFNC-2190 "GtkWidget* gtk_spinner_new void")
+(CFNC-2190 "void gtk_spinner_start GtkSpinner* spinner")
+(CFNC-2190 "void gtk_spinner_stop GtkSpinner* spinner")
+(CFNC-2190 "GtkCellRenderer* gtk_cell_renderer_spinner_new void") ; surely they mean GtkCellRendererSpinner?
+
+(CCAST-2190 "GTK_SPINNER(obj)" "GtkSpinner*")
+(CCHK-2190 "GTK_IS_SPINNER(obj)" "GtkSpinner*")
+
+(CCAST-2190 "GTK_CELL_RENDERER_SPINNER(obj)" "GtkCellRendererSpinner*")
+(CCHK-2190 "GTK_IS_CELL_RENDERER_SPINNER(obj)" "GtkCellRendererSpinner*")
+
diff --git a/tutorial/1_intro_and_build_snd.html b/tutorial/1_intro_and_build_snd.html
index a18a002..998223d 100644
--- a/tutorial/1_intro_and_build_snd.html
+++ b/tutorial/1_intro_and_build_snd.html
@@ -71,7 +71,7 @@ To build the version of Snd presented in this article you will need to install t
OpenMotif 2.1
ALSA 0.9.x with OSS emulation enabled
LADSPA and its various plugins
- the Scheme customization files included in the snd-7 directory
+ the Scheme customization files included in the snd-6/dlp directory
</pre>
<p>
diff --git a/tutorial/1_intro_and_build_snd.html~ b/tutorial/1_intro_and_build_snd.html~
new file mode 100644
index 0000000..33bb087
--- /dev/null
+++ b/tutorial/1_intro_and_build_snd.html~
@@ -0,0 +1,211 @@
+<html>
+<body bgcolor="#FFFFFF">
+
+<center><h3>Developing And Using Snd</h3></center>
+<center><h4>A Simple Guide And Tutorial For Editing Sound Under Linux</h4></center>
+<center><h4>by</h4></center>
+<center><h4><a href=mailto:dlphilp@bright.net>Dave Phillips</a></h4></center>
+<p>
+
+<u><b>INTRODUCTION TO SOUNDFILE EDITORS</b></u>
+<p>
+
+A soundfile editor (aka an audio editor) is one of the standard tools of the digital sound and music trades. Audio editors work on soundfiles in ways that are analogous to the actions of text and graphics editors upon their respective file types. Typically a modern soundfile editor includes the common cut/copy/paste routines along with a complement of signal processing and mixing modules. A graphic interface and waveform display is usually encountered (though text-mode audio editors do exist for UNIX/Linux), and point & click is the expected mode of user interaction.
+<p>
+
+As Linux grows in popularity among artists working in media such as audio/video and animation we can expect to see more interest in the system's audio capabilities and its available sound and music software. Sound workers migrating from Windows or the Mac will look for tools similar to what they have enjoyed using on their previous platforms, and one of their most frequently asked questions is "What Linux audio editor will most completely take the place of Cool Edit ?".
+<p>
+
+<a href=http://www.syntrillium.com/cooledit/>Cool Edit</a> [Figure 1] is perhaps the most popular soundfile editor available for the Windows OS family. It has been in continuous development for more than ten years: programmer David Johnston originally wrote Cool Edit as shareware for Windows 3.1, and in 1995 the Syntrillium corporation began managing the commercial development of the program (the company still maintains and distributes the shareware version available on the Internet).
+<p>
+
+<center> <img src="images/jpg/1_01-ce2000.jpg">
+<p>
+<b>Figure 1.</b> Cool Edit 2000 (courtesy Dmitri Touretsky)
+</center>
+<p>
+
+Cool Edit is a wonderful program. Its interface is easy to navigate and invites experimentation with a powerful editing and processing toolkit. I used it extensively from its earliest versions through Cool Edit 96, and when I finally stopped using Windows Cool Edit was one of the few programs I truly missed.
+<p>
+
+For various reasons it has been rather difficult to advise Cool Edit users on a Linux equivalent. While there are many soundfile editors available for Linux none are up to Cool Edit's standard, particularly with regards to transparency and ease of use. In response to this challenge I decided to work on extending and enhancing Snd, a powerful audio editor for Linux and other UNIX platforms (see Table 1 for a complete list).
+<p>
+
+<pre>
+********************************
+* *
+* Table 1: Supported platforms *
+* *
+********************************
+
+ Cool Edit: Windows 95/98/ME, NT/2000, or higher
+
+ Snd: DEC Alpha, SGI, HP-UX, mkLinux, Linux, PPC, SCO, Solaris, *BSD, Mac OSX
+</pre>
+<p>
+
+Like Cool Edit, Snd has been in lengthy development. Snd author Bill Schottstaedt has programmed it continuously since 1996, but his involvement with writing soundfile editors dates back to the late 1970s when he wrote the Dpysnd audio editor for the PDP-10 minicomputer. However, Snd's user interface and other basic design differences are problematic for Cool Edit users, and it is easy to miss Snd's great power and utility. I decided to expose more of that power to the novice and to try to create a working environment similar to Cool Edit. This article will relate how that work has been accomplished so far and will indicate the work that remains.
+<p>
+
+The differences and similarities between Cool Edit and Snd led me to many considerations regarding interface design and its necessary trade-offs. Cool Edit's interface is uniformly designed for editing and processing soundfiles. Almost every action and function in the program can be accessed and controlled by the mouse, and users can navigate their way through the entire program by pointing and clicking. Thanks to this uniform interface a novice easily learns and remembers the program's behavior and more quickly moves into actually working with the program. On the other hand, Snd has been designed to function within a rich sound processing and music composition software environment developed at <a href=http://www-ccrma.stanford.edu/>CCRMA</a>, Stanford University's Center for Computer Research in Music and Acoustics. That environment includes the Common LISP Music (CLM) sound synthesis language, the Common Music (CM) scoring tools for CLM and other output formats (such as Csound and MIDI), and the Common Music Notation (CMN) package. Indeed, Snd could be considered as a graphic display front-end for CLM: the standard build incorporates CLM as a built-in module, Snd provides a window called the Listener for entering code to access the module's synthesis and processing functions, and the interface provides various ways to play and represent the newly synthesized sound.
+<p>
+
+In contrast to the uniformity of Cool Edit, Snd's user interface could be thought of as "multiform" by design. In the default GUI the mouse is extensively employed, but far more program control is available through Snd's Emacs-style keyboard commands. And while considerable processing power lurks under its surface access to that power has been restricted to users willing to learn the necessary scripting language. Thus, in order to use Snd to its fullest potential the user must learn to manage Snd's more complex control interface and acquire some proficiency in the Guile/Scheme language. With that proficiency he can customize the program's appearance and behavior, warping it into quite a different Snd, something more like Cool Edit but definitely still Snd.
+<p>
+
+This article describes how such a warping has been achieved by a user with very little programming skill (I'm really a musician) and virtually no experience with LISP or Scheme. It is not a shoot-out between Cool Edit and Snd. It is actually a status report of an on-going project to externalize Snd's great internal power, using Cool Edit as a model for developing Snd's user interface. I must also note that Cool Edit 2000 has been my measuring rod, not its bigger brother Cool Edit Pro: I have focused on Snd's utility as a soundfile editor, and I consider Cool Edit Pro to be more of a multitrack hard-disk recording environment. So with this undertanding let's get into Snd...
+<p>
+
+
+<u><b>GETTING STARTED WITH SND</b></u>
+<p>
+
+<b>Requirements</b>
+<p>
+
+To build the version of Snd presented in this article you will need to install the following support software:
+<p>
+
+<pre>
+ Guile 1.5.x
+ OpenMotif 2.1
+ ALSA 0.9.x with OSS emulation enabled
+ LADSPA and its various plugins
+ the Scheme customization files included in the snd-5/contrib/dlp directory
+</pre>
+<p>
+
+See the Resources section for the download locations for these packages. It is beyond the scope of this profile to give instructions on installing this software, but the documentation for each package will lead you through their respective build and install procedures. Any other requirements should be fulfilled by libraries and other software included in most mainstream Linux distributions.
+<p>
+
+The ALSA driver packages are not strictly required. You can build Snd perfectly well with either the kernel sound modules (aka OSS/Free) installed or with the excellent OSS/Linux commercial drivers from 4Front Technologies.
+<p>
+
+<b>Getting It, Building It, Installing It</b>
+<p>
+
+Prebuilt binaries for Linux i386, LinuxPPC, and Sun are available from the Snd home page. Source and binary RPMs have been prepared and are available for the i386 and PPC Linux versions. To install Snd from those packages simply follow the usual method of installing RPMs. For example, this command:
+<p>
+
+<pre>
+ rpm -ivh snd-5-1.ppc.rpm
+</pre>
+<p>
+
+will install the LinuxPPC package (you will probably need root status to install the RPM file).
+<p>
+
+<i>Note: The instructions and descriptions throughout this article refer to Snd built for the i386 architecture. I was unable to test my build configuration on any other system, but I would like to hear from anyone running Snd on other platforms, particularly LinuxPPC.</i>
+<p>
+
+To build Snd yourself first download the source package (currently snd-5.tar.gz) from the <a href=http://www-ccrma.stanford.edu/software/snd/>CCRMA Snd Home Page</a> to your home directory. Unpack it with 'tar xzvf snd-n.tar.gz' (where n is the major version number), then enter your newly created snd-n directory and read the README.Snd file for the latest installation instructions and details. Run './configure --help' for a list of configuration options: This list includes options for your choice of user interface (Motif, GTK, none), soundcard driver support (ALSA, OSS, Esound), the use of Ruby instead of Guile for Snd's extension language, and support for LADSPA plugins. I use the following command options to compile Snd:
+<p>
+
+<p>
+<pre>
+ ./configure --with-motif --with-ladspa --with-static-xm
+</pre>
+<p>
+
+This configuration builds Snd with a Motif 2.1 GUI, support for the LADSPA audio plugins, and built-in support for the graphics routines within Snd's Motif module (xm.so, if built separately). Default values are accepted for all other configuration options, including Snd's default support for the OSS/Free kernel sound API.
+<p>
+
+After configuring the build, run 'make' and wait for the compiler to finish building your new Snd. Become superuser (su root) and run 'make install'. The binary will be installed in /usr/local/bin and a manual page will be placed in /usr/local/man/man1.
+<p>
+
+Snd is also available via CVS. Please see the Snd home page for the details of accessing and downloading using CVS.
+<p>
+
+<!--
+<b>Why Not Native ALSA ?</b>
+<p>
+
+My build configuration includes Snd's default support for the OSS/Free kernel sound API. Including the --with-alsa option will build Snd with native ALSA support (either 0.5.x or the 0.9.x beta series), but the state of the ALSA API is rather mercurial at this time (though quickly closing in on its long-anticipated 1.0 release). Depending on your soundcard, Snd's ALSA support may not be in sync with the most current API. Running Snd with ALSA 0.5.11 native support for my SBLive Value crashed the program when trying to record, but the same driver package works perfectly (via ALSA's OSS/Free emulation mode) with Snd compiled for OSS support. However, native ALSA support and OSS emulation both worked fine for my SB PCI128. I also encountered no problems with recording or playback using the OSS/Linux drivers.
+<p>
+
+<i>Note: Fernando Lopez-Lezcano has recently hacked a work-around that allows recording in Snd under native ALSA with my SBLive. Preliminary tests indicate that the hack works well with mic, line, and CD input, but it is problematic recording from my mixer's master output channel. Hopefully a complete solution will be found soon, and I should emphasize that Snd's ALSA support is already quite functional.</i>
+<p>
+-->
+
+<b>Why Motif Instead Of GTK ?</b>
+<p>
+
+Snd can be configured for a build using either Motif or the GTK graphics libraries or for a build with no GUI at all. Some users may wonder why I chose to build Snd with Motif instead of the more modern GTK. As a matter of fact I did build Snd with GTK a few times, but I prefer the amenities of Motif, particularly the keyboard acceleration. More importantly, my interface enhancements depend on the xm.so module. Work proceeds on bringing the GTK version to the same level of customization as the Motif build, but it's not there yet. A final consideration was the fact that Motif 2.1 is now freely available from the <a href=http://www.opengroup.org/openmotif/>OpenMotif</a> group, while the well-known LessTif (replaces Motif 1.2) is also available for free and is usually included with most mainstream Linux distributions. However, Snd may exhibit some odd behavior with LessTif, and author Bill Schottstaedt has indicated that he would rather not bother with Snd + LessTif problems, so I recommend the OpenMotif package.
+<p>
+
+<b>The Test System</b>
+<p>
+
+Here are the hardware specfications of the system used throughout this article:
+<p>
+
+<pre>
+ 800 MHz AMD Duron
+ 512 MB memory
+ two 15 GB Maxtor IDE hard-disks
+ Voodoo3 video card with 19" monitor
+ SBLive Value and SB PCI128 soundcards
+</pre>
+<p>
+
+System software includes Linux kernel 2.4.5 patched for low-latency (for more information please see my article about <a href=http://linux.oreillynet.com/pub/a/linux/2000/11/17/low_latency.html>setting up the Linux kernel for low-latency</a> published by the O'Reilly Network) and the soundcard drivers from ALSA 0.9.0beta10. I built the ALSA package with the OSS emulation enabled and Snd is quite content with that arrangement.
+<p>
+
+The reader might notice that the test machine is rather "loaded". Processing digital audio consumes system resources, so for best results you'll want a fast CPU, lots of RAM, a large fast hard-disk, and a good video system, preferably with at least a 17" monitor (multichannel displays quickly eat up viewing area, even on a 19" monitor in high-resolution modes). You can work with Snd with less powerful resources, but your mileage will certainly vary from the test system.
+<p>
+
+
+<b>Firing Up</b>
+<p>
+
+Start Snd by entering <i>snd</i> at an xterm prompt. With no command-line options or flags you will see Snd's default opening display [Figure 2]. Cool Edit users will immediately wonder what's going on here. They are accustomed to seeing a complete display when Cool Edit starts, not this rather stark and uninformative box. Expanding the window only opens up a blank grey canvas, nothing like the visual array of icons, meters, and timers in Cool Edit.
+<p>
+
+<center> <img src="images/jpg/1_02-snd_default_open.jpg">
+<p>
+<b>Figure 2.</b> Snd opened with no soundfiles loaded
+</center>
+<p>
+
+Snd has evolved within the UNIX domain, and more pointedly it has evolved in the world of computer music and sound synthesis programming languages running on UNIX machines. Unlike Cool Edit, Snd expects the user to learn and understand how to use an underlying programming language to tap the full extent of Snd's capabilities, and this factor often proves to be the major stumbling point for migrating Cool Edit users. Despite the relative ease of learning the Scheme or Ruby scripting language, users coming from Windows or the Mac simply do not expect to meet with such a requirement for the full use of the software. When a user is already proficient at the task, learning a programming language in order to use an audio editor seems not only a daunting endeavor but a pointless one as well.
+<p>
+
+The next formidable block for Cool Edit users is the management of a combined keyboard/mouse interface. As I mentioned earlier, Cool Edit is almost entirely mouse-operated. Text entry is supported, but at almost every point the mouse is the designated input device for selecting files and other data, choosing processing options and other menu items, and even setting data values (with spinboxes, sliders, and other data entry widgets).
+<p>
+
+By comparison, the default Snd is far more keyboard-intensive. Emacs users will be pleased to find that Snd's keyboard control is based on the Emacs keyboard layout, but that will be little comfort to Cool Edit users (or to <b>vi</b> adherents like myself). Control and Alt key combinations are normally used to operate the default Snd, and I advise new users to learn at least the following keystroke commands:
+<p>
+
+<pre>
+ C-a position cursor at beginning of the display
+ C-e position cursor at the end of the display
+ C-v position cursor at the midpoint of the file
+
+ C-l moves cursor to mid-display
+ C-j position cursor on the next mark
+
+ C-t stop playback
+ C-g stop all processing
+
+ C-i sends a report to the minibuffer on the status of the soundfile at the cursor position.
+</pre>
+
+Press the space bar to pause playback; press it again to continue playback from the pause point.
+<p>
+
+The following key combinations provide more precise cursor movement:
+<p>
+
+<pre>
+ C-b move cursor back one sample
+ C-f move cursor forward one sample
+</pre>
+
+These particular movements are especially valuable when zoomed into a file to single-sample resolution.
+<p>
+
+There are many other keyboard controls for cursor movement. Fortunately, most of the other basic operations of the program (opening and closing files, starting and stopping playback, accessing menus and menu items, navigating the display, exiting the program) can be controlled by mouse actions. The new user should have no trouble learning a dozen key combinations, but for the seriously keystroke-challenged I have provided graphic controls for positioning the cursor.
+<p>
+
+</body>
+</html>
diff --git a/vct.c b/vct.c
index 8510b4c..c3c6e66 100644
--- a/vct.c
+++ b/vct.c
@@ -781,16 +781,26 @@ static XEN g_vector_to_vct(XEN vect)
mus_long_t len, i;
vct *v;
XEN scv;
+#if HAVE_S7
+ int gc_loc;
+#endif
XEN_ASSERT_TYPE(XEN_VECTOR_P(vect), vect, XEN_ONLY_ARG, S_vector_to_vct, "a vector");
len = (mus_long_t)XEN_VECTOR_LENGTH(vect);
if (len == 0) return(XEN_FALSE);
scv = xen_make_vct(len, (mus_float_t *)calloc(len, sizeof(mus_float_t)));
+#if HAVE_S7
+ gc_loc = s7_gc_protect(s7, scv);
+#endif
+
v = XEN_TO_VCT(scv);
for (i = 0; i < len; i++)
v->data[i] = (mus_float_t)XEN_TO_C_DOUBLE(XEN_VECTOR_REF(vect, i));
+#if HAVE_S7
+ s7_gc_unprotect_at(s7, gc_loc);
+#endif
return(xen_return_first(scv, vect));
}
@@ -801,6 +811,9 @@ static XEN g_vct_to_vector(XEN vobj)
vct *v;
mus_long_t i, len;
XEN new_vect;
+#if HAVE_S7
+ int gc_loc;
+#endif
XEN_ASSERT_TYPE(MUS_VCT_P(vobj), vobj, XEN_ONLY_ARG, S_vct_to_vector, "a vct");
@@ -808,6 +821,9 @@ static XEN g_vct_to_vector(XEN vobj)
len = v->length;
new_vect = XEN_MAKE_VECTOR(len, C_TO_XEN_DOUBLE(0.0));
+#if HAVE_S7
+ gc_loc = s7_gc_protect(s7, new_vect);
+#endif
#if HAVE_RUBY && HAVE_RB_GC_DISABLE
rb_gc_disable();
/* uh oh -- gc is triggered by C_TO_XEN_DOUBLE causing segfault, even if we
@@ -819,6 +835,9 @@ static XEN g_vct_to_vector(XEN vobj)
for (i = 0; i < len; i++)
XEN_VECTOR_SET(new_vect, i, C_TO_XEN_DOUBLE(v->data[i]));
+#if HAVE_S7
+ s7_gc_unprotect_at(s7, gc_loc);
+#endif
#if HAVE_RUBY && HAVE_RB_GC_DISABLE
rb_gc_enable();
#endif
diff --git a/ws.rb b/ws.rb
index b367d91..ae20616 100644
--- a/ws.rb
+++ b/ws.rb
@@ -396,7 +396,7 @@ require "hooks"
def clm_player(s)
if provided?(:snd) and sound?(s)
- play_and_wait(0, s)
+ play(s, :wait, true)
elsif string?(s) and File.exist?(s)
system("sndplay #{s}")
else
@@ -412,7 +412,7 @@ __ws_verbose__ = $VERBOSE
__ws_debug__ = $DEBUG
# get rid of `undefined variable' messages
with_silence do
- $clm_version = "ruby 15-Oct-2009"
+ $clm_version = "ruby 26-Nov-2009"
$output ||= false
$reverb ||= false
$clm_array_print_length ||= 8
@@ -1138,7 +1138,7 @@ installs the @with_sound_note_hook and prints the line
when Method
snd_func(@player, @out_snd)
else
- play_and_wait(0, @out_snd)
+ play(@out_snd, :wait, true)
end
else
# Outside Snd we use a Proc or Method of one arg, a sound FILE NAME.
diff --git a/ws.scm b/ws.scm
index d94b1d3..6c0f027 100644
--- a/ws.scm
+++ b/ws.scm
@@ -163,10 +163,11 @@
(set! (mus-safety *output*) output-safety))
(begin
(if (not continue-old-file)
- (if (vct? output-1)
- (vct-fill! output-1 0.0)
- (if (sound-data? output-1)
- (sound-data-fill! output-1 0.0))))
+ ;; if s7 we could just use fill! here (and below)
+ (if (or (vct? output-1)
+ (sound-data? output-1)
+ (vector? output-1))
+ (fill! output-1 0.0)))
(set! *output* output-1)))
(if reverb
@@ -181,10 +182,10 @@
(set! (mus-safety *reverb*) output-safety))
(begin
(if (not continue-old-file)
- (if (vct? reverb-1)
- (vct-fill! reverb-1 0.0)
- (if (sound-data? reverb-1)
- (sound-data-fill! reverb-1 0.0))))
+ (if (or (vct? reverb-1)
+ (sound-data? reverb-1)
+ (vector? reverb-1))
+ (fill! reverb-1 0.0)))
(set! *reverb* reverb-1)))))
;; else thread-output
@@ -235,12 +236,11 @@
(if reverb-to-file
(mus-close *reverb*)))
(if statistics
- (if reverb-to-file
- (set! revmax (maxamp reverb-1))
- (if (vct? reverb-1)
- (set! revmax (vct-peak reverb-1))
- (if (sound-data? reverb-1)
- (set! revmax (sound-data-peak reverb-1))))))
+ (if (or reverb-to-file
+ (vct? reverb-1)
+ (sound-data? reverb-1)
+ (vector? reverb-1))
+ (set! revmax (maxamp reverb-1))))
(if (not thread-reverb)
(begin
(if reverb-to-file
@@ -286,7 +286,8 @@
(if (vct? output-1) "vct"
(if (sound-data? output-1) "sound-data"
(if (procedure? output-1) "function"
- "flush"))))
+ (if (vector? output-1) "vector"
+ "flush")))))
(if (or scaled-to scaled-by)
" (before scaling)"
"")
@@ -302,7 +303,9 @@
(list (vct-peak output-1))
(if (sound-data? output-1)
(sound-data-maxamp output-1)
- 0.0)))
+ (if (vector? output-1)
+ (list (maxamp output-1))
+ 0.0))))
(if revmax (format #f " rev max: ~,4F~%" revmax) "")
cycles)))
@@ -327,7 +330,18 @@
(let ((pk (sound-data-peak output-1)))
(if (> pk 0.0)
(sound-data-scale! output-1 (/ scaled-to pk))))
- (sound-data-scale! output-1 scaled-by))))))
+ (sound-data-scale! output-1 scaled-by))
+ (if (vector? output-1)
+ (if scaled-to
+ (let ((pk (maxamp output-1)))
+ (if (> pk 0.0)
+ (let ((scl (/ scaled-to pk)))
+ (do ((i 0 (+ i 1)))
+ ((= i (vector-length output-1)))
+ (vector-set! output-1 i (* scl (vector-ref output-1 i)))))))
+ (do ((i 0 (+ i 1)))
+ ((= i (vector-length output-1)))
+ (vector-set! output-1 i (* scaled-by (vector-ref output-1 i))))))))))
(if (and play output-to-file)
(if to-snd
@@ -736,9 +750,10 @@ finish-with-sound to complete the process."
(set! *output* (make-sample->file output channels data-format header-type comment))))
(begin
(if (not continue-old-file)
- (if (vct? output)
- (vct-fill! output 0.0)
- (sound-data-fill! output 0.0)))
+ (if (or (vct? output)
+ (sound-data? output)
+ (vector? output))
+ (fill! output 0.0)))
(set! *output* output)))
(if reverb
@@ -751,9 +766,10 @@ finish-with-sound to complete the process."
(set! *reverb* (make-sample->file revfile reverb-channels data-format header-type))))
(begin
(if (not continue-old-file)
- (if (vct? revfile)
- (vct-fill! revfile 0.0)
- (sound-data-fill! revfile 0.0)))
+ (if (or (vct? revfile)
+ (sound-data? revfile)
+ (vector? revfile))
+ (fill! revfile 0.0)))
(set! *reverb* revfile))))
(list 'with-sound-data
@@ -863,102 +879,7 @@ finish-with-sound to complete the process."
(add-hook! after-save-state-hook ws-save-state)
-;;; -------- with-mix --------
-;;;
-;;; weird syntax = with-mix (with-sound-args) file-name start-in-output &body body
-;;;
-;;; (with-sound ()
-;;; (with-mix () "section-1" 0 (fm-violin 0 1 440 .1)
-;;; (fm-violin 1 2 660 .1))
-;;; ...)
-
-(define (with-mix-find-file-with-extensions file extensions)
- "(with-mix-find-file-with-extensions file extensions) helps the with-mix macro find checkpoint files"
- (if (file-exists? file)
- file
- (call-with-exit
- (lambda (found-one)
- (for-each
- (lambda (ext)
- (let ((new-file (string-append file "." ext)))
- (if (file-exists? new-file)
- (found-one new-file))))
- extensions)
- #f))))
-
-(define (with-mix-file-extension file default)
- "(with-mix-file-extension file default) is a helper function for the with-mix macro"
- (let ((len (string-length file)))
- (call-with-exit
- (lambda (ok)
- (do ((i (- len 1) (- i 1)))
- ((= i 0))
- (if (char=? (string-ref file i) #\.)
- (ok (substring file (+ 1 i) len))))
- default))))
-
-(defmacro with-mix (options ur-chkpt-file ur-beg . body)
- `(let ((chkpt-file ,ur-chkpt-file)
- (beg-1 ,ur-beg))
- (if (not (list? ',options))
- (throw 'with-sound-interrupt (format #f "with-mix options list (arg 1) is ~A?~%;" ',options))
- (if (not (string? chkpt-file))
- (throw 'with-sound-interrupt (format #f "with-mix file (arg 2) is ~A?~%;" ,ur-chkpt-file))
- (if (not (number? beg-1))
- (throw 'with-sound-interrupt (format #f "with-mix begin time (arg 3) for ~S = ~A?~%;" chkpt-file beg-1))
- (let ((beg (round (* (mus-srate) beg-1))))
- (if (null? ',body)
- (mus-mix *output* chkpt-file beg)
- (let* ((call-str (object->string ',body))
- (option-str (object->string ',options))
- (sndf (with-mix-find-file-with-extensions chkpt-file (list (with-mix-file-extension *clm-file-name* "snd") "snd")))
- (revf (and sndf *reverb* (with-mix-find-file-with-extensions chkpt-file (list "rev"))))
- (mix-values (and sndf
- (or (not *reverb*)
- revf)
- (let ((comment (mus-sound-comment sndf)))
- (and (string? comment)
- (catch #t
- (lambda ()
- (eval-string comment))
- (lambda args #f))))))) ; any error means we lost
- (if (and sndf
- (or (not *reverb*)
- revf)
- (list? mix-values)
- (= (length mix-values) 2)
- (string? (car mix-values))
- (string? (cadr mix-values))
- (string=? (car mix-values) option-str)
- (string=? (cadr mix-values) call-str))
- (begin
- (if *clm-verbose* (snd-print (format #f "mix ~S at ~,3F~%" sndf beg)))
- (mus-mix *output* sndf beg)
- (if revf (mus-mix *reverb* revf beg)))
- ;; else recompute
- (let ((old-to-snd *to-snd*))
- (set! *to-snd* #f)
- (if *clm-verbose* (snd-print (format #f "remake ~S at ~,3F~%" chkpt-file beg)))
- (let ((new-sound
- (apply with-sound-helper
- (lambda () ,@body)
- (append (list :output
- (string-append chkpt-file "." (with-mix-file-extension *clm-file-name* "snd")))
- (list :comment
- (format #f "(begin~%;; written ~A (Snd: ~A)~%(list ~S ~S))~%"
- (strftime "%a %d-%b-%Y %H:%M %Z" (localtime (current-time)))
- (snd-version)
- option-str
- call-str))
- (if (and (> (channels *output*) 1)
- (not (member :channels ',options)))
- (list :channels (channels *output*))
- '())
- ',options))))
- (set! *to-snd* old-to-snd)
- (mus-mix *output* new-sound beg)
- (if revf (mus-mix *reverb* revf beg)))))))))))))
-
+;;; -------- def-optkey-instrument --------
(defmacro def-optkey-instrument (args . body)
(let* ((name (car args))
@@ -983,6 +904,8 @@ finish-with-sound to complete the process."
(list)))))
+;;; -------- ->frequency --------
+
(define ->frequency
(let ((main-pitch (/ 440.0 (expt 2.0 (/ 57 12)))) ; a4 = 440Hz is pitch 57 in our numbering
(last-octave 0) ; octave number can be omitted
@@ -1015,6 +938,9 @@ symbol: 'e4 for example. If 'pythagorean', the frequency calculation uses small
(* main-pitch (expt 2.0 (/ et-pitch 12)))))
pitch))))
+
+;;; -------- ->sample --------
+
(define (->sample beg)
"(->sample time-in-seconds) -> time-in-samples"
(round (* (if (not (null? (sounds))) (srate) (mus-srate)) beg)))
@@ -1118,7 +1044,7 @@ symbol: 'e4 for example. If 'pythagorean', the frequency calculation uses small
field-names field-types))))
-;;; ----------------
+;;; -------- clm-display-globals --------
;;;
;;; display all the globals that might affect with-sound unexpectedly
diff --git a/wz_data.js b/wz_data.js
index 55ae1ed..b006964 100644
--- a/wz_data.js
+++ b/wz_data.js
@@ -546,27 +546,18 @@ var extsnd_padchannel_tip = "<code>(pad-channel beg dur :optional snd chn edpos)
var extsnd_peaksfont_tip = "<code>(peaks-font)</code>: normal font used by fft peak display";
-var extsnd_play_tip = "<code>(play :optional (start 0) snd chn sync end (pos -1) stop-proc out-chan)</code>:<br>" +
- " play snd or snd's channel chn starting at start.<br>" +
- " 'start' can also be a function or a filename:<br>" +
- "<code> (play \"oboe.snd\")</code>.<br>" +
- " If 'sync' is true, all sounds syncd to snd are played.<br>" +
- " If 'end' is not given, play plays to the end of the sound.<br>" +
- " If 'pos' is -1 or not given, the current edit position is played.";
-
-var extsnd_playandwait_tip = "<code>(play-and-wait (start 0) snd chn syncd end (pos -1) stop-proc out-chan)</code>:<br>" +
- " play snd or snd's channel chn starting at start and wait for the play to complete before returning.<br>" +
- " 'start' can also be a function or a filename:<br>" +
- "<code> (play-and-wait \"oboe.snd\")</code>";
+var extsnd_play_tip = "<code>(play object :start :end :channel :edit-position :out-channel :with-sync :wait :stop):<br>" +
+ " play the object from start to end.<br>" +
+ " If channel is not given, play all channels.<br>" +
+ " If with-sync, play all objects sync'd to the current object.<br>" +
+ " If wait, wait for the play process to finish before going on.<br>" +
+ " If out-channel, send the samples to that DAC channel.<br>" +
+ " If edit-position, play that member of the edit list.<br>" +
+ " If stop, call that function when the play process finishes.<br>" +
+ " If object is a string, it is assumed to be a file name.";
var extsnd_playhook_tip = "<code>play-hook (samps)</code>: called each time a buffer is sent to the DAC.";
-var extsnd_playregion_tip = "<code>(play-region :optional (reg 0) wait stop-proc)</code>:<br>" +
- " play region reg; if wait is #t, play to end before returning";
-
-var extsnd_playselection_tip = "<code>(play-selection :optional wait stop-proc)</code>: play the selection.<br>" +
- " 'wait', if #t, causes play-selection to wait until the playing is finished before returning.";
-
var extsnd_positiontox_tip = "<code>(position-&gt;x val :optional snd chn (ax time-graph))</code>: x axis value corresponding to pixel val";
var extsnd_previoussample_tip = "<code>(previous-sample reader)</code>: previous sample from reader";
diff --git a/xen.c b/xen.c
index b84b42e..4297bf9 100644
--- a/xen.c
+++ b/xen.c
@@ -1871,7 +1871,10 @@ void xen_repl(int argc, char **argv)
while (true)
{
if (expr_ok)
- fprintf(stdout, "\n%s", xen_s7_repl_prompt);
+ {
+ fprintf(stdout, "\n%s", xen_s7_repl_prompt);
+ expr_ok = false; /* don't get into an infinite loop if running in the background! */
+ }
if (fgets(buffer, size, stdin) != NULL)
{
/* also, it's possible to get a string of spaces or nulls (? -- not sure what is coming in) if stdin is /dev/null */
diff --git a/xen.h b/xen.h
index 2ef7aba..6ae32a8 100644
--- a/xen.h
+++ b/xen.h
@@ -3,19 +3,20 @@
/* macros for extension language support
*
- * Guile: covers 1.3.4 to present (1.9.0)
- * Ruby: covers 1.6 to present (1.9, but avoid the latter!)
+ * Guile: covers 1.3.4 to present
+ * Ruby: covers 1.6 to present
* Forth: covers 1.0 to present
- * S7: all versions
+ * s7: all versions
* None: all versions
*/
#define XEN_MAJOR_VERSION 3
-#define XEN_MINOR_VERSION 1
-#define XEN_VERSION "3.1"
+#define XEN_MINOR_VERSION 2
+#define XEN_VERSION "3.2"
/* HISTORY:
*
+ * 2-Nov: XEN_VECTOR_RANK.
* 5-Oct: use s7_c_pointer etc.
* 7-Aug: use s7_new_type_x in XEN_MAKE_OBJECT_TYPE. XEN_DEFINE_SET_PROCEDURE.
* 27-Jul: INT64_T cases paralleling OFF_T (the latter may go away someday).
@@ -1744,6 +1745,7 @@ extern XEN xen_false, xen_true, xen_nil, xen_undefined;
#define XEN_VECTOR_SET(Vect, Num, Val) s7_vector_set(s7, Vect, Num, Val)
#define XEN_MAKE_VECTOR(Num, Fill) s7_make_and_fill_vector(s7, Num, Fill)
#define XEN_VECTOR_TO_LIST(Vect) s7_vector_to_list(s7, Vect)
+#define XEN_VECTOR_RANK(Vect) s7_vector_rank(Vect)
#define XEN_CHAR_P(Arg) s7_is_character(Arg)
#define XEN_TO_C_CHAR(Arg) s7_character(Arg)
@@ -2331,10 +2333,11 @@ void xen_no_ext_lang_check_args(const char *name, int args, int req_args, int op
#endif
#if HAVE_GUILE
-#define XEN_ONLY_ARG 0
+ #define XEN_ONLY_ARG 0
#else
-#define XEN_ONLY_ARG 1
+ #define XEN_ONLY_ARG 1
#endif
+
#define XEN_ARG_1 1
#define XEN_ARG_2 2
#define XEN_ARG_3 3
@@ -2348,15 +2351,16 @@ void xen_no_ext_lang_check_args(const char *name, int args, int req_args, int op
/* 10 is the limit in Guile (SCM_GSUBR_MAX in gsubr.h), no limit in S7, not sure about Ruby or Forth */
#if (!HAVE_S7)
-#define XEN_TO_C_OFF_T_OR_ELSE(a, b) xen_to_c_off_t_or_else(a, b)
-#define XEN_TO_C_INT64_T_OR_ELSE(a, b) xen_to_c_int64_t_or_else(a, b)
-#define C_TO_XEN_OFF_T(a) c_to_xen_off_t(a)
-#define C_TO_XEN_INT64_T(a) C_TO_XEN_LONG_LONG(a)
-#define XEN_TO_C_OFF_T(a) xen_to_c_off_t(a)
-#define XEN_TO_C_INT64_T(a) xen_to_c_int64_t(a)
-#define XEN_AS_STRING(form) XEN_TO_C_STRING(XEN_TO_STRING(form))
+ #define XEN_TO_C_OFF_T_OR_ELSE(a, b) xen_to_c_off_t_or_else(a, b)
+ #define XEN_TO_C_INT64_T_OR_ELSE(a, b) xen_to_c_int64_t_or_else(a, b)
+ #define C_TO_XEN_OFF_T(a) c_to_xen_off_t(a)
+ #define C_TO_XEN_INT64_T(a) C_TO_XEN_LONG_LONG(a)
+ #define XEN_TO_C_OFF_T(a) xen_to_c_off_t(a)
+ #define XEN_TO_C_INT64_T(a) xen_to_c_int64_t(a)
+ #define XEN_AS_STRING(form) XEN_TO_C_STRING(XEN_TO_STRING(form))
+ #define XEN_VECTOR_RANK(Vect) 1
#else
-#define XEN_AS_STRING(form) s7_object_to_c_string(s7, form)
+ #define XEN_AS_STRING(form) s7_object_to_c_string(s7, form)
#endif
@@ -2410,13 +2414,13 @@ XEN xen_return_first(XEN a, ...);
char *xen_strdup(const char *str);
#if (!HAVE_S7)
-int xen_to_c_int_or_else(XEN obj, int fallback);
-off_t xen_to_c_off_t_or_else(XEN obj, off_t fallback);
-off_t xen_to_c_off_t(XEN obj);
-XEN c_to_xen_off_t(off_t val);
-int64_t xen_to_c_int64_t_or_else(XEN obj, int64_t fallback);
-int64_t xen_to_c_int64_t(XEN obj);
-#define XEN_DEFINE_SET_PROCEDURE(Name, Func, ReqArg, OptArg, RstArg, Doc) XEN_DEFINE_PROCEDURE(Name, Func, ReqArg, OptArg, RstArg, Doc)
+ int xen_to_c_int_or_else(XEN obj, int fallback);
+ off_t xen_to_c_off_t_or_else(XEN obj, off_t fallback);
+ off_t xen_to_c_off_t(XEN obj);
+ XEN c_to_xen_off_t(off_t val);
+ int64_t xen_to_c_int64_t_or_else(XEN obj, int64_t fallback);
+ int64_t xen_to_c_int64_t(XEN obj);
+ #define XEN_DEFINE_SET_PROCEDURE(Name, Func, ReqArg, OptArg, RstArg, Doc) XEN_DEFINE_PROCEDURE(Name, Func, ReqArg, OptArg, RstArg, Doc)
#endif
char *xen_version(void);
diff --git a/xg.c b/xg.c
index a216a3e..dd256a2 100644
--- a/xg.c
+++ b/xg.c
@@ -19,6 +19,9 @@
* HAVE_GTK_ADJUSTMENT_GET_UPPER for 2.13.4..6
* HAVE_GTK_SCALE_ADD_MARK for 2.15.0
* HAVE_GTK_INFO_BAR_NEW for 2.17.2
+ * HAVE_GTK_STATUS_ICON_GET_TITLE for 2.17.3
+ * HAVE_GTK_WIDGET_GET_VISIBLE for 2.17.7
+ * HAVE_GTK_SPINNER_NEW for 2.19.0
* HAVE_CAIRO_CREATE for cairo
* HAVE_CAIRO_GET_USER_DATA for cairo 1.4.0
* HAVE_CAIRO_FORMAT_STRIDE_FOR_WIDTH for cairo 1.6.4
@@ -624,10 +627,6 @@ XM_TYPE_PTR_1(GtkContainer_, GtkContainer*)
#define C_TO_XEN_GtkResizeMode(Arg) C_TO_XEN_INT(Arg)
#define XEN_TO_C_GtkResizeMode(Arg) (GtkResizeMode)(XEN_TO_C_INT(Arg))
#define XEN_GtkResizeMode_P(Arg) XEN_INTEGER_P(Arg)
-XM_TYPE_PTR_1(GtkCurve_, GtkCurve*)
-XM_TYPE_PTR_1(gfloat_, gfloat*)
-#define XEN_TO_C_GtkCurveType(Arg) (GtkCurveType)(XEN_TO_C_INT(Arg))
-#define XEN_GtkCurveType_P(Arg) XEN_INTEGER_P(Arg)
#define XEN_TO_C_GtkDialogFlags(Arg) (GtkDialogFlags)(XEN_TO_C_INT(Arg))
#define XEN_GtkDialogFlags_P(Arg) XEN_INTEGER_P(Arg)
#define XEN_etc_P(Arg) (XEN_LIST_P(Arg))
@@ -1016,7 +1015,7 @@ XM_TYPE_PTR(GIcon_, GIcon*)
#endif
#if HAVE_GTK_INFO_BAR_NEW
-XM_TYPE_PTR(GtkInfoBar_, GtkInfoBar*)
+XM_TYPE_PTR_1(GtkInfoBar_, GtkInfoBar*)
#define C_TO_XEN_GtkMessageType(Arg) C_TO_XEN_INT(Arg)
#define XEN_TO_C_GtkMessageType(Arg) (GtkMessageType)(XEN_TO_C_INT(Arg))
#define XEN_GtkMessageType_P(Arg) XEN_INTEGER_P(Arg)
@@ -1026,6 +1025,10 @@ XM_TYPE_PTR(GtkInfoBar_, GtkInfoBar*)
XM_TYPE_PTR(GtkEntryBuffer_, GtkEntryBuffer*)
#endif
+#if HAVE_GTK_SPINNER_NEW
+XM_TYPE_PTR_1(GtkSpinner_, GtkSpinner*)
+#endif
+
#if HAVE_CAIRO_CREATE
XM_TYPE_PTR(cairo_t_, cairo_t*)
XM_TYPE_PTR(cairo_surface_t_, cairo_surface_t*)
@@ -5982,22 +5985,6 @@ static XEN gxg_gtk_button_new_with_mnemonic(XEN label)
return(C_TO_XEN_GtkWidget_(gtk_button_new_with_mnemonic(XEN_TO_C_gchar_(label))));
}
-static XEN gxg_gtk_button_pressed(XEN button)
-{
- #define H_gtk_button_pressed "void gtk_button_pressed(GtkButton* button)"
- XEN_ASSERT_TYPE(XEN_GtkButton__P(button), button, 1, "gtk_button_pressed", "GtkButton*");
- gtk_button_pressed(XEN_TO_C_GtkButton_(button));
- return(XEN_FALSE);
-}
-
-static XEN gxg_gtk_button_released(XEN button)
-{
- #define H_gtk_button_released "void gtk_button_released(GtkButton* button)"
- XEN_ASSERT_TYPE(XEN_GtkButton__P(button), button, 1, "gtk_button_released", "GtkButton*");
- gtk_button_released(XEN_TO_C_GtkButton_(button));
- return(XEN_FALSE);
-}
-
static XEN gxg_gtk_button_clicked(XEN button)
{
#define H_gtk_button_clicked "void gtk_button_clicked(GtkButton* button)"
@@ -6006,22 +5993,6 @@ static XEN gxg_gtk_button_clicked(XEN button)
return(XEN_FALSE);
}
-static XEN gxg_gtk_button_enter(XEN button)
-{
- #define H_gtk_button_enter "void gtk_button_enter(GtkButton* button)"
- XEN_ASSERT_TYPE(XEN_GtkButton__P(button), button, 1, "gtk_button_enter", "GtkButton*");
- gtk_button_enter(XEN_TO_C_GtkButton_(button));
- return(XEN_FALSE);
-}
-
-static XEN gxg_gtk_button_leave(XEN button)
-{
- #define H_gtk_button_leave "void gtk_button_leave(GtkButton* button)"
- XEN_ASSERT_TYPE(XEN_GtkButton__P(button), button, 1, "gtk_button_leave", "GtkButton*");
- gtk_button_leave(XEN_TO_C_GtkButton_(button));
- return(XEN_FALSE);
-}
-
static XEN gxg_gtk_button_set_relief(XEN button, XEN newstyle)
{
#define H_gtk_button_set_relief "void gtk_button_set_relief(GtkButton* button, GtkReliefStyle newstyle)"
@@ -6783,72 +6754,6 @@ static XEN gxg_gtk_container_get_children(XEN container)
return(C_TO_XEN_GList_(gtk_container_get_children(XEN_TO_C_GtkContainer_(container))));
}
-static XEN gxg_gtk_curve_new(void)
-{
- #define H_gtk_curve_new "GtkWidget* gtk_curve_new( void)"
- return(C_TO_XEN_GtkWidget_(gtk_curve_new()));
-}
-
-static XEN gxg_gtk_curve_reset(XEN curve)
-{
- #define H_gtk_curve_reset "void gtk_curve_reset(GtkCurve* curve)"
- XEN_ASSERT_TYPE(XEN_GtkCurve__P(curve), curve, 1, "gtk_curve_reset", "GtkCurve*");
- gtk_curve_reset(XEN_TO_C_GtkCurve_(curve));
- return(XEN_FALSE);
-}
-
-static XEN gxg_gtk_curve_set_gamma(XEN curve, XEN gamma)
-{
- #define H_gtk_curve_set_gamma "void gtk_curve_set_gamma(GtkCurve* curve, gfloat gamma)"
- XEN_ASSERT_TYPE(XEN_GtkCurve__P(curve), curve, 1, "gtk_curve_set_gamma", "GtkCurve*");
- XEN_ASSERT_TYPE(XEN_gfloat_P(gamma), gamma, 2, "gtk_curve_set_gamma", "gfloat");
- gtk_curve_set_gamma(XEN_TO_C_GtkCurve_(curve), XEN_TO_C_gfloat(gamma));
- return(XEN_FALSE);
-}
-
-static XEN gxg_gtk_curve_set_range(XEN curve, XEN min_x, XEN max_x, XEN min_y, XEN max_y)
-{
- #define H_gtk_curve_set_range "void gtk_curve_set_range(GtkCurve* curve, gfloat min_x, gfloat max_x, \
-gfloat min_y, gfloat max_y)"
- XEN_ASSERT_TYPE(XEN_GtkCurve__P(curve), curve, 1, "gtk_curve_set_range", "GtkCurve*");
- XEN_ASSERT_TYPE(XEN_gfloat_P(min_x), min_x, 2, "gtk_curve_set_range", "gfloat");
- XEN_ASSERT_TYPE(XEN_gfloat_P(max_x), max_x, 3, "gtk_curve_set_range", "gfloat");
- XEN_ASSERT_TYPE(XEN_gfloat_P(min_y), min_y, 4, "gtk_curve_set_range", "gfloat");
- XEN_ASSERT_TYPE(XEN_gfloat_P(max_y), max_y, 5, "gtk_curve_set_range", "gfloat");
- gtk_curve_set_range(XEN_TO_C_GtkCurve_(curve), XEN_TO_C_gfloat(min_x), XEN_TO_C_gfloat(max_x), XEN_TO_C_gfloat(min_y),
- XEN_TO_C_gfloat(max_y));
- return(XEN_FALSE);
-}
-
-static XEN gxg_gtk_curve_get_vector(XEN curve, XEN veclen, XEN vector)
-{
- #define H_gtk_curve_get_vector "void gtk_curve_get_vector(GtkCurve* curve, int veclen, gfloat* vector)"
- XEN_ASSERT_TYPE(XEN_GtkCurve__P(curve), curve, 1, "gtk_curve_get_vector", "GtkCurve*");
- XEN_ASSERT_TYPE(XEN_int_P(veclen), veclen, 2, "gtk_curve_get_vector", "int");
- XEN_ASSERT_TYPE(XEN_gfloat__P(vector), vector, 3, "gtk_curve_get_vector", "gfloat*");
- gtk_curve_get_vector(XEN_TO_C_GtkCurve_(curve), XEN_TO_C_int(veclen), XEN_TO_C_gfloat_(vector));
- return(XEN_FALSE);
-}
-
-static XEN gxg_gtk_curve_set_vector(XEN curve, XEN veclen, XEN vector)
-{
- #define H_gtk_curve_set_vector "void gtk_curve_set_vector(GtkCurve* curve, int veclen, gfloat* vector)"
- XEN_ASSERT_TYPE(XEN_GtkCurve__P(curve), curve, 1, "gtk_curve_set_vector", "GtkCurve*");
- XEN_ASSERT_TYPE(XEN_int_P(veclen), veclen, 2, "gtk_curve_set_vector", "int");
- XEN_ASSERT_TYPE(XEN_gfloat__P(vector), vector, 3, "gtk_curve_set_vector", "gfloat*");
- gtk_curve_set_vector(XEN_TO_C_GtkCurve_(curve), XEN_TO_C_int(veclen), XEN_TO_C_gfloat_(vector));
- return(XEN_FALSE);
-}
-
-static XEN gxg_gtk_curve_set_curve_type(XEN curve, XEN type)
-{
- #define H_gtk_curve_set_curve_type "void gtk_curve_set_curve_type(GtkCurve* curve, GtkCurveType type)"
- XEN_ASSERT_TYPE(XEN_GtkCurve__P(curve), curve, 1, "gtk_curve_set_curve_type", "GtkCurve*");
- XEN_ASSERT_TYPE(XEN_GtkCurveType_P(type), type, 2, "gtk_curve_set_curve_type", "GtkCurveType");
- gtk_curve_set_curve_type(XEN_TO_C_GtkCurve_(curve), XEN_TO_C_GtkCurveType(type));
- return(XEN_FALSE);
-}
-
static XEN gxg_gtk_dialog_new(void)
{
#define H_gtk_dialog_new "GtkWidget* gtk_dialog_new( void)"
@@ -7726,12 +7631,6 @@ static XEN gxg_gtk_frame_get_shadow_type(XEN frame)
return(C_TO_XEN_GtkShadowType(gtk_frame_get_shadow_type(XEN_TO_C_GtkFrame_(frame))));
}
-static XEN gxg_gtk_gamma_curve_new(void)
-{
- #define H_gtk_gamma_curve_new "GtkWidget* gtk_gamma_curve_new( void)"
- return(C_TO_XEN_GtkWidget_(gtk_gamma_curve_new()));
-}
-
static XEN gxg_gtk_gc_get(XEN depth, XEN colormap, XEN values, XEN values_mask)
{
#define H_gtk_gc_get "GdkGC* gtk_gc_get(gint depth, GdkColormap* colormap, GdkGCValues* values, GdkGCValuesMask values_mask)"
@@ -8566,12 +8465,6 @@ GtkMenuShell* menushell)"
return(XEN_FALSE);
}
-static XEN gxg_gtk_input_dialog_new(void)
-{
- #define H_gtk_input_dialog_new "GtkWidget* gtk_input_dialog_new( void)"
- return(C_TO_XEN_GtkWidget_(gtk_input_dialog_new()));
-}
-
static XEN gxg_gtk_invisible_new(void)
{
#define H_gtk_invisible_new "GtkWidget* gtk_invisible_new( void)"
@@ -9920,34 +9813,6 @@ GtkWidget* child)"
return(C_TO_XEN_gchar_(gtk_notebook_get_menu_label_text(XEN_TO_C_GtkNotebook_(notebook), XEN_TO_C_GtkWidget_(child))));
}
-static XEN gxg_gtk_notebook_query_tab_label_packing(XEN notebook, XEN child, XEN ignore_expand, XEN ignore_fill, XEN ignore_pack_type)
-{
- #define H_gtk_notebook_query_tab_label_packing "void gtk_notebook_query_tab_label_packing(GtkNotebook* notebook, \
-GtkWidget* child, gboolean* [expand], gboolean* [fill], GtkPackType* [pack_type])"
- gboolean ref_expand;
- gboolean ref_fill;
- GtkPackType ref_pack_type;
- XEN_ASSERT_TYPE(XEN_GtkNotebook__P(notebook), notebook, 1, "gtk_notebook_query_tab_label_packing", "GtkNotebook*");
- XEN_ASSERT_TYPE(XEN_GtkWidget__P(child), child, 2, "gtk_notebook_query_tab_label_packing", "GtkWidget*");
- gtk_notebook_query_tab_label_packing(XEN_TO_C_GtkNotebook_(notebook), XEN_TO_C_GtkWidget_(child), &ref_expand, &ref_fill,
- &ref_pack_type);
- return(XEN_LIST_3(C_TO_XEN_gboolean(ref_expand), C_TO_XEN_gboolean(ref_fill), C_TO_XEN_GtkPackType(ref_pack_type)));
-}
-
-static XEN gxg_gtk_notebook_set_tab_label_packing(XEN notebook, XEN child, XEN expand, XEN fill, XEN pack_type)
-{
- #define H_gtk_notebook_set_tab_label_packing "void gtk_notebook_set_tab_label_packing(GtkNotebook* notebook, \
-GtkWidget* child, gboolean expand, gboolean fill, GtkPackType pack_type)"
- XEN_ASSERT_TYPE(XEN_GtkNotebook__P(notebook), notebook, 1, "gtk_notebook_set_tab_label_packing", "GtkNotebook*");
- XEN_ASSERT_TYPE(XEN_GtkWidget__P(child), child, 2, "gtk_notebook_set_tab_label_packing", "GtkWidget*");
- XEN_ASSERT_TYPE(XEN_gboolean_P(expand), expand, 3, "gtk_notebook_set_tab_label_packing", "gboolean");
- XEN_ASSERT_TYPE(XEN_gboolean_P(fill), fill, 4, "gtk_notebook_set_tab_label_packing", "gboolean");
- XEN_ASSERT_TYPE(XEN_GtkPackType_P(pack_type), pack_type, 5, "gtk_notebook_set_tab_label_packing", "GtkPackType");
- gtk_notebook_set_tab_label_packing(XEN_TO_C_GtkNotebook_(notebook), XEN_TO_C_GtkWidget_(child), XEN_TO_C_gboolean(expand),
- XEN_TO_C_gboolean(fill), XEN_TO_C_GtkPackType(pack_type));
- return(XEN_FALSE);
-}
-
static XEN gxg_gtk_notebook_reorder_child(XEN notebook, XEN child, XEN position)
{
#define H_gtk_notebook_reorder_child "void gtk_notebook_reorder_child(GtkNotebook* notebook, GtkWidget* child, \
@@ -31984,6 +31849,64 @@ static XEN gxg_gdk_window_flush(XEN window)
#endif
+#if HAVE_GTK_SPINNER_NEW
+static XEN gxg_gtk_dialog_get_widget_for_response(XEN dialog, XEN response_id)
+{
+ #define H_gtk_dialog_get_widget_for_response "GtkWidget* gtk_dialog_get_widget_for_response(GtkDialog* dialog, \
+gint response_id)"
+ XEN_ASSERT_TYPE(XEN_GtkDialog__P(dialog), dialog, 1, "gtk_dialog_get_widget_for_response", "GtkDialog*");
+ XEN_ASSERT_TYPE(XEN_gint_P(response_id), response_id, 2, "gtk_dialog_get_widget_for_response", "gint");
+ return(C_TO_XEN_GtkWidget_(gtk_dialog_get_widget_for_response(XEN_TO_C_GtkDialog_(dialog), XEN_TO_C_gint(response_id))));
+}
+
+static XEN gxg_gtk_tooltip_set_icon_from_gicon(XEN tooltip, XEN gicon, XEN size)
+{
+ #define H_gtk_tooltip_set_icon_from_gicon "void gtk_tooltip_set_icon_from_gicon(GtkTooltip* tooltip, \
+GIcon* gicon, GtkIconSize size)"
+ XEN_ASSERT_TYPE(XEN_GtkTooltip__P(tooltip), tooltip, 1, "gtk_tooltip_set_icon_from_gicon", "GtkTooltip*");
+ XEN_ASSERT_TYPE(XEN_GIcon__P(gicon), gicon, 2, "gtk_tooltip_set_icon_from_gicon", "GIcon*");
+ XEN_ASSERT_TYPE(XEN_GtkIconSize_P(size), size, 3, "gtk_tooltip_set_icon_from_gicon", "GtkIconSize");
+ gtk_tooltip_set_icon_from_gicon(XEN_TO_C_GtkTooltip_(tooltip), XEN_TO_C_GIcon_(gicon), XEN_TO_C_GtkIconSize(size));
+ return(XEN_FALSE);
+}
+
+static XEN gxg_gtk_viewport_get_bin_window(XEN viewport)
+{
+ #define H_gtk_viewport_get_bin_window "GdkWindow* gtk_viewport_get_bin_window(GtkViewport* viewport)"
+ XEN_ASSERT_TYPE(XEN_GtkViewport__P(viewport), viewport, 1, "gtk_viewport_get_bin_window", "GtkViewport*");
+ return(C_TO_XEN_GdkWindow_(gtk_viewport_get_bin_window(XEN_TO_C_GtkViewport_(viewport))));
+}
+
+static XEN gxg_gtk_spinner_new(void)
+{
+ #define H_gtk_spinner_new "GtkWidget* gtk_spinner_new( void)"
+ return(C_TO_XEN_GtkWidget_(gtk_spinner_new()));
+}
+
+static XEN gxg_gtk_spinner_start(XEN spinner)
+{
+ #define H_gtk_spinner_start "void gtk_spinner_start(GtkSpinner* spinner)"
+ XEN_ASSERT_TYPE(XEN_GtkSpinner__P(spinner), spinner, 1, "gtk_spinner_start", "GtkSpinner*");
+ gtk_spinner_start(XEN_TO_C_GtkSpinner_(spinner));
+ return(XEN_FALSE);
+}
+
+static XEN gxg_gtk_spinner_stop(XEN spinner)
+{
+ #define H_gtk_spinner_stop "void gtk_spinner_stop(GtkSpinner* spinner)"
+ XEN_ASSERT_TYPE(XEN_GtkSpinner__P(spinner), spinner, 1, "gtk_spinner_stop", "GtkSpinner*");
+ gtk_spinner_stop(XEN_TO_C_GtkSpinner_(spinner));
+ return(XEN_FALSE);
+}
+
+static XEN gxg_gtk_cell_renderer_spinner_new(void)
+{
+ #define H_gtk_cell_renderer_spinner_new "GtkCellRenderer* gtk_cell_renderer_spinner_new( void)"
+ return(C_TO_XEN_GtkCellRenderer_(gtk_cell_renderer_spinner_new()));
+}
+
+#endif
+
#if HAVE_CAIRO_CREATE
static XEN gxg_cairo_create(XEN target)
{
@@ -33984,7 +33907,6 @@ static XEN gxg_GTK_CHECK_MENU_ITEM(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XE
static XEN gxg_GTK_COLOR_SELECTION_DIALOG(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkColorSelectionDialog_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_COLOR_SELECTION(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkColorSelection_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_CONTAINER(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkContainer_"), XEN_CADR(obj)) : XEN_FALSE);}
-static XEN gxg_GTK_CURVE(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkCurve_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_DIALOG(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkDialog_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_DRAWING_AREA(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkDrawingArea_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_EDITABLE(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkEditable_"), XEN_CADR(obj)) : XEN_FALSE);}
@@ -33994,7 +33916,6 @@ static XEN gxg_GTK_FIXED(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C
static XEN gxg_GTK_FONT_SELECTION(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkFontSelection_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_FONT_SELECTION_DIALOG(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkFontSelectionDialog_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_FRAME(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkFrame_"), XEN_CADR(obj)) : XEN_FALSE);}
-static XEN gxg_GTK_GAMMA_CURVE(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkGammaCurve_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_HANDLE_BOX(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkHandleBox_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_HBUTTON_BOX(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkHButtonBox_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_HBOX(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkHBox_"), XEN_CADR(obj)) : XEN_FALSE);}
@@ -34009,7 +33930,6 @@ static XEN gxg_GTK_IMAGE_MENU_ITEM(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XE
static XEN gxg_GTK_IM_CONTEXT(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkIMContext_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_IM_CONTEXT_SIMPLE(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkIMContextSimple_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_IM_MULTICONTEXT(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkIMMulticontext_"), XEN_CADR(obj)) : XEN_FALSE);}
-static XEN gxg_GTK_INPUT_DIALOG(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkInputDialog_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_INVISIBLE(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkInvisible_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_ITEM(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkItem_"), XEN_CADR(obj)) : XEN_FALSE);}
static XEN gxg_GTK_LABEL(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkLabel_"), XEN_CADR(obj)) : XEN_FALSE);}
@@ -34175,6 +34095,11 @@ static XEN gxg_GTK_INFO_BAR(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_
static XEN gxg_GTK_ENTRY_BUFFER(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkEntryBuffer_"), XEN_CADR(obj)) : XEN_FALSE);}
#endif
+#if HAVE_GTK_SPINNER_NEW
+static XEN gxg_GTK_SPINNER(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkSpinner_"), XEN_CADR(obj)) : XEN_FALSE);}
+static XEN gxg_GTK_CELL_RENDERER_SPINNER(XEN obj) {return((WRAPPED_OBJECT_P(obj)) ? XEN_LIST_2(C_STRING_TO_XEN_SYMBOL("GtkCellRendererSpinner_"), XEN_CADR(obj)) : XEN_FALSE);}
+#endif
+
static XEN gxg_GDK_IS_COLORMAP(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GDK_IS_COLORMAP((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GDK_IS_DRAG_CONTEXT(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GDK_IS_DRAG_CONTEXT((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GDK_IS_DRAWABLE(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GDK_IS_DRAWABLE((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
@@ -34211,7 +34136,6 @@ static XEN gxg_GTK_IS_CHECK_MENU_ITEM(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_
static XEN gxg_GTK_IS_COLOR_SELECTION_DIALOG(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_COLOR_SELECTION_DIALOG((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_COLOR_SELECTION(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_COLOR_SELECTION((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_CONTAINER(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_CONTAINER((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
-static XEN gxg_GTK_IS_CURVE(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_CURVE((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_DIALOG(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_DIALOG((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_DRAWING_AREA(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_DRAWING_AREA((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_EDITABLE(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_EDITABLE((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
@@ -34221,7 +34145,6 @@ static XEN gxg_GTK_IS_FIXED(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(o
static XEN gxg_GTK_IS_FONT_SELECTION(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_FONT_SELECTION((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_FONT_SELECTION_DIALOG(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_FONT_SELECTION_DIALOG((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_FRAME(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_FRAME((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
-static XEN gxg_GTK_IS_GAMMA_CURVE(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_GAMMA_CURVE((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_HANDLE_BOX(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_HANDLE_BOX((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_HBUTTON_BOX(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_HBUTTON_BOX((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_HBOX(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_HBOX((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
@@ -34236,7 +34159,6 @@ static XEN gxg_GTK_IS_IMAGE_MENU_ITEM(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_
static XEN gxg_GTK_IS_IM_CONTEXT(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_IM_CONTEXT((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_IM_CONTEXT_SIMPLE(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_IM_CONTEXT_SIMPLE((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_IM_MULTICONTEXT(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_IM_MULTICONTEXT((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
-static XEN gxg_GTK_IS_INPUT_DIALOG(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_INPUT_DIALOG((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_INVISIBLE(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_INVISIBLE((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_ITEM(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_ITEM((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
static XEN gxg_GTK_IS_LABEL(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_LABEL((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
@@ -34386,6 +34308,11 @@ static XEN gxg_GTK_IS_INFO_BAR(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_
static XEN gxg_GTK_IS_ENTRY_BUFFER(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_ENTRY_BUFFER((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
#endif
+#if HAVE_GTK_SPINNER_NEW
+static XEN gxg_GTK_IS_SPINNER(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_SPINNER((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
+static XEN gxg_GTK_IS_CELL_RENDERER_SPINNER(XEN obj) {return(C_TO_XEN_BOOLEAN(WRAPPED_OBJECT_P(obj) && GTK_IS_CELL_RENDERER_SPINNER((GTypeInstance *)XEN_UNWRAP_C_POINTER(XEN_CADR(obj)))));}
+#endif
+
/* ---------------------------------------- special functions ---------------------------------------- */
@@ -34530,12 +34457,6 @@ static XEN c_array_to_xen_list(XEN val_1, XEN clen)
if (len == -1) {for (i = 0; arr[i]; i++) {}; len = i;}
for (i = len - 1; i >= 0; i--) result = XEN_CONS(C_TO_XEN_char_(arr[i]), result);
}
- if (strcmp(ctype, "gfloat_") == 0)
- {
- gfloat* arr; arr = (gfloat*)XEN_UNWRAP_C_POINTER(XEN_CADR(val));
- if (len == -1) {for (i = 0; arr[i]; i++) {}; len = i;}
- for (i = len - 1; i >= 0; i--) result = XEN_CONS(C_TO_XEN_gfloat(arr[i]), result);
- }
if (strcmp(ctype, "GtkIconSize_") == 0)
{
GtkIconSize* arr; arr = (GtkIconSize*)XEN_UNWRAP_C_POINTER(XEN_CADR(val));
@@ -34682,12 +34603,6 @@ static XEN xen_list_to_c_array(XEN val, XEN type)
for (i = 0; i < len; i++, val = XEN_CDR(val)) arr[i] = XEN_TO_C_char_(XEN_CAR(val));
return(XEN_LIST_3(C_STRING_TO_XEN_SYMBOL("char__"), XEN_WRAP_C_POINTER(arr), make_xm_obj(arr)));
}
- if (strcmp(ctype, "gfloat*") == 0)
- {
- gfloat* arr; arr = (gfloat*)calloc(len + 1, sizeof(gfloat));
- for (i = 0; i < len; i++, val = XEN_CDR(val)) arr[i] = XEN_TO_C_gfloat(XEN_CAR(val));
- return(XEN_LIST_3(C_STRING_TO_XEN_SYMBOL("gfloat_"), XEN_WRAP_C_POINTER(arr), make_xm_obj(arr)));
- }
if (strcmp(ctype, "GtkIconSize*") == 0)
{
GtkIconSize* arr; arr = (GtkIconSize*)calloc(len + 1, sizeof(GtkIconSize));
@@ -35512,11 +35427,7 @@ XEN_NARGIFY_0(gxg_gtk_button_new_w, gxg_gtk_button_new)
XEN_NARGIFY_1(gxg_gtk_button_new_with_label_w, gxg_gtk_button_new_with_label)
XEN_NARGIFY_1(gxg_gtk_button_new_from_stock_w, gxg_gtk_button_new_from_stock)
XEN_NARGIFY_1(gxg_gtk_button_new_with_mnemonic_w, gxg_gtk_button_new_with_mnemonic)
-XEN_NARGIFY_1(gxg_gtk_button_pressed_w, gxg_gtk_button_pressed)
-XEN_NARGIFY_1(gxg_gtk_button_released_w, gxg_gtk_button_released)
XEN_NARGIFY_1(gxg_gtk_button_clicked_w, gxg_gtk_button_clicked)
-XEN_NARGIFY_1(gxg_gtk_button_enter_w, gxg_gtk_button_enter)
-XEN_NARGIFY_1(gxg_gtk_button_leave_w, gxg_gtk_button_leave)
XEN_NARGIFY_2(gxg_gtk_button_set_relief_w, gxg_gtk_button_set_relief)
XEN_NARGIFY_1(gxg_gtk_button_get_relief_w, gxg_gtk_button_get_relief)
XEN_NARGIFY_2(gxg_gtk_button_set_label_w, gxg_gtk_button_set_label)
@@ -35597,13 +35508,6 @@ XEN_NARGIFY_1(gxg_gtk_container_get_resize_mode_w, gxg_gtk_container_get_resize_
XEN_NARGIFY_1(gxg_gtk_container_check_resize_w, gxg_gtk_container_check_resize)
XEN_ARGIFY_3(gxg_gtk_container_foreach_w, gxg_gtk_container_foreach)
XEN_NARGIFY_1(gxg_gtk_container_get_children_w, gxg_gtk_container_get_children)
-XEN_NARGIFY_0(gxg_gtk_curve_new_w, gxg_gtk_curve_new)
-XEN_NARGIFY_1(gxg_gtk_curve_reset_w, gxg_gtk_curve_reset)
-XEN_NARGIFY_2(gxg_gtk_curve_set_gamma_w, gxg_gtk_curve_set_gamma)
-XEN_NARGIFY_5(gxg_gtk_curve_set_range_w, gxg_gtk_curve_set_range)
-XEN_NARGIFY_3(gxg_gtk_curve_get_vector_w, gxg_gtk_curve_get_vector)
-XEN_NARGIFY_3(gxg_gtk_curve_set_vector_w, gxg_gtk_curve_set_vector)
-XEN_NARGIFY_2(gxg_gtk_curve_set_curve_type_w, gxg_gtk_curve_set_curve_type)
XEN_NARGIFY_0(gxg_gtk_dialog_new_w, gxg_gtk_dialog_new)
XEN_ARGIFY_4(gxg_gtk_dialog_new_with_buttons_w, gxg_gtk_dialog_new_with_buttons)
XEN_NARGIFY_3(gxg_gtk_dialog_add_action_widget_w, gxg_gtk_dialog_add_action_widget)
@@ -35694,7 +35598,6 @@ XEN_NARGIFY_3(gxg_gtk_frame_set_label_align_w, gxg_gtk_frame_set_label_align)
XEN_ARGIFY_3(gxg_gtk_frame_get_label_align_w, gxg_gtk_frame_get_label_align)
XEN_NARGIFY_2(gxg_gtk_frame_set_shadow_type_w, gxg_gtk_frame_set_shadow_type)
XEN_NARGIFY_1(gxg_gtk_frame_get_shadow_type_w, gxg_gtk_frame_get_shadow_type)
-XEN_NARGIFY_0(gxg_gtk_gamma_curve_new_w, gxg_gtk_gamma_curve_new)
XEN_NARGIFY_4(gxg_gtk_gc_get_w, gxg_gtk_gc_get)
XEN_NARGIFY_1(gxg_gtk_gc_release_w, gxg_gtk_gc_release)
XEN_NARGIFY_0(gxg_gtk_handle_box_new_w, gxg_gtk_handle_box_new)
@@ -35793,7 +35696,6 @@ XEN_NARGIFY_0(gxg_gtk_im_context_simple_new_w, gxg_gtk_im_context_simple_new)
XEN_NARGIFY_4(gxg_gtk_im_context_simple_add_table_w, gxg_gtk_im_context_simple_add_table)
XEN_NARGIFY_0(gxg_gtk_im_multicontext_new_w, gxg_gtk_im_multicontext_new)
XEN_NARGIFY_2(gxg_gtk_im_multicontext_append_menuitems_w, gxg_gtk_im_multicontext_append_menuitems)
-XEN_NARGIFY_0(gxg_gtk_input_dialog_new_w, gxg_gtk_input_dialog_new)
XEN_NARGIFY_0(gxg_gtk_invisible_new_w, gxg_gtk_invisible_new)
XEN_NARGIFY_1(gxg_gtk_item_select_w, gxg_gtk_item_select)
XEN_NARGIFY_1(gxg_gtk_item_deselect_w, gxg_gtk_item_deselect)
@@ -35943,8 +35845,6 @@ XEN_NARGIFY_2(gxg_gtk_notebook_get_menu_label_w, gxg_gtk_notebook_get_menu_label
XEN_NARGIFY_3(gxg_gtk_notebook_set_menu_label_w, gxg_gtk_notebook_set_menu_label)
XEN_NARGIFY_3(gxg_gtk_notebook_set_menu_label_text_w, gxg_gtk_notebook_set_menu_label_text)
XEN_NARGIFY_2(gxg_gtk_notebook_get_menu_label_text_w, gxg_gtk_notebook_get_menu_label_text)
-XEN_ARGIFY_5(gxg_gtk_notebook_query_tab_label_packing_w, gxg_gtk_notebook_query_tab_label_packing)
-XEN_NARGIFY_5(gxg_gtk_notebook_set_tab_label_packing_w, gxg_gtk_notebook_set_tab_label_packing)
XEN_NARGIFY_3(gxg_gtk_notebook_reorder_child_w, gxg_gtk_notebook_reorder_child)
XEN_NARGIFY_1(gxg_GTK_OBJECT_TYPE_NAME_w, gxg_GTK_OBJECT_TYPE_NAME)
XEN_NARGIFY_1(gxg_GTK_OBJECT_FLAGS_w, gxg_GTK_OBJECT_FLAGS)
@@ -38342,6 +38242,16 @@ XEN_NARGIFY_1(gxg_gtk_widget_get_receives_default_w, gxg_gtk_widget_get_receives
XEN_NARGIFY_1(gxg_gdk_window_flush_w, gxg_gdk_window_flush)
#endif
+#if HAVE_GTK_SPINNER_NEW
+XEN_NARGIFY_2(gxg_gtk_dialog_get_widget_for_response_w, gxg_gtk_dialog_get_widget_for_response)
+XEN_NARGIFY_3(gxg_gtk_tooltip_set_icon_from_gicon_w, gxg_gtk_tooltip_set_icon_from_gicon)
+XEN_NARGIFY_1(gxg_gtk_viewport_get_bin_window_w, gxg_gtk_viewport_get_bin_window)
+XEN_NARGIFY_0(gxg_gtk_spinner_new_w, gxg_gtk_spinner_new)
+XEN_NARGIFY_1(gxg_gtk_spinner_start_w, gxg_gtk_spinner_start)
+XEN_NARGIFY_1(gxg_gtk_spinner_stop_w, gxg_gtk_spinner_stop)
+XEN_NARGIFY_0(gxg_gtk_cell_renderer_spinner_new_w, gxg_gtk_cell_renderer_spinner_new)
+#endif
+
#if HAVE_CAIRO_CREATE
XEN_NARGIFY_1(gxg_cairo_create_w, gxg_cairo_create)
XEN_NARGIFY_0(gxg_cairo_version_w, gxg_cairo_version)
@@ -38609,7 +38519,6 @@ XEN_NARGIFY_1(gxg_GTK_CHECK_MENU_ITEM_w, gxg_GTK_CHECK_MENU_ITEM)
XEN_NARGIFY_1(gxg_GTK_COLOR_SELECTION_DIALOG_w, gxg_GTK_COLOR_SELECTION_DIALOG)
XEN_NARGIFY_1(gxg_GTK_COLOR_SELECTION_w, gxg_GTK_COLOR_SELECTION)
XEN_NARGIFY_1(gxg_GTK_CONTAINER_w, gxg_GTK_CONTAINER)
-XEN_NARGIFY_1(gxg_GTK_CURVE_w, gxg_GTK_CURVE)
XEN_NARGIFY_1(gxg_GTK_DIALOG_w, gxg_GTK_DIALOG)
XEN_NARGIFY_1(gxg_GTK_DRAWING_AREA_w, gxg_GTK_DRAWING_AREA)
XEN_NARGIFY_1(gxg_GTK_EDITABLE_w, gxg_GTK_EDITABLE)
@@ -38619,7 +38528,6 @@ XEN_NARGIFY_1(gxg_GTK_FIXED_w, gxg_GTK_FIXED)
XEN_NARGIFY_1(gxg_GTK_FONT_SELECTION_w, gxg_GTK_FONT_SELECTION)
XEN_NARGIFY_1(gxg_GTK_FONT_SELECTION_DIALOG_w, gxg_GTK_FONT_SELECTION_DIALOG)
XEN_NARGIFY_1(gxg_GTK_FRAME_w, gxg_GTK_FRAME)
-XEN_NARGIFY_1(gxg_GTK_GAMMA_CURVE_w, gxg_GTK_GAMMA_CURVE)
XEN_NARGIFY_1(gxg_GTK_HANDLE_BOX_w, gxg_GTK_HANDLE_BOX)
XEN_NARGIFY_1(gxg_GTK_HBUTTON_BOX_w, gxg_GTK_HBUTTON_BOX)
XEN_NARGIFY_1(gxg_GTK_HBOX_w, gxg_GTK_HBOX)
@@ -38634,7 +38542,6 @@ XEN_NARGIFY_1(gxg_GTK_IMAGE_MENU_ITEM_w, gxg_GTK_IMAGE_MENU_ITEM)
XEN_NARGIFY_1(gxg_GTK_IM_CONTEXT_w, gxg_GTK_IM_CONTEXT)
XEN_NARGIFY_1(gxg_GTK_IM_CONTEXT_SIMPLE_w, gxg_GTK_IM_CONTEXT_SIMPLE)
XEN_NARGIFY_1(gxg_GTK_IM_MULTICONTEXT_w, gxg_GTK_IM_MULTICONTEXT)
-XEN_NARGIFY_1(gxg_GTK_INPUT_DIALOG_w, gxg_GTK_INPUT_DIALOG)
XEN_NARGIFY_1(gxg_GTK_INVISIBLE_w, gxg_GTK_INVISIBLE)
XEN_NARGIFY_1(gxg_GTK_ITEM_w, gxg_GTK_ITEM)
XEN_NARGIFY_1(gxg_GTK_LABEL_w, gxg_GTK_LABEL)
@@ -38800,6 +38707,11 @@ XEN_NARGIFY_1(gxg_GTK_INFO_BAR_w, gxg_GTK_INFO_BAR)
XEN_NARGIFY_1(gxg_GTK_ENTRY_BUFFER_w, gxg_GTK_ENTRY_BUFFER)
#endif
+#if HAVE_GTK_SPINNER_NEW
+XEN_NARGIFY_1(gxg_GTK_SPINNER_w, gxg_GTK_SPINNER)
+XEN_NARGIFY_1(gxg_GTK_CELL_RENDERER_SPINNER_w, gxg_GTK_CELL_RENDERER_SPINNER)
+#endif
+
XEN_NARGIFY_1(gxg_GDK_IS_COLORMAP_w, gxg_GDK_IS_COLORMAP)
XEN_NARGIFY_1(gxg_GDK_IS_DRAG_CONTEXT_w, gxg_GDK_IS_DRAG_CONTEXT)
XEN_NARGIFY_1(gxg_GDK_IS_DRAWABLE_w, gxg_GDK_IS_DRAWABLE)
@@ -38836,7 +38748,6 @@ XEN_NARGIFY_1(gxg_GTK_IS_CHECK_MENU_ITEM_w, gxg_GTK_IS_CHECK_MENU_ITEM)
XEN_NARGIFY_1(gxg_GTK_IS_COLOR_SELECTION_DIALOG_w, gxg_GTK_IS_COLOR_SELECTION_DIALOG)
XEN_NARGIFY_1(gxg_GTK_IS_COLOR_SELECTION_w, gxg_GTK_IS_COLOR_SELECTION)
XEN_NARGIFY_1(gxg_GTK_IS_CONTAINER_w, gxg_GTK_IS_CONTAINER)
-XEN_NARGIFY_1(gxg_GTK_IS_CURVE_w, gxg_GTK_IS_CURVE)
XEN_NARGIFY_1(gxg_GTK_IS_DIALOG_w, gxg_GTK_IS_DIALOG)
XEN_NARGIFY_1(gxg_GTK_IS_DRAWING_AREA_w, gxg_GTK_IS_DRAWING_AREA)
XEN_NARGIFY_1(gxg_GTK_IS_EDITABLE_w, gxg_GTK_IS_EDITABLE)
@@ -38846,7 +38757,6 @@ XEN_NARGIFY_1(gxg_GTK_IS_FIXED_w, gxg_GTK_IS_FIXED)
XEN_NARGIFY_1(gxg_GTK_IS_FONT_SELECTION_w, gxg_GTK_IS_FONT_SELECTION)
XEN_NARGIFY_1(gxg_GTK_IS_FONT_SELECTION_DIALOG_w, gxg_GTK_IS_FONT_SELECTION_DIALOG)
XEN_NARGIFY_1(gxg_GTK_IS_FRAME_w, gxg_GTK_IS_FRAME)
-XEN_NARGIFY_1(gxg_GTK_IS_GAMMA_CURVE_w, gxg_GTK_IS_GAMMA_CURVE)
XEN_NARGIFY_1(gxg_GTK_IS_HANDLE_BOX_w, gxg_GTK_IS_HANDLE_BOX)
XEN_NARGIFY_1(gxg_GTK_IS_HBUTTON_BOX_w, gxg_GTK_IS_HBUTTON_BOX)
XEN_NARGIFY_1(gxg_GTK_IS_HBOX_w, gxg_GTK_IS_HBOX)
@@ -38861,7 +38771,6 @@ XEN_NARGIFY_1(gxg_GTK_IS_IMAGE_MENU_ITEM_w, gxg_GTK_IS_IMAGE_MENU_ITEM)
XEN_NARGIFY_1(gxg_GTK_IS_IM_CONTEXT_w, gxg_GTK_IS_IM_CONTEXT)
XEN_NARGIFY_1(gxg_GTK_IS_IM_CONTEXT_SIMPLE_w, gxg_GTK_IS_IM_CONTEXT_SIMPLE)
XEN_NARGIFY_1(gxg_GTK_IS_IM_MULTICONTEXT_w, gxg_GTK_IS_IM_MULTICONTEXT)
-XEN_NARGIFY_1(gxg_GTK_IS_INPUT_DIALOG_w, gxg_GTK_IS_INPUT_DIALOG)
XEN_NARGIFY_1(gxg_GTK_IS_INVISIBLE_w, gxg_GTK_IS_INVISIBLE)
XEN_NARGIFY_1(gxg_GTK_IS_ITEM_w, gxg_GTK_IS_ITEM)
XEN_NARGIFY_1(gxg_GTK_IS_LABEL_w, gxg_GTK_IS_LABEL)
@@ -39011,6 +38920,11 @@ XEN_NARGIFY_1(gxg_GTK_IS_INFO_BAR_w, gxg_GTK_IS_INFO_BAR)
XEN_NARGIFY_1(gxg_GTK_IS_ENTRY_BUFFER_w, gxg_GTK_IS_ENTRY_BUFFER)
#endif
+#if HAVE_GTK_SPINNER_NEW
+XEN_NARGIFY_1(gxg_GTK_IS_SPINNER_w, gxg_GTK_IS_SPINNER)
+XEN_NARGIFY_1(gxg_GTK_IS_CELL_RENDERER_SPINNER_w, gxg_GTK_IS_CELL_RENDERER_SPINNER)
+#endif
+
XEN_NARGIFY_1(gxg_height_w, gxg_height)
XEN_NARGIFY_1(gxg_width_w, gxg_width)
XEN_NARGIFY_1(gxg_ref_count_w, gxg_ref_count)
@@ -39483,11 +39397,7 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_gtk_button_new_with_label_w gxg_gtk_button_new_with_label
#define gxg_gtk_button_new_from_stock_w gxg_gtk_button_new_from_stock
#define gxg_gtk_button_new_with_mnemonic_w gxg_gtk_button_new_with_mnemonic
-#define gxg_gtk_button_pressed_w gxg_gtk_button_pressed
-#define gxg_gtk_button_released_w gxg_gtk_button_released
#define gxg_gtk_button_clicked_w gxg_gtk_button_clicked
-#define gxg_gtk_button_enter_w gxg_gtk_button_enter
-#define gxg_gtk_button_leave_w gxg_gtk_button_leave
#define gxg_gtk_button_set_relief_w gxg_gtk_button_set_relief
#define gxg_gtk_button_get_relief_w gxg_gtk_button_get_relief
#define gxg_gtk_button_set_label_w gxg_gtk_button_set_label
@@ -39568,13 +39478,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_gtk_container_check_resize_w gxg_gtk_container_check_resize
#define gxg_gtk_container_foreach_w gxg_gtk_container_foreach
#define gxg_gtk_container_get_children_w gxg_gtk_container_get_children
-#define gxg_gtk_curve_new_w gxg_gtk_curve_new
-#define gxg_gtk_curve_reset_w gxg_gtk_curve_reset
-#define gxg_gtk_curve_set_gamma_w gxg_gtk_curve_set_gamma
-#define gxg_gtk_curve_set_range_w gxg_gtk_curve_set_range
-#define gxg_gtk_curve_get_vector_w gxg_gtk_curve_get_vector
-#define gxg_gtk_curve_set_vector_w gxg_gtk_curve_set_vector
-#define gxg_gtk_curve_set_curve_type_w gxg_gtk_curve_set_curve_type
#define gxg_gtk_dialog_new_w gxg_gtk_dialog_new
#define gxg_gtk_dialog_new_with_buttons_w gxg_gtk_dialog_new_with_buttons
#define gxg_gtk_dialog_add_action_widget_w gxg_gtk_dialog_add_action_widget
@@ -39665,7 +39568,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_gtk_frame_get_label_align_w gxg_gtk_frame_get_label_align
#define gxg_gtk_frame_set_shadow_type_w gxg_gtk_frame_set_shadow_type
#define gxg_gtk_frame_get_shadow_type_w gxg_gtk_frame_get_shadow_type
-#define gxg_gtk_gamma_curve_new_w gxg_gtk_gamma_curve_new
#define gxg_gtk_gc_get_w gxg_gtk_gc_get
#define gxg_gtk_gc_release_w gxg_gtk_gc_release
#define gxg_gtk_handle_box_new_w gxg_gtk_handle_box_new
@@ -39764,7 +39666,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_gtk_im_context_simple_add_table_w gxg_gtk_im_context_simple_add_table
#define gxg_gtk_im_multicontext_new_w gxg_gtk_im_multicontext_new
#define gxg_gtk_im_multicontext_append_menuitems_w gxg_gtk_im_multicontext_append_menuitems
-#define gxg_gtk_input_dialog_new_w gxg_gtk_input_dialog_new
#define gxg_gtk_invisible_new_w gxg_gtk_invisible_new
#define gxg_gtk_item_select_w gxg_gtk_item_select
#define gxg_gtk_item_deselect_w gxg_gtk_item_deselect
@@ -39914,8 +39815,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_gtk_notebook_set_menu_label_w gxg_gtk_notebook_set_menu_label
#define gxg_gtk_notebook_set_menu_label_text_w gxg_gtk_notebook_set_menu_label_text
#define gxg_gtk_notebook_get_menu_label_text_w gxg_gtk_notebook_get_menu_label_text
-#define gxg_gtk_notebook_query_tab_label_packing_w gxg_gtk_notebook_query_tab_label_packing
-#define gxg_gtk_notebook_set_tab_label_packing_w gxg_gtk_notebook_set_tab_label_packing
#define gxg_gtk_notebook_reorder_child_w gxg_gtk_notebook_reorder_child
#define gxg_GTK_OBJECT_TYPE_NAME_w gxg_GTK_OBJECT_TYPE_NAME
#define gxg_GTK_OBJECT_FLAGS_w gxg_GTK_OBJECT_FLAGS
@@ -42313,6 +42212,16 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_gdk_window_flush_w gxg_gdk_window_flush
#endif
+#if HAVE_GTK_SPINNER_NEW
+#define gxg_gtk_dialog_get_widget_for_response_w gxg_gtk_dialog_get_widget_for_response
+#define gxg_gtk_tooltip_set_icon_from_gicon_w gxg_gtk_tooltip_set_icon_from_gicon
+#define gxg_gtk_viewport_get_bin_window_w gxg_gtk_viewport_get_bin_window
+#define gxg_gtk_spinner_new_w gxg_gtk_spinner_new
+#define gxg_gtk_spinner_start_w gxg_gtk_spinner_start
+#define gxg_gtk_spinner_stop_w gxg_gtk_spinner_stop
+#define gxg_gtk_cell_renderer_spinner_new_w gxg_gtk_cell_renderer_spinner_new
+#endif
+
#if HAVE_CAIRO_CREATE
#define gxg_cairo_create_w gxg_cairo_create
#define gxg_cairo_version_w gxg_cairo_version
@@ -42580,7 +42489,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_COLOR_SELECTION_DIALOG_w gxg_GTK_COLOR_SELECTION_DIALOG
#define gxg_GTK_COLOR_SELECTION_w gxg_GTK_COLOR_SELECTION
#define gxg_GTK_CONTAINER_w gxg_GTK_CONTAINER
-#define gxg_GTK_CURVE_w gxg_GTK_CURVE
#define gxg_GTK_DIALOG_w gxg_GTK_DIALOG
#define gxg_GTK_DRAWING_AREA_w gxg_GTK_DRAWING_AREA
#define gxg_GTK_EDITABLE_w gxg_GTK_EDITABLE
@@ -42590,7 +42498,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_FONT_SELECTION_w gxg_GTK_FONT_SELECTION
#define gxg_GTK_FONT_SELECTION_DIALOG_w gxg_GTK_FONT_SELECTION_DIALOG
#define gxg_GTK_FRAME_w gxg_GTK_FRAME
-#define gxg_GTK_GAMMA_CURVE_w gxg_GTK_GAMMA_CURVE
#define gxg_GTK_HANDLE_BOX_w gxg_GTK_HANDLE_BOX
#define gxg_GTK_HBUTTON_BOX_w gxg_GTK_HBUTTON_BOX
#define gxg_GTK_HBOX_w gxg_GTK_HBOX
@@ -42605,7 +42512,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_IM_CONTEXT_w gxg_GTK_IM_CONTEXT
#define gxg_GTK_IM_CONTEXT_SIMPLE_w gxg_GTK_IM_CONTEXT_SIMPLE
#define gxg_GTK_IM_MULTICONTEXT_w gxg_GTK_IM_MULTICONTEXT
-#define gxg_GTK_INPUT_DIALOG_w gxg_GTK_INPUT_DIALOG
#define gxg_GTK_INVISIBLE_w gxg_GTK_INVISIBLE
#define gxg_GTK_ITEM_w gxg_GTK_ITEM
#define gxg_GTK_LABEL_w gxg_GTK_LABEL
@@ -42771,6 +42677,11 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_ENTRY_BUFFER_w gxg_GTK_ENTRY_BUFFER
#endif
+#if HAVE_GTK_SPINNER_NEW
+#define gxg_GTK_SPINNER_w gxg_GTK_SPINNER
+#define gxg_GTK_CELL_RENDERER_SPINNER_w gxg_GTK_CELL_RENDERER_SPINNER
+#endif
+
#define gxg_GDK_IS_COLORMAP_w gxg_GDK_IS_COLORMAP
#define gxg_GDK_IS_DRAG_CONTEXT_w gxg_GDK_IS_DRAG_CONTEXT
#define gxg_GDK_IS_DRAWABLE_w gxg_GDK_IS_DRAWABLE
@@ -42807,7 +42718,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_IS_COLOR_SELECTION_DIALOG_w gxg_GTK_IS_COLOR_SELECTION_DIALOG
#define gxg_GTK_IS_COLOR_SELECTION_w gxg_GTK_IS_COLOR_SELECTION
#define gxg_GTK_IS_CONTAINER_w gxg_GTK_IS_CONTAINER
-#define gxg_GTK_IS_CURVE_w gxg_GTK_IS_CURVE
#define gxg_GTK_IS_DIALOG_w gxg_GTK_IS_DIALOG
#define gxg_GTK_IS_DRAWING_AREA_w gxg_GTK_IS_DRAWING_AREA
#define gxg_GTK_IS_EDITABLE_w gxg_GTK_IS_EDITABLE
@@ -42817,7 +42727,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_IS_FONT_SELECTION_w gxg_GTK_IS_FONT_SELECTION
#define gxg_GTK_IS_FONT_SELECTION_DIALOG_w gxg_GTK_IS_FONT_SELECTION_DIALOG
#define gxg_GTK_IS_FRAME_w gxg_GTK_IS_FRAME
-#define gxg_GTK_IS_GAMMA_CURVE_w gxg_GTK_IS_GAMMA_CURVE
#define gxg_GTK_IS_HANDLE_BOX_w gxg_GTK_IS_HANDLE_BOX
#define gxg_GTK_IS_HBUTTON_BOX_w gxg_GTK_IS_HBUTTON_BOX
#define gxg_GTK_IS_HBOX_w gxg_GTK_IS_HBOX
@@ -42832,7 +42741,6 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_IS_IM_CONTEXT_w gxg_GTK_IS_IM_CONTEXT
#define gxg_GTK_IS_IM_CONTEXT_SIMPLE_w gxg_GTK_IS_IM_CONTEXT_SIMPLE
#define gxg_GTK_IS_IM_MULTICONTEXT_w gxg_GTK_IS_IM_MULTICONTEXT
-#define gxg_GTK_IS_INPUT_DIALOG_w gxg_GTK_IS_INPUT_DIALOG
#define gxg_GTK_IS_INVISIBLE_w gxg_GTK_IS_INVISIBLE
#define gxg_GTK_IS_ITEM_w gxg_GTK_IS_ITEM
#define gxg_GTK_IS_LABEL_w gxg_GTK_IS_LABEL
@@ -42982,6 +42890,11 @@ XEN_NARGIFY_0(gxg_make_cairo_matrix_t_w, gxg_make_cairo_matrix_t)
#define gxg_GTK_IS_ENTRY_BUFFER_w gxg_GTK_IS_ENTRY_BUFFER
#endif
+#if HAVE_GTK_SPINNER_NEW
+#define gxg_GTK_IS_SPINNER_w gxg_GTK_IS_SPINNER
+#define gxg_GTK_IS_CELL_RENDERER_SPINNER_w gxg_GTK_IS_CELL_RENDERER_SPINNER
+#endif
+
#define gxg_height_w gxg_height
#define gxg_width_w gxg_width
#define gxg_ref_count_w gxg_ref_count
@@ -43461,11 +43374,7 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(gtk_button_new_with_label, gxg_gtk_button_new_with_label_w, 1, 0, 0, H_gtk_button_new_with_label);
XG_DEFINE_PROCEDURE(gtk_button_new_from_stock, gxg_gtk_button_new_from_stock_w, 1, 0, 0, H_gtk_button_new_from_stock);
XG_DEFINE_PROCEDURE(gtk_button_new_with_mnemonic, gxg_gtk_button_new_with_mnemonic_w, 1, 0, 0, H_gtk_button_new_with_mnemonic);
- XG_DEFINE_PROCEDURE(gtk_button_pressed, gxg_gtk_button_pressed_w, 1, 0, 0, H_gtk_button_pressed);
- XG_DEFINE_PROCEDURE(gtk_button_released, gxg_gtk_button_released_w, 1, 0, 0, H_gtk_button_released);
XG_DEFINE_PROCEDURE(gtk_button_clicked, gxg_gtk_button_clicked_w, 1, 0, 0, H_gtk_button_clicked);
- XG_DEFINE_PROCEDURE(gtk_button_enter, gxg_gtk_button_enter_w, 1, 0, 0, H_gtk_button_enter);
- XG_DEFINE_PROCEDURE(gtk_button_leave, gxg_gtk_button_leave_w, 1, 0, 0, H_gtk_button_leave);
XG_DEFINE_PROCEDURE(gtk_button_set_relief, gxg_gtk_button_set_relief_w, 2, 0, 0, H_gtk_button_set_relief);
XG_DEFINE_PROCEDURE(gtk_button_get_relief, gxg_gtk_button_get_relief_w, 1, 0, 0, H_gtk_button_get_relief);
XG_DEFINE_PROCEDURE(gtk_button_set_label, gxg_gtk_button_set_label_w, 2, 0, 0, H_gtk_button_set_label);
@@ -43546,13 +43455,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(gtk_container_check_resize, gxg_gtk_container_check_resize_w, 1, 0, 0, H_gtk_container_check_resize);
XG_DEFINE_PROCEDURE(gtk_container_foreach, gxg_gtk_container_foreach_w, 2, 1, 0, H_gtk_container_foreach);
XG_DEFINE_PROCEDURE(gtk_container_get_children, gxg_gtk_container_get_children_w, 1, 0, 0, H_gtk_container_get_children);
- XG_DEFINE_PROCEDURE(gtk_curve_new, gxg_gtk_curve_new_w, 0, 0, 0, H_gtk_curve_new);
- XG_DEFINE_PROCEDURE(gtk_curve_reset, gxg_gtk_curve_reset_w, 1, 0, 0, H_gtk_curve_reset);
- XG_DEFINE_PROCEDURE(gtk_curve_set_gamma, gxg_gtk_curve_set_gamma_w, 2, 0, 0, H_gtk_curve_set_gamma);
- XG_DEFINE_PROCEDURE(gtk_curve_set_range, gxg_gtk_curve_set_range_w, 5, 0, 0, H_gtk_curve_set_range);
- XG_DEFINE_PROCEDURE(gtk_curve_get_vector, gxg_gtk_curve_get_vector_w, 3, 0, 0, H_gtk_curve_get_vector);
- XG_DEFINE_PROCEDURE(gtk_curve_set_vector, gxg_gtk_curve_set_vector_w, 3, 0, 0, H_gtk_curve_set_vector);
- XG_DEFINE_PROCEDURE(gtk_curve_set_curve_type, gxg_gtk_curve_set_curve_type_w, 2, 0, 0, H_gtk_curve_set_curve_type);
XG_DEFINE_PROCEDURE(gtk_dialog_new, gxg_gtk_dialog_new_w, 0, 0, 0, H_gtk_dialog_new);
XG_DEFINE_PROCEDURE(gtk_dialog_new_with_buttons, gxg_gtk_dialog_new_with_buttons_w, 3, 1, 0, H_gtk_dialog_new_with_buttons);
XG_DEFINE_PROCEDURE(gtk_dialog_add_action_widget, gxg_gtk_dialog_add_action_widget_w, 3, 0, 0, H_gtk_dialog_add_action_widget);
@@ -43643,7 +43545,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(gtk_frame_get_label_align, gxg_gtk_frame_get_label_align_w, 1, 2, 0, H_gtk_frame_get_label_align);
XG_DEFINE_PROCEDURE(gtk_frame_set_shadow_type, gxg_gtk_frame_set_shadow_type_w, 2, 0, 0, H_gtk_frame_set_shadow_type);
XG_DEFINE_PROCEDURE(gtk_frame_get_shadow_type, gxg_gtk_frame_get_shadow_type_w, 1, 0, 0, H_gtk_frame_get_shadow_type);
- XG_DEFINE_PROCEDURE(gtk_gamma_curve_new, gxg_gtk_gamma_curve_new_w, 0, 0, 0, H_gtk_gamma_curve_new);
XG_DEFINE_PROCEDURE(gtk_gc_get, gxg_gtk_gc_get_w, 4, 0, 0, H_gtk_gc_get);
XG_DEFINE_PROCEDURE(gtk_gc_release, gxg_gtk_gc_release_w, 1, 0, 0, H_gtk_gc_release);
XG_DEFINE_PROCEDURE(gtk_handle_box_new, gxg_gtk_handle_box_new_w, 0, 0, 0, H_gtk_handle_box_new);
@@ -43742,7 +43643,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(gtk_im_context_simple_add_table, gxg_gtk_im_context_simple_add_table_w, 4, 0, 0, H_gtk_im_context_simple_add_table);
XG_DEFINE_PROCEDURE(gtk_im_multicontext_new, gxg_gtk_im_multicontext_new_w, 0, 0, 0, H_gtk_im_multicontext_new);
XG_DEFINE_PROCEDURE(gtk_im_multicontext_append_menuitems, gxg_gtk_im_multicontext_append_menuitems_w, 2, 0, 0, H_gtk_im_multicontext_append_menuitems);
- XG_DEFINE_PROCEDURE(gtk_input_dialog_new, gxg_gtk_input_dialog_new_w, 0, 0, 0, H_gtk_input_dialog_new);
XG_DEFINE_PROCEDURE(gtk_invisible_new, gxg_gtk_invisible_new_w, 0, 0, 0, H_gtk_invisible_new);
XG_DEFINE_PROCEDURE(gtk_item_select, gxg_gtk_item_select_w, 1, 0, 0, H_gtk_item_select);
XG_DEFINE_PROCEDURE(gtk_item_deselect, gxg_gtk_item_deselect_w, 1, 0, 0, H_gtk_item_deselect);
@@ -43892,8 +43792,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(gtk_notebook_set_menu_label, gxg_gtk_notebook_set_menu_label_w, 3, 0, 0, H_gtk_notebook_set_menu_label);
XG_DEFINE_PROCEDURE(gtk_notebook_set_menu_label_text, gxg_gtk_notebook_set_menu_label_text_w, 3, 0, 0, H_gtk_notebook_set_menu_label_text);
XG_DEFINE_PROCEDURE(gtk_notebook_get_menu_label_text, gxg_gtk_notebook_get_menu_label_text_w, 2, 0, 0, H_gtk_notebook_get_menu_label_text);
- XG_DEFINE_PROCEDURE(gtk_notebook_query_tab_label_packing, gxg_gtk_notebook_query_tab_label_packing_w, 2, 3, 0, H_gtk_notebook_query_tab_label_packing);
- XG_DEFINE_PROCEDURE(gtk_notebook_set_tab_label_packing, gxg_gtk_notebook_set_tab_label_packing_w, 5, 0, 0, H_gtk_notebook_set_tab_label_packing);
XG_DEFINE_PROCEDURE(gtk_notebook_reorder_child, gxg_gtk_notebook_reorder_child_w, 3, 0, 0, H_gtk_notebook_reorder_child);
XG_DEFINE_PROCEDURE(GTK_OBJECT_TYPE_NAME, gxg_GTK_OBJECT_TYPE_NAME_w, 1, 0, 0, H_GTK_OBJECT_TYPE_NAME);
XG_DEFINE_PROCEDURE(GTK_OBJECT_FLAGS, gxg_GTK_OBJECT_FLAGS_w, 1, 0, 0, H_GTK_OBJECT_FLAGS);
@@ -46291,6 +46189,16 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(gdk_window_flush, gxg_gdk_window_flush_w, 1, 0, 0, H_gdk_window_flush);
#endif
+#if HAVE_GTK_SPINNER_NEW
+ XG_DEFINE_PROCEDURE(gtk_dialog_get_widget_for_response, gxg_gtk_dialog_get_widget_for_response_w, 2, 0, 0, H_gtk_dialog_get_widget_for_response);
+ XG_DEFINE_PROCEDURE(gtk_tooltip_set_icon_from_gicon, gxg_gtk_tooltip_set_icon_from_gicon_w, 3, 0, 0, H_gtk_tooltip_set_icon_from_gicon);
+ XG_DEFINE_PROCEDURE(gtk_viewport_get_bin_window, gxg_gtk_viewport_get_bin_window_w, 1, 0, 0, H_gtk_viewport_get_bin_window);
+ XG_DEFINE_PROCEDURE(gtk_spinner_new, gxg_gtk_spinner_new_w, 0, 0, 0, H_gtk_spinner_new);
+ XG_DEFINE_PROCEDURE(gtk_spinner_start, gxg_gtk_spinner_start_w, 1, 0, 0, H_gtk_spinner_start);
+ XG_DEFINE_PROCEDURE(gtk_spinner_stop, gxg_gtk_spinner_stop_w, 1, 0, 0, H_gtk_spinner_stop);
+ XG_DEFINE_PROCEDURE(gtk_cell_renderer_spinner_new, gxg_gtk_cell_renderer_spinner_new_w, 0, 0, 0, H_gtk_cell_renderer_spinner_new);
+#endif
+
#if HAVE_CAIRO_CREATE
XG_DEFINE_PROCEDURE(cairo_create, gxg_cairo_create_w, 1, 0, 0, H_cairo_create);
XG_DEFINE_PROCEDURE(cairo_version, gxg_cairo_version_w, 0, 0, 0, H_cairo_version);
@@ -46551,7 +46459,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_COLOR_SELECTION_DIALOG, gxg_GTK_COLOR_SELECTION_DIALOG_w, 1, 0, 0, "(GTK_COLOR_SELECTION_DIALOG obj) casts obj to GTK_COLOR_SELECTION_DIALOG");
XG_DEFINE_PROCEDURE(GTK_COLOR_SELECTION, gxg_GTK_COLOR_SELECTION_w, 1, 0, 0, "(GTK_COLOR_SELECTION obj) casts obj to GTK_COLOR_SELECTION");
XG_DEFINE_PROCEDURE(GTK_CONTAINER, gxg_GTK_CONTAINER_w, 1, 0, 0, "(GTK_CONTAINER obj) casts obj to GTK_CONTAINER");
- XG_DEFINE_PROCEDURE(GTK_CURVE, gxg_GTK_CURVE_w, 1, 0, 0, "(GTK_CURVE obj) casts obj to GTK_CURVE");
XG_DEFINE_PROCEDURE(GTK_DIALOG, gxg_GTK_DIALOG_w, 1, 0, 0, "(GTK_DIALOG obj) casts obj to GTK_DIALOG");
XG_DEFINE_PROCEDURE(GTK_DRAWING_AREA, gxg_GTK_DRAWING_AREA_w, 1, 0, 0, "(GTK_DRAWING_AREA obj) casts obj to GTK_DRAWING_AREA");
XG_DEFINE_PROCEDURE(GTK_EDITABLE, gxg_GTK_EDITABLE_w, 1, 0, 0, "(GTK_EDITABLE obj) casts obj to GTK_EDITABLE");
@@ -46561,7 +46468,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_FONT_SELECTION, gxg_GTK_FONT_SELECTION_w, 1, 0, 0, "(GTK_FONT_SELECTION obj) casts obj to GTK_FONT_SELECTION");
XG_DEFINE_PROCEDURE(GTK_FONT_SELECTION_DIALOG, gxg_GTK_FONT_SELECTION_DIALOG_w, 1, 0, 0, "(GTK_FONT_SELECTION_DIALOG obj) casts obj to GTK_FONT_SELECTION_DIALOG");
XG_DEFINE_PROCEDURE(GTK_FRAME, gxg_GTK_FRAME_w, 1, 0, 0, "(GTK_FRAME obj) casts obj to GTK_FRAME");
- XG_DEFINE_PROCEDURE(GTK_GAMMA_CURVE, gxg_GTK_GAMMA_CURVE_w, 1, 0, 0, "(GTK_GAMMA_CURVE obj) casts obj to GTK_GAMMA_CURVE");
XG_DEFINE_PROCEDURE(GTK_HANDLE_BOX, gxg_GTK_HANDLE_BOX_w, 1, 0, 0, "(GTK_HANDLE_BOX obj) casts obj to GTK_HANDLE_BOX");
XG_DEFINE_PROCEDURE(GTK_HBUTTON_BOX, gxg_GTK_HBUTTON_BOX_w, 1, 0, 0, "(GTK_HBUTTON_BOX obj) casts obj to GTK_HBUTTON_BOX");
XG_DEFINE_PROCEDURE(GTK_HBOX, gxg_GTK_HBOX_w, 1, 0, 0, "(GTK_HBOX obj) casts obj to GTK_HBOX");
@@ -46576,7 +46482,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_IM_CONTEXT, gxg_GTK_IM_CONTEXT_w, 1, 0, 0, "(GTK_IM_CONTEXT obj) casts obj to GTK_IM_CONTEXT");
XG_DEFINE_PROCEDURE(GTK_IM_CONTEXT_SIMPLE, gxg_GTK_IM_CONTEXT_SIMPLE_w, 1, 0, 0, "(GTK_IM_CONTEXT_SIMPLE obj) casts obj to GTK_IM_CONTEXT_SIMPLE");
XG_DEFINE_PROCEDURE(GTK_IM_MULTICONTEXT, gxg_GTK_IM_MULTICONTEXT_w, 1, 0, 0, "(GTK_IM_MULTICONTEXT obj) casts obj to GTK_IM_MULTICONTEXT");
- XG_DEFINE_PROCEDURE(GTK_INPUT_DIALOG, gxg_GTK_INPUT_DIALOG_w, 1, 0, 0, "(GTK_INPUT_DIALOG obj) casts obj to GTK_INPUT_DIALOG");
XG_DEFINE_PROCEDURE(GTK_INVISIBLE, gxg_GTK_INVISIBLE_w, 1, 0, 0, "(GTK_INVISIBLE obj) casts obj to GTK_INVISIBLE");
XG_DEFINE_PROCEDURE(GTK_ITEM, gxg_GTK_ITEM_w, 1, 0, 0, "(GTK_ITEM obj) casts obj to GTK_ITEM");
XG_DEFINE_PROCEDURE(GTK_LABEL, gxg_GTK_LABEL_w, 1, 0, 0, "(GTK_LABEL obj) casts obj to GTK_LABEL");
@@ -46742,6 +46647,11 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_ENTRY_BUFFER, gxg_GTK_ENTRY_BUFFER_w, 1, 0, 0, "(GTK_ENTRY_BUFFER obj) casts obj to GTK_ENTRY_BUFFER");
#endif
+#if HAVE_GTK_SPINNER_NEW
+ XG_DEFINE_PROCEDURE(GTK_SPINNER, gxg_GTK_SPINNER_w, 1, 0, 0, "(GTK_SPINNER obj) casts obj to GTK_SPINNER");
+ XG_DEFINE_PROCEDURE(GTK_CELL_RENDERER_SPINNER, gxg_GTK_CELL_RENDERER_SPINNER_w, 1, 0, 0, "(GTK_CELL_RENDERER_SPINNER obj) casts obj to GTK_CELL_RENDERER_SPINNER");
+#endif
+
XG_DEFINE_PROCEDURE(c-array->list, c_array_to_xen_list_w, 2, 0, 0, NULL);
XG_DEFINE_PROCEDURE(list->c-array, xen_list_to_c_array_w, 2, 0, 0, NULL);
XG_DEFINE_PROCEDURE(freeGdkPoints, gxg_freeGdkPoints_w, 1, 0, 0, H_freeGdkPoints);
@@ -46785,7 +46695,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_IS_COLOR_SELECTION_DIALOG, gxg_GTK_IS_COLOR_SELECTION_DIALOG_w, 1, 0, 0, "(GTK_IS_COLOR_SELECTION_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_COLOR_SELECTION_DIALOG");
XG_DEFINE_PROCEDURE(GTK_IS_COLOR_SELECTION, gxg_GTK_IS_COLOR_SELECTION_w, 1, 0, 0, "(GTK_IS_COLOR_SELECTION obj): " PROC_TRUE " if obj is a GTK_IS_COLOR_SELECTION");
XG_DEFINE_PROCEDURE(GTK_IS_CONTAINER, gxg_GTK_IS_CONTAINER_w, 1, 0, 0, "(GTK_IS_CONTAINER obj): " PROC_TRUE " if obj is a GTK_IS_CONTAINER");
- XG_DEFINE_PROCEDURE(GTK_IS_CURVE, gxg_GTK_IS_CURVE_w, 1, 0, 0, "(GTK_IS_CURVE obj): " PROC_TRUE " if obj is a GTK_IS_CURVE");
XG_DEFINE_PROCEDURE(GTK_IS_DIALOG, gxg_GTK_IS_DIALOG_w, 1, 0, 0, "(GTK_IS_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_DIALOG");
XG_DEFINE_PROCEDURE(GTK_IS_DRAWING_AREA, gxg_GTK_IS_DRAWING_AREA_w, 1, 0, 0, "(GTK_IS_DRAWING_AREA obj): " PROC_TRUE " if obj is a GTK_IS_DRAWING_AREA");
XG_DEFINE_PROCEDURE(GTK_IS_EDITABLE, gxg_GTK_IS_EDITABLE_w, 1, 0, 0, "(GTK_IS_EDITABLE obj): " PROC_TRUE " if obj is a GTK_IS_EDITABLE");
@@ -46795,7 +46704,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_IS_FONT_SELECTION, gxg_GTK_IS_FONT_SELECTION_w, 1, 0, 0, "(GTK_IS_FONT_SELECTION obj): " PROC_TRUE " if obj is a GTK_IS_FONT_SELECTION");
XG_DEFINE_PROCEDURE(GTK_IS_FONT_SELECTION_DIALOG, gxg_GTK_IS_FONT_SELECTION_DIALOG_w, 1, 0, 0, "(GTK_IS_FONT_SELECTION_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_FONT_SELECTION_DIALOG");
XG_DEFINE_PROCEDURE(GTK_IS_FRAME, gxg_GTK_IS_FRAME_w, 1, 0, 0, "(GTK_IS_FRAME obj): " PROC_TRUE " if obj is a GTK_IS_FRAME");
- XG_DEFINE_PROCEDURE(GTK_IS_GAMMA_CURVE, gxg_GTK_IS_GAMMA_CURVE_w, 1, 0, 0, "(GTK_IS_GAMMA_CURVE obj): " PROC_TRUE " if obj is a GTK_IS_GAMMA_CURVE");
XG_DEFINE_PROCEDURE(GTK_IS_HANDLE_BOX, gxg_GTK_IS_HANDLE_BOX_w, 1, 0, 0, "(GTK_IS_HANDLE_BOX obj): " PROC_TRUE " if obj is a GTK_IS_HANDLE_BOX");
XG_DEFINE_PROCEDURE(GTK_IS_HBUTTON_BOX, gxg_GTK_IS_HBUTTON_BOX_w, 1, 0, 0, "(GTK_IS_HBUTTON_BOX obj): " PROC_TRUE " if obj is a GTK_IS_HBUTTON_BOX");
XG_DEFINE_PROCEDURE(GTK_IS_HBOX, gxg_GTK_IS_HBOX_w, 1, 0, 0, "(GTK_IS_HBOX obj): " PROC_TRUE " if obj is a GTK_IS_HBOX");
@@ -46810,7 +46718,6 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_IS_IM_CONTEXT, gxg_GTK_IS_IM_CONTEXT_w, 1, 0, 0, "(GTK_IS_IM_CONTEXT obj): " PROC_TRUE " if obj is a GTK_IS_IM_CONTEXT");
XG_DEFINE_PROCEDURE(GTK_IS_IM_CONTEXT_SIMPLE, gxg_GTK_IS_IM_CONTEXT_SIMPLE_w, 1, 0, 0, "(GTK_IS_IM_CONTEXT_SIMPLE obj): " PROC_TRUE " if obj is a GTK_IS_IM_CONTEXT_SIMPLE");
XG_DEFINE_PROCEDURE(GTK_IS_IM_MULTICONTEXT, gxg_GTK_IS_IM_MULTICONTEXT_w, 1, 0, 0, "(GTK_IS_IM_MULTICONTEXT obj): " PROC_TRUE " if obj is a GTK_IS_IM_MULTICONTEXT");
- XG_DEFINE_PROCEDURE(GTK_IS_INPUT_DIALOG, gxg_GTK_IS_INPUT_DIALOG_w, 1, 0, 0, "(GTK_IS_INPUT_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_INPUT_DIALOG");
XG_DEFINE_PROCEDURE(GTK_IS_INVISIBLE, gxg_GTK_IS_INVISIBLE_w, 1, 0, 0, "(GTK_IS_INVISIBLE obj): " PROC_TRUE " if obj is a GTK_IS_INVISIBLE");
XG_DEFINE_PROCEDURE(GTK_IS_ITEM, gxg_GTK_IS_ITEM_w, 1, 0, 0, "(GTK_IS_ITEM obj): " PROC_TRUE " if obj is a GTK_IS_ITEM");
XG_DEFINE_PROCEDURE(GTK_IS_LABEL, gxg_GTK_IS_LABEL_w, 1, 0, 0, "(GTK_IS_LABEL obj): " PROC_TRUE " if obj is a GTK_IS_LABEL");
@@ -46960,6 +46867,11 @@ static void define_functions(void)
XG_DEFINE_PROCEDURE(GTK_IS_ENTRY_BUFFER, gxg_GTK_IS_ENTRY_BUFFER_w, 1, 0, 0, "(GTK_IS_ENTRY_BUFFER obj): " PROC_TRUE " if obj is a GTK_IS_ENTRY_BUFFER");
#endif
+#if HAVE_GTK_SPINNER_NEW
+ XG_DEFINE_PROCEDURE(GTK_IS_SPINNER, gxg_GTK_IS_SPINNER_w, 1, 0, 0, "(GTK_IS_SPINNER obj): " PROC_TRUE " if obj is a GTK_IS_SPINNER");
+ XG_DEFINE_PROCEDURE(GTK_IS_CELL_RENDERER_SPINNER, gxg_GTK_IS_CELL_RENDERER_SPINNER_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_SPINNER obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_SPINNER");
+#endif
+
}
static void define_structs(void)
@@ -47665,9 +47577,6 @@ static void define_integers(void)
DEFINE_INTEGER(GTK_BUTTONBOX_EDGE);
DEFINE_INTEGER(GTK_BUTTONBOX_START);
DEFINE_INTEGER(GTK_BUTTONBOX_END);
- DEFINE_INTEGER(GTK_CURVE_TYPE_LINEAR);
- DEFINE_INTEGER(GTK_CURVE_TYPE_SPLINE);
- DEFINE_INTEGER(GTK_CURVE_TYPE_FREE);
DEFINE_INTEGER(GTK_DELETE_CHARS);
DEFINE_INTEGER(GTK_DELETE_WORD_ENDS);
DEFINE_INTEGER(GTK_DELETE_WORDS);
@@ -48388,7 +48297,6 @@ static void define_integers(void)
DEFINE_ULONG(GTK_TYPE_COLOR_SELECTION_DIALOG);
DEFINE_ULONG(GTK_TYPE_COLOR_SELECTION);
DEFINE_ULONG(GTK_TYPE_CONTAINER);
- DEFINE_ULONG(GTK_TYPE_CURVE);
DEFINE_ULONG(GTK_TYPE_DIALOG);
DEFINE_ULONG(GTK_TYPE_DRAWING_AREA);
DEFINE_ULONG(GTK_TYPE_EDITABLE);
@@ -48398,7 +48306,6 @@ static void define_integers(void)
DEFINE_ULONG(GTK_TYPE_FONT_SELECTION);
DEFINE_ULONG(GTK_TYPE_FONT_SELECTION_DIALOG);
DEFINE_ULONG(GTK_TYPE_FRAME);
- DEFINE_ULONG(GTK_TYPE_GAMMA_CURVE);
DEFINE_ULONG(GTK_TYPE_HANDLE_BOX);
DEFINE_ULONG(GTK_TYPE_HBUTTON_BOX);
DEFINE_ULONG(GTK_TYPE_HBOX);
@@ -48412,7 +48319,6 @@ static void define_integers(void)
DEFINE_ULONG(GTK_TYPE_IM_CONTEXT);
DEFINE_ULONG(GTK_TYPE_IM_CONTEXT_SIMPLE);
DEFINE_ULONG(GTK_TYPE_IM_MULTICONTEXT);
- DEFINE_ULONG(GTK_TYPE_INPUT_DIALOG);
DEFINE_ULONG(GTK_TYPE_INVISIBLE);
DEFINE_ULONG(GTK_TYPE_ITEM);
DEFINE_ULONG(GTK_TYPE_LABEL);
@@ -48851,7 +48757,7 @@ void Init_libxg(void)
define_atoms();
define_strings();
XEN_YES_WE_HAVE("xg");
- XEN_DEFINE("xg-version", C_TO_XEN_STRING("04-Oct-09"));
+ XEN_DEFINE("xg-version", C_TO_XEN_STRING("27-Nov-09"));
xg_already_inited = true;
#if HAVE_SCHEME
/* these are macros in glib/gobject/gsignal.h, but we want the types handled in some convenient way in the extension language */
diff --git a/xm-enved.fs b/xm-enved.fs
index 2d2e820..6f4db39 100644
--- a/xm-enved.fs
+++ b/xm-enved.fs
@@ -3,7 +3,7 @@
\ Author: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Fri Oct 21 18:22:57 CEST 2005
-\ Changed: Mon Oct 12 03:12:49 CEST 2009
+\ Changed: Fri Nov 06 00:36:32 CET 2009
\ Commentary:
@@ -50,7 +50,7 @@ This instance hook is like the global ENVED-HOOK; \
POS is ENVELOPE's x-position, X and Y are the new points, \
and REASON is one of the Snd constants ENVED-ADD-POINT, ENVED-DELETE-POINT, ENVED-MOVE-POINT. \
If one of the hook procedures in the hook array returns #f, xenved changes the breakpoint, \
-otherwise the last hook procedure is responsible for manipulating GEN's envelope itself." _
+otherwise the last hook procedure is responsible for manipulating GEN's envelope itself."
create-hook before-enved-hook
hide
@@ -404,10 +404,10 @@ fth-xenved make-?obj xenved?
envelope #( 0 0 1 1 )
axis-bounds #( 0 1 0 1 )
args #() -- xe }>
- parent FWidget? parent 2 $" a widget" _ assert-type
- axis-bounds axis-bounds? axis-bounds 4 $" an array of axis bounds" _ assert-type
+ parent FWidget? parent 2 $" a widget" assert-type
+ axis-bounds axis-bounds? axis-bounds 4 $" an array of axis bounds" assert-type
xenved% %alloc { xe }
- xe unless 'system-error #( get-func-name $" cannot create xenved" _ ) fth-throw then
+ xe unless 'system-error #( get-func-name $" cannot create xenved" ) fth-throw then
envelope make-enved xe xe-enved !
name string? unless $" xe-test" to name then
name xe xe-name !
@@ -450,24 +450,24 @@ fth-xenved make-?obj xenved?
: xe-envelope ( gen -- lst )
{ gen }
- gen xenved? gen 1 $" an xenved object" _ assert-type
+ gen xenved? gen 1 $" an xenved object" assert-type
gen xe-envelope@
;
: set-xe-envelope ( gen lst -- )
{ gen lst }
- gen xenved? gen 1 $" an xenved object" _ assert-type
- lst array? lst 2 $" an array" _ assert-type
+ gen xenved? gen 1 $" an xenved object" assert-type
+ lst array? lst 2 $" an array" assert-type
lst gen xe-envelope!
gen xe-redraw
;
: xe-open ( gen -- )
{ gen }
- gen xenved? gen 1 $" an xenved object" _ assert-type
+ gen xenved? gen 1 $" an xenved object" assert-type
gen xe-drawer@ FWidget? if gen xe-drawer@ FXtManageChild drop then
;
: xe-close ( gen -- )
{ gen }
- gen xenved? gen 1 $" an xenved object" _ assert-type
+ gen xenved? gen 1 $" an xenved object" assert-type
gen xe-drawer@ FWidget? if gen xe-drawer@ FXtUnmanageChild drop then
;
previous
diff --git a/xm-enved.rb b/xm-enved.rb
index 4117592..bfa8502 100644
--- a/xm-enved.rb
+++ b/xm-enved.rb
@@ -2,11 +2,11 @@
# Translator/Author: Michael Scholz <mi-scholz@users.sourceforge.net>
# Created: Tue Mar 18 00:18:35 CET 2003
-# Changed: Fri Jul 06 01:52:44 CEST 2007
+# Changed: Thu Oct 15 00:29:14 CEST 2009
# Commentary:
#
-# Tested with Snd 7.12, Motif 2.2.2, Gtk+ 2.2.1, Ruby 1.6.6, 1.6.8 and 1.9.0.
+# Tested with Snd 11, Motif 2.2.3, Gtk+ 2.16.6, Ruby 1.8.7 and 1.9.1.
#
# module Snd_enved
# channel_enved(snd, chn)
@@ -92,7 +92,6 @@
# Code:
-require "examp"
require "env"
require "hooks"
require "extensions"
@@ -235,7 +234,7 @@ sets channel amps during playback from the associated enved envelopes")
channels(snd).times do |chn|
player = make_player(snd, chn)
e = make_env(:envelope, channel_envelope(snd, chn),
- :end, (frames(snd, chn).to_f / dac_size).floor)
+ :length, (frames(snd, chn).to_f / dac_size).floor)
add_player(player, 0, -1, -1, lambda { |reason| $play_hook.reset_hook! })
$play_hook.add_hook!(get_func_name) { |fr| set_amp_control(env(e), player) }
end
@@ -254,7 +253,7 @@ pans a mono sound following its enved envelope into a stereo sound")
len = frames(snd, 0)
if audio_fd != -1
channel_envelope(snd, 0) or create_initial_envelopes(snd)
- e = make_env(:envelope, channel_envelope(snd, 0), :end, (len.to_f / dac_size).floor)
+ e = make_env(:envelope, channel_envelope(snd, 0), :length, (len.to_f / dac_size).floor)
while samp < len
scaler = env(e)
samps0 = channel2vct(samp, bufsize)
diff --git a/xm.c b/xm.c
index b010730..0a6abe8 100644
--- a/xm.c
+++ b/xm.c
@@ -6,10 +6,11 @@
#include <mus-config.h>
#include <stdlib.h>
-#define XM_DATE "7-Aug-09"
+#define XM_DATE "16-Nov-09"
/* HISTORY:
*
+ * 16-Nov: XM_XTPOINTER resource type for 64-bit systems.
* 7-Aug: s7 extended type change.
* 27-Jul: changed OFF_T to INT64_T.
* 24-Feb: and then changed some back to ULONGs!
@@ -913,7 +914,7 @@ typedef enum {XM_INT, XM_ULONG, XM_UCHAR, XM_FLOAT, XM_STRING, XM_XMSTRING, XM_S
XM_TRANSFER_CALLBACK, XM_CONVERT_CALLBACK, XM_SEARCH_CALLBACK, XM_ORDER_CALLBACK,
XM_QUALIFY_CALLBACK, XM_ALLOC_COLOR_CALLBACK, XM_POPUP_CALLBACK, XM_SCREEN_COLOR_CALLBACK,
XM_DROP_CALLBACK, XM_TRANSFER_ENTRY_LIST, XM_DRAG_CALLBACK, XM_STRING_OR_XMSTRING, XM_PARSE_CALLBACK,
- XM_BOOLEAN_OR_INT, XM_POSITION, XM_SHORT, XM_ROW_INFO, XM_CURSOR,
+ XM_BOOLEAN_OR_INT, XM_POSITION, XM_SHORT, XM_ROW_INFO, XM_CURSOR, XM_XTPOINTER,
XM_NOT_A_RESOURCE
} xm_resource_t;
@@ -2284,6 +2285,7 @@ static XEN C_TO_XEN_ANY(Widget w, Arg arg)
{
case XM_INT: return(C_TO_XEN_INT((*((int *)(arg.value)))));
case XM_ULONG: return(C_TO_XEN_ULONG((*((unsigned long *)(arg.value)))));
+ case XM_XTPOINTER: return(XEN_WRAP_C_POINTER((XtPointer)(arg.value)));
case XM_UCHAR: return(C_TO_XEN_INT((*((unsigned char *)(arg.value)))));
case XM_FLOAT: return(C_TO_XEN_DOUBLE((*((float *)(arg.value))))); /* the resource values are floats */
case XM_STRING: return(C_TO_XEN_STRING((char *)(*((char **)(arg.value)))));
@@ -26132,7 +26134,7 @@ static void define_strings(void)
DEFINE_RESOURCE(XmNchildPlacement, XM_UCHAR);
DEFINE_RESOURCE(XmNchildVerticalAlignment, XM_UCHAR);
DEFINE_RESOURCE(XmNchildren, XM_WIDGET_LIST);
- DEFINE_RESOURCE(XmNclientData, XM_ULONG);
+ DEFINE_RESOURCE(XmNclientData, XM_XTPOINTER);
DEFINE_RESOURCE(XmNclipWindow, XM_WIDGET);
DEFINE_RESOURCE(XmNcolormap, XM_COLORMAP);
DEFINE_RESOURCE(XmNcolumns, XM_SHORT);
@@ -26483,7 +26485,7 @@ static void define_strings(void)
DEFINE_RESOURCE(XmNunmapCallback, XM_CALLBACK);
DEFINE_RESOURCE(XmNunpostBehavior, XM_UCHAR);
DEFINE_RESOURCE(XmNuseAsyncGeometry, XM_BOOLEAN);
- DEFINE_RESOURCE(XmNuserData, XM_ULONG);
+ DEFINE_RESOURCE(XmNuserData, XM_XTPOINTER);
DEFINE_RESOURCE(XmNvalidCursorForeground, XM_PIXEL);
DEFINE_RESOURCE(XmNvalue, XM_STRING_OR_INT);
DEFINE_RESOURCE(XmNvalueChangedCallback, XM_CALLBACK);