beatmachine.loader module

The loader module contains functions for loading beats from song files.

beatmachine.loader.load_beats_by_bpm(fp: Union[str, BinaryIO], bpm: int) → Tuple[int, int, Generator[numpy.ndarray, None, None]]

A generator that loads beats strictly by a given BPM assuming no fluctuations in tempo. Significantly faster than load_beats_by_signal but far less accurate, especially in live performances.

Parameters:
  • fp – Audio path or file-like object.
  • bpm – Song BPM.
Returns:

A generator yielding each beat as a numpy array with shape (samples, channels).

beatmachine.loader.load_beats_by_signal(fp: Union[str, BinaryIO], min_bpm: int = 60, max_bpm: int = 300, fps: int = 100) → Tuple[int, int, Generator[numpy.ndarray, None, None]]

A generator that loads beats based on audio data itself, handling variations in tempo.

Parameters:
  • fp – Audio path to or file-like object.
  • min_bpm – Minimum permissible BPM.
  • max_bpm – Maximum permissible BPM.
  • fps – Resolution to process beats at.
Returns:

A generator yielding each beat as a numpy array with shape (samples, channels).