hum.gen.diagnosis_sounds

Sounds that are meant to diagnose audio pipelines

class hum.gen.diagnosis_sounds.TimeSound(sr=44100, buf_size_frm=2048, amplitude=0.5, n_ums_bits=30)[source]
class hum.gen.diagnosis_sounds.WfGen(sr=44100, buf_size_frm=2048, amplitude=0.5)[source]
>>> wfgen = WfGen(sr=44100, buf_size_frm=2048, amplitude=0.5)
>>> lookup = wfgen.mk_lookup_table(freq=4400)
>>> assert len(lookup) == 10
>>> wfgen.mk_sine_wf(n_frm=5, freq=4400)
array([0.        , 0.293316  , 0.47508605, 0.47618432, 0.29619315])
hum.gen.diagnosis_sounds.mk_some_buzz_wf(sr=44100)[source]
>>> sr = 10
>>> wf = mk_some_buzz_wf(sr = sr)
>>> assert len(wf) == 5*sr
hum.gen.diagnosis_sounds.randint(low, high=None, size=None, dtype=int)

Return random integers from low (inclusive) to high (exclusive).

Return random integers from the “discrete uniform” distribution of the specified dtype in the “half-open” interval [low, high). If high is None (the default), then results are from [0, low).

Note

New code should use the integers method of a default_rng() instance instead; please see the random-quick-start.

Parameters
  • low (int or array-like of ints) – Lowest (signed) integers to be drawn from the distribution (unless high=None, in which case this parameter is one above the highest such integer).

  • high (int or array-like of ints, optional) – If provided, one above the largest (signed) integer to be drawn from the distribution (see above for behavior if high=None). If array-like, must contain integer values

  • size (int or tuple of ints, optional) – Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn. Default is None, in which case a single value is returned.

  • dtype (dtype, optional) –

    Desired dtype of the result. Byteorder must be native. The default value is int.

    New in version 1.11.0.

Returns

outsize-shaped array of random integers from the appropriate distribution, or a single such random int if size not provided.

Return type

int or ndarray of ints

See also

random_integers

similar to randint, only for the closed interval [low, high], and 1 is the lowest value if high is omitted.

Generator.integers

which should be used for new code.

Examples

>>> np.random.randint(2, size=10)
array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0]) # random
>>> np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

Generate a 2 x 4 array of ints between 0 and 4, inclusive:

>>> np.random.randint(5, size=(2, 4))
array([[4, 0, 2, 1], # random
       [3, 2, 2, 0]])

Generate a 1 x 3 array with 3 different upper bounds

>>> np.random.randint(1, [3, 5, 10])
array([2, 2, 9]) # random

Generate a 1 by 3 array with 3 different lower bounds

>>> np.random.randint([1, 5, 7], 10)
array([9, 8, 7]) # random

Generate a 2 by 4 array using broadcasting with dtype of uint8

>>> np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
array([[ 8,  6,  9,  7], # random
       [ 1, 16,  9, 12]], dtype=uint8)
hum.gen.diagnosis_sounds.ums_to_01_array(ums, n_ums_bits)[source]

Converts ums to an array with length n_ums_bits equivalent to a binary representation of ums assert all(ums_to_01_array(100,1) == [1, 1, 0, 0, 1, 0, 0])

hum.gen.diagnosis_sounds.utcnow_ms()[source]

Returns the current time in UTC in milliseconds

hum.gen.diagnosis_sounds.wf_with_timed_bleeps(n_samples=88200, bleep_loc=400, bleep_spec=100, sr=44100)[source]

Not sure this works as expected. Docs needed.

hum.gen.diagnosis_sounds.window(seq, n=2)[source]

Returns a sliding window (of width n) over data from the iterable s -> (s0,s1,…s[n-1]), (s1,s2,…,sn), …