Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

1226 lines
82KB

  1. var extsnd_addmark_tip = "<code>(add-mark samp snd chn name (sync 0))</code>:<br>" +
  2. " add a mark at sample 'samp' returning the mark id.";
  3. var extsnd_addsoundfileextension_tip = "<code>(add-sound-file-extension ext)</code>:<br>" +
  4. " add the file extension 'ext' to the list of sound file extensions";
  5. var extsnd_addtomenu_tip = "<code>(add-to-menu menu label func position)</code>:<br>" +
  6. " add label to menu (a main menu index),<br>" +
  7. " invoke func (a function of no args) when the new menu is activated.<br>" +
  8. " Return the new menu label widget.";
  9. var extsnd_addtransform_tip = "<code>(add-transform name x-label low high func)</code>:<br>" +
  10. " add the transform func to the transform lists;<br>" +
  11. " func should be a function of two arguments, <br>" +
  12. " the length of the transform and a sampler to get the data, <br>" +
  13. " and should return a float-vector containing the transform results. <br>" +
  14. " name is the transform's name, x-label is its x-axis label, <br>" +
  15. " and the relevant returned data to be displayed goes from low to high (normally 0.0 to 1.0)";
  16. var extsnd_afterapplycontrolshook_tip = "<code>after-apply-controls-hook (snd)</code>: called when apply-controls finishes.";
  17. var extsnd_aftergraphhook_tip = "<code>after-graph-hook (snd chn)</code>: called after a graph is updated.";
  18. var extsnd_afteropenhook_tip = "<code>after-open-hook (snd)</code>: called just before the new file's window is displayed.<br>" +
  19. " This provides a way to set various sound-specific defaults. <pre>" +
  20. " (hook-push after-open-hook<br>" +
  21. " (lambda (snd) <br>" +
  22. " (if (> (channels snd) 1) <br>" +
  23. " (set! (channel-style snd) channels-combined))))</pre>";
  24. var extsnd_aftersaveashook_tip = "<code>after-save-as-hook (saved-sound-index save-as-full-filename from-save-as-dialog)</code>:<br>" +
  25. " called upon File:Save as or save-sound-as completion.";
  26. var extsnd_aftersavestatehook_tip = "<code>after-save-state-hook (filename)</code>: called after Snd state has been saved;<br>" +
  27. " filename is the save state file.";
  28. var extsnd_aftertransformhook_tip = "<code>after-transform-hook (snd chn scaler)</code>: called just after a spectrum is calculated.";
  29. var extsnd_ampcontrol_tip = "<code>(amp-control snd chn)</code>: current amp slider setting";
  30. var extsnd_applycontrols_tip = "<code>(apply-controls snd (choice 0) (beg 0) (dur len))</code>:<br>" +
  31. " applies the current control panel state as an edit. <br>" +
  32. " The 'choices' are 0 (apply to sound), 1 (apply to channel), and 2 (apply to selection).<br>" +
  33. " If 'beg' is given, the apply starts there.";
  34. var extsnd_asoneedit_tip = "<code>(as-one-edit thunk origin)</code>: evaluate thunk,<br>" +
  35. " collecting all edits into one from the edit history's point of view";
  36. var extsnd_axisinfo_tip = "<code>(axis-info snd chn (ax time-graph))</code>: info about axis:<br>" +
  37. "<pre> (list losamp hisamp x0 y0 x1 y1 xmin ymin xmax ymax pix_x0 pix_y0 pix_x1 pix_y1<br>" +
  38. " y_offset xscale yscale xlabel ylabel new-peaks)</pre>";
  39. var extsnd_axislabelfont_tip = "<code>(axis-label-font)</code>: font used for axis labels";
  40. var extsnd_axisnumbersfont_tip = "<code>(axis-numbers-font)</code>: font used for axis numbers";
  41. var extsnd_badheaderhook_tip = "<code>bad-header-hook (filename)</code>: called if a file has some bogus-looking header.<br>" +
  42. " Return #t to give up on that file.";
  43. var extsnd_basiccolor_tip = "<code>(basic-color)</code>: Snd's basic color";
  44. var extsnd_beatsperminute_tip = "<code>(beats-per-minute snd chn)</code>: beats per minute if x-axis-style is x-axis-in-beats";
  45. var extsnd_beforeclosehook_tip = "<code>before-close-hook (snd)</code>: called each time a file is closed (before the close).<br>" +
  46. " If it returns #t, the file is not closed.";
  47. var extsnd_beforeexithook_tip = "<code>before-exit-hook ()</code>: called upon exit. If it returns #t, Snd does not exit.<br>" +
  48. " This can be used to check for unsaved edits.";
  49. var extsnd_beforesaveashook_tip = "<code>before-save-as-hook (index filename selection srate type format comment)</code>:<br>" +
  50. " called before File:Save as or save-sound-as. Provides a way to fixup a sound just before it is saved.";
  51. var extsnd_beforesavestatehook_tip = "<code>before-save-state-hook (filename)</code>: called before Snd state is saved.<br>" +
  52. " If the hook functions return #t, the save state process opens 'filename' for appending, rather than truncating.";
  53. var extsnd_besj0_tip = "<code>(bes-j0 x) returns the Bessel function J0(x)";
  54. var extsnd_bindkey_tip = "<code>(bind-key key modifiers func extended origin prefs-info)</code>:<br>" +
  55. " causes 'key' (an integer, character, or string) when typed with 'modifiers'<br>" +
  56. " (0:none, 4:control, 8:meta) (and C-x if extended) to invoke 'func', a function of zero or one arguments.<br>" +
  57. " If the function takes one argument, it is passed the preceding C-u number, if any.<br>" +
  58. " The function should return one of the cursor choices (e.g. keyboard-no-action).<br>" +
  59. " 'origin' is the name reported if an error occurs.<br>" +
  60. " The 'key' argument can be the X/Gtk name of the key (e.g. \"plus\" for \"+\" or \"Home\"),<br>" +
  61. " the character on the key (#\x07), or the integer corresponding to that character:<br>" +
  62. " (\"(char-&gt;integer #\x07)\" in Scheme, or \"?a\" in Ruby.";
  63. var extsnd_boldpeaksfont_tip = "<code>(bold-peaks-font)</code>: bold font used by fft peak display";
  64. var extsnd_channels_tip = "<code>(channels snd)</code>: how many channels snd has";
  65. var extsnd_channelstyle_tip = "<code>(channel-style snd)</code>: how multichannel sounds lay out the channels.<br>" +
  66. " The default is channels-combined; other values are channels-separate and channels-superimposed.<br>" +
  67. " As a global (if the 'snd' arg is omitted), it is the default setting for each sound's 'unite' button.";
  68. var extsnd_channelwidgets_tip = "<code>(channel-widgets snd chn)</code>: a list of widgets: ((0)graph (1)w (2)f (3)sx (4)sy (5)zx (6)zy (7)edhist)";
  69. var extsnd_chans_tip = "<code>(channels snd)</code>: how many channels snd has";
  70. var extsnd_cliphook_tip = "<code>clip-hook (clipping-value)</code> is called each time a sample is about to be clipped<br>" +
  71. " upon being written to a sound file. The hook function can return the new value to be written,<br>" +
  72. " or rely on the default (-1.0 or 1.0 depending on the sign of 'clipping-value').";
  73. var extsnd_clmchannel_tip = "<code>(clm-channel gen (beg 0) (dur len) snd chn edpos (overlap 0) origin)</code>:<br>" +
  74. " apply gen to snd's channel chn starting at beg for dur samples.<br>" +
  75. " overlap is the 'ring' time, if any.";
  76. var extsnd_closehook_tip = "<code>close-hook (snd)</code>: called each time a file is closed (before the close).";
  77. var extsnd_closesound_tip = "<code>(close-sound snd)</code>: close snd";
  78. var extsnd_comment_tip = "<code>(comment snd)</code>: snd's comment (in its header)";
  79. var extsnd_cursor_tip = "<code>(cursor snd chn edpos)</code>: current cursor location in snd's channel chn";
  80. var extsnd_cursorcontext_tip = "graphics context for the cursor";
  81. var extsnd_dacsize_tip = "<code>(dac-size)</code>: the current DAC buffer size in framples (256)";
  82. var extsnd_datacolor_tip = "<code>(data-color)</code>: color used to draw unselected data";
  83. var extsnd_sampletype_tip = "<code>(data-format snd)</code>: snd's data format (e.g. mus-bshort)";
  84. var extsnd_datalocation_tip = "<code>(data-location snd)</code>: snd's data location (bytes)";
  85. var extsnd_defineenvelope_tip = "<code>(define-envelope name data)</code>: define 'name' to have the value 'data'<br>" +
  86. " (a list of breakpoints), and load it into the envelope editor.";
  87. var extsnd_deletesamples_tip = "<code>(delete-samples start-samp samps snd chn edpos)</code>:<br>" +
  88. " delete 'samps' samples from snd's channel chn starting at 'start-samp'";
  89. var extsnd_dialogwidgets_tip = "<code>(dialog-widgets)</code>: dialog widgets (each #f if not yet created)</code>:<br>" +
  90. " <code>(list (0 color-dialog) (1 orientation-dialog) (2 enved-dialog)<br>" +
  91. " (3 #f) (4 #f) (5 transform-dialog) (6 open-file-dialog) (7 save-sound-dialog)<br>" +
  92. " (8 view-files-dialog) (9 raw data dialog) (10 new file dialog)<br>" +
  93. " (11 mix-file-dialog) (12 edit-header-dialog) (13 find-dialog)<br>" +
  94. " (14 help-dialog) (15 listener completion) (16 view-mixes-dialog)<br>" +
  95. " (17 print-dialog) (19 view-regions-dialog)<br>" +
  96. " (20 info-dialog) (21 #f) (22 save-selection-dialog)<br>" +
  97. " (23 insert-file-dialog) (24 save-region-dialog) (25 preferences-dialog))</code>";
  98. var extsnd_dotsize_tip = "<code>(dot-size snd chn)</code>: size in pixels of dots when graphing with dots (1)";
  99. var extsnd_drawline_tip = "<code>(draw-line x0 y0 x1 y1 snd chn (ax time-graph))</code>: draw a line";
  100. var extsnd_drawstring_tip = "<code>(draw-string text x0 y0 snd chn (ax time-graph))</code>: draw a string";
  101. var extsnd_duringopenhook_tip = "<code>during-open-hook (fd name reason)</code>:<br>" +
  102. " called after file is opened, but before data has been read.";
  103. var extsnd_editfragment_tip = "<code>(edit-fragment (ctr current-edit-position) snd chn)</code>:<br>" +
  104. " edit history entry at ctr associated with snd's channel chn;<br>" +
  105. " the returned value is a list (origin type start-sample samps)";
  106. var extsnd_editposition_tip = "<code>(edit-position snd chn)</code>: current edit history position in snd's channel chn";
  107. var extsnd_edits_tip = "<code>(edits snd chn)</code>: <br>" +
  108. "returns <code>(list undoable-edits redoable-edits)</code> in snd's channel chn";
  109. var extsnd_emarks_tip = "<code>(marks snd chn edpos)</code>: list of marks (ids) in snd/chn<br>" +
  110. " at edit history position pos. mark list is: <br>" +
  111. " if channel given: (id id ...), <br>" +
  112. " if snd given: ((id id) (id id ...)), <br>" +
  113. " if neither given: (((id ...) ...) ...).";
  114. var extsnd_envchannel_tip = "<code>(env-channel env-gen-or-envelope (beg 0) (dur len) snd chn edpos)</code>:<br>" +
  115. " apply amplitude envelope to snd's channel chn starting at beg for dur samples.";
  116. var extsnd_envedtarget_tip = "<code>(enved-target)</code>: determines how the envelope edit envelope is applied:<br>" +
  117. " enved-amplitude, enved-srate (apply to speed), and enved-spectrum (apply as a filter).";
  118. var extsnd_envedwaving_tip = "<code>(enved-wave?)</code>: #t if the envelope editor is displaying the waveform to be edited";
  119. var extsnd_envsound_tip = "<code>(env-sound env (start-samp 0) (samps len) (env-base 1.0) snd chn edpos)</code>:<br>" +
  120. " apply an amplitude envelope (a list of breakpoints or a CLM env) to snd's channel chn<br>" +
  121. " starting at start-samp, going either to the end of the sound or for samps samples,<br>" +
  122. " with segments interpolating according to env-base (1 = linear).";
  123. var extsnd_envselection_tip = "<code>(env-selection env (env-base 1.0))</code>:<br>" +
  124. " apply envelope to the selection using env-base to determine how breakpoints are connected";
  125. var extsnd_eregions_tip = "<code>(regions)</code>: current active regions (a list of region ids)";
  126. var extsnd_exit_tip = "<code>(exit)</code>: exit Snd";
  127. var extsnd_exithook_tip = "<code>exit-hook ()</code>: called upon exit. This can be used to perform cleanup activities.";
  128. var extsnd_expandcontrol_tip = "<code>(expand-control snd)</code>: current expand slider setting";
  129. var extsnd_expandcontrolp_tip = "<code>(expand-control? snd)</code>: snd's control panel expand button state";
  130. var extsnd_filename_tip = "<code>(file-name snd)</code>: snd's full filename";
  131. var extsnd_fillrectangle_tip = "<code>(fill-rectangle x0 y0 width height snd chn (ax time-graph) erase)</code>: draw a filled rectangle";
  132. var extsnd_filterchannel_tip = "<code>(filter-channel env order beg dur snd chn edpos (truncate #t) origin)</code>:<br>" +
  133. " applies an FIR filter to snd's channel chn.<br>" +
  134. " 'env' is the frequency response envelope, or a float-vector with the coefficients.";
  135. var extsnd_filterselection_tip = "<code>(filter-selection filter order (truncate #t))</code>:<br>" +
  136. " apply filter to selection.<br>" +
  137. " If truncate, cut off filter output at end of selection, else mix";
  138. var extsnd_filtersound_tip = "<code>(filter-sound filter order snd chn edpos origin)</code>:<br>" +
  139. " applies FIR filter to snd's channel chn.<br>" +
  140. " 'filter' is either the frequency response envelope,<br>" +
  141. " a CLM filter, or a float-vector with the actual coefficients";
  142. var extsnd_focuswidget_tip = "<code>(focus-widget widget)</code>: cause widget to receive input focus";
  143. var extsnd_framples_tip = "<code>(framples snd chn edpos)</code>: number of framples of data in snd's channel chn";
  144. var extsnd_freesampler_tip = "<code>(free-sampler reader)</code>: free a sampler (of any kind)";
  145. var extsnd_graph_tip = "<code>(graph data xlabel (x0 0.0) (x1 1.0) y0 y1 snd chn (force-display #t) show-axes)</code>:<br>" +
  146. " displays 'data' as a graph with x axis label 'xlabel', axis units going from x0 to x1 and y0 to y1;<br>" +
  147. " 'data' can be a list or a float-vector. If 'data' is a list of numbers, it is treated as an envelope.";
  148. var extsnd_graphhook_tip = "<code>graph-hook (snd chn y0 y1)</code>: called each time a graph is about to be updated. <br>" +
  149. "If it returns #t, the display is not updated.";
  150. var extsnd_graphonce_tip = "<code>graph-once</code> is the default value of the graph types (time-graph-type and transform-graph-type).";
  151. var extsnd_graphshorizontal_tip = "<code>(graphs-horizontal snd chn)</code>:<br>" +
  152. " #t if the time domain, fft, and lisp graphs are layed out horizontally";
  153. var extsnd_graphstyle_tip = "<code>(graph-style snd chn)</code>: graph style, <br>" +
  154. " one of <code>graph-lines graph-dots graph-dots-and-lines graph-lollipops graph-filled</code>";
  155. var extsnd_headertype_tip = "<code>(header-type snd)</code>: snd's header type (e.g. <code>mus-aiff</code>)";
  156. var extsnd_helpdialog_tip = "<code>(help-dialog subject message xrefs urls)</code>: start the Help window with subject and message";
  157. var extsnd_hidewidget_tip = "<code>(hide-widget widget)</code>: hide or undisplay widget";
  158. var extsnd_infodialog_tip = "<code>(info-dialog subject message)</code>: start the Info window with subject and message";
  159. var extsnd_initialgraphhook_tip = "<code>initial-graph-hook (snd chn dur)</code>:<br>" +
  160. " called when a sound is displayed for the first time";
  161. var extsnd_insertsound_tip = "<code>(insert-sound file (beg 0) (file-chan 0) snd chn edpos auto-delete)</code>:<br>" +
  162. " insert channel file-chan of file (or all chans if file-chan is not given)<br>" +
  163. " into snd's channel chn at beg or at the cursor position.<br>" +
  164. "<code> (insert-sound \"oboe.snd\" 1000)</code><br>" +
  165. " inserts all of oboe.snd starting at sample 1000.";
  166. var extsnd_keyboard_no_action_tip = "<code>keyboard-no-action</code> is one of the <code>bind-key</a> function<br>" +
  167. "return values. It indicates that Snd should not update the graphs.";
  168. var extsnd_leftsample_tip = "<code>(left-sample snd chn)</code>: left sample number in time domain window";
  169. var extsnd_lispgraph_tip = "the <code>lisp-graph</code> is the 3rd graph displayed in the channel graphs.";
  170. var extsnd_lispgraphhook_tip = "<code>lisp-graph-hook (snd chn)</code>: called just before the lisp graph is updated.<br>" +
  171. " If it returns a list of pixels, these are used in order by the list of graphs<br>" +
  172. " (if any), rather than Snd's default set; this makes it possible to use different<br>" +
  173. " colors for the various graphs. If it returns a function (of no arguments),<br>" +
  174. " that function is called rather than the standard graph routine.";
  175. var extsnd_listenerfont_tip = "<code>(listener-font)</code>: font used by the lisp listener";
  176. var extsnd_mainwidgets_tip = "<code>(main-widgets)</code>: top level widgets<br>" +
  177. " <code>(list (0)main-app (1)main-shell (2)main-pane<br>" +
  178. " (3)sound-pane (4)listener-pane (5)notebook-outer-pane)</code>";
  179. var extsnd_makecolor_tip = "<code>(make-color r g b)</code>: return a color object with the indicated rgb values";
  180. var extsnd_makegraphdata_tip = "<code>(make-graph-data snd chn edpos low high)</code>:<br>" +
  181. " return either a float-vector (if the graph has one trace), or a list of two float-vectors<br>" +
  182. " (the two sides of the envelope graph).<br>" +
  183. " 'edpos' defaults to the current-edit-position,<br>" +
  184. " 'low' defaults to the current window left sample, and<br>" +
  185. " 'high' defaults to the current rightmost sample.<br>" +
  186. " <code>(graph-data (make-graph-data))</code> reimplements the time domain graph.";
  187. var extsnd_makemixsampler_tip = "<code>(make-mix-sampler id (beg 0))</code>:<br>" +
  188. " return a reader ready to access mix id";
  189. var extsnd_makesampler_tip = "<code>(make-sampler (start-samp 0) snd chn (dir 1) edpos)</code>:<br>" +
  190. " return a reader ready to access snd's channel chn's data starting at start-samp,<br>" +
  191. " going in direction dir (1 = forward, -1 = backward),<br>" +
  192. " reading the version of the data indicated by edpos which defaults to the current version.<br>" +
  193. " snd can be a filename, or a sound index number.";
  194. var extsnd_mapchannel_tip = "<code>(map-channel func (start 0) (dur len) snd chn edpos edname)</code>:<br>" +
  195. " apply func to samples in current channel;<br>" +
  196. " edname is the edit history name for this editing operation.<br>" +
  197. "<code> (map-channel (lambda (y) (* y 2.0)))</code>";
  198. var extsnd_markclickhook_tip = "<code>mark-click-hook (id)</code>: called when a mark is clicked;<br>" +
  199. " return #t to squelch the default message.";
  200. var extsnd_markdraghook_tip = "<code>mark-drag-hook (id)</code>: called when a mark is dragged";
  201. var extsnd_markhome_tip = "<code>(mark-home id)</code>: the sound (index) and channel that hold mark id";
  202. var extsnd_markname_tip = "<code>(mark-name id)</code>: mark's name";
  203. var extsnd_marksample_tip = "<code>(mark-sample id pos)</code>: mark's location (sample number) at edit history pos";
  204. var extsnd_marksync_tip = "<code>(mark-sync id)</code>: mark's sync value (default: 0)";
  205. var extsnd_marksyncmax_tip = "<code>(mark-sync-max)</code>: max mark sync value seen so far";
  206. var extsnd_maxamp_tip = "<code>(maxamp snd chn edpos)</code>: maxamp of data in snd's channel chn";
  207. var extsnd_mix_tip = "<code>(mix file (beg 0) (file-chan 0) snd chn (with-tag with-mix-tags) auto-delete)</code>:<br>" +
  208. " mix channel file-chan of file into snd's channel chn starting at beg (in the output),<br>" +
  209. " returning the new mix's id. if with-tag is #f, no draggable tag is created. <br>" +
  210. " If auto-delete is #t, the input file is deleted when it is no longer needed.";
  211. var extsnd_mixamp_tip = "<code>(mix-amp id)</code>: mix's scaler";
  212. var extsnd_mixcolor_tip = "<code>(mix-color mix-id)</code>: color of all mix tags<br>" +
  213. " (if mix-id is omitted), or of mix-id's tag";
  214. var extsnd_mixposition_tip = "<code>(mix-position id)</code>: mix's begin time in the output in samples";
  215. var extsnd_mixreleasehook_tip = "<code>mix-release-hook (mix-id samps)</code>:<br>" +
  216. " called after the mouse has dragged a mix to some new position.<br>" +
  217. " 'samps' = samples moved in the course of the drag.<br>" +
  218. " If the hook returns #t, the actual remix is the hook's responsibility.";
  219. var extsnd_mixsamplerQ_tip = "<code>(mix-sampler? obj)</code>: #t if obj is a mix-sampler";
  220. var extsnd_mixselection_tip = "<code>(mix-selection (beg 0) snd chn (selection-channel #t))</code>:<br>" +
  221. " mix the currently selected portion starting at beg";
  222. var extsnd_mixsync_tip = "<code>(mix-sync id)</code>: mix sync field (an integer)";
  223. var extsnd_mixsyncmax_tip = "<code>(mix-sync-max)</code>: max mix sync value seen so far";
  224. var extsnd_mixtagy_tip = "<code>(mix-tag-y id)</code>: height of mix's tag";
  225. var extsnd_musbfloat_tip = "<code>mus-bfloat</code> data is big-endian float";
  226. var extsnd_musbshort_tip = "<code>mus-bshort</code> data is big-endian signed 16-bit integer";
  227. var extsnd_mussampletypename_tip = "<code>(mus-data-format-name format)</code>: data format (e.g. mus-bshort) as a string";
  228. var extsnd_musheadertypename_tip = "<code>(mus-header-type-name type)</code>: header type (e.g. mus-aiff) as a string";
  229. var extsnd_muslfloat_tip = "<code>mus-lfloat</code> data is little-endian float";
  230. var extsnd_muslshort_tip = "<code>mus-lshort</code> data is little-endian signed 16-bit integer";
  231. var extsnd_musosssetbuffers_tip = "<code>(mus-oss-set-buffers num size)</code>: set Linux OSS 'fragment' number and size.<br>" +
  232. " If Snd's controls seem sluggish, try <code>(mus-oss-set-buffers 4 12)</code><br>" +
  233. " or even <code>(mus-oss-set-buffers 2 12)</code>.<br>" +
  234. " This reduces the on-card buffering, but may introduce clicks.";
  235. var extsnd_mussoundchans_tip = "<code>(mus-sound-chans filename)</code>: channels of data in sound file";
  236. var extsnd_mussoundcomment_tip = "<code>(mus-sound-comment filename)</code>: comment (a string) found in sound file's header";
  237. var extsnd_mussoundsampletype_tip = "<code>(mus-sound-data-format filename)</code>: data format (e.g. mus-bshort) of data in sound file";
  238. var extsnd_mussoundduration_tip = "<code>(mus-sound-duration filename)</code>: duration (in seconds) of sound file";
  239. var extsnd_mussoundframples_tip = "<code>(mus-sound-framples filename)</code>: framples (samples / channel) in sound file";
  240. var extsnd_mussoundheadertype_tip = "<code>(mus-sound-header-type filename)</code>: header type (e.g. mus-aifc) of sound file";
  241. var extsnd_mussoundloopinfo_tip = "<code>(mus-sound-loop-info filename)</code>: synth loop info for sound as a list:<br>" +
  242. "<code> (start1 end1 start2 end2 base-note base-detune mode1 mode2)</code>";
  243. var extsnd_mussoundmaxamp_tip = "<code>(mus-sound-maxamp filename)</code>: maxamps in sound<br>" +
  244. " (a list of paired amps (as floats) and locations (in samples))";
  245. var extsnd_mussoundmaxampexists_tip = "<code>(mus-sound-maxamp-exists? filename)</code>: #t if sound's maxamp data is available;<br>" +
  246. " if it isn't, a call on mus-sound-maxamp has to open and read the data to get the maxamp.";
  247. var extsnd_mussoundopeninput_tip = "<code>(mus-sound-open-input filename)</code>: open filename for (low-level) sound input,<br>" +
  248. " return file descriptor (an integer)";
  249. var extsnd_mussoundsamples_tip = "<code>(mus-sound-samples filename)</code>: samples (framples * channels) in sound file";
  250. var extsnd_mussoundsrate_tip = "<code>(mus-sound-srate filename)</code>: sampling rate of sound file";
  251. var extsnd_nameclickhook_tip = "<code>name-click-hook (snd)</code>: called when sound name clicked.<br>" +
  252. " If it returns #t, the usual informative status area babbling is squelched.";
  253. var extsnd_newsound_tip = "<code>(new-sound :file :header-type :data-format :srate :channels :comment :size)</code>:<br>" +
  254. " creates a new sound file with the indicated attributes; if any are omitted,<br>" +
  255. " the corresponding default-output variable is used. <br>" +
  256. " The 'size' argument sets the number of samples (zeros) in the newly created sound.<br>" +
  257. "<code> (new-sound \"test.snd\" mus-next mus-bshort 22050 1 \"no comment\" 1000)</code>";
  258. var extsnd_nextsample_tip = "<code>(next-sample reader)</code>: next sample from reader";
  259. var extsnd_normalizefft_tip = "<code>(transform-normalization snd chn)</code>:<br>" +
  260. " decides whether spectral data is normalized before display;<br>" +
  261. " can be dont-normalize, normalize-by-channel (default), normalize-by-sound, or normalize-globally.";
  262. var extsnd_openfiledialog_tip = "<code>(open-file-dialog (managed #t))</code>:<br>" +
  263. " create the file dialog if needed and display it if 'managed'";
  264. var extsnd_openhook_tip = "<code>open-hook (filename)</code>: called each time a file is opened<br>" +
  265. " (before the actual open). If it returns #t, the file is not opened.";
  266. var extsnd_openrawsoundhook_tip = "<code>open-raw-sound-hook (filename current-choices)</code>:<br>" +
  267. " called when a headerless sound file is opened.<br>" +
  268. " Its result can be a list describing the raw file's attributes <br>" +
  269. " (thereby bypassing the Raw File Dialog and so on).<br>" +
  270. " The list (passed to subsequent hook functions as 'current-choice')<br>" +
  271. " is interpreted as <code>(list chans srate data-format data-location data-length)</code><br>" +
  272. " where trailing elements can be omitted (location defaults to 0,<br>" +
  273. " and length defaults to the file length in bytes).";
  274. var extsnd_opensound_tip = "<code>(open-sound filename)</code>: open filename <br>" +
  275. " (as if opened from File:Open menu option), and return the new sound's index";
  276. var extsnd_padchannel_tip = "<code>(pad-channel beg dur snd chn edpos)</code>: insert dur zeros at beg in snd's chn";
  277. var extsnd_peaksfont_tip = "<code>(peaks-font)</code>: normal font used by fft peak display";
  278. var extsnd_play_tip = "<code>(play object :start :end :channel :edit-position :out-channel :with-sync :wait :stop):<br>" +
  279. " play the object from start to end.<br>" +
  280. " If channel is not given, play all channels.<br>" +
  281. " If with-sync, play all objects sync'd to the current object.<br>" +
  282. " If wait, wait for the play process to finish before going on.<br>" +
  283. " If out-channel, send the samples to that DAC channel.<br>" +
  284. " If edit-position, play that member of the edit list.<br>" +
  285. " If stop, call that function when the play process finishes.<br>" +
  286. " If object is a string, it is assumed to be a file name.";
  287. var extsnd_positiontox_tip = "<code>(position-&gt;x val snd chn (ax time-graph))</code>: x axis value corresponding to pixel val";
  288. var extsnd_previoussample_tip = "<code>(previous-sample reader)</code>: previous sample from reader";
  289. var extsnd_readmixsample_tip = "<code>(read-mix-sample reader)</code>: read sample from mix reader";
  290. var extsnd_readonly_tip = "<code>(read-only snd)</code>: whether snd is write-protected";
  291. var extsnd_readsample_tip = "<code>(read-sample reader)</code>: get the next sample from the sampler";
  292. var extsnd_regionframples_tip = "<code>(region-framples (reg 0) (chan 0))</code>: region length in framples";
  293. var extsnd_regionok_tip = "<code>(region? reg)</code>: #t if region is active";
  294. var extsnd_regularizedargs_tip = "The \"regularized\" functions take arguments in the order<br>" +
  295. " begin time, duration (not end sample), sound index, channel number, and edit position.";
  296. var extsnd_statusreport_tip = "<code>(status-report msg snd)</code>: display msg in snd's status area.";
  297. var extsnd_restorecontrols_tip = "<code>(restore-controls snd)</code>: restore the previously saved control panel settings";
  298. var extsnd_reversesound_tip = "<code>(reverse-sound snd chn edpos)</code>: reverse snd's channel chn";
  299. var extsnd_revertsound_tip = "<code>(revert-sound snd)</code>: return 'snd' to its unedited state (undo all edits).";
  300. var extsnd_rightsample_tip = "<code>(right-sample snd chn)</code>: right sample number in time domain window";
  301. var extsnd_sample_tip = "<code>(sample samp snd chn edpos)</code>:<br>" +
  302. " return sample samp in snd's channel chn<br>" +
  303. " (this is a slow access -- use samplers for speed)";
  304. var extsnd_sampleratendQ_tip = "<code>(sampler-at-end? obj)</code>: #t if sampler has reached the end of its data";
  305. var extsnd_samples_tip = "<code>(samples (start-samp 0) (samps len) snd chn edpos)</code>:<br>" +
  306. " return a float-vector containing snd channel chn's samples starting a start-samp for samps samples;<br>" +
  307. " edpos is the edit history position to read (defaults to current position).";
  308. var extsnd_savedir_tip = "<code>(save-dir)</code>: name of directory for saved state data (or #f=null)";
  309. var extsnd_savehook_tip = "<code>save-hook (snd name)</code>: called each time a file is about to be saved.<br>" +
  310. " If it returns #t, the file is not saved.<br>" +
  311. " 'name' is #f unless the file is being saved under a new name (as in sound-save-as).";
  312. var extsnd_savesound_tip = "<code>(save-sound snd)</code>: save snd<br>" +
  313. " (update the on-disk data to match Snd's current version)";
  314. var extsnd_savesoundas_tip = "<code>(save-sound-as :file :sound :header-type :data-format :srate :channel :edit-position :comment)</code>:<br>" +
  315. " save sound in file using the indicated attributes.<br>" +
  316. " If channel is specified, only that channel is saved (extracted).<br>" +
  317. " Omitted arguments take their value from the sound being saved.<br>" +
  318. "<code> (save-sound-as \"test.snd\" index mus-next mus-bshort)</code>";
  319. var extsnd_savestatehook_tip = "<code>save-state-hook (temp-filename)</code>: called each time the save-state<br>" +
  320. " mechanism is about to create a new temporary file to save some edit history<br>" +
  321. " sample values. temp-filename is the current file.<br>" +
  322. " If the hook returns a string, it is treated as the new temp filename.<br>" +
  323. " This hook provides a way to keep track of which files are in a given<br>" +
  324. " saved state batch, and a way to rename or redirect those files.";
  325. var extsnd_scaleby_tip = "<code>(scale-by scalers snd chn)</code>: scale snd by scalers (following sync);<br>" +
  326. " scalers can be a float or a float-vector/list of floats";
  327. var extsnd_scalechannel_tip = "<code>(scale-channel scaler (beg 0) (dur len) snd chn edpos)</code>:<br>" +
  328. " scale samples in the given sound/channel between beg and beg + num by scaler.";
  329. var extsnd_scaleselectionby_tip = "<code>(scale-selection-by scalers)</code>: scale selected portion by scalers";
  330. var extsnd_scaleto_tip = "<code>(scale-to (norms 1.0) snd chn)</code>: normalize snd to norms (following sync);<br>" +
  331. " norms can be a float or a float-vector/list of floats";
  332. var extsnd_scanchannel_tip = "<code>(scan-channel func (start 0) (dur len) snd chn edpos)</code>:<br>" +
  333. " apply func to samples in current channel (or the specified channel).<br>" +
  334. " func is a function of one argument, the current sample.<br>" +
  335. " if func returns non-#f, the scan stops, and the value is returned to the caller<br>" +
  336. " with the sample number.<br>" +
  337. "<code> (scan-channel (lambda (y) (> y .1)))</code>";
  338. var extsnd_scriptarg_tip = "<code>(script-arg)</code>: where we are in the startup arg list";
  339. var extsnd_scriptargs_tip = "<code>(script-args)</code>: the args passed to Snd at startup as a list of strings";
  340. var extsnd_searchprocedure_tip = "<code>(search-procedure snd)</code>: global search function<br>" +
  341. " (if no 'snd' specified) or sound-local search function";
  342. var extsnd_selectall_tip = "<code>(select-all snd chn)</code>: make a new selection containing all of snd's channel chn.<br>" +
  343. " If sync is set, all chans are included. <br>" +
  344. " The new region id is returned (if selection-creates-region is #t).";
  345. var extsnd_selectedchannel_tip = "<code>(selected-channel snd)</code>: currently selected channel in snd (or #f if none)";
  346. var extsnd_selecteddatacolor_tip = "<code>(selected-data-color)</code>: color used for selected data";
  347. var extsnd_selectedgraphcolor_tip = "<code>(selected-graph-color)</code>: background color of selected data";
  348. var extsnd_selectedsound_tip = "<code>(selected-sound)</code>: index of currently selected sound (or #f if none)";
  349. var extsnd_selectionframples_tip = "<code>(selection-framples snd chn)</code>: selection length";
  350. var extsnd_selectionmember_tip = "<code>(selection-member? snd chn)</code>: #t if snd's channel chn is a member of the current selection";
  351. var extsnd_selectionok_tip = "<code>(selection?)</code>: #t if selection is currently active, visible, etc";
  352. var extsnd_selectionposition_tip = "<code>(selection-position snd chn)</code>: selection start samp";
  353. var extsnd_setsamples_tip = "<code>(set-samples start-samp samps data snd chn truncate edname (infile-chan 0) edpos auto-delete)</code>:<br>" +
  354. " set snd's channel chn's samples starting at start-samp for samps from data (a vector or string (filename));<br>" +
  355. " start-samp can be beyond current data end;<br>" +
  356. " if truncate is #t and start-samp is 0, the end of the file is set to match the new data's end.";
  357. var extsnd_shortfilename_tip = "<code>(short-file-name snd)</code>: short form of snd's file name (no directory)";
  358. var extsnd_showlistener_tip = "<code>(show-listener (open #t))</code>: if 'open' opens the lisp listener;<br>" +
  359. " returns whether the listener is visible.";
  360. var extsnd_showtransformpeaks_tip = "<code>(show-transform-peaks snd chn)</code>: #t if fft display should include peak list";
  361. var extsnd_sndhelp_tip = "<code>(snd-help (arg 'snd-help) (formatted #t))</code>: return the documentation associated with its argument.<br>" +
  362. " The argument can be a string, symbol, or in some cases, the object itself.<br>" +
  363. " In the help descriptions, optional arguments are in parens with the default value (if any) as the 2nd entry.<br>" +
  364. " A ':' as the start of the argument name marks a CLM-style optional keyword argument. <br>" +
  365. " If you load index.scm the functions html and ? can be used in place of help to go to the HTML description,<br>" +
  366. " and the location of the associated C code will be displayed, if it can be found.<br>" +
  367. " If help-hook is not empty, it is invoked with the subject and the snd-help result and its value is returned.";
  368. var extsnd_sndprint_tip = "<code>(snd-print str)</code>: display str in the listener window";
  369. var extsnd_sndspectrum_tip = "<code>(snd-spectrum data (window rectangular-window) (len data-len)<br>" +
  370. " (linear #t) (beta 0.0) in-place (normalized #t))</code>:<br>" +
  371. " magnitude spectrum of data (a float-vector), in data if in-place, using fft-window win and fft length len.";
  372. var extsnd_sndtempnam_tip = "<code>(snd-tempnam)</code>: return a new temp file name using temp-dir.";
  373. var extsnd_soundfilep_tip = "<code>(sound-file? name)</code>: #t if name has a known sound file extension";
  374. var extsnd_soundfilesindirectory_tip = "<code>(sound-files-in-directory (directory \".\"))</code>:<br>" +
  375. " return a list of the sound files in 'directory'";
  376. var extsnd_soundp_tip = "<code>(sound? (index 0))</code>: #t if sound associated with 'index' is active (accessible)";
  377. var extsnd_sounds_tip = "<code>(sounds)</code>: list of active sounds (a list of indices)";
  378. var extsnd_soundwidgets_tip = "<code>(sound-widgets snd)</code>: returns a list of widgets associated with 'snd':<br>" +
  379. "(0)pane (1)name (2)control-panel<br>" +
  380. "(3)status area (4)play-button (5)filter-env<br>" +
  381. "(6)unite-button (7)name-label (8)name-icon (9)sync-button";
  382. var extsnd_squelchupdate_tip = "<code>(squelch-update snd chn)</code>: #t if updates (redisplays) are turned off in snd's channel chn";
  383. var extsnd_srate_tip = "<code>(srate snd)</code>: snd's srate";
  384. var extsnd_srcchannel_tip = "<code>(src-channel ratio-or-env (beg 0) (dur len) snd chn edpos)</code>:<br>" +
  385. " sampling-rate convert snd's channel chn by ratio, or following an envelope <br>" +
  386. " (a list or a CLM env generator).";
  387. var extsnd_srcsound_tip = "<code>(src-sound ratio-or-env (base 1.0) snd chn edpos)</code>:<br>" +
  388. " sampling-rate convert snd's channel chn by ratio, or following an envelope.<br>" +
  389. " A negative ratio reverses the sound";
  390. var extsnd_selectionmaxamp_tip = "<code>(selection-maxamp)</code> returns the peak amplitude in the selection.";
  391. var extsnd_startplayinghook_tip = "<code>start-playing-hook (snd)</code>: called when a play request is triggered.<br>" +
  392. " If it returns #t, the sound is not played.";
  393. var extsnd_startplayingselectionhook_tip = "<code>start-playing-selection-hook ()</code>: called when the selection starts playing";
  394. var extsnd_stopplaying_tip = "<code>(stop-playing snd)</code>: stop play (DAC output) in progress";
  395. var extsnd_stopplayinghook_tip = "<code>stop-playing-hook (snd)</code>: called when a sound finishes playing.";
  396. var extsnd_stopplayingselectionhook_tip = "<code>stop-playing-selection-hook ()</code>: called when the selection stops playing";
  397. var extsnd_sync_tip = "<code>(sync snd)</code>: snd's sync value (0 = no sync).<br>" +
  398. " Some editing operations are applied to all sounds sharing the sync value of the selected sound.";
  399. var extsnd_time_graph_tip = "<code>time-graph<code> is the constant associated with the time domain graph<br>" +
  400. "The other two graphs are <code>transform-graph</code> and <code>lisp-graph</code>";
  401. var extsnd_timegraphtype_tip = "<code>(time-graph-type snd chn)</code>: graph-as-wavogram if<br>" +
  402. " Snd's time domain display is a 'wavogram',otherwise graph-once.";
  403. var extsnd_tinyfont_tip = "<code>(tiny-font)</code>: font use for some info in the graphs";
  404. var extsnd_transformgraphp_tip = "<code>(transform-graph? snd chn)</code>: #t if fft display is active in snd's channel chn";
  405. var extsnd_transformgraphtype_tip = "<code>(transform-graph-type snd chn)</code>: can be<br>" +
  406. " graph-once, graph-as-sonogram, or graph-as-spectrogram.";
  407. var extsnd_transformsize_tip = "<code>(transform-size snd chn)</code>: current fft size (512)";
  408. var extsnd_undo_tip = "<code>(undo (count 1) snd chn)</code>: undo 'count' edits in snd's channel chn";
  409. var extsnd_updatesound_tip = "<code>(update-sound snd)</code>: update snd (re-read it from the disk after flushing pending edits)";
  410. var extsnd_updatetimegraph_tip = "<code>(update-time-graph snd chn)</code>: redraw snd channel chn's graphs";
  411. var extsnd_updatetransformgraph_tip = "<code>(update-transform-graph snd chn)</code>: redraw snd channel chn's fft display";
  412. var extsnd_widgetposition_tip = "<code>(widget-position wid)</code>: widget's position, (list x y), in pixels";
  413. var extsnd_widgetsize_tip = "<code>(widget-size wid)</code>: widget's size, (list width height), in pixels";
  414. var extsnd_windowheight_tip = "<code>(window-height)</code>: current Snd window height in pixels";
  415. var extsnd_windowwidth_tip = "<code>(window-width)</code>: current Snd window width in pixels";
  416. var extsnd_withmixtags_tip = "<code>(with-mix-tags)</code>: #t if Snd should try to use virtual (tagged) mixing";
  417. var extsnd_withtrackingcursor_tip = "<code>(with-tracking-cursor snd)</code>:<br>#t if cursor moves along in waveform display as sound is played";
  418. var extsnd_xaxislabel_tip = "<code>(x-axis-label snd chn (ax time-graph))</code>: current x axis label";
  419. var extsnd_xaxisstyle_tip = "<code>(x-axis-style snd chn)</code>: The x axis labelling of the time domain waveform<br>" +
  420. " can be in seconds (x-axis-in-seconds), in samples (x-axis-in-samples),<br>" +
  421. " expressed as a percentage of the overall duration (x-axis-as-percentage),<br>" +
  422. " as a beat number (x-axis-in-beats), as a measure number (x-axis-in-measures),<br>" +
  423. " or clock-style (dd:hh:mm:ss) (x-axis-as-clock).";
  424. var extsnd_xbounds_tip = "<code>(x-bounds snd chn)</code>:<br>a list (x0 x1) giving the current x axis bounds of snd channel chn";
  425. var extsnd_xtoposition_tip = "<code>(x-&gt;position val snd chn (ax time-graph))</code>: x pixel loc of val";
  426. var extsnd_xzoomslider_tip = "<code>(x-zoom-slider snd chn)</code>: current x axis zoom slider of snd channel chn";
  427. var extsnd_ybounds_tip = "<code>(y-bounds snd chn)</code>:<br>a list (low high) giving the current y axis bounds of snd channel chn";
  428. var extsnd_ytoposition_tip = "<code>(y-&gt;position val snd chn (ax time-graph))</code>: y pixel loc of val";
  429. var extsnd_yzoomslider_tip = "<code>(y-zoom-slider snd chn)</code>: current y axis zoom slider of snd channel chn";
  430. var sndclm_amplitude_modulate_tip = "<code>(amplitude-modulate carrier in1 in2)</code>: in1 * (carrier + in2)";
  431. var sndclm_array_interp_tip = "<code>(array-interp v phase size)</code>: v[phase] taking into account wrap-around<br>" +
  432. " (size is size of data), with linear interpolation if phase is not an integer.";
  433. var sndclm_comb_tip = "<code>(comb gen (val 0.0) (pm 0.0))</code>: comb filter val, pm changes the delay length.";
  434. var sndclm_contrast_enhancement_tip = "<code>(contrast-enhancement sig (index 1.0))</code>: sin(sig * pi / 2 + index * sin(sig * 2 * pi))";
  435. var sndclm_convolve_tip = "<code>(convolve gen input-func)</code>: next sample from convolution generator";
  436. var sndclm_delay_tip = "<code>(delay gen (val 0.0) (pm 0.0))</code>: delay val<br>" +
  437. " according to the delay line's length and pm ('phase-modulation').<br>" +
  438. " If pm is greater than 0.0, the max-size argument used to create gen<br>" +
  439. " should have accommodated its maximum value.";
  440. var sndclm_dot_product_tip = "<code>(dot-product v1 v2 size)</code>: sum of (float-vectors) v1[i] * v2[i] (also named scalar product)";
  441. var sndclm_env_tip = "<code>(env gen)</code>: next sample from envelope generator";
  442. var sndclm_fft_tip = "<code>(mus-fft rl im len (dir 1))</code>:<br>" +
  443. " return the fft of float-vectors rl and im which contain <br>" +
  444. " the real and imaginary parts of the data;<br>" +
  445. " len should be a power of 2,<br>" +
  446. " dir = 1 for fft, -1 for inverse-fft";
  447. var sndclm_filetoarray_tip = "<code>(file-&gt;array filename chan start samples data)</code>:<br>" +
  448. " read the sound file 'filename' placing samples from channel 'chan'<br>" +
  449. " into the float-vector 'data' starting in the file at frample 'start'<br>" +
  450. " and reading 'samples' samples altogether.";
  451. var sndclm_filetosample_tip = "<code>(file-&gt;sample obj frample chan)</code>: sample value in sound file read by 'obj' in channel chan at frample";
  452. var sndclm_fir_filter_tip = "<code>(fir-filter gen (input 0.0))</code>: next sample from FIR filter";
  453. var sndclm_formant_tip = "<code>(formant gen (input 0.0) freq-in-radians)</code>: next sample from resonator generator";
  454. var sndclm_granulate_tip = "<code>(granulate gen input-func edit-func)</code>: next sample from granular synthesis generator";
  455. var sndclm_hztoradians_tip = "<code>(hz-&gt;radians hz)</code>: convert frequency in Hz to radians per sample: hz * 2 * pi / srate";
  456. var sndclm_in_any_tip = "<code>(in-any frample chan stream)</code>: input stream sample at frample in channel chan";
  457. var sndclm_ina_tip = "<code>(ina frample stream)</code>: input stream sample in channel 0 at frample";
  458. var sndclm_locsig_tip = "<code>(locsig gen loc val)</code>: add 'val' to the output of locsig at frample 'loc'";
  459. var sndclm_make_comb_tip = "<code>(make-comb :scaler :size :initial-contents (:initial-element 0.0) :max-size (:type mus-interp-linear))</code>:<br>" +
  460. " return a new comb filter (a delay line with a scaler on the feedback) of size elements.<br>" +
  461. " If the comb length will be changing at run-time, max-size sets its maximum length.<br>" +
  462. " initial-contents can be either a list or a float-vector.";
  463. var sndclm_contrast_enhancement_tip = "<code>(contrast-enhancement input (fm-index 1.0))</code><br>" +
  464. " phase-modulates its input.";
  465. var sndclm_make_convolve_tip = "<code>(make-convolve :input :filter :fft-size)</code>: <br>" +
  466. " return a new convolution generator which convolves its input with the impulse response 'filter'.";
  467. var sndclm_make_delay_tip = "<code>(make-delay :size :initial-contents (:initial-element 0.0) (:max-size) (:type mus-interp-linear))</code>:<br>" +
  468. " return a new delay line of size elements.<br>" +
  469. " If the delay length will be changing at run-time, max-size sets its maximum length,<br>" +
  470. " so <code>(make-delay len :max-size (+ len 10))</code> provides 10 extra elements of delay<br>" +
  471. " for subsequent phasing or flanging.<br>" +
  472. " initial-contents can be either a list or a float-vector.";
  473. var sndclm_make_env_tip = "<code>(make-env :envelope (:scaler 1.0) :duration (:offset 0.0) (:base 1.0) :end :length)</code>:<br>" +
  474. " return a new envelope generator.<br>" +
  475. " 'envelope' is a list or float-vector of break-point pairs. To create the envelope,<br>" +
  476. " these points are offset by 'offset', scaled by 'scaler', and mapped over the time interval<br>" +
  477. " defined by either 'duration' (seconds) or 'length' (samples).<br>" +
  478. " If 'base' is 1.0, the connecting segments are linear, if 0.0 you get a step function,<br>" +
  479. " and anything else produces an exponential connecting segment.";
  480. var sndclm_make_filetosample_tip = "<code>(make-file-&gt;sample filename buffer-size)</code>:<br>" +
  481. " return an input generator reading 'filename' (a sound file)";
  482. var sndclm_make_filter_tip = "<code>(make-filter :order :xcoeffs :ycoeffs)</code>:<br>" +
  483. " return a new direct form FIR/IIR filter, coeff args are float-vectors";
  484. var sndclm_make_fir_filter_tip = "<code>(make-fir-filter :order :xcoeffs)</code>: return a new FIR filter, xcoeffs a float-vector";
  485. var sndclm_make_formant_tip = "<code>(make-formant :frequency :radius)</code>:<br>" +
  486. " return a new formant generator (a resonator).<br>" +
  487. " radius sets the pole radius (in terms of the 'unit circle').<br>" +
  488. " frequency sets the resonance center frequency (Hz).";
  489. var sndclm_make_granulate_tip = "<code>(make-granulate :input (:expansion 1.0) (:length .15) (:scaler .6) (:hop .05)<br>" +
  490. " (:ramp .4) (:jitter 1.0) :max-size :edit)</code>:<br>" +
  491. " return a new granular synthesis generator.<br>" +
  492. " 'length' is the grain length (seconds),<br>" +
  493. " 'expansion' is the ratio in timing between the new and old (expansion > 1.0 slows things down),<br>" +
  494. " 'scaler' scales the grains to avoid overflows,<br>" +
  495. " 'hop' is the spacing (seconds) between successive grains upon output,<br>" +
  496. " 'jitter' controls the randomness in that spacing,<br>" +
  497. " 'input' can be a file pointer.<br>" +
  498. " 'edit' can be a function of one arg, the current granulate generator.<br>" +
  499. " It is called just before a grain is added into the output buffer.<br>" +
  500. " The current grain is accessible via mus-data.<br>" +
  501. " The edit function, if any, should return the length in samples of the grain, or 0.";
  502. var sndclm_make_locsig_tip = "<code>(make-locsig (:degree 0.0) (:distance 1.0) (:reverb 0.0) (:output *output*) (:revout *reverb*)<br>" +
  503. " (:channels (mus-channels *output*)) (:type mus-interp-linear))</code>:<br>" +
  504. " return a new generator for signal placement in n channels. Channel 0 corresponds to 0 degrees.";
  505. var sndclm_make_moving_average_tip = "<code>(make-moving-average :size :initial-contents (:initial-element 0.0))</code>:<br>" +
  506. " return a new moving_average generator. initial-contents can be either a list or a float-vector.";
  507. var sndclm_moving_max_tip = "<code>(moving-max gen y)</code>: return moving window max given input 'y'.<br>" +
  508. " moving-max is a specialization of the delay generator that produces<br>" +
  509. " an envelope that tracks the peak amplitude of the last 'size' samples.";
  510. var sndclm_make_ncos_tip = "<code>(make-ncos (:frequency *clm-default-frequency*) (:n 1))</code>:<br>" +
  511. " return a new ncos generator, producing a sum of 'n' equal amplitude cosines.";
  512. var sndclm_make_one_pole_tip = "<code>(make-one-pole :a0 :b1)</code>: return a new one-pole filter; a0*x(n) - b1*y(n-1)";
  513. var sndclm_make_one_zero_tip = "<code>(make-one-zero :a0 :a1)</code>: return a new one-zero filter; a0*x(n) + a1*x(n-1)";
  514. var sndclm_make_oscil_tip = "<code>(make-oscil (:frequency *clm-default-frequency*) (:initial-phase 0.0))</code>:<br>" +
  515. " return a new oscil (sinewave) generator";
  516. var sndclm_make_phase_vocoder_tip = "<code>(make-phase-vocoder :input :fft-size :overlap :interp :pitch :analyze :edit :synthesize)</code>:<br>" +
  517. " return a new phase-vocoder generator;<br>" +
  518. " input is the input function (it can be set at run-time),<br>" +
  519. " analyze, edit, and synthesize are either #f or functions that replace the default innards of the generator,<br>" +
  520. " fft-size, overlap and interp set the fftsize, the amount of overlap between ffts, and the time between new analysis calls.<br>" +
  521. " 'analyze', if given, takes 2 args, the generator and the input function;<br>" +
  522. " if it returns #t, the default analysis code is also called.<br>" +
  523. " 'edit', if given, takes 1 arg, the generator; if it returns #t, the default edit code is run.<br>" +
  524. " 'synthesize' is a function of 1 arg, the generator; it is called to get the current vocoder output.";
  525. var sndclm_make_polyshape_tip = "<code>(make-polyshape (:frequency *clm-default-frequency*) (:initial-phase 0.0) :coeffs (:partials '(1 1)) (:kind mus-chebyshev-first-kind))</code>:<br>" +
  526. " return a new polynomial-based waveshaping generator:<br>" +
  527. "<code> (make-polyshape :coeffs (partials-&gt;polynomial '(1 1.0)))</code><br>" +
  528. " is the same in effect as make-oscil";
  529. var sndclm_make_polywave_tip = "<code>(make-polyshape (:frequency *clm-default-frequency*) (:partials '(1 1)) (:kind mus-chebyshev-first-kind))</code>:<br>" +
  530. " return a new polynomial-based waveshaping generator (additive synthesis).";
  531. var sndclm_make_pulse_train_tip = "<code>(make-pulse-train (:frequency *clm-default-frequency*) (:amplitude 1.0) (:initial-phase 0.0))</code>:<br>" +
  532. " return a new pulse-train generator. This produces a sequence of impulses.";
  533. var sndclm_make_rand_interp_tip = "<code>(make-rand-interp (:frequency *clm-default-frequency*) (:amplitude 1.0) :envelope :distribution :size)</code>:<br>" +
  534. " return a new rand-interp generator, producing linearly interpolated random numbers.<br>" +
  535. " frequency is the rate at which new end-points are chosen.";
  536. var sndclm_make_rand_tip = "<code>(make-rand (:frequency *clm-default-frequency*) (:amplitude 1.0) :envelope :distribution :size)</code>:<br>" +
  537. " return a new rand generator, producing a sequence of random numbers (a step function).<br>" +
  538. " frequency is the rate at which new numbers are chosen.";
  539. var sndclm_make_readin_tip = "<code>(make-readin :file (:channel 0) (:start 0) (:direction 1) :size)</code>:<br>" +
  540. " return a new readin (file input) generator reading the sound file 'file'<br>" +
  541. " starting at frample 'start' in channel 'channel' and reading forward if 'direction' is not -1";
  542. var sndclm_make_sampletofile_tip = "<code>(make-sample-&gt;file filename chans data-format header-type comment)</code>:<br>" +
  543. " return an output generator writing the sound file 'filename'<br>" +
  544. " which is set up to have 'chans' channels of 'data-format' samples with a header of 'header-type'.<br>" +
  545. " The latter should be sndlib identifiers:<br>" +
  546. "<code> (make-sample-&gt;file \"test.snd\" 2 mus-lshort mus-riff)</code>";
  547. var sndclm_make_src_tip = "<code>(make-src :input (:srate 1.0) (:width 10))</code>: return a new sampling-rate conversion generator<br>" +
  548. " (using 'warped sinc interpolation').<br>" +
  549. " 'srate' is the ratio between the new rate and the old.<br>" +
  550. " 'width' is the sine width (effectively the steepness of the low-pass filter), normally between 10 and 100.<br>" +
  551. " 'input' if given is an open file stream.";
  552. var sndclm_make_triangle_wave_tip = "<code>(make-triangle-wave (:frequency *clm-default-frequency*) (:amplitude 1.0) (:initial-phase 0.0))</code>:<br>" +
  553. " return a new triangle-wave generator.";
  554. var sndclm_make_two_zero_tip = "<code>(make-two-zero :a0 :a1 :a2 or :frequency :radius)</code>:<br>" +
  555. " return a new two-zero filter; a0*x(n) + a1*x(n-1) + a2*x(n-2)";
  556. var sndclm_moving_average_tip = "<code>(moving-average gen (val 0.0))</code>: moving window moving_average.";
  557. var sndclm_mus_close_tip = "<code>(mus-close gen)</code>: close the IO stream managed by 'gen' (a sample-&gt;file generator, for example)";
  558. var sndclm_mus_data_tip = "<code>(mus-data gen)</code>: gen's internal data (a float-vector)";
  559. var sndclm_mus_frequency_tip = "<code>(mus-frequency gen)</code>: gen's frequency (Hz)";
  560. var sndclm_mus_increment_tip = "<code>(mus-increment gen)</code>: gen's mus-increment field";
  561. var sndclm_mus_length_tip = "<code>(mus-length gen)</code>: gen's length";
  562. var sndclm_mus_offset_tip = "<code>(mus-offset gen)</code>: gen's offset";
  563. var sndclm_mus_scaler_tip = "<code>(mus-scaler gen)</code>: gen's scaler, if any.<br>" +
  564. " This is often an amplitude adjustment of some sort.";
  565. var sndclm_ncos_tip = "<code>(ncos gen (fm 0.0))</code>: get the next sample from 'gen', an ncos generator";
  566. var sndclm_oscil_tip = "<code>(oscil gen (fm 0.0) (pm 0.0))</code>:<br>" +
  567. " next sample from oscil gen: val = sin(phase + pm); phase += (freq + fm)";
  568. var sndclm_out_any_tip = "<code>(out-any frample val chan stream)</code>: add val to output stream at frample in channel chan";
  569. var sndclm_outa_tip = "<code>(outa frample val stream)</code>: add val to output stream at frample in channel 0";
  570. var sndclm_outb_tip = "<code>(outb frample val stream)</code>: add val to output stream at frample in channel 1 (counting from 0)";
  571. var sndclm_output_tip = "<code>*output*</code> is the direct signal output stream. The reverb input is sent to *reverb*.";
  572. var sndclm_partialstopolynomial_tip = "<code>(partials-&gt;polynomial partials (kind mus-chebyshev-first-kind))</code>:<br>" +
  573. " produce a Chebyshev polynomial suitable for use with the polynomial generator<br>" +
  574. " to create (via waveshaping) the harmonic spectrum described by the partials argument:<br>" +
  575. "<code> (let ((v0 (partials-&gt;polynomial '(1 1.0 2 1.0)))<br> (os (make-oscil)))<br> (polynomial v0 (oscil os)))</code>";
  576. var sndclm_phase_vocoder_tip = "<code>(phase-vocoder gen input-function analyze-func edit-func synthesize-func)</code>: next phase vocoder value";
  577. var sndclm_polynomial_tip = "<code>(polynomial coeffs x)</code>: evaluate a polynomial at x.<br>" +
  578. " coeffs are in order of degree, so coeff[0] is the constant term.";
  579. var sndclm_polyshape_tip = "<code>(polyshape gen (index 1.0) (fm 0.0))</code>:<br>" +
  580. " next sample of polynomial-based waveshaper";
  581. var sndclm_polywave_tip = "<code>(polywave gen (fm 0.0))</code>:<br>" +
  582. " next sample of polynomial-based waveshaper (additive synthesis)";
  583. var sndclm_pulse_train_tip = "<code>(pulse-train gen (fm 0.0))</code>: next pulse train sample from generator";
  584. var sndclm_rand_interp_tip = "<code>(rand-interp gen (fm 0.0))</code>: gen's current (interpolating) random number.<br>" +
  585. " fm modulates the rate at which new segment end-points are chosen.";
  586. var sndclm_rand_tip = "<code>(rand gen (fm 0.0))</code>: gen's current random number.<br>" +
  587. " fm modulates the rate at which the current number is changed.";
  588. var sndclm_readin_tip = "<code>(readin gen)</code>: next sample from readin generator (a sound file reader)";
  589. var sndclm_reverb_tip = "<code>*reverb*</code> is the reverb stream. The direct signal is sent to *output*.";
  590. var sndclm_secondstosamples_tip = "<code>(seconds-&gt;samples secs)</code>: use mus-srate to convert seconds to samples";
  591. var sndclm_spectrum_tip = "<code>(spectrum rdat idat window norm-type</code>: return the spectrum of rdat and idat.<br>" +
  592. "norm-type defaults to linear (1); the other choices are raw (unnormalized: 2), and dB (0).";
  593. var sndclm_src_tip = "<code>(src gen (pm 0.0) input-function)</code>: next sampling rate conversion sample.<br>" +
  594. " 'pm' can be used to change the sampling rate on a sample-by-sample basis.<br>" +
  595. " 'input-function' is a function of one argument (the current input direction, normally ignored)<br>" +
  596. " that is called internally whenever a new sample of input data is needed.<br>" +
  597. " If the associated make-src included an 'input' argument, input-function is ignored.";
  598. var sndclm_tap_tip = "<code>(tap gen (pm 0.0))</code>: tap the delay generator offset by pm";
  599. var sndclm_timestosamples_tip = "<code>(times-&gt;samples beg dur)</code>: returns a list of beg and beg+dur in samples.";
  600. var sndclm_triangle_wave_tip = "<code>(triangle-wave gen (fm 0.0))</code>: next triangle wave sample from generator";
  601. var sndscm_IIRfilters_tip = "These are simple 2nd order IIR filters in dsp.scm.";
  602. var sndscm_analogfilterdoc_tip = "These are the standard 'analog' IIR filters: Butterworth, Chebyshev, etc.";
  603. var sndscm_channelproperty_tip = "<code>(channel-property key snd chn)</code>: returns the value associated with 'key'<br>" +
  604. " in the given channel's property list. To add or change a property,<br>" +
  605. " use set! with this procedure.<br><br>" +
  606. "<code> (set! (channel-property 'info 0 0) \"this is sound 0, first channel\")</code><br>" +
  607. " now <code>(channel-property 'info 0 0)</code> returns \"this is sound 0, first channel\".";
  608. var sndscm_definstrument_tip = "definstrument is very much like define, but with added code to support notehook<br>" +
  609. " and (for Common Music) *definstrument-hook*.";
  610. var sndscm_envelopeinterp_tip = "<code>(envelope-interp x env (base 1.0)</code>: returns value of 'env' at 'x'.<br>" +
  611. " If 'base' is 0, 'env' is treated as a step function;<br>" +
  612. " if 'base' is 1.0 (the default), the breakpoints of 'env' are connected by a straight line,<br>" +
  613. " and any other 'base' connects the breakpoints with an exponential curve.";
  614. var sndscm_envelopelastx_tip = "<code>(envelope-last-x env)</code>: returns the last breakpoint's x axis value in 'env'";
  615. var sndscm_envexptchannel_tip = "<code>(env-expt-channel env exponent (symmetric #t) beg dur snd chn edpos)</code>:<br>" +
  616. " applies 'env' to the given channel using 'exponent' for the exponential base.<br>" +
  617. " The 'symmetric' argument determines whether the up and down moving ramps look<br>" +
  618. " symmetrical around a break point.";
  619. var sndscm_fmviolin_tip = "The fm-violin instrument uses FM to produce a string-like sound;<br>" +
  620. " It has many parameters, the principal ones being <code>startime dur frequency amplitude</code>.<br>" +
  621. " The code is in v.scm.";
  622. var sndscm_hilberttransform_tip = "<code>(hilbert-transform gen input)</code> returns the Hilbert transform of 'input'.";
  623. var sndscm_html_function_tip = "<code>(html arg)</code> where 'arg' can be a string, a symbol, or a procedure<br>" +
  624. " sends the html reader to the corresponding url in the Snd documents.";
  625. var sndscm_insertchannel_tip = "<code>(insert-channel filedat beg dur snd chn edpos)</code>:<br>" +
  626. " inserts the specified data ('filedat') in the given channel at the given location.<br>" +
  627. " 'filedat' can be either a filename (a string), a sound index, or a list containing<br>" +
  628. " the filename (or index), the start point in the file, and (optionally) the channel of the file to mix.";
  629. var sndscm_makebandpass_tip = "<code>(make-bandpass flo fhi length)</code> returns a bandpass filter.";
  630. var sndscm_makebiquad_tip = "<code>(make-biquad a0 a1 a2 b1 b2)</code> returns a biquad filter section.";
  631. var sndscm_makebutter_tip = "various 2nd order Butterworth filters in dsp.scm.";
  632. var sndscm_makedifferentiator_tip = "<code>(make-differentiator length)</code> returns a differentiating filter.";
  633. var sndscm_makehighpass_tip = "<code>(make-highpass fc length)</code> returns a highpass filter.";
  634. var sndscm_makehilberttransform_tip = "<code>(make-hilbert-transform length)</code> returns a Hilbert transformer.";
  635. var sndscm_makelowpass_tip = "<code>(make-lowpass fc length)</code> returns a lowpass filter.";
  636. var sndscm_makeramp_tip = "<code>(make-ramp (size 128))</code>: return a ramp generator.";
  637. var sndscm_makeselection_tip = "<code>(make-selection beg end snd chn)</code>: makes a selection,<br>" +
  638. " like make-region but without creating a region.<br>" +
  639. " It selects 'dur' samples starting at 'beg' in the given channel.";
  640. var sndscm_makespencerfilter_tip = "<code>(make-spencer-filter)</code> returns an FIR filter with the Spencer (smoothing) coefficients.";
  641. var sndscm_markproperties_tip = "<code>(mark-properties id)</code> accesses the property list associated with the mark 'id'";
  642. var sndscm_maxenvelope_tip = "<code>(max-envelope env)</code>: return the maximum y value in 'env'";
  643. var sndscm_moogfilter_tip = "<code>(moog-filter gen input)</code>: return Moog-style 4-pole lowpass filtering of 'input'";
  644. var sndscm_mpg_tip = "<code>(mpg mpgfile rawfile)</code>: call mpg123 to translate an MPEG format sound file<br>" +
  645. " to a headerless (\"raw\") file containing 16-bit samples.";
  646. var sndscm_musfilemix_tip = "<code>(mus-file-mix outfile infile (outloc 0) (framples) (inloc 0) mixer envs)</code>:<br>" +
  647. " mix 'infile' into 'outfile' starting at 'outloc' in 'outfile'<br>" +
  648. " and 'inloc' in 'infile', mixing 'framples' framples into 'outfile'.<br>" +
  649. " 'framples' defaults to the length of 'infile'.<br>" +
  650. " If 'mixer', use it to scale the various channels;<br>" +
  651. " if 'envs' (an array of envelope generators), use it in conjunction with mixer<br>" +
  652. " to scale and envelope all the various ins and outs.<br>" +
  653. " 'outfile' can also be a frample-&gt;file generator, and<br>" +
  654. " 'infile' can be a file-&gt;frample generator.";
  655. var sndscm_poly_times_tip = "<code>(poly* p1 p2)</code> multiplies p1 by p2, both polynomials.";
  656. var sndscm_powerenv_tip = "<code>(power-env env)</code>: an envelope generator where each segment has its own base.";
  657. var sndscm_prc95doc_tip = "various physical modeling functions from Perry Cook.";
  658. var sndscm_rmsgain_tip = "various RMS-related generators.";
  659. var sndscm_scalemixes_tip = "<code>(scale-mixes mix-list scl)</code>: scales the amplitude of each mix in 'mix-list' by 'scl'.";
  660. var sndscm_sgfilter_tip = "<code>(savitzky-golay-filter gen input)</code>: a Savitzky-Golay filter, assuming symmetrical positioning.<br>" +
  661. " It is an FIR smoothing filter.";
  662. var sndscm_sound_let_tip = "sound-let is a form of let* that creates temporary sound files within with-sound.<br>" +
  663. " Its syntax is a combination of let* and with-sound:<br><br>" +
  664. "<code> (sound-let ((temp-1 () (fm-violin 0 1 440 .1))<br>" +
  665. " (temp-2 () (fm-violin 0 2 660 .1)<br>" +
  666. " (fm-violin .125 .5 880 .1)))<br>" +
  667. " (granulate-sound temp-1 0 2 0 2) ;temp-1 is the name of the 1st temporary file<br>" +
  668. " (granulate-sound temp-2 1 1 0 2))</code><br><br>" +
  669. " This creates two temporary files and passes them along to the subsequent calls<br>" +
  670. " on granulate-sound. The first list after the sound file identifier is the list of <br>" +
  671. " with-sound options to be passed along when creating this temporary file. These default<br>" +
  672. " to :output with a unique name generated internally, and all other variables are taken from<br>" +
  673. " the overall (enclosing) with-sound. The rest of the list is the body of the associated with-sound.";
  674. var sndscm_soundinterp_tip = "<code>(sound-interp reader loc)</code>: the sound-interp interpolating reader<br>" +
  675. " reads a channel at an arbitary location, interpolating between samples if necessary.";
  676. var sndscm_syncdmixes_tip = "<code>(syncd-mixes sync)</code>: returns a list of all mixes whose mix-sync field is set to 'sync'.";
  677. var sndscm_tofrequency_tip = "<code>(-&gt;frequency pitch ratio)</code> takes either a number or a common-music pitch symbol<br>" +
  678. " ('c4 is middle C), and returns either the number or the frequency associated with that pitch:<br>" +
  679. " <code>(-&gt;frequency 'cs5)</code> returns 554 and change.<br>" +
  680. " 'ratio' can be #t to get small integer ratios rather than equal temperment.";
  681. var sndscm_tosample_tip = "<code>(-&gt;sample time)</code> returns a sample number given a time in seconds";
  682. var sndscm_volterrafilter_tip = "<code>(volterra-filter flt x)</code>: pass 'x' through the Volterra (non-linear) filter 'flt'.";
  683. var sndscm_windowsamples_tip = "<code>(window-samples snd chn)</code>: returns (in a float-vector) the samples<br>" +
  684. " displayed in the current graph window for the given channel.";
  685. var sndscm_withtempsound_tip = "with-temp-sound is like sound-let (it sets up a temporary output<br>" +
  686. " for with-sound) , but does not delete its output file.";
  687. var sndscm_wsdoc_tip = "with-sound provides a simple way to package up a bunch of instrument calls into a new<br>" +
  688. " sound file, and open that file in Snd when the computation is complete. <br>" +
  689. " with-sound opens an output object, and optionally a reverb output object.<br>" +
  690. " Each instrument uses out-any to add its sounds to the *output* results.<br>" +
  691. "<pre> with-sound<br>" +
  692. " (srate *clm-srate*) ; output sampling rate (44100)<br>" +
  693. " (output *clm-file-name*) ; output file name (\"test.snd\")<br>" +
  694. " (channels *clm-channels*) ; channels in output (1)<br>" +
  695. " (header-type *clm-header-type*) ; output header type (mus-next or mus-aifc)<br>" +
  696. " (data-format *clm-data-format*) ; output sample data type (mus-bfloat)<br>" +
  697. " (comment #f) ; any comment to store in the header (a string)<br>" +
  698. " (reverb *clm-reverb*) ; reverb instrument (jc-reverb)<br>" +
  699. " (reverb-data *clm-reverb-data*) ; arguments passed to the reverb<br>" +
  700. " (statistics *clm-statistics*) ; if #t, print info at end of with-sound<br>" +
  701. " (scaled-to #f) ; if a number, scale the output to peak at that amp<br>" +
  702. " (play *clm-play*) ; if #t, play the sound automatically</pre><br>" +
  703. " The with-sound syntax may look sightly odd; we include the arguments in the<br>" +
  704. " first list, then everything after that is evaluated as a note list.<br>" +
  705. "<pre> (with-sound (:srate 44100 :channels 2 :output \"test.snd\")<br>" +
  706. " (fm-violin 0 1 440 .1)<br>" +
  707. " (fm-violin 1 1 660 .1))</pre><br>" +
  708. " produces a sound file with two fm-violin notes; the sound file is named \"test.snd\",<br>" +
  709. " is stero, and has a sampling rate of 44100.";
  710. var sndscm_zipper_tip = "<code>(zipper gen in1 in2)</code>: the digital zipper; a way to crossfade between in1 and in2.";
  711. var sndlib_html_tip = "library that handles sound files and audio ports";
  712. var sndclm_html_tip = "sound synthesis generators";
  713. var sndscm_html_tip = "Scheme, Ruby, and Forth files included with Snd";
  714. var fm_html_tip = "introduction to frequency modulation";
  715. var extsnd_html_tip = "Snd extension and customization";
  716. var grfsnd_html_tip = "Snd configuration, connection to other libraries and programs";
  717. var snd_html_tip = "basic Snd user-interface documentation";
  718. var s7_html_tip = "a Scheme implementation that comes with Snd";
  719. var index_html_tip = "overall index";
  720. var analog_filter_doc_tip = "These are the traditional IIR filters, any type, any even order<br>" +
  721. "(Butterworth, Chebyshev, Inverse Chebyshev, Bessel, and Elliptic)<br>" +
  722. "The elliptic function filters need GSL.";
  723. var animals_doc_tip = "synthesis of birds, frogs, and insects";
  724. var autosave_doc_tip = "periodically save current sound edits in a backup file, <br>" +
  725. "useful if your machine crashes a lot.";
  726. var bess_doc_tip = "This sets up a dialog to experiment with simple FM, <br>" +
  727. "the fm-violin, or with a compositional algorithm";
  728. var binary_io_doc_tip = "This file has functions to read and write binary files";
  729. var bird_doc_tip = "simple synthesis of about 50 birds using additive synthesis.<br>" +
  730. "see animals.scm for much more elaborate versions of these birds";
  731. var clean_doc_tip = "click, pop, and hum removal, and signal reconstruction";
  732. var clm_ins_doc_tip = "Instruments using many standard synthesis techniques,<br>" +
  733. " including a bagpipe, FOF synthesis, many FM examples,<br>" +
  734. " granular synthesis, spectral modeling, reverbs, and physical modeling.";
  735. var dlocsig_doc_tip = "dlocsig sets up envelopes to mimic a moving sound;<br>" +
  736. " included are many path-specification functions";
  737. var draw_doc_tip = "Examples of drawing extensions, primarily one that puts a thumbnail graph<br>" +
  738. " of the current sound in the upper right corner";
  739. var dsp_doc_tip = "This has all the usual DSP stuff: filters, ffts, sample rate conversion, <br>" +
  740. " sound effects, statistics, scanned synthesis, transforms, etc";
  741. var env_doc_tip = "Various operations on envelopes: add, scale, copy, stretch";
  742. var enved_doc_tip = "This adds an envelope editor to each displayed channel.<br>" +
  743. " You can set it up to be an amplitude envelope.";
  744. var examp_doc_tip = "A bunch of examples of things like ffts, filters, marks, selections,<br>" +
  745. " graphics extensions, sound effects, and generators.";
  746. var extensions_doc_tip = "channel and sound property lists, several enveloping functions,<br>" +
  747. " and commonly used editing sequences such as channel extraction.";
  748. var fade_doc_tip = "sound mixing using envelopes in the frequency domain";
  749. var freeverb_doc_tip = "a reverberator along the lines of nrev, but with more options.";
  750. var generators_doc_tip = "about 80 generators related to sums of sinusoids<br>" +
  751. " bessel functions, adjustable square-waves, special envelopes, etc";
  752. var grani_doc_tip = "this is a very flexible granular synthesis instrument";
  753. var heart_doc_tip = "This code is aimed at blood pressure readings.";
  754. var hooks_doc_tip = "snd-hooks, describe-hook, with-local-hook, reset-all-hooks.";
  755. var index_doc_tip = "this provides a connection between firefox and the snd-help mechanism.";
  756. var inf_snd_doc_tip = "this provides a Snd emacs mode implementation.<br>" +
  757. " You can use emacs as the listener, rather than the built-in Snd window.";
  758. var jcrev_doc_tip = "this is probably the first Schroeder reverb, based on all-pass and comb filters.";
  759. var maraca_doc_tip = "this includes the maraca, tambourine, wind-chimes, etc";
  760. var marks_doc_tip = "this includes describe-mark, eval-between-marks, mark-property,<br>" +
  761. " play-between-marks, and snap-marks.";
  762. var maxf_doc_tip = "This is a collection of modal synthesis demos.<br>" +
  763. " For the actual filter, see the firmant generator";
  764. var menus_doc_tip = "Menu additions for things like crop, trim, fft notch filter,<br>" +
  765. " mark and mix functions, etc. The main added menu loads a huge<br>" +
  766. " set of sound effects";
  767. var mix_doc_tip = "mix-property, silence-all-mixes, mix-sound, save-mix, snap-mix-to-beat<br>" +
  768. " and many functions acting on lists of mixes";
  769. var moog_doc_tip = "Moog's four pole lowpass (24db/Oct) filter as a clm generator,<br>" +
  770. " variable resonance, \"that warm, analog sound\".";
  771. var musglyphs_doc_tip = "The CMN music symbol font built from bezier curves.<br>" +
  772. "This file is a lisp-&gt;scheme wrapper for cmn-glyphs.lisp";
  773. var nb_doc_tip = "As you move the mouse through the view-files list,<br>" +
  774. " the help dialog posts information about the file underneath the mouse";
  775. var noise_doc_tip = "This ancient noise instrument can produce those all-important whooshing<br>" +
  776. " sounds. noise.ins translated to Scheme/Ruby by Michael Scholz";
  777. var numerics_doc_tip = "Various numerical functions: factorial, plgndr, gegenbaur, etc";
  778. var piano_doc_tip = "Scott van Duyne's piano model that includes multiple coupled strings,<br>" +
  779. " a nonlinear hammer, and an arbitrarily large soundboard and enclosure";
  780. var play_doc_tip = "play between marks, play continuously, play a set of sines, etc";
  781. var poly_doc_tip = "polynomial addition, multiplication, division, gcd, roots, and discriminant";
  782. var prc95_doc_tip = "The basic physical models: pluck, bow, clarinet, brass, flute";
  783. var pvoc_doc_tip = "various versions of the Moore-Klingbeil-Trevisani-Edwards phase-vocoder.<br>" +
  784. "see also the CLM phase-vocoder generator.";
  785. var rgb_doc_tip = "this translates the standard X11 color names into Snd color objects.";
  786. var rubber_doc_tip = "rubber-sound tries to stretch or contract a sound (in time);<br>" +
  787. " it scans the sound looking for stable sections, then either <br>" +
  788. " deletes periods or interpolates new ones to shorten or lengthen the sound";
  789. var selection_doc_tip = "includes swap-selection-channels, replace-with-selection, <br>" +
  790. " selection-members, make-selection, delete-selection-and-smooth,<br>" +
  791. " filter-selection-and-smooth, and with-temporary-selection";
  792. var singer_doc_tip = "This is based on Perry's singer.c and CLM's singer.ins";
  793. var sndold_doc_tip = "These files (snd10.scm to snd12.scm) provide backwards compatibility<br>" +
  794. " with earlier versions of Snd.";
  795. var snddiff_doc_tip = "a diff or grep-like function for sounds. It can currently find<br>" +
  796. " initial delays, scaling differences, and scattered individual<br>" +
  797. " sample differences: <code>(snddiff snd0 chn0 snd1 chn1)</code>.";
  798. var snd_gl_doc_tip = "This depends on access to openGL (Mesa); it includes a waterfall fft graph<br>" +
  799. "and GL state readbacks";
  800. var snd_motif_doc_tip = "user interface extensions using the libxm modules: add-mark-pane,<br>" +
  801. " display-scanned-synthesis, load-font, with-level-meters,<br>" +
  802. " variable-display, smpte labels, and lots more.<br>" +
  803. " snd-motif is for Motif, snd-gtk for Gtk.";
  804. var snd_test_doc_tip = "Snd regression test suite; zillions of examples.";
  805. var sndwarp_doc_tip = "time stretching and whatnot";
  806. var ws_doc_tip = "with-sound provides a simple way to package up a bunch of<br>" +
  807. " instrument calls into a new sound file, and open that file in Snd";
  808. var zip_doc_tip = "The zipper marches through the two sounds taking equal short portions<br>" +
  809. " of each, then abutting them while resampling so that as one sound<br>" +
  810. " takes less overall frample space, the other takes more.";
  811. var scheme_format_tip = "<code>(format destination control-string :rest args)</code> produces formatted output.<br>" +
  812. "If 'destination' is #f (the usual case in Snd), the output is a string.<br>" +
  813. "The output depends on 'control-string' which can contain characters preceded by tilde.<br>" +
  814. "These are replaced with other strings based on the character and the associated argument in 'args'.<br>" +
  815. "The main tilde cases are ~% = add a newline, ~A = add some readable description of its argument<br>" +
  816. "~D = treat its arg as an integer, ~F = treat arg as float, ~S = treat arg as string.<br><br>";