Neatbo.

Inspect local torrent identities and MIDI note timelines

Read an original torrent info-hash and declared piece layout, or query MIDI notes through every tempo change. Review complete local reports and supported limits.

Choose the report that answers your task

Select one .torrent in the metainfo tool, or one .mid/.midi in the timeline tool. The built-in examples are real small binary files; using an example does not load or upload your own file. Processing stays in the browser.

Run after selecting the original. Read the summary, inspect the bounded table, then save every report you need. Copy uses the visible preview, so choose downloads for complete data.

Original input and complete delivery
TaskOriginal inputDownloads and receiver check
Torrent identity/layoutBEP3 v1 .torrentMetainfo JSON, file-layout CSV, magnet TXT; compare info-hash in a client
MIDI note querySMF 0/1 PPQN .mid/.midiTimeline JSON and all-note CSV; compare tick and second spans in the producer

Compare the exact original torrent identity

The demo declares Demo/a.txt with 3 bytes, Demo/b.bin with 5 bytes, and an empty Demo/empty.txt. Offsets are 0, 3 and 8; the four-byte pieces are 0 and 1. The first file occupies piece 0, the second touches pieces 0–1, and the empty file has null piece bounds. These are declared lengths, not examined file contents.

The original info-hash is 68493278a4cf442fb656c0e6ee7626e54294e6e6. A client comparison should use that value. Hashing only the listed piece hashes or all bytes of the .torrent answers a different question. The report also gives infoStart/infoEnd and an info SHA-256 for reproducing the exact byte-span calculation.

Save torrent-metainfo.json for complete paths and all piece hashes. The CSV adds inclusive firstPiece/lastPiece, with blank values for empty files. Formula-like paths gain an apostrophe only in CSV; JSON retains original strings. The magnet text includes identity and display name only. No tracker parameters are added and no network contact tests availability.

Query MIDI with the complete tempo map

The demo uses 480 PPQN. At tick 0 the tempo is 500,000 microseconds per quarter note; at tick 480 it changes to 1,000,000. Tick 480 therefore occurs at 0.5 seconds, tick 960 at 1.5 seconds and tick 1,200 at 2 seconds. Track 1 contains pitch 60 from 0 to 1.5 seconds, then pitch 64 from 1.5 to 2 seconds, both under program 7.

The example query is [0.25, 1) seconds, track 1 and channel 0. It selects pitch 60. Changing the range to [0.75, 1.75) selects both notes because both spans overlap the range. A note ending exactly at the start or beginning exactly at the end does not overlap. Zero-length notes instead use their start point.

Clear a filter field to remove that constraint. Track and channel values use zero-based numbering; a device UI showing channel 1 usually corresponds to channel 0 here. Pure track/channel queries work without entering seconds. JSON and CSV still contain every note once with selected true/false, and JSON retains every original event and tempo point.

Review note-state warnings before using durations

Durations describe note-on to key-release. Repeated openings of the same pitch on a track/channel close FIFO; a velocity-zero note-on is a closing event. A closing event without an opening produces a warning and no invented note. An opening left at track end closes at that track end and retains an explicit warning.

Pedal controller CC64 remains an event and does not extend spans. Program state is tracked separately for each track/channel. Different tempo values at the same tick across tracks reject instead of choosing a track silently; identical tempo declarations collapse. These policies do not establish audible duration or a rendered score.

Recover within the documented supported formats

Torrent input is bounded to 4 MiB, 5,000 files, 100,000 pieces/values and depth 64. Each UTF-8 path component is at most 4,096 bytes and repeated complete paths total at most 8 MiB. Paths with traversal, separators, colon, controls, trailing dot/space, repeats or file-directory conflicts reject. v2/hybrid and file attributes are unsupported.

MIDI input is bounded to 5 MiB, 64 tracks, 50,000 events and 25,000 notes, with track ticks within 32 bits. Use SMF 0/1 PPQN; type 2, SMPTE, SYX or malformed chunks must be re-exported in a supported format. Fix conflicting tempos in the producer. Do not remove meaningful events merely to make a file parse.

All successful report downloads combined fit within 24 MiB per tool; an oversized report rejects even if individual input/count limits fit. Tables show at most 200 rows, and text/copy summarize 20. Long torrent table cells show 240 characters, while complete paths remain in downloads. Keep the original and reduce a supported input deliberately before retrying.

  • Keep original and complete downloads together.
  • Compare client identity or producer timing before the next task.
  • Read explicit warnings and supported formats before using a report.

References

Tools in this category

Expand a tool to see its steps, options and supported formats, then open its workspace.

Torrent metainfo identity and layoutDerive the original v1 info-hash, declared file offsets and inclusive piece ranges from a local .torrent, then save the complete layout and a local magnet string.

Compare a torrent identity with your client and see how its declared files share pieces. The original info bytes determine the identity; no torrent client or tracker connection is needed.

Steps

  1. Select one original BEP3 v1 .torrent.
  2. Compare the info-hash, total length and declared file layout; a piece may span two files.
  3. Download complete JSON, CSV and magnet text and compare the identity in your torrent client.

Capabilities and limits

  • One .torrent file up to 4 MiB. Up to 5,000 declared files, 100,000 piece hashes, 100,000 bencode values and nesting depth 64. Each UTF-8 path component, including the root name, is at most 4,096 bytes; repeated complete paths total at most 8 MiB. Lengths and cumulative offsets must be safe integers. Piece length is positive and at most 16 MiB. Canonical integer tokens are at most 32 ASCII bytes; a multifile path has at most 64 components after the root.
  • Accepts strictly encoded BEP3 v1 dictionaries: canonical integer and byte-length tokens, raw-byte sorted unique keys, valid UTF-8 names, and exactly one of length or files. The declared hash count must match the concatenated lengths. v2/hybrid metainfo, file attributes and padding extensions reject.
  • Unsafe or ambiguous paths reject: empty components, dot traversal, slash/backslash, colon, control bytes, trailing dot/space, repeated full paths and a file also used as a parent directory. The layout is metadata only and is never written to the declared paths.
  • JSON, CSV and magnet downloads combined are limited to 24 MiB. If combined budgets are exceeded, the whole result rejects. The table previews 200 files and the first 240 characters per cell; text and copy show a summary plus 20 files. All successful downloads retain complete paths and every piece hash. Formula-like CSV paths get a protective apostrophe; JSON preserves originals.
  • The info-hash is SHA-1 of the exact original info byte span, not of the pieces field or whole .torrent. Piece ranges are zero-based and inclusive; empty files have null ranges. Contents, signature, trust, tracker availability and peers are not checked. Magnet text contains only xt and dn and makes no network request.
Open Torrent metainfo identity and layout →
MIDI note timeline queryConvert local SMF 0/1 ticks through the full tempo map into note seconds, then query a time range, track and channel and save every original event and note.

Find the notes overlapping a specific second in an exported MIDI file. Changes of tempo affect every later tick, so the report integrates the complete global tempo map before applying your filters.

Steps

  1. Select an original SMF 0/1 PPQN MIDI file.
  2. Optionally set start/end seconds, track or channel; leave a field blank to keep it unconstrained.
  3. Review selected note spans and warnings, then save the complete JSON and all-note CSV.

Available options

Start seconds (blank: no lower bound)
Enter as needed

Matches a note span that overlaps the range; start is inclusive.

End seconds (blank: no upper bound)
Enter as needed

End is exclusive and must be after start when supplied.

Track (0-based; blank: all)
Enter as needed

Use an existing track index, not a MIDI channel number.

Channel (0-based; blank: all)
Enter as needed

0–15; channel labels 1–16 in other software correspond to these minus one.

Capabilities and limits

  • One .mid or .midi up to 5 MiB; SMF 0/1 with a positive PPQN division, at most 64 tracks, 50,000 events and 25,000 notes. Cumulative ticks in each track are at most 4,294,967,295. Type 2, SMPTE/drop-frame division, SYX dumps, truncated chunks, invalid running status and missing final end-of-track reject.
  • All tempo changes contribute to one global tick-to-second map, with a default 500,000 microseconds per quarter note. Different tempos at one tick across different tracks reject; identical changes collapse. Multiple changes within the same track and tick use the last source event.
  • Time queries use the half-open interval [start, end). Notes are selected when their key-release spans overlap that interval; zero-length notes use their start point. Blank start/end/track/channel fields impose no corresponding constraint. Track and channel numbers start at 0; track indices must exist. Filters never remove events or duplicate notes in downloads: each complete note carries selected true/false.
  • Repeated pitch on one track/channel closes FIFO. Velocity-zero note-on means note-off. Unmatched note-offs produce a warning and no note; unclosed note-ons end at their own track end with a warning. CC64 is preserved as an event and does not extend note duration. Program state is scoped to each track/channel; no sound synthesis, score rendering or acoustic duration is inferred.
  • Complete JSON and CSV combined are limited to 24 MiB and reject atomically if exceeded. The table shows the first 200 selected notes; text and copy show the summary and first 20 selected notes. Downloads retain all source events, track totals, tempo points, notes, warning details and filter flags. No MIDI device or network service is accessed.
Open MIDI note timeline query →

Tools used in this article

Torrent metainfo identity and layout →Derive the original v1 info-hash, declared file offsets and inclusive piece ranges from a local .torrent, then save the complete layout and a local magnet string.MIDI note timeline query →Convert local SMF 0/1 ticks through the full tempo map into note seconds, then query a time range, track and channel and save every original event and note.