Ra averages R1–R8. Each mix is scored against its own CIE reference.
Score scale 0 to 100Tools · Light quality
LED Spectrum Mixer
Interactive toolMix five example channels, or build your own source combination. Explore colour, tint and colour rendering.
Example spectra only · not LEDYI product measurements or calibrated driver settings.
Spectral power distribution
Each curve is scaled to its own peak.
White point
CIE 1931 · xyInspect the current and saved points on the same coordinate plane.
Ctrl/⌘ + wheel or pinch to zoom · drag to pan · hover/tap for x/y.
Keyboard: arrow keys pan, Shift pans more finely, plus and minus zoom, Home resets, F fits points.Display colours are approximate.
Compare mixes
No saved mixSave a mix as A, then move a slider. Saved A stays fixed.
| Parameter | A · Saved | Current |
|---|
Similar white points can have very different spectra and colour rendering. The screen swatch shows approximate colour, not how real objects will look.
CRI R values · R1–R14
Read each score directly and compare the bar lengths.
Keep the comparison
Export the spectrum, or share the exact channel weights.
Calculations run in your browser. No sign-in required.
Good to know
How does Custom sources work?
Switching to Custom sources keeps your current mix. Add a source from the example library; it starts at zero until you increase its weight. Remove a source to remove its contribution. Each source has one weight control.
Save A before experimenting. Restoring or swapping A restores the complete source selection and mode. Share links and CSV exports also retain that selection. Five-channel loads the original 4000 K starter; saved A is kept.
These are relative spectral weights. A single source keeps the same colour and normalised spectrum when its weight changes. Combine sources to change the shape, or save A and use Shared scale to inspect changes in relative output. The weights are not calibrated dimmer settings, watts or strip lengths.
Can two mixes have the same colour temperature but different CRI?
Yes. CCT describes the white point, while colour rendering depends on the full spectrum. Use “White vs RGB” to compare two example mixes with approximately the same white point. Their Ra and R9 values are calculated from their different spectra.
This tool is about these example sources. It does not establish the performance of a particular RGB or white LED product.
What does a positive or negative Duv mean?
For near-white light, positive Duv lies above the blackbody locus, generally toward green; negative Duv lies below it, generally toward pink. CCT alone cannot describe this difference. Duv is a geometric colour metric, not a universal preference score.
Mixing two white sources does not normally keep the mix on the blackbody locus. The balanced 4000 K example therefore includes a small green contribution. Every participating channel remains visible.
Why can the spectrum look unchanged when I raise every channel?
“Shape · %” normalises each curve to its own maximum. Proportional changes preserve the shape. Save A, increase the weights, then select “Shared scale” to see both curves against one common relative scale.
These weights have no calibrated relationship to watts, lumens, current or dimmer percentages. Absolute brightness cannot be inferred from this tool.
Why do some mixes show “—” for CRI or colour temperature?
All channels off has no defined colour. A strongly coloured mix does not have a useful white-light CCT in this tool. CRI also has a reference-chromaticity applicability limit: we withhold Ra and R9 when the CIE 1960 uv distance to the selected reference exceeds 0.0054, or the reference temperature is outside the implemented range.
“—” means not applicable or unavailable. It does not mean a score of zero. Valid negative colour-rendering indices are shown as negative numbers.
Data, method & limitations
Example data, not LEDYI product measurements. Warm white uses CIE LED-B1 and cool white uses CIE LED-B5. __SOURCE_METHOD__ Each channel has equal unit integrated spectral area before its weight is applied.
S(λ) = Σ [channel weight / 100 × channel spectrum(λ)]Calculations use a 1 nm grid and the CIE 1931 2° observer. CCT and Duv use Robertson 1968. CRI uses the CIE 1995 test-colour method with a Planckian reference below 5000 K and a CIE daylight reference at or above 5000 K. Ra is the average of R1–R8; R9 is computed independently. No TM-30, room illuminance, electrical or driver model is included.
The displayed spectra cover 380–780 nm. Source whites have that same supplied range and are zero outside it. The computation grid extends to 830 nm; the exact calculation domains and independent comparison are recorded in the verification notes.
CIE reference LED spectra · CIE observer data · Independent CRI reference
Numerical verification pending.
The R1–R14 colour keys are calculated from each sample’s spectral reflectance under D65, retaining lightness when converted to sRGB. They are display approximations, held fixed as the LED mix changes. CIE test-colour sample data
CIE 2018, Relative spectral power distributions of illuminants representing typical LED lamps, 1nm spacing, DOI 10.25039/CIE.DS.dhcw57sd, CC BY-SA 4.0. Changes: LED-B1/B5 extracted, zero-padded and area-normalised; these derived datasets retain that licence. Additional scientific tables: Colour Developers, Colour Science for Python 0.4.6, BSD-3-Clause; original CIE provenance retained.
Research and sources
The design follows a narrow task: understand a mix, change it, compare it and take the result away. The forum posts below are individual user experiences, not a representative survey or an optical standard.
| Observed need | Source | Decision in this tool |
|---|---|---|
| “What happens if I mix two colour temperatures?” | BudgetLightForum · 19 Jan 2022 | Calculate CCT from the combined spectrum, with every channel visible. |
| White light can look green even when the CCT seems right. | r/led · photography-panel discussion | CCT and Duv have separate readouts and plain-language explanations. |
| Users ask what mixing does to R9 and how it differs from CRI. | r/Hanklights · 12 May 2025 | R9 is prominent; a saved reference stays fixed during changes. |
| Registration prevents people from trying a spectrum tool. | BudgetLightForum · Oct 2026 | Examples work immediately, locally and without an account. |
Tool references: Yuji’s spectrum / R9 comparison informed the side-by-side task; ams OSRAM ColorCalculator informed explicit channel inputs; PNNL / IES Spectral Calculator informed data provenance and exports. Their measurements, code and product claims have not been copied into this tool.
Need spectra for a real LEDYI configuration?
Tell us the model, CCT, output state and test conditions you need.
For AI agents: instructions and calculation APIs
Read the tool instructions in Markdown and the request/response schemas in OpenAPI. These public calculation APIs run the same models as the web and offline calculators. No account, API key or Turnstile is required.
LED Spectrum Mixer
POST /api/tools/v1/spectrum-mixer
Content-Type: application/jsonMix the seven example source spectra exposed by this tool: warm white, cool white, red, green, blue, amber and violet. Weights are relative 0–100 inputs; omitted sources contribute zero. The CIE LED-B1/B5 arrays and Gaussian colour sources are educational examples, not LEDYI product measurements or calibrated dimmer settings.
spectrum-mixer
LED Spectrum Mixer
POST sources as a strict object containing any subset of ww, cw, r, g, b, amber and violet with finite weights from 0 to 100. The reference example uses ww=100, cw=75.98299480153439 and g=5.413065218193752. The response returns xy, CCT, Duv, Ra, R9, all R1–R14 scores, selected source definitions and stable warning codes.
{
"sources": {
"ww": 100,
"cw": 75.98299480153439,
"g": 5.413065218193752
}
}Open links.tool for the interactive mixer or links.markdown for the full source and method notes. Use the UI to save A, inspect the CIE chart, view R1–R14 bars and export CSV. The API does not persist calculations, call an AI model, send an inquiry or verify a physical instrument measurement.
Request limits and errors
Send uncompressed application/json with strict types and no query parameters. Indoor lighting bodies are limited to 16 KiB; driver-match bodies to 16 KiB; battery bodies to 16 KiB; voltage bodies to 16 KiB; resistor bodies to 16 KiB; spectrum bodies to 16 KiB; DMX bodies to 1024 KiB and 1000 fixtures; pixel bodies to 64 KiB, 64 run rows, 128 outputs and 2000000 channels. DALI bodies are limited to 64 KiB, 24 rows and 512 devices. Illuminance bodies are limited to 16 KiB and 400 planned points. Photometry bodies are limited to 1024 KiB with up to 4 files and 16 by 721 query directions per file. Lighting-cost bodies are limited to 64 KiB with up to 20 groups in each scenario. Body reading expires after 5 seconds. Complete success JSON is bounded to 4 MiB. GET/HEAD return 405; OPTIONS returns 204. Source responses are no-store. Anonymous browser CORS permits POST/OPTIONS and Content-Type with credentials omitted.
Tool POST requests and ordinary page requests share 120 requests per 60 seconds per IP/Cloudflare location; mitigation lasts 60 seconds. Heavy tool use can temporarily block pages from the same source. This is not an independent or globally exact API quota. Inquiry/search use their existing separate rule. Tool POST requests do not inherit the company-page or verified-bot exemption.
Cloudflare can return 403/429/5xx before the application, sometimes as HTML without CORS or Retry-After. Check HTTP status and Content-Type before parsing JSON. A browser may see only a network error. Do not present an error or an older result as a successful new calculation.