Conversions¶
Functions that perform the conversion of values from one range to another range.
Functions in this category¶
- midiToHz(): Converts a midi note value to frequency in Hertz.
- midiToTranspo(): Converts a midi note value to transposition factor (central key = 60).
- sampsToSec(): Returns the duration in seconds equivalent to the number of samples given as an argument.
- secToSamps(): Returns the number of samples equivalent to the duration in seconds given as an argument.
- beatToDur(): Converts a beat value (multiplier of a quarter note) to a duration in seconds.
- linToCosCurve(): Creates a cosinus interpolated curve from a list of points.
- rescale(): Converts values from an input range to an output range.
- floatmap(): Converts values from a 0-1 range to an output range.
- distanceToSegment(): Find the distance from a point to a line or line segment.
- reducePoints(): Douglas-Peucker curve reduction algorithm.
midiToHz¶
- midiToHz(x)¶
- Converts a midi note value to frequency in Hertz. - Args
- x: int or float
- Midi note. x can be a number, a list or a tuple, otherwise the function returns None. 
 
 - >>> a = (48, 60, 62, 67) >>> b = midiToHz(a) >>> print(b) (130.8127826503271, 261.62556530066814, 293.66476791748823, 391.9954359818656) >>> a = [48, 60, 62, 67] >>> b = midiToHz(a) >>> print(b) [130.8127826503271, 261.62556530066814, 293.66476791748823, 391.9954359818656] >>> b = midiToHz(60.0) >>> print(b) 261.625565301 
midiToTranspo¶
- midiToTranspo(x)¶
- Converts a midi note value to transposition factor (central key = 60). - Args
- x: int or float
- Midi note. x can be a number, a list or a tuple, otherwise the function returns None. 
 
 - >>> a = (48, 60, 62, 67) >>> b = midiToTranspo(a) >>> print(b) (0.49999999999997335, 1.0, 1.122462048309383, 1.4983070768767281) >>> a = [48, 60, 62, 67] >>> b = midiToTranspo(a) >>> print(b) [0.49999999999997335, 1.0, 1.122462048309383, 1.4983070768767281] >>> b = midiToTranspo(60.0) >>> print(b) 1.0 
sampsToSec¶
- sampsToSec(x)¶
- Returns the duration in seconds equivalent to the number of samples given as an argument. - Args
- x: int or float
- Duration in samples. x can be a number, a list or a tuple, otherwise function returns None. 
 
 - >>> s = Server().boot() >>> a = (64, 128, 256) >>> b = sampsToSec(a) >>> print(b) (0.0014512471655328798, 0.0029024943310657597, 0.0058049886621315194) >>> a = [64, 128, 256] >>> b = sampsToSec(a) >>> print(b) [0.0014512471655328798, 0.0029024943310657597, 0.0058049886621315194] >>> b = sampsToSec(8192) >>> print(b) 0.185759637188 
secToSamps¶
- secToSamps(x)¶
- Returns the number of samples equivalent to the duration in seconds given as an argument. - Args
- x: int or float
- Duration in seconds. x can be a number, a list or a tuple, otherwise function returns None. 
 
 - >>> s = Server().boot() >>> a = (0.1, 0.25, 0.5, 1) >>> b = secToSamps(a) >>> print(b) (4410, 11025, 22050, 44100) >>> a = [0.1, 0.25, 0.5, 1] >>> b = secToSamps(a) >>> print(b) [4410, 11025, 22050, 44100] >>> b = secToSamps(2.5) >>> print(b) 110250 
beatToDur¶
- beatToDur(beat, bpm=120)[source]¶
- Converts a beat value (multiplier of a quarter note) to a duration in seconds. - Args
- beat: float
- Beat value, in multiplier of the quarter note, to convert, according to the BPM value, which gives the duration of the quarter note. For example, to retrieve the duration of the sixteenth note, for a BPM of 90, we would write beatToDur(1/4, 90). beat can be a number, a list or a tuple. 
- bpm: float, optional
- The beat-per-minute value, which gives the duration of the quarter note. Defaults to 120. bpm can be a number, a list or a tuple. 
 
 
linToCosCurve¶
- linToCosCurve(data, yrange=[0, 1], totaldur=1, points=1024, log=False)¶
- Creates a cosinus interpolated curve from a list of points. - A point is a tuple (or a list) of two floats, time and value. - Args
- data: list of points
- Set of points between which will be inserted interpolated segments. 
- yrange: list of 2 floats, optional
- Minimum and maximum values on the Y axis. Defaults to [0., 1.]. 
- totaldur: float, optional
- X axis duration. Defaults to 1. 
- points: int, optional
- Number of points in the output list. Defaults to 1024. 
- log: boolean, optional
- Set this value to True if the Y axis has a logarithmic scale. Defaults to False 
 
 - >>> s = Server().boot() >>> a = [(0,0), (0.25, 1), (0.33, 1), (1,0)] >>> b = linToCosCurve(a, yrange=[0, 1], totaldur=1, points=8192) >>> t = DataTable(size=len(b), init=[x[1] for x in b]) >>> t.view() 
rescale¶
- rescale(data, xmin=0.0, xmax=1.0, ymin=0.0, ymax=1.0, xlog=False, ylog=False)¶
- Converts values from an input range to an output range. - This function takes data in the range xmin - xmax and returns corresponding values in the range ymin - ymax. - data can be either a number or a list. Return value is of the same type as data with all values rescaled. - Argss
- data: float or list of floats
- Values to convert. 
- xmin: float, optional
- Minimum value of the input range. 
- xmax: float, optional
- Maximum value of the input range. 
- ymin: float, optional
- Minimum value of the output range. 
- ymax: float, optional
- Maximum value of the output range. 
- xlog: boolean, optional
- Set this argument to True if the input range has a logarithmic scaling. 
- ylog: boolean, optional
- Set this argument to True if the output range has a logarithmic scaling. 
 
 
floatmap¶
- floatmap(x, min=0.0, max=1.0, exp=1.0)¶
- Converts values from a 0-1 range to an output range. - This function takes data in the range 0 - 1 and returns corresponding values in the range min - max. - Argss
- x: float
- Value to convert, in the range 0 to 1. 
- min: float, optional
- Minimum value of the output range. Defaults to 0. 
- max: float, optional
- Maximum value of the output range. Defaults to 1. 
- exp: float, optional
- Power factor (1 (default) is linear, les than 1 is logarithmic, greter than 1 is exponential). 
 
 - >>> a = 0.5 >>> b = floatmap(a, 0, 1, 4) >>> print(b) 0.0625 
distanceToSegment¶
- distanceToSegment(p, p1, p2, xmin=0.0, xmax=1.0, ymin=0.0, ymax=1.0, xlog=False, ylog=False)¶
- Find the distance from a point to a line or line segment. - This function returns the shortest distance from a point to a line segment normalized between 0 and 1. - A point is a tuple (or a list) of two floats, time and value. p is the point for which to find the distance from line p1 to p2. - Args
- p: list or tuple
- Point for which to find the distance. 
- p1: list or tuple
- First point of the segment. 
- p2: list or tuple
- Second point of the segment. 
- xmin: float, optional
- Minimum value on the X axis. 
- xmax: float, optional
- Maximum value on the X axis. 
- ymin: float, optional
- Minimum value on the Y axis. 
- ymax: float, optional
- Maximum value on the Y axis. 
- xlog: boolean, optional
- Set this argument to True if X axis has a logarithmic scaling. 
- ylog: boolean, optional
- Set this argument to True if Y axis has a logarithmic scaling. 
 
 
reducePoints¶
- reducePoints(pointlist, tolerance=0.02)¶
- Douglas-Peucker curve reduction algorithm. - This function receives a list of points as input and returns a simplified list by eliminating redundancies. - A point is a tuple (or a list) of two floats, time and value. A list of points looks like: - [ (0, 0), (0.1, 0.7), (0.2, 0.5), … ] - Args
- pointlist: list of lists or list of tuples
- List of points (time, value) to filter. 
- tolerance: float, optional
- Normalized distance threshold under which a point is excluded from the list. Defaults to 0.02.