Time resolution and quantization

These para­me­ters are saved in ‘-se’ set­tings files asso­ci­at­ed with gram­mars and data. They are expressed in milliseconds.

Time res­o­lu­tion is the min­i­mum dif­fer­ence of dates between two events sent to a MIDI device or writ­ten on a Csound score. By default is is set to 10 ms but in some cas­es it may be nec­es­sary to dimin­ish this val­ue. This is already a type of quan­ti­za­tion because sev­er­al events occur­ing with time off­sets low­er than the res­o­lu­tion will be sent or writ­ten with iden­ti­cal dates.

Time quan­ti­za­tion is an option allow­ing the poly­met­ric expan­sion algo­rithm to reduce the size of the phase dia­gram con­struct­ed to frame out the sym­bol­ic tim­ing of events — in fact, rela­tions of prece­dence or simul­tane­ity. Read page Complex ratios in poly­met­ric expres­sions for a detailed expla­na­tion. In brief, it is a method for sav­ing mem­o­ry space and speed­ing up the computation.

In many cas­es, the pro­duc­tion of a piece would sim­ply be impos­si­ble with a quan­ti­za­tion reduced to the time res­o­lu­tion. This is due to the fact that all Bol Processor time cal­cu­la­tions are per­formed with inte­ger ratios to reach the best accu­ra­cy com­pat­i­ble with lim­i­ta­tions of the machine. However, for instance, stor­ing two notes dis­tant by a few mil­lisec­onds requires two dis­tinct columns on the phase dia­gram although (in gen­er­al) this dif­fer­nce is not audible.

Even though it is pos­si­ble to set the time quan­ti­za­tion to a val­ue low­er than the time res­o­lu­tion, it would increase the size of the phase dia­gram (i.e. mem­o­ry and com­pu­ta­tion time) with no effect on the out­put because the time res­o­lu­tion is the low­est val­ue of the actu­al quan­ti­za­tion. This incon­sis­ten­cy is sig­naled on the Data or Grammar window:

Randomisation of dates

The Bol Processor has a per­for­mance tool notat­ed “_rndtime(x)” for ran­dom­iz­ing the dates of events, in which ‘x’ is half the range in mil­lisec­onds. For instance, fol­low­ing “_rndtime(100)”, all dates will be recal­cu­lat­ed with­in a ± 100 ms range.

Randomisation is often used by poor com­po­si­tion devices to “human­ize” computer-made pieces. This is a ridicu­lous approach based on the belief that human inter­preters must be will­ing­ly impre­cise in their per­for­mance… or that music is implic­it­ly a “fuzzy” construction.

The _rndtime tool may oth­er­wise be used to com­pen­sate unwant­ed effects when sev­er­al dig­i­tal­ly syn­the­sized sounds are super­posed, as explained on page Importing MusicXML scores. In this case, the range is very small and the val­ue of the time res­o­lu­tion may need to be adjust­ed accord­ing­ly. For instance, “_rndtime(20)” should be asso­ci­at­ed with a time res­o­lu­tion of 1 mil­lisec­ond so that 40 dif­fer­ent val­ues will be ran­dom­ly picked up in a ± 20 ms range. Note that this has no inci­dence on the time quan­ti­za­tion.

The effect of a ± 20 ms time ran­domi­sa­tion can be noticed by care­ful­ly lis­ten­ing to the fol­low­ing two examples:

Non-randomized begin­ning of “Les Ombres Errantes”
20 mil­lisec­ond ran­dom­ized begin­ning of “Les Ombres Errantes”

Leave a Reply

Your email address will not be published. Required fields are marked *