• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Tatsh / smlab / 32615134396
100%

Build:
DEFAULT BRANCH: master
Ran 23 Aug 2026 03:24AM UTC
Jobs 3
Files 48
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Aug 2026 03:21AM UTC coverage: 97.768% (-2.1%) from 99.887%
32615134396

push

github

Tatsh
warp: fit one unbroken line, draw the grid over the audio, and say what is left

The tempi were read off stretches fitted independently, and that is wrong in a
way that made warping worse than not warping. Independent lines each pick their
own starting height, so every boundary silently carries a jump in phase, and a
tempo cannot jump. Reconstructing the grid from the tempi that were written out
therefore drifted away from the phase they were fitted to: on Feinak, 234 ms by
the end of the song, against a song whose beat actually returns to where it
started. Fitting one line that bends at those boundaries makes the fitted phase
and the phase the chart will have the same object, and the same song now lands
within 43 ms throughout with three sane segments instead of four wrong ones.

Reweighting that fit towards the furthest-out measurements, to chase the
smallest worst miss rather than the smallest total one, was implemented and
measured and made every case worse, so it is not here. What is left is reported
instead: a grid that still misses by more than the tolerance says the beat moves
in ways no tempo describes, which is worth knowing before placing warps.

Edits spliced into the audio are now called out during tempo detection, not only
when warping, because they say the grid is unreliable there and no warp will
repair it. Everything warp-related says it is experimental.

drift --image writes the whole song in eight second rows with the grid drawn
over the waveform: bars full height and numbered, beats ticked, and the audio
coloured by how much low end it carries so kicks stand out against the lines.
--offset places the grid where beat zero really is, which is worth supplying,
because the automatic answer comes from an onset envelope and an envelope peaks
after the attack rather than on it. This is what found the bug above.

warp becomes a package so the drawing sits beside the measuring, as chart and
writer already do.

Signed-off-by: Andrew Udvare <... (continued)

766 of 796 branches covered (96.23%)

Branch coverage included in aggregate %.

114 of 184 new or added lines in 4 files covered. (61.96%)

3745 of 3818 relevant lines covered (98.09%)

2.94 hits per line

Uncovered Changes

Lines Coverage ∆ File
64
25.86
smlab/warp/image.py
3
99.01
-0.99% smlab/main.py
3
94.67
smlab/warp/fit.py
Jobs
ID Job ID Ran Files Coverage
1 32615134396.1 23 Aug 2026 03:24AM UTC 48
97.77
GitHub Action Run
2 32615134396.2 23 Aug 2026 03:25AM UTC 48
97.77
GitHub Action Run
3 32615134396.3 23 Aug 2026 03:25AM UTC 48
97.77
GitHub Action Run
Source Files on build 32615134396
  • Tree
  • List 48
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32615134396
  • 19a8d8a5 on github
  • Prev Build on master (#32613210767)
  • Next Build on master (#32615524315)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc