summaryrefslogtreecommitdiff
path: root/animism-align/cli/commands/peaks
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/cli/commands/peaks')
-rw-r--r--animism-align/cli/commands/peaks/parse.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/animism-align/cli/commands/peaks/parse.py b/animism-align/cli/commands/peaks/parse.py
index dc9a0a2..117ecfd 100644
--- a/animism-align/cli/commands/peaks/parse.py
+++ b/animism-align/cli/commands/peaks/parse.py
@@ -4,8 +4,6 @@ Extract peaks from an MP3 file.
import click
-from app.site.builder import build_site, build_file
-
@click.command()
@click.option('-i', '--input', 'fp_in', required=False,
help='Input file')
@@ -24,16 +22,17 @@ def cli(ctx, fp_in):
print(f"Loading {fp_in}")
y, sr = librosa.load(fp_in, sr=None)
- sr_10 = math.floor(sr / 10)
- steps = math.floor(y.shape[0] / sr_10)
+ sr_10 = math.ceil(sr / 10)
+ steps = math.ceil(y.shape[0] / sr_10)
- peaks = numpy.ndarray(steps * 2)
+ peaks = numpy.ndarray(steps)
for i in range(steps):
offset = i * sr_10
slice = y[offset:offset + sr_10]
- peaks[i * 2] = float('%.3f' % slice.min())
- peaks[i * 2 + 1] = float('%.3f' % slice.max())
+ peak = max(abs(slice.min()), slice.max())
+ peaks[i] = float('%.3f' % peak)
+ # peaks[i * 2 + 1] = float('%.3f' % slice.max())
with open(os.path.join(app_cfg.DIR_DATA_STORE, 'peaks.json'), 'w') as fp_out:
json.dump(peaks.tolist(), fp_out, separators=(',', ':'))