# Intermod Desk > Evenly spaced is the worst possible plan. Two transmitters at fi and fj make third-order > products at `2·fi − fj` and `2·fj − fi`. Write an evenly spaced set as `f0 + k·d` and the > product becomes `f0 + (2k − j)·d` — a point on the same grid the channels are on, so > every product whose index falls in range sits EXACTLY on another channel. 8 channels 400 kHz apart put 124 of 224 > products on a channel — 55.4%. The step size does not help: the > grid moves with the spacing. **The fix is a theorem**: a set whose pairwise differences > are all distinct has 0 exact hits, and the only cost is > span — 10.2 MHz instead of 2.8 MHz, inside the same 24 MHz band. ## The one thing to know **EVENLY SPACED IS THE WORST POSSIBLE PLAN.** ```text 2nd order fi + fj harmless: about a gigahertz up fi - fj harmless: a few megahertz down 3rd order 2*fi - fj IN BAND, and the strong one fi + fj - fk IN BAND, weaker, and far more of them landing |product - fk| <= guard a product sitting on another channel the mechanism fk - fi = fi - fj two distinct pairs sharing one difference products n(n-1) and n(n-1)(n-2)/2 ``` Third order matters not because it is strong but because it is the only order that lands IN the band. Second order is stronger and both of its products are outside any block the transmitters occupy, which is why nobody trips over it and everybody trips over third. The mechanism line is the whole solution. Rearranged it is `2·fi − fj = fk`, so a repeated difference is exactly what puts a product on a channel — and a *Golomb ruler*, a set whose pairwise differences are all distinct, forbids that outright. It does NOT forbid a near miss: how close a product gets otherwise is a function of the guard, and the guard should be the receiver's own passband rather than a round number. Two more consequences. Products grow as `n(n−1)` and `n(n−1)(n−2)/2`, so the ninth transmitter added to a plan of eight brings 100 new products on its own — one more mic is far more than one more problem, and it is never that mic's fault. And a product follows the pair that makes it, so the channel worth moving is a CULPRIT rather than the victim whose receiver is buzzing. ## Even spacing, every step size | Channels | Spacing | Span | 3rd-order products | Landing on a channel | Share | | --- | --- | --- | --- | --- | --- | | 4 | 400 kHz | 1.2 MHz | 24 | **10** | 41.7% | | 6 | 400 kHz | 2 MHz | 90 | **46** | 51.1% | | 8 | 400 kHz | 2.8 MHz | 224 | **124** | 55.4% | | 8 | 250 kHz | 1.75 MHz | 224 | **124** | 55.4% | | 10 | 500 kHz | 4.5 MHz | 450 | **260** | 57.8% | | 12 | 300 kHz | 3.3 MHz | 792 | **470** | 59.3% | **Every landing in that table is an EXACT hit, and not one of them is bad luck.** Write an evenly spaced set as `f0 + k·d`. The third-order product `2·fi − fj` becomes `f0 + (2k − j)·d` — a point on the same grid the channels are on. Any product whose index `2k − j` falls between 0 and n−1 is therefore sitting on a channel, exactly. The step size makes no difference: 400 kHz and 250 kHz land the same count on eight channels, because the grid moves with the spacing. **Nothing about even spacing can be tuned into safety — the layout itself is the fault.** Eight channels 400 kHz apart is the ordinary case: 124 of 224 products land on a channel, 55.4% of them, in 2.8 MHz of spectrum. ## The layout that makes it impossible | Channels | Layout | Span | 3rd-order products | Landing exactly | Distinct differences | | --- | --- | --- | --- | --- | --- | | 4 | evenly spaced | 1.2 MHz | 24 | **10** | no | | 4 | differences all distinct | 1.8 MHz | 24 | **0** | yes | | 6 | evenly spaced | 2 MHz | 90 | **46** | no | | 6 | differences all distinct | 5.1 MHz | 90 | **0** | yes | | 8 | evenly spaced | 2.8 MHz | 224 | **124** | no | | 8 | differences all distinct | 10.2 MHz | 224 | **0** | yes | | 10 | evenly spaced | 3.6 MHz | 450 | **260** | no | | 10 | differences all distinct | 16.5 MHz | 450 | **0** | yes | **The right-hand column causes the one next to it.** A set whose pairwise differences are all distinct is a *Golomb ruler*, and on one no third-order product can land exactly on any channel — two-transmitter or three. The proof is one line: `2·fi − fj = fk` rearranges to `fk − fi = fi − fj`, which is two distinct pairs sharing one difference. Forbid repeated differences and the collision is arithmetically impossible. For eight channels the shortest such set is the marks `0, 1, 4, 9, 15, 22, 32, 34`. At 300 kHz per mark that is 470.000 MHz, 470.300 MHz, 471.200 MHz, 472.700 MHz, 474.500 MHz, 476.600 MHz, 479.600 MHz, 480.200 MHz — 10.2 MHz of span against 2.8 MHz for the even plan. **The whole cost of the fix is spectrum, and most plans are using a fraction of what they have.** IT DOES NOT FORBID A NEAR MISS. The ruler property is about exact equality; how close a product gets otherwise depends on the guard, and a wide guard finds products inside it on any layout. ## How fast the products multiply | Transmitters | Two-transmitter | Three-transmitter | Total | New products from the last one | | --- | --- | --- | --- | --- | | 2 | 2 | 0 | **2** | — | | 3 | 6 | 3 | **9** | +7 | | 4 | 12 | 12 | **24** | +15 | | 6 | 30 | 60 | **90** | +66 | | 8 | 56 | 168 | **224** | +134 | | 10 | 90 | 360 | **450** | +226 | | 12 | 132 | 660 | **792** | +342 | `n(n−1)` two-transmitter products and `n(n−1)(n−2)/2` three-transmitter ones. The second grows as the cube, so the arithmetic a coordinator can do in their head stops working at about five channels. **Read the last column.** The ninth transmitter added to a plan of eight brings 100 new products all by itself — 16 two-transmitter and 84 three. That is why the ninth radio mic is the one that breaks a plan which had been fine for years, and why it is never the ninth mic's fault: it did not bring a problem, it brought pairings. ## Why third order and not second | Order | Product | Where it lands | Does it matter | | --- | --- | --- | --- | | 2nd | `fi + fj` | 956.200 MHz | outside the band — about a gigahertz up; no UHF receiver is there | | 2nd | `fi − fj` | 3.000 MHz | outside the band — a few megahertz; far below the bottom of the block | | 3rd | `2·fi − fj` | 473.600 MHz | **IN THE BAND** — and this is the strongest product of the pair | | 3rd | `2·fj − fi` | 482.600 MHz | **IN THE BAND** — the mirror of it, and just as strong | Taking fi = 476.600 MHz and fj = 479.600 MHz against a band of 470.000 MHz–494.000 MHz. **Second order is the stronger effect and it is irrelevant here**, because both of its products are a long way outside the block these transmitters occupy. Third order is weaker and it is the one that ruins a show, for one reason only: it is the order that lands where the receivers are listening. Note how close the third-order products sit to the pair that made them — 3 MHz either side. **A pair of transmitters puts its strongest products in its own immediate neighbourhood**, which is precisely where the rest of the plan is. That is also why turning second order on is worth doing once and then leaving off. It confirms the products are a long way out of the way, and it will never find anything else. ## Thresholds | Threshold | Value | What it separates | | --- | --- | --- | | the guard | 100 kHz | a product inside this of a channel counts as landing on it. THE RIGHT FIGURE IS THE RECEIVER'S OWN PASSBAND. | | minimum spacing | 300 kHz | below it two carriers interfere directly and no intermod arithmetic applies yet. | | evenly spaced, to | 25 kHz | coordination lists are typed by hand, and 400/400/401 is the same mistake as 400/400/400. | | the default band | 470.000 MHz–494.000 MHz | which products are worth worrying about. It changes no frequency and no product. | Defaults when the sheet is silent: the band above, a 100 kHz guard, 300 kHz of minimum spacing, third order only, and three-transmitter products included. **The guard is the figure most worth replacing with a real one** — it is the only threshold here that changes what counts as a hit, and an assumed one is reported as a note rather than quietly used. ## Sheet grammar Two blocks. `PLAN` is `key | value`, one per line. `CHANNELS` is a table. ``` PLAN name | what this plan is band | 470 - 494 the block you are allowed to use guard | 100 kHz; how close counts as landing on a channel min spacing | 300 kHz; what the receivers can separate orders | 3 or `2, 3` to see where second order sits triples | yes include three-transmitter products? CHANNELS h1 | the host | 470.000 | g1 | guest one | 470.400 | why this one is here ``` A CHANNELS row is `id | what it is | frequency | why`. **Mind the two number conventions, because they are opposite and both are the trade's own.** A FREQUENCY reads as `470.000`, `470.4 MHz` or `470400 kHz`: a bare number under 10,000 is MEGAHERTZ and above it is KILOHERTZ, because four digits is nonsense as a kHz UHF frequency and there is no ambiguous range. A SPACING or a GUARD is the other way round — a bare number is KILOHERTZ, because that is how spacings are quoted. `100` in the guard row is 100 kHz, not 100 MHz. Frequencies are held internally in whole kilohertz. Megahertz floats put 470.4 at 470.39999999999998, and a page whose central claim turns on an EXACT grid hit cannot compute in a unit that cannot represent its own inputs. `triples` is the setting that decides how much of the problem you are shown. Three-transmitter products are the majority — `n(n−1)(n−2)/2` against `n(n−1)` — and they are the ones that appear as a plan grows, so turning them off makes a large plan look far cleaner than it is. ## Lanes - **`plan`** — Lay the channels out before you tune anything. A channel plan gets made by picking a start and stepping evenly, which is the one layout that puts every third-order product back on the grid. This starts from the number of transmitters and the spectrum available, and lays them out so no two pairs share a spacing — which is the condition that makes an exact collision impossible rather than unlikely. Sections: Summary, The Sheet, The Setting, Reasoning, Next Step. - **`check`** (primary) — Whether this plan survives its own arithmetic. The paid read of what the free panel computes. Every third-order product this set of transmitters makes, which of them land on a channel and on whose, whether the spacings are the cause, and the one transmitter worth moving first — which is almost never the one somebody is complaining about. Sections: Summary, Verdict, Findings, Corrected Sheet, Next Step. - **`products`** — The products question: what lands, and on whom. The products themselves, named by the arithmetic that makes them so they can be checked by hand. Which channels are victims, which are culprits, and why those are different lists — plus what second order does, which is sit a megahertz or a gigahertz out of the way and explain why nobody trips over it. Sections: Summary, What Lands, Victims And Culprits, Why Third Order, Next Step. - **`layout`** — The layout question: why it lands at all. A plan does not collide because of bad luck, it collides because two pairs share a spacing. This reads the layout rather than the products: every pairwise difference, which ones repeat, how evenly the channels are spaced, and how much of the band is going unused while they crowd into a corner of it. Sections: Summary, Every Spacing, Where A Spacing Repeats, The Span, Next Step. - **`deliver`** — Decide what moves: a transmitter, the span, or the expectation. Sorts every finding into what moving one transmitter fixes, what only more spectrum or fewer radios fixes, and what nothing fixes. Moving the channel being interfered with appears in none of those buckets, which is the point — a product follows the pair that makes it. Sections: Summary, Moving One Transmitter Fixes, Only More Spectrum Fixes, Nothing Fixes, Next Step. ## Findings All 32 are computed in the browser and cost nothing. | Code | Severity | Scope | What it means | | --- | --- | --- | --- | | `BAND-ASSUMED` | note | plan | The band was assumed | | `GUARD-ASSUMED` | note | plan | The guard window was assumed | | `MIN-SPACING-ASSUMED` | note | plan | The minimum spacing was assumed | | `SPACING-TIGHT-ON-AN-ASSUMED-FIGURE` | warn | channel | Two channels are close, measured against an assumed spacing | | `ORDERS-ASSUMED` | note | plan | The product orders were assumed | | `NO-CHANNELS` | warn | plan | A plan, and nothing transmitting | | `ONE-CHANNEL` | note | plan | One transmitter makes no products | | `DUPLICATE-CHANNEL` | error | channel | Two transmitters on the same frequency | | `SPACING-TOO-TIGHT` | error | channel | Two channels are closer than the receivers can separate | | `CHANNEL-OUT-OF-BAND` | warn | channel | A channel sits outside the declared band | | `EVENLY-SPACED` | error | plan | The channels are evenly spaced, which is the worst case | | `PRODUCT-ON-A-CHANNEL` | error | plan | A two-transmitter product lands on a channel | | `TRIPLE-ON-A-CHANNEL` | warn | plan | A three-transmitter product lands on a channel | | `PRODUCT-NEAR-A-CHANNEL` | warn | plan | A product lands inside the guard but not on the channel | | `NO-PRODUCTS-ON-CHANNELS` | note | plan | No third-order product lands on any channel | | `DIFFERENCES-ALL-DISTINCT` | note | plan | Every pairwise difference is distinct, which is the proof | | `DIFFERENCE-REPEATED` | warn | plan | Two pairs share the same spacing, which is the mechanism | | `SECOND-ORDER-IS-OUT-OF-BAND` | note | plan | Second order is stronger and it does not matter here | | `PRODUCT-COUNT` | note | plan | How many products this many transmitters make | | `ADDING-ONE-COSTS-MORE-THAN-ONE` | note | plan | One more transmitter is far more than one more problem | | `PRODUCTS-IN-BAND` | note | plan | How many products land inside the band at all | | `SPAN-USED` | note | plan | How much of the band the plan occupies | | `TIGHTEST-GAP` | note | plan | The closest two channels sit | | `SPACING-SPREAD` | note | plan | How uneven the spacings are | | `CHANNEL-PRODUCTS` | note | channel | What this channel takes part in | | `CHANNEL-IS-A-VICTIM` | warn | channel | This channel is where a product lands | | `CHANNEL-IS-A-CULPRIT` | note | channel | This channel helps make a product that lands | | `WORST-OFFENDER` | warn | plan | The one channel worth moving first | | `EVEN-PLAN-HIT-RATE` | note | plan | What share of the products land on a channel | | `ORDERS-CHECKED` | note | plan | Which orders this sheet asked for | | `FURTHER-LANDINGS` | note | plan | The landing products not listed one by one | | `TRIPLES-OFF` | warn | plan | Three-transmitter products were not computed | ## What this page cannot do This page computes from the frequencies on the sheet. It has not measured anything. - **It knows nothing about level, distance or antenna placement**, and those decide whether a product that lands is actually audible. Two transmitters in one bag at a metre from the receiver produce a product tens of decibels stronger than the same two across a studio. A landing product is a certainty of arithmetic and a probability of physics. - **The guard is doing a lot of work and it is usually a guess.** It should be the receiver's own passband under load, not a round number. Widen it and products appear; narrow it and they vanish. The exact hits are the ones that do not move. - **Only third order is on by default, and only orders two and three exist here at all.** Fifth-order products (`3·fi − 2·fj`) are weaker again and there are far more of them; a crowded bag in a small room can be limited by those, and this page will not see them. - **Nothing here models the transmitters' own spectra.** A carrier is treated as a single frequency; a real one occupies a couple of hundred kilohertz, has sidebands, and may have a pilot tone. The occupied bandwidth is what the guard is standing in for. - **No licensing is checked.** The band is a pair of numbers on the sheet. Which frequencies are legal where, which are reserved for DTT, and which need coordinating with a broadcaster are questions of jurisdiction that this page has no opinion on. - **The layout is arithmetic; the room is not.** Reflections, body absorption, a receiver's own oscillator and a nearby LED wall all cause interference that no channel plan addresses. - Nothing here reaches the network, reads a file, or touches any radio. ## API `POST https://api.skillsafe.ai/v1/app-api/run` with a bearer token from https://intermod-desk.skillsafe.ai/tokens.html. The body IS the input object — there is no `input` wrapper and no `X-App-Slug` header. `task` is required and must be one of plan, check, products, layout, deliver. `POST /estimate` is free and validates the same body. Full documentation at https://intermod-desk.skillsafe.ai/api.html. ## Provenance Lanes derived from the `video-editing` skill in https://github.com/affaan-m/everything-claude-code. The arithmetic, thresholds, sheet grammar and findings are this app's own. Not affiliated with or endorsed by the authors of that repository.