var extsnd_addmark_tip = "(add-mark samp snd chn name (sync 0)):
" + " add a mark at sample 'samp' returning the mark id."; var extsnd_addsoundfileextension_tip = "(add-sound-file-extension ext):
" + " add the file extension 'ext' to the list of sound file extensions"; var extsnd_addtomenu_tip = "(add-to-menu menu label func position):
" + " add label to menu (a main menu index),
" + " invoke func (a function of no args) when the new menu is activated.
" + " Return the new menu label widget."; var extsnd_addtransform_tip = "(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 float-vector 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)"; var extsnd_afterapplycontrolshook_tip = "after-apply-controls-hook (snd): called when apply-controls finishes."; var extsnd_aftergraphhook_tip = "after-graph-hook (snd chn): called after a graph is updated."; var extsnd_afteropenhook_tip = "after-open-hook (snd): called just before the new file's window is displayed.
" + " This provides a way to set various sound-specific defaults.
" +
                               "  (hook-push after-open-hook
" + " (lambda (snd)
" + " (if (> (channels snd) 1)
" + " (set! (channel-style snd) channels-combined))))
"; var extsnd_aftersaveashook_tip = "after-save-as-hook (saved-sound-index save-as-full-filename from-save-as-dialog):
" + " called upon File:Save as or save-sound-as completion."; var extsnd_aftersavestatehook_tip = "after-save-state-hook (filename): called after Snd state has been saved;
" + " filename is the save state file."; var extsnd_aftertransformhook_tip = "after-transform-hook (snd chn scaler): called just after a spectrum is calculated."; var extsnd_ampcontrol_tip = "(amp-control snd chn): current amp slider setting"; var extsnd_applycontrols_tip = "(apply-controls snd (choice 0) (beg 0) (dur len)):
" + " applies the current control panel state as an edit.
" + " The 'choices' are 0 (apply to sound), 1 (apply to channel), and 2 (apply to selection).
" + " If 'beg' is given, the apply starts there."; var extsnd_asoneedit_tip = "(as-one-edit thunk origin): evaluate thunk,
" + " collecting all edits into one from the edit history's point of view"; var extsnd_axisinfo_tip = "(axis-info snd chn (ax time-graph)): info about axis:
" + "
 (list losamp hisamp x0 y0 x1 y1 xmin ymin xmax ymax pix_x0 pix_y0 pix_x1 pix_y1
" + " y_offset xscale yscale xlabel ylabel new-peaks)
"; var extsnd_axislabelfont_tip = "(axis-label-font): font used for axis labels"; var extsnd_axisnumbersfont_tip = "(axis-numbers-font): font used for axis numbers"; var extsnd_badheaderhook_tip = "bad-header-hook (filename): called if a file has some bogus-looking header.
" + " Return #t to give up on that file."; var extsnd_basiccolor_tip = "(basic-color): Snd's basic color"; var extsnd_beatsperminute_tip = "(beats-per-minute snd chn): beats per minute if x-axis-style is x-axis-in-beats"; var extsnd_beforeclosehook_tip = "before-close-hook (snd): called each time a file is closed (before the close).
" + " If it returns #t, the file is not closed."; var extsnd_beforeexithook_tip = "before-exit-hook (): called upon exit. If it returns #t, Snd does not exit.
" + " This can be used to check for unsaved edits."; var extsnd_beforesaveashook_tip = "before-save-as-hook (index filename selection srate type format comment):
" + " called before File:Save as or save-sound-as. Provides a way to fixup a sound just before it is saved."; var extsnd_beforesavestatehook_tip = "before-save-state-hook (filename): called before Snd state is saved.
" + " If the hook functions return #t, the save state process opens 'filename' for appending, rather than truncating."; var extsnd_besj0_tip = "(bes-j0 x) returns the Bessel function J0(x)"; var extsnd_bindkey_tip = "(bind-key key modifiers func extended origin prefs-info):
" + " causes 'key' (an integer, character, or string) when typed with 'modifiers'
" + " (0:none, 4:control, 8:meta) (and C-x if extended) to invoke 'func', a function of zero or one arguments.
" + " If the function takes one argument, it is passed the preceding C-u number, if any.
" + " The function should return one of the cursor choices (e.g. keyboard-no-action).
" + " 'origin' is the name reported if an error occurs.
" + " The 'key' argument can be the X/Gtk name of the key (e.g. \"plus\" for \"+\" or \"Home\"),
" + " the character on the key (#\x07), or the integer corresponding to that character:
" + " (\"(char->integer #\x07)\" in Scheme, or \"?a\" in Ruby."; var extsnd_boldpeaksfont_tip = "(bold-peaks-font): bold font used by fft peak display"; var extsnd_channels_tip = "(channels snd): how many channels snd has"; var extsnd_channelstyle_tip = "(channel-style snd): how multichannel sounds lay out the channels.
" + " The default is channels-combined; other values are channels-separate and channels-superimposed.
" + " As a global (if the 'snd' arg is omitted), it is the default setting for each sound's 'unite' button."; var extsnd_channelwidgets_tip = "(channel-widgets snd chn): a list of widgets: ((0)graph (1)w (2)f (3)sx (4)sy (5)zx (6)zy (7)edhist)"; var extsnd_chans_tip = "(channels snd): how many channels snd has"; var extsnd_cliphook_tip = "clip-hook (clipping-value) is called each time a sample is about to be clipped
" + " upon being written to a sound file. The hook function can return the new value to be written,
" + " or rely on the default (-1.0 or 1.0 depending on the sign of 'clipping-value')."; var extsnd_clmchannel_tip = "(clm-channel gen (beg 0) (dur len) snd chn edpos (overlap 0) origin):
" + " apply gen to snd's channel chn starting at beg for dur samples.
" + " overlap is the 'ring' time, if any."; var extsnd_closehook_tip = "close-hook (snd): called each time a file is closed (before the close)."; var extsnd_closesound_tip = "(close-sound snd): close snd"; var extsnd_comment_tip = "(comment snd): snd's comment (in its header)"; var extsnd_cursor_tip = "(cursor snd chn edpos): current cursor location in snd's channel chn"; var extsnd_cursorcontext_tip = "graphics context for the cursor"; var extsnd_dacsize_tip = "(dac-size): the current DAC buffer size in framples (256)"; var extsnd_datacolor_tip = "(data-color): color used to draw unselected data"; var extsnd_sampletype_tip = "(data-format snd): snd's data format (e.g. mus-bshort)"; var extsnd_datalocation_tip = "(data-location snd): snd's data location (bytes)"; var extsnd_defineenvelope_tip = "(define-envelope name data): define 'name' to have the value 'data'
" + " (a list of breakpoints), and load it into the envelope editor."; var extsnd_deletesamples_tip = "(delete-samples start-samp samps snd chn edpos):
" + " delete 'samps' samples from snd's channel chn starting at 'start-samp'"; var extsnd_dialogwidgets_tip = "(dialog-widgets): dialog widgets (each #f if not yet created)
:
" + " (list (0 color-dialog) (1 orientation-dialog) (2 enved-dialog)
" + " (3 #f) (4 #f) (5 transform-dialog) (6 open-file-dialog) (7 save-sound-dialog)
" + " (8 view-files-dialog) (9 raw data dialog) (10 new file dialog)
" + " (11 mix-file-dialog) (12 edit-header-dialog) (13 find-dialog)
" + " (14 help-dialog) (15 listener completion) (16 view-mixes-dialog)
" + " (17 print-dialog) (19 view-regions-dialog)
" + " (20 info-dialog) (21 #f) (22 save-selection-dialog)
" + " (23 insert-file-dialog) (24 save-region-dialog) (25 preferences-dialog))
"; var extsnd_dotsize_tip = "(dot-size snd chn): size in pixels of dots when graphing with dots (1)"; var extsnd_drawline_tip = "(draw-line x0 y0 x1 y1 snd chn (ax time-graph)): draw a line"; var extsnd_drawstring_tip = "(draw-string text x0 y0 snd chn (ax time-graph)): draw a string"; var extsnd_duringopenhook_tip = "during-open-hook (fd name reason):
" + " called after file is opened, but before data has been read."; var extsnd_editfragment_tip = "(edit-fragment (ctr current-edit-position) snd chn):
" + " edit history entry at ctr associated with snd's channel chn;
" + " the returned value is a list (origin type start-sample samps)"; var extsnd_editposition_tip = "(edit-position snd chn): current edit history position in snd's channel chn"; var extsnd_edits_tip = "(edits snd chn):
" + "returns (list undoable-edits redoable-edits) in snd's channel chn"; var extsnd_emarks_tip = "(marks snd chn edpos): list of marks (ids) in snd/chn
" + " at edit history position pos. mark list is:
" + " if channel given: (id id ...),
" + " if snd given: ((id id) (id id ...)),
" + " if neither given: (((id ...) ...) ...)."; var extsnd_envchannel_tip = "(env-channel env-gen-or-envelope (beg 0) (dur len) snd chn edpos):
" + " apply amplitude envelope to snd's channel chn starting at beg for dur samples."; var extsnd_envedtarget_tip = "(enved-target): determines how the envelope edit envelope is applied:
" + " enved-amplitude, enved-srate (apply to speed), and enved-spectrum (apply as a filter)."; var extsnd_envedwaving_tip = "(enved-wave?): #t if the envelope editor is displaying the waveform to be edited"; var extsnd_envsound_tip = "(env-sound env (start-samp 0) (samps len) (env-base 1.0) snd chn edpos):
" + " apply an amplitude envelope (a list of breakpoints or a CLM env) to snd's channel chn
" + " starting at start-samp, going either to the end of the sound or for samps samples,
" + " with segments interpolating according to env-base (1 = linear)."; var extsnd_envselection_tip = "(env-selection env (env-base 1.0)):
" + " apply envelope to the selection using env-base to determine how breakpoints are connected"; var extsnd_eregions_tip = "(regions): current active regions (a list of region ids)"; var extsnd_exit_tip = "(exit): exit Snd"; var extsnd_exithook_tip = "exit-hook (): called upon exit. This can be used to perform cleanup activities."; var extsnd_expandcontrol_tip = "(expand-control snd): current expand slider setting"; var extsnd_expandcontrolp_tip = "(expand-control? snd): snd's control panel expand button state"; var extsnd_filename_tip = "(file-name snd): snd's full filename"; var extsnd_fillrectangle_tip = "(fill-rectangle x0 y0 width height snd chn (ax time-graph) erase): draw a filled rectangle"; var extsnd_filterchannel_tip = "(filter-channel env order beg dur snd chn edpos (truncate #t) origin):
" + " applies an FIR filter to snd's channel chn.
" + " 'env' is the frequency response envelope, or a float-vector with the coefficients."; var extsnd_filterselection_tip = "(filter-selection filter order (truncate #t)):
" + " apply filter to selection.
" + " If truncate, cut off filter output at end of selection, else mix"; var extsnd_filtersound_tip = "(filter-sound filter order snd chn edpos origin):
" + " applies FIR filter to snd's channel chn.
" + " 'filter' is either the frequency response envelope,
" + " a CLM filter, or a float-vector with the actual coefficients"; var extsnd_focuswidget_tip = "(focus-widget widget): cause widget to receive input focus"; var extsnd_framples_tip = "(framples snd chn edpos): number of framples of data in snd's channel chn"; var extsnd_freesampler_tip = "(free-sampler reader): free a sampler (of any kind)"; var extsnd_graph_tip = "(graph data xlabel (x0 0.0) (x1 1.0) y0 y1 snd chn (force-display #t) show-axes):
" + " displays 'data' as a graph with x axis label 'xlabel', axis units going from x0 to x1 and y0 to y1;
" + " 'data' can be a list or a float-vector. If 'data' is a list of numbers, it is treated as an envelope."; var extsnd_graphhook_tip = "graph-hook (snd chn y0 y1): called each time a graph is about to be updated.
" + "If it returns #t, the display is not updated."; var extsnd_graphonce_tip = "graph-once is the default value of the graph types (time-graph-type and transform-graph-type)."; var extsnd_graphshorizontal_tip = "(graphs-horizontal snd chn):
" + " #t if the time domain, fft, and lisp graphs are layed out horizontally"; var extsnd_graphstyle_tip = "(graph-style snd chn): graph style,
" + " one of graph-lines graph-dots graph-dots-and-lines graph-lollipops graph-filled"; var extsnd_headertype_tip = "(header-type snd): snd's header type (e.g. mus-aiff)"; var extsnd_helpdialog_tip = "(help-dialog subject message xrefs urls): start the Help window with subject and message"; var extsnd_hidewidget_tip = "(hide-widget widget): hide or undisplay widget"; var extsnd_infodialog_tip = "(info-dialog subject message): start the Info window with subject and message"; var extsnd_initialgraphhook_tip = "initial-graph-hook (snd chn dur):
" + " called when a sound is displayed for the first time"; var extsnd_insertsound_tip = "(insert-sound file (beg 0) (file-chan 0) snd chn edpos auto-delete):
" + " insert channel file-chan of file (or all chans if file-chan is not given)
" + " into snd's channel chn at beg or at the cursor position.
" + " (insert-sound \"oboe.snd\" 1000)
" + " inserts all of oboe.snd starting at sample 1000."; var extsnd_keyboard_no_action_tip = "keyboard-no-action is one of the bind-key function
" + "return values. It indicates that Snd should not update the graphs."; var extsnd_leftsample_tip = "(left-sample snd chn): left sample number in time domain window"; var extsnd_lispgraph_tip = "the lisp-graph is the 3rd graph displayed in the channel graphs."; var extsnd_lispgraphhook_tip = "lisp-graph-hook (snd chn): called just before the lisp graph is updated.
" + " If it returns a list of pixels, these are used in order by the list of graphs
" + " (if any), rather than Snd's default set; this makes it possible to use different
" + " colors for the various graphs. If it returns a function (of no arguments),
" + " that function is called rather than the standard graph routine."; var extsnd_listenerfont_tip = "(listener-font): font used by the lisp listener"; var extsnd_mainwidgets_tip = "(main-widgets): top level widgets
" + " (list (0)main-app (1)main-shell (2)main-pane
" + " (3)sound-pane (4)listener-pane (5)notebook-outer-pane)
"; var extsnd_makecolor_tip = "(make-color r g b): return a color object with the indicated rgb values"; var extsnd_makegraphdata_tip = "(make-graph-data snd chn edpos low high):
" + " return either a float-vector (if the graph has one trace), or a list of two float-vectors
" + " (the two sides of the envelope graph).
" + " 'edpos' defaults to the current-edit-position,
" + " 'low' defaults to the current window left sample, and
" + " 'high' defaults to the current rightmost sample.
" + " (graph-data (make-graph-data)) reimplements the time domain graph."; var extsnd_makemixsampler_tip = "(make-mix-sampler id (beg 0)):
" + " return a reader ready to access mix id"; var extsnd_makesampler_tip = "(make-sampler (start-samp 0) snd chn (dir 1) edpos):
" + " return a reader ready to access snd's channel chn's data starting at start-samp,
" + " going in direction dir (1 = forward, -1 = backward),
" + " reading the version of the data indicated by edpos which defaults to the current version.
" + " snd can be a filename, or a sound index number."; var extsnd_mapchannel_tip = "(map-channel func (start 0) (dur len) snd chn edpos edname):
" + " apply func to samples in current channel;
" + " edname is the edit history name for this editing operation.
" + " (map-channel (lambda (y) (* y 2.0)))"; var extsnd_markclickhook_tip = "mark-click-hook (id): called when a mark is clicked;
" + " return #t to squelch the default message."; var extsnd_markdraghook_tip = "mark-drag-hook (id): called when a mark is dragged"; var extsnd_markhome_tip = "(mark-home id): the sound (index) and channel that hold mark id"; var extsnd_markname_tip = "(mark-name id): mark's name"; var extsnd_marksample_tip = "(mark-sample id pos): mark's location (sample number) at edit history pos"; var extsnd_marksync_tip = "(mark-sync id): mark's sync value (default: 0)"; var extsnd_marksyncmax_tip = "(mark-sync-max): max mark sync value seen so far"; var extsnd_maxamp_tip = "(maxamp snd chn edpos): maxamp of data in snd's channel chn"; var extsnd_mix_tip = "(mix file (beg 0) (file-chan 0) snd chn (with-tag with-mix-tags) auto-delete):
" + " mix channel file-chan of file into snd's channel chn starting at beg (in the output),
" + " returning the new mix's id. if with-tag is #f, no draggable tag is created.
" + " If auto-delete is #t, the input file is deleted when it is no longer needed."; var extsnd_mixamp_tip = "(mix-amp id): mix's scaler"; var extsnd_mixcolor_tip = "(mix-color mix-id): color of all mix tags
" + " (if mix-id is omitted), or of mix-id's tag"; var extsnd_mixposition_tip = "(mix-position id): mix's begin time in the output in samples"; var extsnd_mixreleasehook_tip = "mix-release-hook (mix-id samps):
" + " called after the mouse has dragged a mix to some new position.
" + " 'samps' = samples moved in the course of the drag.
" + " If the hook returns #t, the actual remix is the hook's responsibility."; var extsnd_mixsamplerQ_tip = "(mix-sampler? obj): #t if obj is a mix-sampler"; var extsnd_mixselection_tip = "(mix-selection (beg 0) snd chn (selection-channel #t)):
" + " mix the currently selected portion starting at beg"; var extsnd_mixsync_tip = "(mix-sync id): mix sync field (an integer)"; var extsnd_mixsyncmax_tip = "(mix-sync-max): max mix sync value seen so far"; var extsnd_mixtagy_tip = "(mix-tag-y id): height of mix's tag"; var extsnd_musbfloat_tip = "mus-bfloat data is big-endian float"; var extsnd_musbshort_tip = "mus-bshort data is big-endian signed 16-bit integer"; var extsnd_mussampletypename_tip = "(mus-data-format-name format): data format (e.g. mus-bshort) as a string"; var extsnd_musheadertypename_tip = "(mus-header-type-name type): header type (e.g. mus-aiff) as a string"; var extsnd_muslfloat_tip = "mus-lfloat data is little-endian float"; var extsnd_muslshort_tip = "mus-lshort data is little-endian signed 16-bit integer"; var extsnd_musosssetbuffers_tip = "(mus-oss-set-buffers num size): set Linux OSS 'fragment' number and size.
" + " If Snd's controls seem sluggish, try (mus-oss-set-buffers 4 12)
" + " or even (mus-oss-set-buffers 2 12).
" + " This reduces the on-card buffering, but may introduce clicks."; var extsnd_mussoundchans_tip = "(mus-sound-chans filename): channels of data in sound file"; var extsnd_mussoundcomment_tip = "(mus-sound-comment filename): comment (a string) found in sound file's header"; var extsnd_mussoundsampletype_tip = "(mus-sound-data-format filename): data format (e.g. mus-bshort) of data in sound file"; var extsnd_mussoundduration_tip = "(mus-sound-duration filename): duration (in seconds) of sound file"; var extsnd_mussoundframples_tip = "(mus-sound-framples filename): framples (samples / channel) in sound file"; var extsnd_mussoundheadertype_tip = "(mus-sound-header-type filename): header type (e.g. mus-aifc) of sound file"; var extsnd_mussoundloopinfo_tip = "(mus-sound-loop-info filename): synth loop info for sound as a list:
" + " (start1 end1 start2 end2 base-note base-detune mode1 mode2)"; var extsnd_mussoundmaxamp_tip = "(mus-sound-maxamp filename): maxamps in sound
" + " (a list of paired amps (as floats) and locations (in samples))"; var extsnd_mussoundmaxampexists_tip = "(mus-sound-maxamp-exists? filename): #t if sound's maxamp data is available;
" + " if it isn't, a call on mus-sound-maxamp has to open and read the data to get the maxamp."; var extsnd_mussoundopeninput_tip = "(mus-sound-open-input filename): open filename for (low-level) sound input,
" + " return file descriptor (an integer)"; var extsnd_mussoundsamples_tip = "(mus-sound-samples filename): samples (framples * channels) in sound file"; var extsnd_mussoundsrate_tip = "(mus-sound-srate filename): sampling rate of sound file"; var extsnd_nameclickhook_tip = "name-click-hook (snd): called when sound name clicked.
" + " If it returns #t, the usual informative status area babbling is squelched."; var extsnd_newsound_tip = "(new-sound :file :header-type :data-format :srate :channels :comment :size):
" + " creates a new sound file with the indicated attributes; if any are omitted,
" + " the corresponding default-output variable is used.
" + " The 'size' argument sets the number of samples (zeros) in the newly created sound.
" + " (new-sound \"test.snd\" mus-next mus-bshort 22050 1 \"no comment\" 1000)"; var extsnd_nextsample_tip = "(next-sample reader): next sample from reader"; var extsnd_normalizefft_tip = "(transform-normalization snd chn):
" + " decides whether spectral data is normalized before display;
" + " can be dont-normalize, normalize-by-channel (default), normalize-by-sound, or normalize-globally."; var extsnd_openfiledialog_tip = "(open-file-dialog (managed #t)):
" + " create the file dialog if needed and display it if 'managed'"; var extsnd_openhook_tip = "open-hook (filename): called each time a file is opened
" + " (before the actual open). If it returns #t, the file is not opened."; var extsnd_openrawsoundhook_tip = "open-raw-sound-hook (filename current-choices):
" + " called when a headerless sound file is opened.
" + " Its result can be a list describing the raw file's attributes
" + " (thereby bypassing the Raw File Dialog and so on).
" + " The list (passed to subsequent hook functions as 'current-choice')
" + " is interpreted as (list chans srate data-format data-location data-length)
" + " where trailing elements can be omitted (location defaults to 0,
" + " and length defaults to the file length in bytes)."; var extsnd_opensound_tip = "(open-sound filename): open filename
" + " (as if opened from File:Open menu option), and return the new sound's index"; var extsnd_padchannel_tip = "(pad-channel beg dur snd chn edpos): insert dur zeros at beg in snd's chn"; var extsnd_peaksfont_tip = "(peaks-font): normal font used by fft peak display"; var extsnd_play_tip = "(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.
" + " If stop, call that function when the play process finishes.
" + " If object is a string, it is assumed to be a file name."; var extsnd_positiontox_tip = "(position->x val snd chn (ax time-graph)): x axis value corresponding to pixel val"; var extsnd_previoussample_tip = "(previous-sample reader): previous sample from reader"; var extsnd_readmixsample_tip = "(read-mix-sample reader): read sample from mix reader"; var extsnd_readonly_tip = "(read-only snd): whether snd is write-protected"; var extsnd_readsample_tip = "(read-sample reader): get the next sample from the sampler"; var extsnd_regionframples_tip = "(region-framples (reg 0) (chan 0)): region length in framples"; var extsnd_regionok_tip = "(region? reg): #t if region is active"; var extsnd_regularizedargs_tip = "The \"regularized\" functions take arguments in the order
" + " begin time, duration (not end sample), sound index, channel number, and edit position."; var extsnd_statusreport_tip = "(status-report msg snd): display msg in snd's status area."; var extsnd_restorecontrols_tip = "(restore-controls snd): restore the previously saved control panel settings"; var extsnd_reversesound_tip = "(reverse-sound snd chn edpos): reverse snd's channel chn"; var extsnd_revertsound_tip = "(revert-sound snd): return 'snd' to its unedited state (undo all edits)."; var extsnd_rightsample_tip = "(right-sample snd chn): right sample number in time domain window"; var extsnd_sample_tip = "(sample samp snd chn edpos):
" + " return sample samp in snd's channel chn
" + " (this is a slow access -- use samplers for speed)"; var extsnd_sampleratendQ_tip = "(sampler-at-end? obj): #t if sampler has reached the end of its data"; var extsnd_samples_tip = "(samples (start-samp 0) (samps len) snd chn edpos):
" + " return a float-vector containing snd channel chn's samples starting a start-samp for samps samples;
" + " edpos is the edit history position to read (defaults to current position)."; var extsnd_savedir_tip = "(save-dir): name of directory for saved state data (or #f=null)"; var extsnd_savehook_tip = "save-hook (snd name): called each time a file is about to be saved.
" + " If it returns #t, the file is not saved.
" + " 'name' is #f unless the file is being saved under a new name (as in sound-save-as)."; var extsnd_savesound_tip = "(save-sound snd): save snd
" + " (update the on-disk data to match Snd's current version)"; var extsnd_savesoundas_tip = "(save-sound-as :file :sound :header-type :data-format :srate :channel :edit-position :comment):
" + " save sound in file using the indicated attributes.
" + " If channel is specified, only that channel is saved (extracted).
" + " Omitted arguments take their value from the sound being saved.
" + " (save-sound-as \"test.snd\" index mus-next mus-bshort)"; var extsnd_savestatehook_tip = "save-state-hook (temp-filename): called each time the save-state
" + " mechanism is about to create a new temporary file to save some edit history
" + " sample values. temp-filename is the current file.
" + " If the hook returns a string, it is treated as the new temp filename.
" + " This hook provides a way to keep track of which files are in a given
" + " saved state batch, and a way to rename or redirect those files."; var extsnd_scaleby_tip = "(scale-by scalers snd chn): scale snd by scalers (following sync);
" + " scalers can be a float or a float-vector/list of floats"; var extsnd_scalechannel_tip = "(scale-channel scaler (beg 0) (dur len) snd chn edpos):
" + " scale samples in the given sound/channel between beg and beg + num by scaler."; var extsnd_scaleselectionby_tip = "(scale-selection-by scalers): scale selected portion by scalers"; var extsnd_scaleto_tip = "(scale-to (norms 1.0) snd chn): normalize snd to norms (following sync);
" + " norms can be a float or a float-vector/list of floats"; var extsnd_scanchannel_tip = "(scan-channel func (start 0) (dur len) snd chn edpos):
" + " apply func to samples in current channel (or the specified channel).
" + " func is a function of one argument, the current sample.
" + " if func returns non-#f, the scan stops, and the value is returned to the caller
" + " with the sample number.
" + " (scan-channel (lambda (y) (> y .1)))"; var extsnd_scriptarg_tip = "(script-arg): where we are in the startup arg list"; var extsnd_scriptargs_tip = "(script-args): the args passed to Snd at startup as a list of strings"; var extsnd_searchprocedure_tip = "(search-procedure snd): global search function
" + " (if no 'snd' specified) or sound-local search function"; var extsnd_selectall_tip = "(select-all snd chn): make a new selection containing all of snd's channel chn.
" + " If sync is set, all chans are included.
" + " The new region id is returned (if selection-creates-region is #t)."; var extsnd_selectedchannel_tip = "(selected-channel snd): currently selected channel in snd (or #f if none)"; var extsnd_selecteddatacolor_tip = "(selected-data-color): color used for selected data"; var extsnd_selectedgraphcolor_tip = "(selected-graph-color): background color of selected data"; var extsnd_selectedsound_tip = "(selected-sound): index of currently selected sound (or #f if none)"; var extsnd_selectionframples_tip = "(selection-framples snd chn): selection length"; var extsnd_selectionmember_tip = "(selection-member? snd chn): #t if snd's channel chn is a member of the current selection"; var extsnd_selectionok_tip = "(selection?): #t if selection is currently active, visible, etc"; var extsnd_selectionposition_tip = "(selection-position snd chn): selection start samp"; var extsnd_setsamples_tip = "(set-samples start-samp samps data snd chn truncate edname (infile-chan 0) edpos auto-delete):
" + " set snd's channel chn's samples starting at start-samp for samps from data (a vector or string (filename));
" + " start-samp can be beyond current data end;
" + " if truncate is #t and start-samp is 0, the end of the file is set to match the new data's end."; var extsnd_shortfilename_tip = "(short-file-name snd): short form of snd's file name (no directory)"; var extsnd_showlistener_tip = "(show-listener (open #t)): if 'open' opens the lisp listener;
" + " returns whether the listener is visible."; var extsnd_showtransformpeaks_tip = "(show-transform-peaks snd chn): #t if fft display should include peak list"; var extsnd_sndhelp_tip = "(snd-help (arg 'snd-help) (formatted #t)): return the documentation associated with its argument.
" + " The argument can be a string, symbol, or in some cases, the object itself.
" + " In the help descriptions, optional arguments are in parens with the default value (if any) as the 2nd entry.
" + " A ':' as the start of the argument name marks a CLM-style optional keyword argument.
" + " If you load index.scm the functions html and ? can be used in place of help to go to the HTML description,
" + " and the location of the associated C code will be displayed, if it can be found.
" + " If help-hook is not empty, it is invoked with the subject and the snd-help result and its value is returned."; var extsnd_sndprint_tip = "(snd-print str): display str in the listener window"; var extsnd_sndspectrum_tip = "(snd-spectrum data (window rectangular-window) (len data-len)
" + " (linear #t) (beta 0.0) in-place (normalized #t))
:
" + " magnitude spectrum of data (a float-vector), in data if in-place, using fft-window win and fft length len."; var extsnd_sndtempnam_tip = "(snd-tempnam): return a new temp file name using temp-dir."; var extsnd_soundfilep_tip = "(sound-file? name): #t if name has a known sound file extension"; var extsnd_soundfilesindirectory_tip = "(sound-files-in-directory (directory \".\")):
" + " return a list of the sound files in 'directory'"; var extsnd_soundp_tip = "(sound? (index 0)): #t if sound associated with 'index' is active (accessible)"; var extsnd_sounds_tip = "(sounds): list of active sounds (a list of indices)"; var extsnd_soundwidgets_tip = "(sound-widgets snd): returns a list of widgets associated with 'snd':
" + "(0)pane (1)name (2)control-panel
" + "(3)status area (4)play-button (5)filter-env
" + "(6)unite-button (7)name-label (8)name-icon (9)sync-button"; var extsnd_squelchupdate_tip = "(squelch-update snd chn): #t if updates (redisplays) are turned off in snd's channel chn"; var extsnd_srate_tip = "(srate snd): snd's srate"; var extsnd_srcchannel_tip = "(src-channel ratio-or-env (beg 0) (dur len) snd chn edpos):
" + " sampling-rate convert snd's channel chn by ratio, or following an envelope
" + " (a list or a CLM env generator)."; var extsnd_srcsound_tip = "(src-sound ratio-or-env (base 1.0) snd chn edpos):
" + " sampling-rate convert snd's channel chn by ratio, or following an envelope.
" + " A negative ratio reverses the sound"; var extsnd_selectionmaxamp_tip = "(selection-maxamp) returns the peak amplitude in the selection."; var extsnd_startplayinghook_tip = "start-playing-hook (snd): called when a play request is triggered.
" + " If it returns #t, the sound is not played."; var extsnd_startplayingselectionhook_tip = "start-playing-selection-hook (): called when the selection starts playing"; var extsnd_stopplaying_tip = "(stop-playing snd): stop play (DAC output) in progress"; var extsnd_stopplayinghook_tip = "stop-playing-hook (snd): called when a sound finishes playing."; var extsnd_stopplayingselectionhook_tip = "stop-playing-selection-hook (): called when the selection stops playing"; var extsnd_sync_tip = "(sync snd): snd's sync value (0 = no sync).
" + " Some editing operations are applied to all sounds sharing the sync value of the selected sound."; var extsnd_time_graph_tip = "time-graph is the constant associated with the time domain graph
" + "The other two graphs are transform-graph and lisp-graph"; var extsnd_timegraphtype_tip = "(time-graph-type snd chn): graph-as-wavogram if
" + " Snd's time domain display is a 'wavogram',otherwise graph-once."; var extsnd_tinyfont_tip = "(tiny-font): font use for some info in the graphs"; var extsnd_transformgraphp_tip = "(transform-graph? snd chn): #t if fft display is active in snd's channel chn"; var extsnd_transformgraphtype_tip = "(transform-graph-type snd chn): can be
" + " graph-once, graph-as-sonogram, or graph-as-spectrogram."; var extsnd_transformsize_tip = "(transform-size snd chn): current fft size (512)"; var extsnd_undo_tip = "(undo (count 1) snd chn): undo 'count' edits in snd's channel chn"; var extsnd_updatesound_tip = "(update-sound snd): update snd (re-read it from the disk after flushing pending edits)"; var extsnd_updatetimegraph_tip = "(update-time-graph snd chn): redraw snd channel chn's graphs"; var extsnd_updatetransformgraph_tip = "(update-transform-graph snd chn): redraw snd channel chn's fft display"; var extsnd_widgetposition_tip = "(widget-position wid): widget's position, (list x y), in pixels"; var extsnd_widgetsize_tip = "(widget-size wid): widget's size, (list width height), in pixels"; var extsnd_windowheight_tip = "(window-height): current Snd window height in pixels"; var extsnd_windowwidth_tip = "(window-width): current Snd window width in pixels"; var extsnd_withmixtags_tip = "(with-mix-tags): #t if Snd should try to use virtual (tagged) mixing"; var extsnd_withtrackingcursor_tip = "(with-tracking-cursor snd):
#t if cursor moves along in waveform display as sound is played"; var extsnd_xaxislabel_tip = "(x-axis-label snd chn (ax time-graph)): current x axis label"; var extsnd_xaxisstyle_tip = "(x-axis-style snd chn): The x axis labelling of the time domain waveform
" + " can be in seconds (x-axis-in-seconds), in samples (x-axis-in-samples),
" + " expressed as a percentage of the overall duration (x-axis-as-percentage),
" + " as a beat number (x-axis-in-beats), as a measure number (x-axis-in-measures),
" + " or clock-style (dd:hh:mm:ss) (x-axis-as-clock)."; var extsnd_xbounds_tip = "(x-bounds snd chn):
a list (x0 x1) giving the current x axis bounds of snd channel chn"; var extsnd_xtoposition_tip = "(x->position val snd chn (ax time-graph)): x pixel loc of val"; var extsnd_xzoomslider_tip = "(x-zoom-slider snd chn): current x axis zoom slider of snd channel chn"; var extsnd_ybounds_tip = "(y-bounds snd chn):
a list (low high) giving the current y axis bounds of snd channel chn"; var extsnd_ytoposition_tip = "(y->position val snd chn (ax time-graph)): y pixel loc of val"; var extsnd_yzoomslider_tip = "(y-zoom-slider snd chn): current y axis zoom slider of snd channel chn"; var sndclm_amplitude_modulate_tip = "(amplitude-modulate carrier in1 in2): in1 * (carrier + in2)"; var sndclm_array_interp_tip = "(array-interp v phase size): v[phase] taking into account wrap-around
" + " (size is size of data), with linear interpolation if phase is not an integer."; var sndclm_comb_tip = "(comb gen (val 0.0) (pm 0.0)): comb filter val, pm changes the delay length."; var sndclm_contrast_enhancement_tip = "(contrast-enhancement sig (index 1.0)): sin(sig * pi / 2 + index * sin(sig * 2 * pi))"; var sndclm_convolve_tip = "(convolve gen input-func): next sample from convolution generator"; var sndclm_delay_tip = "(delay gen (val 0.0) (pm 0.0)): delay val
" + " according to the delay line's length and pm ('phase-modulation').
" + " If pm is greater than 0.0, the max-size argument used to create gen
" + " should have accommodated its maximum value."; var sndclm_dot_product_tip = "(dot-product v1 v2 size): sum of (float-vectors) v1[i] * v2[i] (also named scalar product)"; var sndclm_env_tip = "(env gen): next sample from envelope generator"; var sndclm_fft_tip = "(mus-fft rl im len (dir 1)):
" + " return the fft of float-vectors rl and im which contain
" + " the real and imaginary parts of the data;
" + " len should be a power of 2,
" + " dir = 1 for fft, -1 for inverse-fft"; var sndclm_filetoarray_tip = "(file->array filename chan start samples data):
" + " read the sound file 'filename' placing samples from channel 'chan'
" + " into the float-vector 'data' starting in the file at frample 'start'
" + " and reading 'samples' samples altogether."; var sndclm_filetosample_tip = "(file->sample obj frample chan): sample value in sound file read by 'obj' in channel chan at frample"; var sndclm_fir_filter_tip = "(fir-filter gen (input 0.0)): next sample from FIR filter"; var sndclm_formant_tip = "(formant gen (input 0.0) freq-in-radians): next sample from resonator generator"; var sndclm_granulate_tip = "(granulate gen input-func edit-func): next sample from granular synthesis generator"; var sndclm_hztoradians_tip = "(hz->radians hz): convert frequency in Hz to radians per sample: hz * 2 * pi / srate"; var sndclm_in_any_tip = "(in-any frample chan stream): input stream sample at frample in channel chan"; var sndclm_ina_tip = "(ina frample stream): input stream sample in channel 0 at frample"; var sndclm_locsig_tip = "(locsig gen loc val): add 'val' to the output of locsig at frample 'loc'"; var sndclm_make_comb_tip = "(make-comb :scaler :size :initial-contents (:initial-element 0.0) :max-size (:type mus-interp-linear)):
" + " return a new comb filter (a delay line with a scaler on the feedback) of size elements.
" + " If the comb length will be changing at run-time, max-size sets its maximum length.
" + " initial-contents can be either a list or a float-vector."; var sndclm_contrast_enhancement_tip = "(contrast-enhancement input (fm-index 1.0))
" + " phase-modulates its input."; var sndclm_make_convolve_tip = "(make-convolve :input :filter :fft-size):
" + " return a new convolution generator which convolves its input with the impulse response 'filter'."; var sndclm_make_delay_tip = "(make-delay :size :initial-contents (:initial-element 0.0) (:max-size) (:type mus-interp-linear)):
" + " return a new delay line of size elements.
" + " If the delay length will be changing at run-time, max-size sets its maximum length,
" + " so (make-delay len :max-size (+ len 10)) provides 10 extra elements of delay
" + " for subsequent phasing or flanging.
" + " initial-contents can be either a list or a float-vector."; var sndclm_make_env_tip = "(make-env :envelope (:scaler 1.0) :duration (:offset 0.0) (:base 1.0) :end :length):
" + " return a new envelope generator.
" + " 'envelope' is a list or float-vector of break-point pairs. To create the envelope,
" + " these points are offset by 'offset', scaled by 'scaler', and mapped over the time interval
" + " defined by either 'duration' (seconds) or 'length' (samples).
" + " If 'base' is 1.0, the connecting segments are linear, if 0.0 you get a step function,
" + " and anything else produces an exponential connecting segment."; var sndclm_make_filetosample_tip = "(make-file->sample filename buffer-size):
" + " return an input generator reading 'filename' (a sound file)"; var sndclm_make_filter_tip = "(make-filter :order :xcoeffs :ycoeffs):
" + " return a new direct form FIR/IIR filter, coeff args are float-vectors"; var sndclm_make_fir_filter_tip = "(make-fir-filter :order :xcoeffs): return a new FIR filter, xcoeffs a float-vector"; var sndclm_make_formant_tip = "(make-formant :frequency :radius):
" + " return a new formant generator (a resonator).
" + " radius sets the pole radius (in terms of the 'unit circle').
" + " frequency sets the resonance center frequency (Hz)."; var sndclm_make_granulate_tip = "(make-granulate :input (:expansion 1.0) (:length .15) (:scaler .6) (:hop .05)
" + " (:ramp .4) (:jitter 1.0) :max-size :edit)
:
" + " return a new granular synthesis generator.
" + " 'length' is the grain length (seconds),
" + " 'expansion' is the ratio in timing between the new and old (expansion > 1.0 slows things down),
" + " 'scaler' scales the grains to avoid overflows,
" + " 'hop' is the spacing (seconds) between successive grains upon output,
" + " 'jitter' controls the randomness in that spacing,
" + " 'input' can be a file pointer.
" + " 'edit' can be a function of one arg, 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."; var sndclm_make_locsig_tip = "(make-locsig (:degree 0.0) (:distance 1.0) (:reverb 0.0) (:output *output*) (:revout *reverb*)
" + " (:channels (mus-channels *output*)) (:type mus-interp-linear))
:
" + " return a new generator for signal placement in n channels. Channel 0 corresponds to 0 degrees."; var sndclm_make_moving_average_tip = "(make-moving-average :size :initial-contents (:initial-element 0.0)):
" + " return a new moving_average generator. initial-contents can be either a list or a float-vector."; var sndclm_moving_max_tip = "(moving-max gen y): return moving window max given input 'y'.
" + " moving-max is a specialization of the delay generator that produces
" + " an envelope that tracks the peak amplitude of the last 'size' samples."; var sndclm_make_ncos_tip = "(make-ncos (:frequency *clm-default-frequency*) (:n 1)):
" + " return a new ncos generator, producing a sum of 'n' equal amplitude cosines."; var sndclm_make_one_pole_tip = "(make-one-pole :a0 :b1): return a new one-pole filter; a0*x(n) - b1*y(n-1)"; var sndclm_make_one_zero_tip = "(make-one-zero :a0 :a1): return a new one-zero filter; a0*x(n) + a1*x(n-1)"; var sndclm_make_oscil_tip = "(make-oscil (:frequency *clm-default-frequency*) (:initial-phase 0.0)):
" + " return a new oscil (sinewave) generator"; var sndclm_make_phase_vocoder_tip = "(make-phase-vocoder :input :fft-size :overlap :interp :pitch :analyze :edit :synthesize):
" + " return a new phase-vocoder generator;
" + " input is the input function (it can be set at run-time),
" + " analyze, edit, and synthesize are either #f or functions that replace the default innards of the generator,
" + " fft-size, overlap and interp set the fftsize, the amount of overlap between ffts, and the time between new analysis calls.
" + " 'analyze', if given, takes 2 args, the generator and the input function;
" + " if it returns #t, the default analysis code is also called.
" + " 'edit', if given, takes 1 arg, the generator; if it returns #t, the default edit code is run.
" + " 'synthesize' is a function of 1 arg, the generator; it is called to get the current vocoder output."; var sndclm_make_polyshape_tip = "(make-polyshape (:frequency *clm-default-frequency*) (:initial-phase 0.0) :coeffs (:partials '(1 1)) (:kind mus-chebyshev-first-kind)):
" + " return a new polynomial-based waveshaping generator:
" + " (make-polyshape :coeffs (partials->polynomial '(1 1.0)))
" + " is the same in effect as make-oscil"; var sndclm_make_polywave_tip = "(make-polyshape (:frequency *clm-default-frequency*) (:partials '(1 1)) (:kind mus-chebyshev-first-kind)):
" + " return a new polynomial-based waveshaping generator (additive synthesis)."; var sndclm_make_pulse_train_tip = "(make-pulse-train (:frequency *clm-default-frequency*) (:amplitude 1.0) (:initial-phase 0.0)):
" + " return a new pulse-train generator. This produces a sequence of impulses."; var sndclm_make_rand_interp_tip = "(make-rand-interp (:frequency *clm-default-frequency*) (:amplitude 1.0) :envelope :distribution :size):
" + " return a new rand-interp generator, producing linearly interpolated random numbers.
" + " frequency is the rate at which new end-points are chosen."; var sndclm_make_rand_tip = "(make-rand (:frequency *clm-default-frequency*) (:amplitude 1.0) :envelope :distribution :size):
" + " return a new rand generator, producing a sequence of random numbers (a step function).
" + " frequency is the rate at which new numbers are chosen."; var sndclm_make_readin_tip = "(make-readin :file (:channel 0) (:start 0) (:direction 1) :size):
" + " return a new readin (file input) generator reading the sound file 'file'
" + " starting at frample 'start' in channel 'channel' and reading forward if 'direction' is not -1"; var sndclm_make_sampletofile_tip = "(make-sample->file filename chans data-format header-type comment):
" + " return an output generator writing the sound file 'filename'
" + " which is set up to have 'chans' channels of 'data-format' samples with a header of 'header-type'.
" + " The latter should be sndlib identifiers:
" + " (make-sample->file \"test.snd\" 2 mus-lshort mus-riff)"; var sndclm_make_src_tip = "(make-src :input (:srate 1.0) (:width 10)): return a new sampling-rate conversion generator
" + " (using 'warped sinc interpolation').
" + " 'srate' is the ratio between the new rate and the old.
" + " 'width' is the sine width (effectively the steepness of the low-pass filter), normally between 10 and 100.
" + " 'input' if given is an open file stream."; var sndclm_make_triangle_wave_tip = "(make-triangle-wave (:frequency *clm-default-frequency*) (:amplitude 1.0) (:initial-phase 0.0)):
" + " return a new triangle-wave generator."; var sndclm_make_two_zero_tip = "(make-two-zero :a0 :a1 :a2 or :frequency :radius):
" + " return a new two-zero filter; a0*x(n) + a1*x(n-1) + a2*x(n-2)"; var sndclm_moving_average_tip = "(moving-average gen (val 0.0)): moving window moving_average."; var sndclm_mus_close_tip = "(mus-close gen): close the IO stream managed by 'gen' (a sample->file generator, for example)"; var sndclm_mus_data_tip = "(mus-data gen): gen's internal data (a float-vector)"; var sndclm_mus_frequency_tip = "(mus-frequency gen): gen's frequency (Hz)"; var sndclm_mus_increment_tip = "(mus-increment gen): gen's mus-increment field"; var sndclm_mus_length_tip = "(mus-length gen): gen's length"; var sndclm_mus_offset_tip = "(mus-offset gen): gen's offset"; var sndclm_mus_scaler_tip = "(mus-scaler gen): gen's scaler, if any.
" + " This is often an amplitude adjustment of some sort."; var sndclm_ncos_tip = "(ncos gen (fm 0.0)): get the next sample from 'gen', an ncos generator"; var sndclm_oscil_tip = "(oscil gen (fm 0.0) (pm 0.0)):
" + " next sample from oscil gen: val = sin(phase + pm); phase += (freq + fm)"; var sndclm_out_any_tip = "(out-any frample val chan stream): add val to output stream at frample in channel chan"; var sndclm_outa_tip = "(outa frample val stream): add val to output stream at frample in channel 0"; var sndclm_outb_tip = "(outb frample val stream): add val to output stream at frample in channel 1 (counting from 0)"; var sndclm_output_tip = "*output* is the direct signal output stream. The reverb input is sent to *reverb*."; var sndclm_partialstopolynomial_tip = "(partials->polynomial partials (kind mus-chebyshev-first-kind)):
" + " produce a Chebyshev polynomial suitable for use with the polynomial generator
" + " to create (via waveshaping) the harmonic spectrum described by the partials argument:
" + " (let ((v0 (partials->polynomial '(1 1.0 2 1.0)))
(os (make-oscil)))
(polynomial v0 (oscil os)))
"; var sndclm_phase_vocoder_tip = "(phase-vocoder gen input-function analyze-func edit-func synthesize-func): next phase vocoder value"; var sndclm_polynomial_tip = "(polynomial coeffs x): evaluate a polynomial at x.
" + " coeffs are in order of degree, so coeff[0] is the constant term."; var sndclm_polyshape_tip = "(polyshape gen (index 1.0) (fm 0.0)):
" + " next sample of polynomial-based waveshaper"; var sndclm_polywave_tip = "(polywave gen (fm 0.0)):
" + " next sample of polynomial-based waveshaper (additive synthesis)"; var sndclm_pulse_train_tip = "(pulse-train gen (fm 0.0)): next pulse train sample from generator"; var sndclm_rand_interp_tip = "(rand-interp gen (fm 0.0)): gen's current (interpolating) random number.
" + " fm modulates the rate at which new segment end-points are chosen."; var sndclm_rand_tip = "(rand gen (fm 0.0)): gen's current random number.
" + " fm modulates the rate at which the current number is changed."; var sndclm_readin_tip = "(readin gen): next sample from readin generator (a sound file reader)"; var sndclm_reverb_tip = "*reverb* is the reverb stream. The direct signal is sent to *output*."; var sndclm_secondstosamples_tip = "(seconds->samples secs): use mus-srate to convert seconds to samples"; var sndclm_spectrum_tip = "(spectrum rdat idat window norm-type: return the spectrum of rdat and idat.
" + "norm-type defaults to linear (1); the other choices are raw (unnormalized: 2), and dB (0)."; var sndclm_src_tip = "(src gen (pm 0.0) input-function): next sampling rate conversion sample.
" + " 'pm' can be used to change the sampling rate on a sample-by-sample basis.
" + " 'input-function' is a function of one argument (the current input direction, normally ignored)
" + " that is called internally whenever a new sample of input data is needed.
" + " If the associated make-src included an 'input' argument, input-function is ignored."; var sndclm_tap_tip = "(tap gen (pm 0.0)): tap the delay generator offset by pm"; var sndclm_timestosamples_tip = "(times->samples beg dur): returns a list of beg and beg+dur in samples."; var sndclm_triangle_wave_tip = "(triangle-wave gen (fm 0.0)): next triangle wave sample from generator"; var sndscm_IIRfilters_tip = "These are simple 2nd order IIR filters in dsp.scm."; var sndscm_analogfilterdoc_tip = "These are the standard 'analog' IIR filters: Butterworth, Chebyshev, etc."; var sndscm_channelproperty_tip = "(channel-property key snd chn): returns the value associated with 'key'
" + " in the given channel's property list. To add or change a property,
" + " use set! with this procedure.

" + " (set! (channel-property 'info 0 0) \"this is sound 0, first channel\")
" + " now (channel-property 'info 0 0) returns \"this is sound 0, first channel\"."; var sndscm_definstrument_tip = "definstrument is very much like define, but with added code to support notehook
" + " and (for Common Music) *definstrument-hook*."; var sndscm_envelopeinterp_tip = "(envelope-interp x env (base 1.0): returns value of 'env' at 'x'.
" + " If 'base' is 0, 'env' is treated as a step function;
" + " if 'base' is 1.0 (the default), the breakpoints of 'env' are connected by a straight line,
" + " and any other 'base' connects the breakpoints with an exponential curve."; var sndscm_envelopelastx_tip = "(envelope-last-x env): returns the last breakpoint's x axis value in 'env'"; var sndscm_envexptchannel_tip = "(env-expt-channel env exponent (symmetric #t) beg dur snd chn edpos):
" + " applies 'env' to the given channel using 'exponent' for the exponential base.
" + " The 'symmetric' argument determines whether the up and down moving ramps look
" + " symmetrical around a break point."; var sndscm_fmviolin_tip = "The fm-violin instrument uses FM to produce a string-like sound;
" + " It has many parameters, the principal ones being startime dur frequency amplitude.
" + " The code is in v.scm."; var sndscm_hilberttransform_tip = "(hilbert-transform gen input) returns the Hilbert transform of 'input'."; var sndscm_html_function_tip = "(html arg) where 'arg' can be a string, a symbol, or a procedure
" + " sends the html reader to the corresponding url in the Snd documents."; var sndscm_insertchannel_tip = "(insert-channel filedat beg dur snd chn edpos):
" + " inserts the specified data ('filedat') in the given channel at the given location.
" + " 'filedat' can be either a filename (a string), a sound index, or a list containing
" + " the filename (or index), the start point in the file, and (optionally) the channel of the file to mix."; var sndscm_makebandpass_tip = "(make-bandpass flo fhi length) returns a bandpass filter."; var sndscm_makebiquad_tip = "(make-biquad a0 a1 a2 b1 b2) returns a biquad filter section."; var sndscm_makebutter_tip = "various 2nd order Butterworth filters in dsp.scm."; var sndscm_makedifferentiator_tip = "(make-differentiator length) returns a differentiating filter."; var sndscm_makehighpass_tip = "(make-highpass fc length) returns a highpass filter."; var sndscm_makehilberttransform_tip = "(make-hilbert-transform length) returns a Hilbert transformer."; var sndscm_makelowpass_tip = "(make-lowpass fc length) returns a lowpass filter."; var sndscm_makeramp_tip = "(make-ramp (size 128)): return a ramp generator."; var sndscm_makeselection_tip = "(make-selection beg end snd chn): makes a selection,
" + " like make-region but without creating a region.
" + " It selects 'dur' samples starting at 'beg' in the given channel."; var sndscm_makespencerfilter_tip = "(make-spencer-filter) returns an FIR filter with the Spencer (smoothing) coefficients."; var sndscm_markproperties_tip = "(mark-properties id) accesses the property list associated with the mark 'id'"; var sndscm_maxenvelope_tip = "(max-envelope env): return the maximum y value in 'env'"; var sndscm_moogfilter_tip = "(moog-filter gen input): return Moog-style 4-pole lowpass filtering of 'input'"; var sndscm_mpg_tip = "(mpg mpgfile rawfile): call mpg123 to translate an MPEG format sound file
" + " to a headerless (\"raw\") file containing 16-bit samples."; var sndscm_musfilemix_tip = "(mus-file-mix outfile infile (outloc 0) (framples) (inloc 0) mixer envs):
" + " mix 'infile' into 'outfile' starting at 'outloc' in 'outfile'
" + " and 'inloc' in 'infile', mixing 'framples' framples into 'outfile'.
" + " 'framples' 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 frample->file generator, and
" + " 'infile' can be a file->frample generator."; var sndscm_poly_times_tip = "(poly* p1 p2) multiplies p1 by p2, both polynomials."; var sndscm_powerenv_tip = "(power-env env): an envelope generator where each segment has its own base."; var sndscm_prc95doc_tip = "various physical modeling functions from Perry Cook."; var sndscm_rmsgain_tip = "various RMS-related generators."; var sndscm_scalemixes_tip = "(scale-mixes mix-list scl): scales the amplitude of each mix in 'mix-list' by 'scl'."; var sndscm_sgfilter_tip = "(savitzky-golay-filter gen input): a Savitzky-Golay filter, assuming symmetrical positioning.
" + " It is an FIR smoothing filter."; var sndscm_sound_let_tip = "sound-let is a form of let* that creates temporary sound files within with-sound.
" + " Its syntax is a combination of let* and with-sound:

" + " (sound-let ((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 is the name of the 1st temporary file
" + " (granulate-sound temp-2 1 1 0 2))


" + " This creates two temporary files and passes them along to the subsequent calls
" + " on granulate-sound. The first list after the sound file identifier is the list of
" + " with-sound 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) with-sound. The rest of the list is the body of the associated with-sound."; var sndscm_soundinterp_tip = "(sound-interp reader loc): the sound-interp interpolating reader
" + " reads a channel at an arbitary location, interpolating between samples if necessary."; var sndscm_syncdmixes_tip = "(syncd-mixes sync): returns a list of all mixes whose mix-sync field is set to 'sync'."; var sndscm_tofrequency_tip = "(->frequency pitch ratio) takes either a number or a common-music pitch symbol
" + " ('c4 is middle C), and returns either the number or the frequency associated with that pitch:
" + " (->frequency 'cs5) returns 554 and change.
" + " 'ratio' can be #t to get small integer ratios rather than equal temperment."; var sndscm_tosample_tip = "(->sample time) returns a sample number given a time in seconds"; var sndscm_volterrafilter_tip = "(volterra-filter flt x): pass 'x' through the Volterra (non-linear) filter 'flt'."; var sndscm_windowsamples_tip = "(window-samples snd chn): returns (in a float-vector) the samples
" + " displayed in the current graph window for the given channel."; var sndscm_withtempsound_tip = "with-temp-sound is like sound-let (it sets up a temporary output
" + " for with-sound) , but does not delete its output file."; var sndscm_wsdoc_tip = "with-sound provides a simple way to package up a bunch of instrument calls into a new
" + " sound file, and open that file in Snd when the computation is complete.
" + " with-sound opens an output object, and optionally a reverb output object.
" + " Each instrument uses out-any to add its sounds to the *output* results.
" + "
 with-sound
" + " (srate *clm-srate*) ; output sampling rate (44100)
" + " (output *clm-file-name*) ; output file name (\"test.snd\")
" + " (channels *clm-channels*) ; channels in output (1)
" + " (header-type *clm-header-type*) ; output header type (mus-next or mus-aifc)
" + " (data-format *clm-data-format*) ; output sample data type (mus-bfloat)
" + " (comment #f) ; any comment to store in the header (a string)
" + " (reverb *clm-reverb*) ; reverb instrument (jc-reverb)
" + " (reverb-data *clm-reverb-data*) ; arguments passed to the reverb
" + " (statistics *clm-statistics*) ; if #t, print info at end of with-sound
" + " (scaled-to #f) ; if a number, scale the output to peak at that amp
" + " (play *clm-play*) ; if #t, play the sound automatically

" + " The with-sound syntax may look sightly odd; we include the arguments in the
" + " first list, then everything after that is evaluated as a note list.
" + "
   (with-sound (:srate 44100 :channels 2 :output \"test.snd\")
" + " (fm-violin 0 1 440 .1)
" + " (fm-violin 1 1 660 .1))

" + " produces a sound file with two fm-violin notes; the sound file is named \"test.snd\",
" + " is stero, and has a sampling rate of 44100."; var sndscm_zipper_tip = "(zipper gen in1 in2): the digital zipper; a way to crossfade between in1 and in2."; var sndlib_html_tip = "library that handles sound files and audio ports"; var sndclm_html_tip = "sound synthesis generators"; var sndscm_html_tip = "Scheme, Ruby, and Forth files included with Snd"; var fm_html_tip = "introduction to frequency modulation"; var extsnd_html_tip = "Snd extension and customization"; var grfsnd_html_tip = "Snd configuration, connection to other libraries and programs"; var snd_html_tip = "basic Snd user-interface documentation"; var s7_html_tip = "a Scheme implementation that comes with Snd"; var index_html_tip = "overall index"; var analog_filter_doc_tip = "These are the traditional IIR filters, any type, any even order
" + "(Butterworth, Chebyshev, Inverse Chebyshev, Bessel, and Elliptic)
" + "The elliptic function filters need GSL."; var animals_doc_tip = "synthesis of birds, frogs, and insects"; var autosave_doc_tip = "periodically save current sound edits in a backup file,
" + "useful if your machine crashes a lot."; var bess_doc_tip = "This sets up a dialog to experiment with simple FM,
" + "the fm-violin, or with a compositional algorithm"; var binary_io_doc_tip = "This file has functions to read and write binary files"; var bird_doc_tip = "simple synthesis of about 50 birds using additive synthesis.
" + "see animals.scm for much more elaborate versions of these birds"; var clean_doc_tip = "click, pop, and hum removal, and signal reconstruction"; var clm_ins_doc_tip = "Instruments using many standard synthesis techniques,
" + " including a bagpipe, FOF synthesis, many FM examples,
" + " granular synthesis, spectral modeling, reverbs, and physical modeling."; var dlocsig_doc_tip = "dlocsig sets up envelopes to mimic a moving sound;
" + " included are many path-specification functions"; var draw_doc_tip = "Examples of drawing extensions, primarily one that puts a thumbnail graph
" + " of the current sound in the upper right corner"; var dsp_doc_tip = "This has all the usual DSP stuff: filters, ffts, sample rate conversion,
" + " sound effects, statistics, scanned synthesis, transforms, etc"; var env_doc_tip = "Various operations on envelopes: add, scale, copy, stretch"; var enved_doc_tip = "This adds an envelope editor to each displayed channel.
" + " You can set it up to be an amplitude envelope."; var examp_doc_tip = "A bunch of examples of things like ffts, filters, marks, selections,
" + " graphics extensions, sound effects, and generators."; var extensions_doc_tip = "channel and sound property lists, several enveloping functions,
" + " and commonly used editing sequences such as channel extraction."; var fade_doc_tip = "sound mixing using envelopes in the frequency domain"; var freeverb_doc_tip = "a reverberator along the lines of nrev, but with more options."; var generators_doc_tip = "about 80 generators related to sums of sinusoids
" + " bessel functions, adjustable square-waves, special envelopes, etc"; var grani_doc_tip = "this is a very flexible granular synthesis instrument"; var heart_doc_tip = "This code is aimed at blood pressure readings."; var hooks_doc_tip = "snd-hooks, describe-hook, with-local-hook, reset-all-hooks."; var index_doc_tip = "this provides a connection between firefox and the snd-help mechanism."; var inf_snd_doc_tip = "this provides a Snd emacs mode implementation.
" + " You can use emacs as the listener, rather than the built-in Snd window."; var jcrev_doc_tip = "this is probably the first Schroeder reverb, based on all-pass and comb filters."; var maraca_doc_tip = "this includes the maraca, tambourine, wind-chimes, etc"; var marks_doc_tip = "this includes describe-mark, eval-between-marks, mark-property,
" + " play-between-marks, and snap-marks."; var maxf_doc_tip = "This is a collection of modal synthesis demos.
" + " For the actual filter, see the firmant generator"; var menus_doc_tip = "Menu additions for things like crop, trim, fft notch filter,
" + " mark and mix functions, etc. The main added menu loads a huge
" + " set of sound effects"; var mix_doc_tip = "mix-property, silence-all-mixes, mix-sound, save-mix, snap-mix-to-beat
" + " and many functions acting on lists of mixes"; var moog_doc_tip = "Moog's four pole lowpass (24db/Oct) filter as a clm generator,
" + " variable resonance, \"that warm, analog sound\"."; var musglyphs_doc_tip = "The CMN music symbol font built from bezier curves.
" + "This file is a lisp->scheme wrapper for cmn-glyphs.lisp"; var nb_doc_tip = "As you move the mouse through the view-files list,
" + " the help dialog posts information about the file underneath the mouse"; var noise_doc_tip = "This ancient noise instrument can produce those all-important whooshing
" + " sounds. noise.ins translated to Scheme/Ruby by Michael Scholz"; var numerics_doc_tip = "Various numerical functions: factorial, plgndr, gegenbaur, etc"; var piano_doc_tip = "Scott van Duyne's piano model that includes multiple coupled strings,
" + " a nonlinear hammer, and an arbitrarily large soundboard and enclosure"; var play_doc_tip = "play between marks, play continuously, play a set of sines, etc"; var poly_doc_tip = "polynomial addition, multiplication, division, gcd, roots, and discriminant"; var prc95_doc_tip = "The basic physical models: pluck, bow, clarinet, brass, flute"; var pvoc_doc_tip = "various versions of the Moore-Klingbeil-Trevisani-Edwards phase-vocoder.
" + "see also the CLM phase-vocoder generator."; var rgb_doc_tip = "this translates the standard X11 color names into Snd color objects."; var rubber_doc_tip = "rubber-sound tries to stretch or contract a sound (in time);
" + " it scans the sound looking for stable sections, then either
" + " deletes periods or interpolates new ones to shorten or lengthen the sound"; var selection_doc_tip = "includes swap-selection-channels, replace-with-selection,
" + " selection-members, make-selection, delete-selection-and-smooth,
" + " filter-selection-and-smooth, and with-temporary-selection"; var singer_doc_tip = "This is based on Perry's singer.c and CLM's singer.ins"; var sndold_doc_tip = "These files (snd10.scm to snd12.scm) provide backwards compatibility
" + " with earlier versions of Snd."; var snddiff_doc_tip = "a diff or grep-like function for sounds. It can currently find
" + " initial delays, scaling differences, and scattered individual
" + " sample differences: (snddiff snd0 chn0 snd1 chn1)."; var snd_gl_doc_tip = "This depends on access to openGL (Mesa); it includes a waterfall fft graph
" + "and GL state readbacks"; var snd_motif_doc_tip = "user interface extensions using the libxm modules: add-mark-pane,
" + " display-scanned-synthesis, load-font, with-level-meters,
" + " variable-display, smpte labels, and lots more.
" + " snd-motif is for Motif, snd-gtk for Gtk."; var snd_test_doc_tip = "Snd regression test suite; zillions of examples."; var sndwarp_doc_tip = "time stretching and whatnot"; var ws_doc_tip = "with-sound provides a simple way to package up a bunch of
" + " instrument calls into a new sound file, and open that file in Snd"; var zip_doc_tip = "The zipper marches through the two sounds taking equal short portions
" + " of each, then abutting them while resampling so that as one sound
" + " takes less overall frample space, the other takes more."; var scheme_format_tip = "(format destination control-string :rest args) produces formatted output.
" + "If 'destination' is #f (the usual case in Snd), the output is a string.
" + "The output depends on 'control-string' which can contain characters preceded by tilde.
" + "These are replaced with other strings based on the character and the associated argument in 'args'.
" + "The main tilde cases are ~% = add a newline, ~A = add some readable description of its argument
" + "~D = treat its arg as an integer, ~F = treat arg as float, ~S = treat arg as string.

";