expv OMP_FOR_pragma_list(expv clause,expv statements) { list lp; if(EXPR_CODE(statements) != LIST) fatal("OMP_FOR_pragma_list: unknown list"); FOR_ITEMS_IN_LIST(lp,statements){ expv xx = LIST_ITEM(lp); if(EXPR_CODE(xx) == F_DO_STATEMENT || is_ACC_loop_pragma(xx)){ LIST_ITEM(lp) = OMP_pragma_list(OMP_FOR,clause,xx); break; } }
expv OMP_FOR_pragma_list(expv clause,expv statements) { list lp; #ifdef not if(EXPR_CODE(statements) == F_DO_STATEMENT) return OMP_pragma_list(OMP_FOR,clause,statements); else { error_at_node(clause,"OpenMP DO directive must be followed by DO"); return NULL; } #endif if(EXPR_CODE(statements) != LIST) fatal("OMP_FOR_pragma_list: unknown list"); FOR_ITEMS_IN_LIST(lp,statements){ if(EXPR_CODE(LIST_ITEM(lp)) == F_DO_STATEMENT){ LIST_ITEM(lp) = OMP_pragma_list(OMP_FOR,clause,LIST_ITEM(lp)); break; } } return statements; }
void compile_OMP_directive(expr x) { expr dir; expr c = NULL; expv pclause,dclause; if(x == NULL) return; /* error */ if (debug_flag) { fprintf(stderr, "OMP_directive:\n"); expv_output(x, stderr); fprintf(stderr, "\n"); } check_for_OMP_pragma(x); check_for_XMP_pragma(-1, x); if(OMP_do_required){ error("OpenMP DO directived must be followed by do statement"); OMP_do_required = FALSE; return; } if(OMP_st_required != OMP_ST_NONE){ error("OpenMP ATOMIC directives must be followed by assignment"); return; } dir = EXPR_ARG1(x); if (EXPR_INT(dir) == OMP_F_THREADPRIVATE) { check_INDCL(); } else { check_INEXEC(); } if (EXPR_INT(dir) != OMP_F_END_DO && EXPR_INT(dir) != OMP_F_END_PARALLEL_DO && EXPR_INT(dir) != OMP_F_ATOMIC) { check_for_OMP_pragma(NULL); /* close DO directives if any */ } switch(EXPR_INT(dir)){ case OMP_F_PARALLEL: push_ctl(CTL_OMP); compile_OMP_pragma_clause(EXPR_ARG2(x),OMP_PARALLEL,TRUE, &pclause,&dclause); CTL_OMP_ARG(ctl_top) = list3(LIST,dir,pclause,dclause); EXPR_LINE(CTL_OMP_ARG(ctl_top)) = current_line; return; case OMP_F_END_PARALLEL: if(CTL_TYPE(ctl_top) == CTL_OMP && CTL_OMP_ARG_DIR(ctl_top) == OMP_F_PARALLEL){ CTL_BLOCK(ctl_top) = OMP_pragma_list(OMP_PARALLEL,CTL_OMP_ARG_PCLAUSE(ctl_top), CURRENT_STATEMENTS); EXPR_LINE(CTL_BLOCK(ctl_top)) = EXPR_LINE(CTL_OMP_ARG(ctl_top)); pop_ctl(); } else error("OpenMP PARALLEL block is not closed"); return; case OMP_F_PARALLEL_DO: push_ctl(CTL_OMP); compile_OMP_pragma_clause(EXPR_ARG2(x),OMP_FOR,TRUE, &pclause,&dclause); CTL_OMP_ARG(ctl_top) = list3(LIST,dir,pclause,dclause); EXPR_LINE(CTL_OMP_ARG(ctl_top)) = current_line; OMP_do_required = TRUE; return; case OMP_F_END_PARALLEL_DO: /* if(CTL_TYPE(ctl_top) == CTL_OMP && */ /* CTL_OMP_ARG_DIR(ctl_top) == OMP_F_PARALLEL_DO){ */ /* CTL_BLOCK(ctl_top) = */ /* OMP_pragma_list(OMP_PARALLEL,CTL_OMP_ARG_PCLAUSE(ctl_top), */ /* OMP_FOR_pragma_list( */ /* CTL_OMP_ARG_DCLAUSE(ctl_top), */ /* CURRENT_STATEMENTS)); */ /* EXPR_LINE(CTL_BLOCK(ctl_top)) = EXPR_LINE(CTL_OMP_ARG(ctl_top)); */ /* pop_ctl(); */ /* } else error("OpenMP PARALLEL DO block is not closed"); */ return; case OMP_F_DO: push_ctl(CTL_OMP); compile_OMP_pragma_clause(EXPR_ARG2(x),OMP_FOR,FALSE, &pclause,&dclause); CTL_OMP_ARG(ctl_top) = list3(LIST,dir,pclause,dclause); EXPR_LINE(CTL_OMP_ARG(ctl_top)) = current_line; OMP_do_required = TRUE; return; case OMP_F_END_DO: /* OMP_F_DO has been already closed at F_ENDDO */ /* Here, only the nowait clause is handled. */ if (ctl_top_saved){ dclause = CTL_OMP_ARG_DCLAUSE(ctl_top_saved); if (EXPR_ARG2(x) != NULL) list_put_last(dclause, EXPR_ARG2(x)); CTL_BLOCK(ctl_top_saved) = OMP_FOR_pragma_list(dclause, CURRENT_STATEMENTS_saved); EXPR_LINE(CTL_BLOCK(ctl_top_saved)) = EXPR_LINE(CTL_OMP_ARG(ctl_top_saved)); ctl_top_saved = NULL; } /* if(CTL_TYPE(ctl_top) == CTL_OMP && */ /* CTL_OMP_ARG_DIR(ctl_top) == OMP_F_DO){ */ /* dclause = CTL_OMP_ARG_DCLAUSE(ctl_top); */ /* if(EXPR_ARG2(x) != NULL) list_put_last(dclause,EXPR_ARG2(x)); */ /* CTL_BLOCK(ctl_top) = */ /* OMP_FOR_pragma_list(dclause,CURRENT_STATEMENTS); */ /* EXPR_LINE(CTL_BLOCK(ctl_top)) = EXPR_LINE(CTL_OMP_ARG(ctl_top)); */ /* pop_ctl(); */ /* } else error("OpenMP DO block is not closed"); */ return; case OMP_F_PARALLEL_SECTIONS: push_ctl(CTL_OMP); compile_OMP_pragma_clause(EXPR_ARG2(x),OMP_SECTIONS,TRUE, &pclause,&dclause); CTL_OMP_ARG(ctl_top) = list3(LIST,dir,pclause,dclause); EXPR_LINE(CTL_OMP_ARG(ctl_top)) = current_line; return; case OMP_F_END_PARALLEL_SECTIONS: if(CTL_TYPE(ctl_top) == CTL_OMP && CTL_OMP_ARG_DIR(ctl_top) == OMP_F_PARALLEL_SECTIONS){ CURRENT_STATEMENTS = OMP_check_SECTION(CURRENT_STATEMENTS); CTL_BLOCK(ctl_top) = OMP_pragma_list(OMP_PARALLEL,CTL_OMP_ARG_PCLAUSE(ctl_top), OMP_pragma_list(OMP_SECTIONS, CTL_OMP_ARG_DCLAUSE(ctl_top), CURRENT_STATEMENTS)); EXPR_LINE(CTL_BLOCK(ctl_top)) = EXPR_LINE(CTL_OMP_ARG(ctl_top)); pop_ctl(); } else error("OpenMP PARALLEL SECTIONS block is not closed"); return; case OMP_F_SECTIONS: push_ctl(CTL_OMP); compile_OMP_pragma_clause(EXPR_ARG2(x),OMP_SECTIONS,FALSE, &pclause,&dclause); CTL_OMP_ARG(ctl_top) = list3(LIST,dir,pclause,dclause); EXPR_LINE(CTL_OMP_ARG(ctl_top)) = current_line; return; case OMP_F_END_SECTIONS: if(CTL_TYPE(ctl_top) == CTL_OMP && CTL_OMP_ARG_DIR(ctl_top) == OMP_F_SECTIONS){ CURRENT_STATEMENTS = OMP_check_SECTION(CURRENT_STATEMENTS); dclause = CTL_OMP_ARG_DCLAUSE(ctl_top); if(EXPR_ARG2(x) != NULL) list_put_last(dclause,EXPR_ARG2(x)); CTL_BLOCK(ctl_top) = OMP_pragma_list(OMP_SECTIONS,dclause,CURRENT_STATEMENTS); EXPR_LINE(CTL_BLOCK(ctl_top)) = EXPR_LINE(CTL_OMP_ARG(ctl_top)); pop_ctl(); } else error("OpenMP SECTIONS block is not closed"); return; case OMP_F_SECTION: if(CTL_TYPE(ctl_top) == CTL_OMP && (CTL_OMP_ARG_DIR(ctl_top) == OMP_F_SECTIONS || CTL_OMP_ARG_DIR(ctl_top) == OMP_F_PARALLEL_SECTIONS)){ output_statement(OMP_pragma_list(OMP_SECTION,NULL,NULL)); } else error("OpenMP SECTION appears outside SECTOINS"); return; case OMP_F_SINGLE: push_ctl(CTL_OMP); compile_OMP_pragma_clause(EXPR_ARG2(x),OMP_SINGLE,FALSE, &pclause,&dclause); CTL_OMP_ARG(ctl_top) = list3(LIST,dir,pclause,dclause); EXPR_LINE(CTL_OMP_ARG(ctl_top)) = current_line; return; case OMP_F_END_SINGLE: if(CTL_TYPE(ctl_top) == CTL_OMP && CTL_OMP_ARG_DIR(ctl_top) == OMP_F_SINGLE){ dclause = CTL_OMP_ARG_DCLAUSE(ctl_top); //if(EXPR_ARG2(x) != NULL) list_put_last(dclause,EXPR_ARG2(x)); if (EXPR_ARG2(x) != NULL){ list lp; FOR_ITEMS_IN_LIST(lp, EXPR_ARG2(x)){ list_put_last(dclause, LIST_ITEM(lp)); } }
{ MAN_BEGIN (L"CC: Paint...", L"djmw", 20040407) INTRO (L"A command to paint the cepstral coefficients in shades of grey.") ENTRY (L"Settings") TAG (L"##From coefficient#, ##To coefficient#") DEFINITION (L"the range of coefficients that will be represented.") MAN_END MAN_BEGIN (L"CC: To DTW...", L"djmw", 19960918) INTRO (L"You can choose this command after selecting 2 objects with cepstral " "coefficients (two @MFCC's or @LFCC's). " "With this command you perform dynamic time warping. ") ENTRY (L"Algorithm") NORMAL (L"First we calculate distances between cepstral coefficients: ") LIST_ITEM (L"The distance between frame %i (from me) and %j (from thee) is:") LIST_ITEM (L" %wc \\.c %d1 + %wle \\.c %d2 + %wr \\.c %d3,") LIST_ITEM (L" where %wc, %wle & %wr are user-supplied weights and") LIST_ITEM (L" %d1 = \\su (%k=1..%nCoefficients; (%c__%ik_ - %c__%jk_)^2)") LIST_ITEM (L" %d2 = (c__%i0_ - c__%j0_)^2") LIST_ITEM (L" %d3 = \\su (%k=1..%nCoefficients; (%r__%ik_ - %r__%jk_)^2), with ") LIST_ITEM (L" %r__%ik_ the regression coefficient of the cepstral coefficients " "from the frames within a time span of %dtr seconds. " "c__%ij_ is %j-th cepstral coefficient in frame %i. ") NORMAL (L"Next we find the optimum path through the distance matrix with a " "Viterbi-algorithm.") MAN_END MAN_BEGIN (L"CC: To Matrix", L"djmw", 20011123) INTRO (L"Copies the cepstral coefficients of the selected @CC " "object to a newly created @Matrix object.")
void manual_FFNet_init (ManPages me) { MAN_BEGIN (L"epoch", L"djmw", 20040428) INTRO (L"A term that is often used in the context of machine learning. An epoch is one complete " "presentation of the %%data set to be learned% to a learning machine.") NORMAL (L"Learning machines like @@FFNet|feedforward neural nets@ that use iterative algorithms " "often need many epochs during their learning phase.") NORMAL (L"A @@Discriminant|discriminant classifier@ is also a learning machine. " "However, in contrast with neural nets a discriminant classifier only needs one epoch to learn.") MAN_END MAN_BEGIN (L"Feedforward neural networks", L"djmw", 20040511) INTRO (L"This tutorial describes the use of @FFNet feedforward neural networks in P\\s{RAAT}. ") NORMAL (L"@@Feedforward neural networks 1. What is a feedforward neural network?|1. What is a feedforward neural network?@") LIST_ITEM (L" @@Feedforward neural networks 1.1. The learning phase|1.1 The learning phase") LIST_ITEM (L" @@Feedforward neural networks 1.2. The classification phase|1.2 The classification phase") NORMAL (L"@@Feedforward neural networks 2. Quick start|2. Quick start@") NORMAL (L"@@Feedforward neural networks 3. FFNet versus discriminant classifier|3. FFNet versus discriminant classifier@") NORMAL (L"@@Feedforward neural networks 4. Command overview|4. Command overview@") MAN_END MAN_BEGIN (L"Feedforward neural networks 1. What is a feedforward neural network?", L"djmw", 20040426) INTRO (L"A feedforward neural network is a biologically inspired classification algorithm. " "It consist of a (possibly large) number of simple neuron-like processing %units, organized in %layers. " "Every unit in a layer is connected with all the units in the previous layer. " "These connections are not all equal, each connection may have a different strength or %weight. " "The weights on these connections encode the knowledge of a network. " "Often the units in a neural network are also called %nodes.") NORMAL (L"Data enters at the inputs and passes through the network, layer by layer, until it arrives at the outputs. " "During normal operation, that is when it acts as a classifier, there is no feedback between layers. "
void manual_Permutation_init (ManPages me); void manual_Permutation_init (ManPages me) { MAN_BEGIN (U"Permutation", U"djmw", 20050721) INTRO (U"One of the @@types of objects@ in Praat. A Permutation object with %n elements consists of some ordering of " "the numbers 1,2...%n.") ENTRY (U"Interpretation") NORMAL (U"A permutation like for example (2,3,5,4,1) is an %arrangement of the five objects 1, 2, 3, 4, and 5. " "It tells us that the second object is in the first position, the third object is in the second position, " "the fifth object in the third position and so on.") NORMAL (U"If we combine a Permutation together with an other object, like a Strings for example, we may force a " "new arrangement of the strings, according to the specification in the Permutation (see @@Strings & Permutation: Permute strings@)." ) ENTRY (U"Commands") NORMAL (U"Creation:") LIST_ITEM (U"\\bu @@Create Permutation...@") NORMAL (U"Query:") LIST_ITEM (U"\\bu ##Get number of elements#") LIST_ITEM (U"\\bu @@Permutation: Get value...|Get value...@") LIST_ITEM (U"\\bu @@Permutation: Get index...|Get index...@") NORMAL (U"Modification:") LIST_ITEM (U"\\bu @@Permutation: Sort|Sort@") LIST_ITEM (U"\\bu @@Permutation: Swap blocks...|Swap blocks...@") LIST_ITEM (U"\\bu @@Permutation: Swap positions...|Swap positions...@") LIST_ITEM (U"\\bu @@Permutation: Swap numbers...|Swap numbers...@") LIST_ITEM (U"\\bu @@Permutation: Swap one from range...|Swap one from range...@") NORMAL (U"Permutations:") LIST_ITEM (U"\\bu @@Permutation: Permute randomly...|Permute randomly...@") LIST_ITEM (U"\\bu @@Permutation: Permute randomly (blocks)...|Permute randomly (blocks)...@") LIST_ITEM (U"\\bu @@Permutation: Interleave...|Interleave...@") LIST_ITEM (U"\\bu @@Permutation: Rotate...|Rotate...@")
* You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "ManPagesM.h" void manual_statistics_init (ManPages me); void manual_statistics_init (ManPages me) { MAN_BEGIN (L"Statistics", L"ppgb", 20060506) INTRO (L"This is the tutorial about basic statistical techniques in Praat, which work " "with the @Table object or even directly from the @Goodies menu. It assumes that you are familiar with the @Intro.") NORMAL (L"(Under construction..................)") NORMAL (L"Goodies menu:") LIST_ITEM (L"• @@Difference of two proportions@") NORMAL (L"For a selected Table:") LIST_ITEM (L"• @@Logistic regression@") NORMAL (L"For more sophisticated techniques, see:") LIST_ITEM (L"• @@Principal component analysis@") LIST_ITEM (L"• @@Multidimensional scaling@") LIST_ITEM (L"• @@Discriminant analysis@") MAN_END MAN_BEGIN (L"Difference of two proportions", L"ppgb", 20090717) INTRO (L"This page explains how you compute the significance of a difference between two proportions " "with a %\\ci^2 (chi-square) test.") ENTRY (L"1. Example of normal use") NORMAL (L"Suppose that you are interested in proving that for a certain experimental participant Task B is easier than Task A." "You let the participant perform Task A 110 times, and she turns out to perform this task correctly 71 times. " "You also let her perform Task B 120 times, and she performs this task correctly 93 times. "
"of a sampled signal.") ENTRY (L"Example") NORMAL (L"With a sampling frequency of 10 kHz, a sine wave with a frequency of 3 kHz " "receives the same representation as a sine wave with a frequency of 7 kHz, " "13 kHz, or 17 kHz, and so on. If the sampled signal is meant to represent a " "continuous spectral range starting at 0 Hz " "(which is the most common case for speech recordings), " "all these tones are likely to be interpreted as 3 kHz tones after sampling.") NORMAL (L"To remedy this unwanted situation, the signal is usually low-pass filtered " "with a cut-off frequency just below 5 kHz, prior to sampling.") MAN_END MAN_BEGIN (L"Click", L"ppgb", 19960913) INTRO (L"One of the ways to control @Editors.") ENTRY (L"How to click") LIST_ITEM (L"1. Position the mouse above the object that you want to click.") LIST_ITEM (L"2. Press and release the (left) mouse button.") NORMAL (L"See also @@Shift-click@.") ENTRY (L"Usage in the Praat program") NORMAL (L"Clicking on an object is used for selecting this object while deselecting " "all previously selected objects; clicking is also used for moving a cursor hair.") MAN_END MAN_BEGIN (L"constant extrapolation", L"ppgb", 20080425) INTRO (L"- the interpretation of values in tiers before the first point or after the last point.") ENTRY (L"Example") NORMAL (L"The following is a @PitchTier with three points:") SCRIPT (4, 3, L"" "Create PitchTier: \"tier\", 0, 0.5\n" "Add point: 0.10, 170\n" "Add point: 0.20, 180\n"
ENTRY (L"Algorithm") NORMAL (L"We start by determining the @@Sound: To Covariance (channels)...|covariance@ of the selected sound. " "Next a @@Principal component analysis|principal component analysis@ determines the eigenvalues and eigenvectors of the covariance matrix. The settings of the variance fraction to keep determines how many eigenvalues and eigenvectors we use for the whitening. This number, %p, will also be equal to the number of channels of the resulting whitened sound.") NORMAL (L"In mathematical terms. For an %n-channel sound, if #E is the matrix with the eigenvectors and #D=diag (%d__1_, %d__2_,..., %d__n_) is the diagonal matrix with the " "eigenvalues of the covariance matrix, then the whitening matrix is #W = #E#D^^-1/2^#E\\'p, where #D^^-1/2^=diag (%d__1_^^-1/2^, ..., %d__p_^^-1/2^, 0, ..., 0). Only the %p most important eigenvalues have been retained, where %p was determined as the smallest integer for which (%d__1_+%d__2_+...%d__%p_)/(%d__1_+%d__2_+ ... + %d__%n_) >= %%varianceFractionToKeep%.") NORMAL (L"The resulting sound samples of the whitened sound, %w__%ij_, are then calculated from the samples of the " "original sound, %s__%kj_, as %w__%ij_ = \\Si__%k_ W__%ik_ %s__%kj_, where 1 \\<_ %i \\<_%p, 1 \\<_ %j \\<_ numberOfSamples and 1 \\<_ %k \\<_ %n.") MAN_END MAN_BEGIN (L"blind source separation", L"djmw", 20120907) INTRO (L"Blind source separation (BSS) is a technique for estimating individual source components from their mixtures " "at multiple sensors. It is called %blind because we don't use any other information besides the mixtures. ") NORMAL (L"For example, imagine a room with a number of persons present and a number of microphones for recording. " "When one or more persons are speaking at the same time, each microphone registers a different %mixture of individual speaker's audio signals. It is the task of BSS to untangle these mixtures into their sources, i.e. the individual speaker's audio signals. " "In general, this is a difficult problem because of several complicating factors. ") LIST_ITEM (L"\\bu Different locations of speakers and microphones in the room: the individual speaker's audio signals do not reach all microphones at the same time. ") LIST_ITEM (L"\\bu Room acoustics: the signal that reaches a microphone is composed of the signal that %directly travels to the microphone and parts that come from room reverberations and echos. ") LIST_ITEM (L"\\bu Varying distances to microphones: one or more speakers might be moving. This makes the mixing time dependent.") NORMAL (L"If the number of sensors is %larger than the number of sources we speak of an %overdetermined problem. If the number of sensors and the number of sources are %equal we speak of a %determined problem. The more difficult problem is the %underdetermined one where the number of sensors is %less than the number of sources.") ENTRY (L"Typology of mixtures") NORMAL (L"In general two different types of mixtures are considered in the literature: %%instantaneous " "mixtures% and %%convolutive mixtures%. ") TAG (L"%%Instantaneous mixtures%") DEFINITION (L"where the mixing is instantaneous, corresponds to the model #Y=#A\\.c#X. In this model #Y is a matrix with the recorded microphone sounds, #A is a so-called " "%%mixing matrix% and #X is a matrix with the independent source signals. " "Essentially the model says that the signal that each microphone records is a (possibly different) linear combination of the %same source signals. " "If we would know the mixing matrix #A we could easily solve the model above for #X by standard means. " "However, in general we don't know #A and #X and there are an infinite number of possible decompositions for #Y. The problem is however solvable by making some (mild) assumptions about #A and #X. ") TAG (L"%%Convolutive mixtures%") DEFINITION (L"are mixtures where the mixing is of convolutive nature, i.e. the model is ") FORMULA (L"%%y__i_ (n)% = \\Si__%j_^^%d^\\Si__%\\ta_^^M__%ij_-1^ %%h__ij_(\\ta)x__j_(n-\\ta) + N__i_(n)%, for %i=1..m.")
FORMULA (L"+ \\su__%i=1..%N_ %bandWidthCost\\.c%B__3%i_/%F__3%i_ +") FORMULA (L"+ \\su__%i=1..%N-1_ %transitionCost\\.c\\|flog__2_(%F__3%i_/%F__3,%i+1_)\\|f") NORMAL (L"Analogous formulas compute the cost of track 1 and track 2. " "The procedure will assign those candidates to the three tracks that minimize " "the sum of three track costs.") MAN_END MAN_BEGIN (L"FormantGrid", L"ppgb", 20080427) INTRO (L"One of the @@types of objects@ in Praat.") NORMAL (L"A FormantGrid object represents spectral structure as a function of time: a %%formant contour%. " "Unlike the evenly sampled @Formant object, it consists of a number of formant tiers and bandwidth tiers, " "each of which contains a number of formant or bandwidth %points (or %targets), sorted by time.") NORMAL (L"For examples, see @@Source-filter synthesis@.") ENTRY (L"FormantGrid commands") NORMAL (L"Creation:") LIST_ITEM (L"From scratch:") LIST_ITEM (L"\\bu @@Create FormantGrid...") LIST_ITEM (L"\\bu @@FormantGrid: Add formant point...") LIST_ITEM (L"\\bu @@FormantGrid: Add bandwidth point...") LIST_ITEM (L"Copy from another object:") LIST_ITEM (L"\\bu @@Formant: Down to FormantGrid@: trivial copying of frames to points.") //NORMAL (L"Conversion:") //LIST_ITEM (L"\\bu @@FormantGrid: Down to PointProcess@: copy times.") NORMAL (L"Synthesis:") LIST_ITEM (L"\\bu @@Sound & FormantGrid: Filter@: see @@Source-filter synthesis@.") //NORMAL (L"Queries:") //LIST_ITEM (L"\\bu @@Get low index from time...") //LIST_ITEM (L"\\bu @@Get high index from time...") //LIST_ITEM (L"\\bu @@Get nearest index from time...") NORMAL (L"Modification:") LIST_ITEM (L"\\bu @@FormantGrid: Add formant point...")
NORMAL (U"• The text \"\", which is the contents of the interval on the second tier. This text is empty.") NORMAL (U"• The text \"TextTier\", which designates the type of the third tier (a point tier this time).") NORMAL (U"• The text \"bell\", which is the name you gave to the third tier.") NORMAL (U"• The real number 0, which is the starting time (in seconds) of the third tier.") NORMAL (U"• The real number 2.3, which is the end time (in seconds) of the third tier.") NORMAL (U"• The integer number 0, which is the number of points in the third tier. " "A newly created point tier contains no points yet.") NORMAL (U"You will have noticed that the file contains a lot of stuff that was not mentioned in this list. " "All of that stuff are %comments that are present only to help the human reader understand the contents " "of the file: labels for all tiers (such as $$item [2]$), labels for the starting times of the TextGrid or " "a tier or an interval ($xmin), labels for end times ($xmax); labels for the number of tiers or " "intervals or points ($size), and little numbers enclosed in square brackets to tell the reader where they are ($$[2]$).") NORMAL (U"When reading a text file containing a TextGrid (or any other object), Praat totally ignores these comments, " "so if you e.g. replace $$[2]$ with $$[4]$ somewhere, Praat will not notice. Praat will consider as data only the following " "types of information in the file:") LIST_ITEM (U"• free-standing numbers, such as $$0$ and $$2.3$ above, but not $$[1]$ or $$[3]$;") LIST_ITEM (U"• free-standing text enclosed within double quotes, such as $$\"TextGrid\"$ and $$\"\"$ above;") LIST_ITEM (U"• free-standing flags, such as $$<exists>$ above (this is the only flag that appears in TextGrid files; " "see @ExperimentMFC for a much broader use of flags).") NORMAL (U"In this list, \"free-standing\" means that the number, text or flag is preceded by the beginning of the file, " "the beginning of a line, or a space, and that it is followed by the end of the file, the end of a line, or a space.") ENTRY (U"2. The shortest text format of a minimal TextGrid") NORMAL (U"From the description above of what in the file is considered data (namely free-standing numbers, texts and flags) " "and what is not (namely everything else), you can conclude that Praat will be able to read a much shorter version of " "the file above. And indeed, when you choose @@Save as short text file...@ from the #New menu, your file will consist of " "the following text, " "with every piece of data alone on a separate line:") CODE (U"File type = \"ooTextFile\"") CODE (U"Object class = \"TextGrid\"") CODE (U"") CODE (U"0")
* * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "ManPagesM.h" void manual_soundFiles_init (ManPages me); void manual_soundFiles_init (ManPages me) { MAN_BEGIN (U"Sound files", U"ppgb", 20070602) INTRO (U"This tutorial describes the sound files that you can read " "and write with Praat. It assumes you are familiar with the @Intro.") NORMAL (U"You can read this tutorial sequentially with the help of the \"< 1\" and \"1 >\" buttons.") LIST_ITEM (U"1. @@Sound files 1. General structure|General structure@") LIST_ITEM1 (U"1.1. @@Sound files 1.1. Sampling|Sampling@ (sampling frequency)") LIST_ITEM1 (U"1.2. @@Sound files 1.2. Quantization|Quantization@ (linear, endian, μ-law, A-law)") LIST_ITEM1 (U"1.3. @@Sound files 1.3. Channels|Channels@ (mono, stereo)") LIST_ITEM1 (U"1.4. @@Sound files 1.4. The header|The header@") LIST_ITEM1 (U"1.5. @@Sound files 1.5. Size|Size@") LIST_ITEM1 (U"1.6. @@Sound files 1.6. Compression|Compression@") LIST_ITEM (U"2. @@Sound files 2. File types|File types@") LIST_ITEM1 (U"2.1. @@Sound files 2.1. WAV files|WAV files@") LIST_ITEM1 (U"2.2. @@Sound files 2.2. AIFF files|AIFF files@") LIST_ITEM1 (U"2.3. @@Sound files 2.3. AIFC files|AIFC files@") LIST_ITEM1 (U"2.4. @@Sound files 2.4. NeXT/Sun (.au) files|NeXT/Sun (.au) files@") LIST_ITEM1 (U"2.5. @@Sound files 2.5. NIST files|NIST files@") LIST_ITEM1 (U"2.6. @@Sound files 2.6. FLAC files|FLAC files@") LIST_ITEM1 (U"2.7. @@Sound files 2.7. MP3 files|MP3 files@") LIST_ITEM (U"3. @@Sound files 3. Files that Praat can read|Files that Praat can read@")
"For the CGN, this is empty.") TAG (L"##Allow all words ending in") DEFINITION (L"a space-separated list of suffixes that make a word correct even if not in the lexicon. " "For the CGN, this is \"-\", since the first word in %%verzekerings- en bankwezen% should be ignored by the spelling checker.") MAN_END MAN_BEGIN (L"TextGrid", L"ppgb", 20110128) INTRO (L"One of the @@types of objects@ in Praat, used for %annotation (segmentation and labelling). " "For tutorial information, see @@Intro 7. Annotation@.") ENTRY (L"Description") NORMAL (L"A #TextGrid object consists of a number of %tiers. There are two kinds of tiers: " "an %%interval tier% is a connected sequence of labelled intervals, with %boundaries in between. " "A %%point tier% is a sequence of labelled points.") ENTRY (L"How to create a TextGrid") TAG (L"From scratch:") LIST_ITEM (L"@@Sound: To TextGrid...@ (takes the time domain from the Sound)") LIST_ITEM (L"@@LongSound: To TextGrid...@ (takes the time domain from the LongSound)") LIST_ITEM (L"@@PointProcess: To TextGrid...@ (takes the time domain from the PointProcess)") LIST_ITEM (L"@@PointProcess: To TextGrid (vuv)...@ (labels voiced and unvoiced intervals)") LIST_ITEM (L"@@Create TextGrid...@") TAG (L"From merging existing TextGrids with each other:") LIST_ITEM (L"@@TextGrids: Merge@") ENTRY (L"How to edit a TextGrid") NORMAL (L"You select a TextGrid alone or together with a @Sound or @LongSound, and click ##View & Edit#. " "A @TextGridEditor will appear on your screen, containing the TextGrid " "and an optional copy of the Sound or LongSound.") ENTRY (L"How to draw a TextGrid") TAG (L"You can draw a TextGrid to the @@Picture window@ with:") LIST_ITEM (L"##TextGrid: Draw...") LIST_ITEM (L"##TextGrid & Sound: Draw...") LIST_ITEM (L"##TextGrid & Pitch: Draw...")
* You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "ManPagesM.h" void manual_Manual_init (ManPages me); void manual_Manual_init (ManPages me) { MAN_BEGIN (L"Manual", L"ppgb", 20110101) INTRO (L"The documentation system for the Praat program.") NORMAL (L"You will get a manual window every time you choose anything from a #Help menu or press a #Help button.") ENTRY (L"How to find what you are looking for") NORMAL (L"You can navigate the manual in several ways:") LIST_ITEM (L"\\bu To go to the Intro, use the #Home button.") LIST_ITEM (L"\\bu To go to the information behind a %link (a piece of blue text), just click on it.") LIST_ITEM (L"\\bu To go forward and backward through a tutorial with numbered pages, use ##1 ># and ##< 1#.") LIST_ITEM (L"\\bu To %revisit previous pages, use the #< and #> buttons.") LIST_ITEM (L"\\bu To browse %alphabetically, use the horizontal scroll bar and the buttons " "named ##< 1# and ##1 >#, or the ##Search for page (list)...# command in the ##Go to# menu.") LIST_ITEM (L"\\bu To find a page with a %%known title%, use the ##Search for page...# command.") NORMAL (L"The fastest way to find what you want is usually the #Search button.") ENTRY (L"Search") NORMAL (L"In the text field after the Search button, you can type strings, separated by spaces. " "When you press the #Return (or #Enter) key, or click the #Search button, " "all manual pages are searched for the combination of strings that you typed. " "The titles of the 20 best matching pages are displayed as links.") NORMAL (L"##Example:# to know how to create a pitch contour from a sound, type") CODE (L"sou pit") NORMAL (L"and press #Return. The best matches should appear on top. These should include "