<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: jacak</title>
    <description>The latest articles on DEV Community by jacak (@jacak).</description>
    <link>https://dev.to/jacak</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4080879%2F8d167727-8d54-45a5-8343-408488878d48.png</url>
      <title>DEV Community: jacak</title>
      <link>https://dev.to/jacak</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jacak"/>
    <language>en</language>
    <item>
      <title>Morse Code Tattoo: Check the Spelling Before You Ink</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Mon, 19 Oct 2026 13:16:45 +0000</pubDate>
      <link>https://dev.to/jacak/morse-code-tattoo-check-the-spelling-before-you-ink-49jd</link>
      <guid>https://dev.to/jacak/morse-code-tattoo-check-the-spelling-before-you-ink-49jd</guid>
      <description>&lt;h1&gt;
  
  
  Morse Code Tattoo: Check the Spelling Before You Ink
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Quick answer
&lt;/h2&gt;

&lt;p&gt;To check a Morse code tattoo, type the name into a translator, then paste the artist's exact dots and dashes back in and confirm it decodes to the same word. Leave a clear gap between letters, a wider gap or slash between words, and make dashes about three dots long so the ink stays readable.&lt;/p&gt;

&lt;p&gt;Permanent ink is unforgiving. Morse looks simple — just dots and dashes — but one missing space or a short dash can turn a name into another word, or into a string that does not decode at all. Use a free &lt;a href="https://morseclue.com/en/" rel="noopener noreferrer"&gt;Morse code translator&lt;/a&gt; to spell, copy, and decode back before you book.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spell it in 3 steps, then decode it back
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Generate the Morse from the real word
&lt;/h3&gt;

&lt;p&gt;Open the &lt;a href="https://morseclue.com/en/" rel="noopener noreferrer"&gt;MorseClue translator&lt;/a&gt;, type the name or short phrase (for example &lt;code&gt;EMMA&lt;/code&gt;, &lt;code&gt;ANNA&lt;/code&gt;, or &lt;code&gt;I LOVE YOU&lt;/code&gt;), and copy the Morse it produces. Letters are separated by a single space; words are separated with &lt;code&gt;/&lt;/code&gt;. Example: &lt;code&gt;I LOVE YOU&lt;/code&gt; becomes &lt;code&gt;.. / .-.. --- ...- . / -.-- --- ..-&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Paste the artist's final marks back in
&lt;/h3&gt;

&lt;p&gt;Do not trust a screenshot by eye alone. Hand-copy or paste the &lt;strong&gt;exact&lt;/strong&gt; dots and dashes from the final stencil or print into the same box. When the input is only Morse symbols, the tool switches to decode mode automatically and shows the English text.&lt;/p&gt;

&lt;p&gt;Typographic marks usually survive a copy from chat or PDF: &lt;code&gt;_&lt;/code&gt;, &lt;code&gt;–&lt;/code&gt;, &lt;code&gt;—&lt;/code&gt;, and &lt;code&gt;−&lt;/code&gt; are read as dashes; &lt;code&gt;•&lt;/code&gt; and &lt;code&gt;·&lt;/code&gt; are read as dots; &lt;code&gt;|&lt;/code&gt; is treated as a word separator. You rarely need to clean those up by hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Match the word, then get a second reader
&lt;/h3&gt;

&lt;p&gt;The decoded text must match the original &lt;strong&gt;character for character&lt;/strong&gt;. Then ask someone who does not know the intended word to read the marks against the &lt;a href="https://morseclue.com/en/learn/chart" rel="noopener noreferrer"&gt;Morse code chart&lt;/a&gt;. A second pair of eyes catches mistakes you have already stared past.&lt;/p&gt;

&lt;p&gt;If you want practice reading before the appointment, try the &lt;a href="https://morseclue.com/en/learn/trainer" rel="noopener noreferrer"&gt;listening trainer&lt;/a&gt; or browse &lt;a href="https://morseclue.com/en/learn/words" rel="noopener noreferrer"&gt;common words&lt;/a&gt; and &lt;a href="https://morseclue.com/en/learn/phrases" rel="noopener noreferrer"&gt;phrases&lt;/a&gt; for short tattoo ideas — then still run the encode → decode loop on your final choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 mistakes that ruin a Morse tattoo
&lt;/h2&gt;

&lt;p&gt;Each example below was decoded with MorseClue's own translator. Wrong spacing does not "look a bit off" — it returns a different string.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. No gap between letters
&lt;/h3&gt;

&lt;p&gt;Correct &lt;code&gt;EMMA&lt;/code&gt; is &lt;code&gt;. -- -- .-&lt;/code&gt;. If the two M marks (&lt;code&gt;--&lt;/code&gt; and &lt;code&gt;--&lt;/code&gt;) are drawn as one long run, you get &lt;code&gt;. ---- .-&lt;/code&gt;, which decodes to &lt;strong&gt;&lt;code&gt;E�A&lt;/code&gt;&lt;/strong&gt;. The &lt;code&gt;�&lt;/code&gt; means that group of signals does not match any letter. The tattoo still looks like Morse, but it no longer spells a name.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. A space between every dot and dash
&lt;/h3&gt;

&lt;p&gt;People sometimes write &lt;code&gt;. . . . . .&lt;/code&gt; thinking it means a few letters. The translator reads each lone &lt;code&gt;.&lt;/code&gt; as &lt;strong&gt;E&lt;/strong&gt;, so the result is &lt;strong&gt;&lt;code&gt;EEEEEE&lt;/code&gt;&lt;/strong&gt;, not &lt;code&gt;HI&lt;/code&gt; (&lt;code&gt;.... ..&lt;/code&gt;). This is the same class of mistake as pasting Morse with a space after every symbol — the tool is doing the right thing with bad spacing.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dropping one repeat in a doubled letter
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;HANNAH&lt;/code&gt; is &lt;code&gt;.... .- -. -. .- ....&lt;/code&gt;. Leave out one N and you get &lt;code&gt;.... .- -. .- ....&lt;/code&gt;, which decodes cleanly to &lt;strong&gt;&lt;code&gt;HANAH&lt;/code&gt;&lt;/strong&gt;. It still looks like a name, so it is easy to miss without a round-trip check.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Dashes drawn too short
&lt;/h3&gt;

&lt;p&gt;In standard International Morse (ITU-R M.1677-1), a dash is about &lt;strong&gt;three&lt;/strong&gt; dots long. On skin, a shy dash reads as another dot after healing and blur. There is no "decode result" for this one — the fix is visual: ask the artist to keep dashes clearly longer than dots.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Reading the line backwards (or from a mirrored photo)
&lt;/h3&gt;

&lt;p&gt;If you reverse the whole line &lt;strong&gt;and&lt;/strong&gt; reverse the dots and dashes inside each letter, the word changes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Intended&lt;/th&gt;
&lt;th&gt;Mirrored Morse&lt;/th&gt;
&lt;th&gt;Decodes to&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;EMMA&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-. -- -- .&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;NMME&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ANNA&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-. .- .- -.&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;NAAN&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;1998&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;..--- .---- .---- ----.&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;2119&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Agree with your artist which end of the wrist, finger, or rib line is the start before transfer day. Written Morse without clear letter gaps is also a classic trap in &lt;a href="https://morseclue.com/en/blog/morse-code-escape-room-puzzles" rel="noopener noreferrer"&gt;escape-room style puzzles&lt;/a&gt; — tattoos need those gaps even more, because you cannot "replay" the signal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spacing that stays readable on skin
&lt;/h2&gt;

&lt;p&gt;Standard timing uses one unit for a dot, three for a dash, one inside a letter, three between letters, and seven between words. A tattoo does not need stopwatch precision, but &lt;strong&gt;letter gaps must read wider than the gaps inside a letter&lt;/strong&gt;, and words need a still wider break — a larger space or a visible slash &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Tiny dots packed tight tend to merge as the ink spreads. Exact millimetres belong to your artist and your skin, not a blog post; the rule of thumb is contrast between the three gap sizes, not a printed ruler.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dots vs dashes – which designs read best
&lt;/h2&gt;

&lt;p&gt;Round dots with blunt, rounded dashes stay readable longest. ECG-line or bead-bracelet styles can work if the length difference between short and long marks stays obvious. Vertical placements (spine, side of a finger) need an agreed top-to-bottom reading direction, the same idea as picking a start end for a wrist line.&lt;/p&gt;

&lt;p&gt;Bring a &lt;strong&gt;printed copy at final size&lt;/strong&gt; to the studio. MorseClue does not generate tattoo stencils or SVG transfers — the translator is for spelling and checking, not for printing a machine stencil.&lt;/p&gt;

&lt;h2&gt;
  
  
  Names, dates and special letters
&lt;/h2&gt;

&lt;p&gt;Morse has no upper or lower case. Digits always use five signals (for example &lt;code&gt;1998&lt;/code&gt; is &lt;code&gt;.---- ----. ----. ---..&lt;/code&gt;), so full dates get long; many people tattoo only the year.&lt;/p&gt;

&lt;p&gt;Accented names are a design decision, not an afterthought. Type &lt;code&gt;José&lt;/code&gt; into the translator and you will see a marker such as &lt;code&gt;⟦É⟧&lt;/code&gt; for the unsupported character — the tool does &lt;strong&gt;not&lt;/strong&gt; silently drop it. Decide on a plain &lt;code&gt;E&lt;/code&gt; (or another agreed spelling) before anyone inks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check a printed design with the image decoder
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://morseclue.com/en/tools/image-decoder" rel="noopener noreferrer"&gt;image translator&lt;/a&gt; can help with a &lt;strong&gt;flat, high-contrast print&lt;/strong&gt; that shows one clean horizontal line of dots and dashes. It is a reference check for paper mock-ups, not a way to photograph ink on curved skin. When in doubt, type the marks in by hand and decode them in the main translator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before the appointment: a checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Print the final-size design and write the plain-language word next to it.&lt;/li&gt;
&lt;li&gt;Encode the word on the &lt;a href="https://morseclue.com/en/" rel="noopener noreferrer"&gt;translator&lt;/a&gt;, then decode the artist's marks until they match exactly.&lt;/li&gt;
&lt;li&gt;Have the artist walk letter by letter on the transfer against the &lt;a href="https://morseclue.com/en/learn/chart" rel="noopener noreferrer"&gt;chart&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Decode one last time after any last-minute edit.&lt;/li&gt;
&lt;li&gt;Agree the start end (and top/bottom if the line is vertical).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Browse more short ideas on the &lt;a href="https://morseclue.com/en/blog" rel="noopener noreferrer"&gt;blog&lt;/a&gt;, then treat every favourite phrase the same way: spell, decode back, second reader, then ink.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I spell my name in Morse code for a tattoo?
&lt;/h3&gt;

&lt;p&gt;Type it into the MorseClue translator; each letter becomes a group of dots and dashes separated by a space. Copy the result and decode it back before you book.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much space goes between letters and words?
&lt;/h3&gt;

&lt;p&gt;Standard timing is 3 dot-lengths between letters and 7 between words. On skin, letter gaps just need to be clearly wider than the gaps inside a letter; use a wider space or a slash between words.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long should a dash be compared with a dot?
&lt;/h3&gt;

&lt;p&gt;Three dots long in standard Morse. On a tattoo, make sure a dash can never be mistaken for a dot.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can a Morse tattoo be read backwards?
&lt;/h3&gt;

&lt;p&gt;Yes, and it changes the word: ANNA read from the other end is NAAN. Agree with your artist which end is the start.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if my name has an accent, like José?
&lt;/h3&gt;

&lt;p&gt;Standard Morse covers A–Z and 0–9; the MorseClue translator marks unsupported characters like ⟦É⟧ so you notice them. Decide on a plain letter before inking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I check a photo of my design?
&lt;/h3&gt;

&lt;p&gt;For a flat, printed design on one horizontal line, try the image decoder. For skin or curved surfaces, check by hand against the chart.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does "I love you" look like in Morse code?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;.. / .-.. --- ...- . / -.-- --- ..-&lt;/code&gt;&lt;/p&gt;

</description>
      <category>morsecode</category>
      <category>tutorial</category>
      <category>design</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How to Solve Morse Code Puzzles in Escape Rooms (Light, Sound &amp; Taps)</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Mon, 19 Oct 2026 13:16:26 +0000</pubDate>
      <link>https://dev.to/jacak/how-to-solve-morse-code-puzzles-in-escape-rooms-light-sound-taps-2n62</link>
      <guid>https://dev.to/jacak/how-to-solve-morse-code-puzzles-in-escape-rooms-light-sound-taps-2n62</guid>
      <description>&lt;h1&gt;
  
  
  How to Solve Morse Code Puzzles in Escape Rooms (Light, Sound &amp;amp; Taps)
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Quick answer
&lt;/h2&gt;

&lt;p&gt;To solve a Morse code puzzle in an escape room, first write down every signal as a dot (short) or dash (long) without translating. Mark short pauses as letter breaks and long pauses as word breaks, then look each group up on a chart. Groups of five signals are numbers, which usually open a padlock.&lt;/p&gt;

&lt;p&gt;Keep a &lt;a href="https://morseclue.com/en/learn/chart" rel="noopener noreferrer"&gt;Morse code chart&lt;/a&gt; open on paper or on a phone screen if the room allows it. The method below works for flashing lights, beeps, knocks, and written marks — and it stops the most common failure mode: trying to translate in your head while the signal is still going.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spot the Morse first
&lt;/h2&gt;

&lt;p&gt;Before you decode anything, decide &lt;em&gt;how&lt;/em&gt; the room is sending Morse. Escape rooms usually use one of four carriers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Light&lt;/strong&gt; — a flashlight, desk lamp, LED strip, or blinking indicator that turns on and off in a pattern.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sound&lt;/strong&gt; — a buzzer, radio clip, speaker loop, or short recording of beeps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knocks or taps&lt;/strong&gt; — someone (or a mechanism) knocking on a wall, door, pipe, or table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Written or carved marks&lt;/strong&gt; — dots and dashes painted on a wall, scratched into wood, printed on a prop, or hidden in a notebook.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A useful tell: if you keep seeing or hearing &lt;strong&gt;three short, three long, three short&lt;/strong&gt;, that is &lt;strong&gt;SOS&lt;/strong&gt; (&lt;code&gt;... --- ...&lt;/code&gt;). Designers love that pattern as an easter egg or as a warm-up before the real code. Once you know you are looking at Morse, switch to the five-step method instead of guessing words from memory.&lt;/p&gt;

&lt;p&gt;If the clue is a longer audio file you can save outside the room — for example in an online game — use the dedicated &lt;a href="https://morseclue.com/en/blog/decode-morse-code-from-audio" rel="noopener noreferrer"&gt;audio decoder guide&lt;/a&gt;. This article focuses on what you can do &lt;em&gt;in the moment&lt;/em&gt; with light, knocks, marks, and short live sounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5-step method
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Split the work
&lt;/h3&gt;

&lt;p&gt;One person watches or listens and &lt;strong&gt;calls&lt;/strong&gt; each signal. Another person only &lt;strong&gt;writes&lt;/strong&gt;. Mixing both jobs causes missed flashes and invented letters. If you have a third teammate, they hold the chart and wait until the transcript is finished.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Write dots and dashes only
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;.&lt;/code&gt; for short and &lt;code&gt;-&lt;/code&gt; for long. Do &lt;strong&gt;not&lt;/strong&gt; translate while the sequence is running. Your brain will invent letters that "feel right" and then force later signals to fit that wrong story.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Mark the pauses
&lt;/h3&gt;

&lt;p&gt;International Morse timing is built on one unit:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Length&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dot&lt;/td&gt;
&lt;td&gt;1 unit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dash&lt;/td&gt;
&lt;td&gt;3 units&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gap inside a letter&lt;/td&gt;
&lt;td&gt;1 unit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gap between letters&lt;/td&gt;
&lt;td&gt;3 units&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gap between words&lt;/td&gt;
&lt;td&gt;7 units&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In a noisy room you will not measure milliseconds. Use relative length: a &lt;strong&gt;short pause&lt;/strong&gt; (about the length of a dash) separates letters; a &lt;strong&gt;clearly longer pause&lt;/strong&gt; separates words. Draw a space between letter groups and a slash &lt;code&gt;/&lt;/code&gt; between words as you write.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Look up each group
&lt;/h3&gt;

&lt;p&gt;Only after the signal stops (or loops cleanly twice) open the &lt;a href="https://morseclue.com/en/learn/chart" rel="noopener noreferrer"&gt;chart&lt;/a&gt; and decode group by group. Common letters such as E (&lt;code&gt;.&lt;/code&gt;), T (&lt;code&gt;-&lt;/code&gt;), A (&lt;code&gt;.-&lt;/code&gt;), and S (&lt;code&gt;...&lt;/code&gt;) appear often; if your transcript is full of rare letters, your spacing is probably wrong, not the alphabet.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. If the word is nonsense, move one boundary
&lt;/h3&gt;

&lt;p&gt;Wrong letter breaks are the main reason Morse puzzles "fail." Shift one pause left or right, re-group, and try again. Do not erase the raw dots and dashes — only re-mark the spaces.&lt;/p&gt;

&lt;p&gt;Practising a few &lt;a href="https://morseclue.com/en/learn/words" rel="noopener noreferrer"&gt;common Morse words&lt;/a&gt; and &lt;a href="https://morseclue.com/en/learn/phrases" rel="noopener noreferrer"&gt;short phrases&lt;/a&gt; before a game makes step 4 faster. The &lt;a href="https://morseclue.com/en/learn/trainer" rel="noopener noreferrer"&gt;listening trainer&lt;/a&gt; helps if your room leans on sound.&lt;/p&gt;

&lt;h2&gt;
  
  
  Light puzzles (flashlights, lamps, blinking LEDs)
&lt;/h2&gt;

&lt;p&gt;Light Morse is the same language as sound Morse: short on = dot, long on ≈ three times a short = dash. The hard part is timing under stress.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to do
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Agree who watches the light and who writes before the sequence starts.&lt;/li&gt;
&lt;li&gt;Count out loud if it helps: "short, short, long…" rather than naming letters.&lt;/li&gt;
&lt;li&gt;If the light loops, ignore the first pass and capture the second cleanly.&lt;/li&gt;
&lt;li&gt;If phones are allowed, film a &lt;strong&gt;slow-motion&lt;/strong&gt; video, then scrub frame by frame. You are not asking the camera to "decode Morse" — you are freezing the on/off lengths so your team can write them accurately.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Watch for
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Reflections that make a long flash look like two shorts.&lt;/li&gt;
&lt;li&gt;Lamp warm-up delay on old bulbs (the first flash may look longer than the rest).&lt;/li&gt;
&lt;li&gt;Patterns that include a long dark gap — that gap is often the word break, not a missing dash.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is no MorseClue tool that reads a live flashing light through a camera. Treat video only as a replay aid, then decode with the chart.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sound and knock puzzles
&lt;/h2&gt;

&lt;p&gt;Beeps follow the same 1:3 timing as lights. Knocks are trickier because rooms sometimes use &lt;strong&gt;soft vs hard&lt;/strong&gt; taps instead of short vs long duration. Clarify the rule early: is a light knock a dot and a heavy knock a dash, or is it purely about how long each knock lasts?&lt;/p&gt;

&lt;h3&gt;
  
  
  Live help with a phone (when allowed)
&lt;/h3&gt;

&lt;p&gt;If the venue permits phones, open the &lt;a href="https://morseclue.com/en/tools/live-audio" rel="noopener noreferrer"&gt;live Morse audio translator&lt;/a&gt;, start listening, and hold the microphone near the speaker or the knocking surface. Processing stays on your device — nothing is uploaded — but &lt;strong&gt;always ask staff or check house rules first&lt;/strong&gt;. Some rooms ban phones entirely; breaking that rule is cheating, not clever.&lt;/p&gt;

&lt;p&gt;Tips that improve live capture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Match &lt;strong&gt;Expected Speed&lt;/strong&gt; to how fast the room is sending.&lt;/li&gt;
&lt;li&gt;Raise sensitivity only until background noise stays below the detection line.&lt;/li&gt;
&lt;li&gt;In a loud prop room, cue the sequence again after the team is quiet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For knocks without a steady tone, the microphone tool may struggle. Fall back to the two-person write-first method: one caller, one scribe, chart last.&lt;/p&gt;

&lt;h2&gt;
  
  
  Written or carved Morse
&lt;/h2&gt;

&lt;p&gt;Marks on walls and props remove timing pressure, but they introduce a different problem: &lt;strong&gt;missing spaces&lt;/strong&gt;. A long string like &lt;code&gt;....--.-&lt;/code&gt; could be many letter splits.&lt;/p&gt;

&lt;p&gt;Approach:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Photograph the mark if phones are allowed so everyone can see the same copy.&lt;/li&gt;
&lt;li&gt;If the dots and dashes are &lt;strong&gt;clear and printed in one line&lt;/strong&gt;, you can try the &lt;a href="https://morseclue.com/en/tools/image-decoder" rel="noopener noreferrer"&gt;image translator&lt;/a&gt; on a high-contrast crop. It is built for a clean horizontal signal line, not messy handwriting or deep wood grain — so treat it as a helper, not a guarantee.&lt;/li&gt;
&lt;li&gt;Otherwise split manually. Start from the left, peel off the shortest valid letters, and check whether the leftovers also form valid letters. If you hit a dead end, back up one decision.&lt;/li&gt;
&lt;li&gt;Prefer splits that produce a readable clue word (room themes, directions, colours, names) over random consonant piles.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If a teammate digs up a text file of Morse from a digital prop, the &lt;a href="https://morseclue.com/en/tools/text-file" rel="noopener noreferrer"&gt;text file converter&lt;/a&gt; can turn it into letters quickly on the &lt;a href="https://morseclue.com/en/" rel="noopener noreferrer"&gt;home translator&lt;/a&gt; as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Number codes for padlocks
&lt;/h2&gt;

&lt;p&gt;Many Morse lock puzzles do not spell words at all — they send &lt;strong&gt;digits&lt;/strong&gt; for a combination padlock. Every Morse number is exactly &lt;strong&gt;five&lt;/strong&gt; signals:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Digit&lt;/th&gt;
&lt;th&gt;Morse&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-----&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.----&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;..---&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;...--&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;....-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.....&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-....&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--...&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;code&gt;---..&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;code&gt;----.&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Memory hooks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1–5&lt;/strong&gt; start with dots (more dots = larger digit toward 5).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;6–9&lt;/strong&gt; start with dashes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;0&lt;/strong&gt; is five dashes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your transcript falls into neat five-signal chunks, try the number table before forcing letter words. A four-digit lock often means four groups of five; a five-digit lock means five groups. Mis-grouping five-signal numbers into letters is one of the fastest ways to waste time in a room.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common mistakes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Translating while listening.&lt;/strong&gt; You will miss the next flash. Write first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Letter gap vs word gap.&lt;/strong&gt; One wrong long pause turns &lt;code&gt;SHELL&lt;/code&gt; into &lt;code&gt;SHE LL&lt;/code&gt; or merges two words into gibberish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treating five-signal numbers as letters.&lt;/strong&gt; Digits never use fewer than five symbols.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assuming you must memorise Morse.&lt;/strong&gt; Most fair rooms provide a chart somewhere; hunt for it before improvising.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fighting the carrier.&lt;/strong&gt; If the light is too fast, film and replay. If the knock rule is soft/hard rather than short/long, stop applying duration rules that do not fit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Erasing the raw transcript.&lt;/strong&gt; Keep the original dots and dashes; only edit spacing marks.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  For designers: make it fair
&lt;/h2&gt;

&lt;p&gt;If you build escape rooms, scavenger hunts, or tabletop puzzles, Morse fails when players never get a key. A clear design rule from escape-room writing is to &lt;strong&gt;give the codebook before — or with — the ciphertext&lt;/strong&gt;, not after a desperate search that eats half the clock (&lt;a href="https://roomescapeartist.com/2016/10/23/better-ways-to-handle-letter-codes-in-escape-rooms-design-tips/" rel="noopener noreferrer"&gt;Room Escape Artist on letter codes&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Fair Morse usually means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visible timing that respects the &lt;strong&gt;1: 3: 7&lt;/strong&gt; unit model (dot, dash/letter gap, word gap).&lt;/li&gt;
&lt;li&gt;A readable chart in the same language as the solution word.&lt;/li&gt;
&lt;li&gt;One carrier at a time (do not mix noisy audio with dim blinks unless that &lt;em&gt;is&lt;/em&gt; the puzzle).&lt;/li&gt;
&lt;li&gt;Numbers labelled as padlock fuel when you want digits, so players know to count fives.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Players who want to practise before game day can warm up on MorseClue's free &lt;a href="https://morseclue.com/en/learn/chart" rel="noopener noreferrer"&gt;chart&lt;/a&gt;, &lt;a href="https://morseclue.com/en/learn/trainer" rel="noopener noreferrer"&gt;trainer&lt;/a&gt;, and &lt;a href="https://morseclue.com/en/" rel="noopener noreferrer"&gt;translator&lt;/a&gt; — all run locally in the browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do escape rooms expect you to know Morse code?
&lt;/h3&gt;

&lt;p&gt;Usually no. Fair rooms place a chart or legend somewhere in the set. Knowing a few letters helps, but the write-first method matters more than memorisation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you tell a dot from a dash with a flashing light?
&lt;/h3&gt;

&lt;p&gt;A dash lasts about three times as long as a dot. Compare flashes to each other, not to a mental stopwatch. Slow-motion video helps when the sequence is fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  How are numbers written in Morse code?
&lt;/h3&gt;

&lt;p&gt;Every digit uses exactly five signals. 1–5 begin with dots, 6–9 begin with dashes, and 0 is &lt;code&gt;-----&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if the decoded word makes no sense?
&lt;/h3&gt;

&lt;p&gt;Move one letter or word boundary and decode again. Check whether five-signal groups are actually numbers. Common letters like E, T, A, and S should appear often if your spacing is close.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use my phone to decode Morse in an escape room?
&lt;/h3&gt;

&lt;p&gt;Only if the venue allows phones. When allowed, the &lt;a href="https://morseclue.com/en/tools/live-audio" rel="noopener noreferrer"&gt;live audio tool&lt;/a&gt; can help with clear beeps, and a photo plus the &lt;a href="https://morseclue.com/en/tools/image-decoder" rel="noopener noreferrer"&gt;image translator&lt;/a&gt; can help with clear printed marks. Online games can use these tools freely. Never break room rules to decode a puzzle.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does...---... mean?
&lt;/h3&gt;

&lt;p&gt;That is SOS, the international distress signal: three dots, three dashes, three dots.&lt;/p&gt;

</description>
      <category>morsecode</category>
      <category>tutorial</category>
      <category>puzzles</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>How to Decode Morse Code From an Audio Recording (Step-by-Step, Free)</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Mon, 19 Oct 2026 13:15:58 +0000</pubDate>
      <link>https://dev.to/jacak/how-to-decode-morse-code-from-an-audio-recording-step-by-step-free-nnf</link>
      <guid>https://dev.to/jacak/how-to-decode-morse-code-from-an-audio-recording-step-by-step-free-nnf</guid>
      <description>&lt;h1&gt;
  
  
  How to Decode Morse Code From an Audio Recording (Step-by-Step, Free)
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Quick answer
&lt;/h2&gt;

&lt;p&gt;Open the free &lt;a href="https://morseclue.com/en/tools/audio-decoder" rel="noopener noreferrer"&gt;Morse Code Audio Translator&lt;/a&gt;, drop in your recording (WAV, MP3, M4A, OGG or WebM, up to 5 MB), leave &lt;strong&gt;Detection Sensitivity&lt;/strong&gt; on &lt;strong&gt;Auto&lt;/strong&gt;, and click &lt;strong&gt;Analyze Audio&lt;/strong&gt;. The tool shows the detected dots and dashes and the decoded text side by side. If the sound is playing live — from a speaker, a radio or another device — use the &lt;a href="https://morseclue.com/en/tools/live-audio" rel="noopener noreferrer"&gt;Live Morse Audio Translator&lt;/a&gt; and let it listen through your microphone instead.&lt;/p&gt;

&lt;p&gt;If the result looks like nonsense, don't give up: jump to 7 reasons the output is gibberish. Most problems come from noise, speed, or a recording that is not clean enough, and most of them are fixable.&lt;/p&gt;

&lt;h2&gt;
  
  
  How an audio decoder "hears" Morse code
&lt;/h2&gt;

&lt;p&gt;Morse code in audio is just a tone switching on and off. A decoder doesn't understand letters directly — it measures &lt;strong&gt;how long&lt;/strong&gt; each beep and each silence lasts, then maps those lengths to dots, dashes and gaps.&lt;/p&gt;

&lt;p&gt;International Morse code uses a fixed timing ratio based on one &lt;strong&gt;unit&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Length&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dot (dit)&lt;/td&gt;
&lt;td&gt;1 unit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dash (dah)&lt;/td&gt;
&lt;td&gt;3 units&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gap inside a letter&lt;/td&gt;
&lt;td&gt;1 unit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gap between letters&lt;/td&gt;
&lt;td&gt;3 units&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gap between words&lt;/td&gt;
&lt;td&gt;7 units&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The speed of Morse is described in &lt;strong&gt;words per minute (WPM)&lt;/strong&gt;. Using the standard word "PARIS" (50 units long), one unit in milliseconds is roughly &lt;strong&gt;1200 ÷ WPM&lt;/strong&gt;. At 20 WPM a dot lasts about 60 ms; at 10 WPM it lasts about 120 ms.&lt;/p&gt;

&lt;p&gt;So the decoder's job is: find the tone, measure the pulses, estimate the unit length, then classify each pulse as a dot or dash and each silence as a letter or word gap. MorseClue's audio translator estimates the dot unit from the pulse lengths in your file before translating — that's why a steady, consistent recording decodes much better than a shaky one. If you want to check letters by hand, keep the &lt;a href="https://morseclue.com/en/learn/chart" rel="noopener noreferrer"&gt;Morse code chart&lt;/a&gt; open.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-step: decode a Morse recording with MorseClue
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prepare the file
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Supported formats: &lt;strong&gt;WAV, MP3, M4A, OGG, WebM&lt;/strong&gt;; maximum size &lt;strong&gt;5 MB&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Trim long intros, speech or music around the Morse. The cleaner the clip, the better the result.&lt;/li&gt;
&lt;li&gt;If your file is larger than 5 MB, cut it down to just the Morse part or export a shorter segment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Upload and analyze
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://morseclue.com/en/tools/audio-decoder" rel="noopener noreferrer"&gt;https://morseclue.com/en/tools/audio-decoder&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Choose or drag your file onto the upload area.&lt;/li&gt;
&lt;li&gt;Keep &lt;strong&gt;Detection Sensitivity&lt;/strong&gt; on &lt;strong&gt;Auto&lt;/strong&gt; for the first try.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Analyze Audio&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3. Check the result
&lt;/h3&gt;

&lt;p&gt;You'll see two outputs: &lt;strong&gt;Detected Morse&lt;/strong&gt; (the dots and dashes) and &lt;strong&gt;Decoded Text&lt;/strong&gt;. Compare them: if the dots and dashes look right but some letters are odd, it's usually a spacing problem. If the dots and dashes themselves look random, the tone wasn't detected cleanly.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Fine-tune if needed
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detection Sensitivity:&lt;/strong&gt; if quiet beeps are missed, raise it; if background noise turns into extra dots, lower it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimum Pulse&lt;/strong&gt; (default 20 ms): increase it to ignore clicks, pops and very short noise bursts. Don't set it above the length of a real dot (see the 1200 ÷ WPM rule above).&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Analyze Audio&lt;/strong&gt; again after each change, then &lt;strong&gt;Download Result&lt;/strong&gt; to save the text.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Live audio: decode through the microphone
&lt;/h3&gt;

&lt;p&gt;For sound you can play but can't easily save as a file, open the &lt;a href="https://morseclue.com/en/tools/live-audio" rel="noopener noreferrer"&gt;Live Morse Audio Translator&lt;/a&gt; and click &lt;strong&gt;Start Listening&lt;/strong&gt;. Set &lt;strong&gt;Expected Speed&lt;/strong&gt; (WPM) close to the source — the tool shows the matching unit length in milliseconds — and adjust &lt;strong&gt;Sensitivity&lt;/strong&gt; until background noise stays below the detection line. Use a quiet room and keep the speaker close to the microphone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decoding Morse code in TikTok, YouTube and other videos
&lt;/h2&gt;

&lt;p&gt;Morse code shows up a lot in videos: puzzle channels, game trailers, ARGs, music tracks with hidden messages. You have two options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Play it into the microphone.&lt;/strong&gt; Open the &lt;a href="https://morseclue.com/en/tools/live-audio" rel="noopener noreferrer"&gt;live audio tool&lt;/a&gt;, start listening, and play the video on another device (or the same device's speaker). This is the fastest way, but room noise and speaker quality will affect accuracy. Replay the clip a few times if needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extract the audio first.&lt;/strong&gt; If you have the video file itself (for example, one you recorded or exported), save its sound as an audio file — many video editors and converters can export M4A, MP3 or WAV — trim it to the Morse section, and upload it to the &lt;a href="https://morseclue.com/en/tools/audio-decoder" rel="noopener noreferrer"&gt;audio translator&lt;/a&gt;. Only download content you have the right to use.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tip: background music and voice-over are the biggest problems in video Morse. If the beeps sit under music, the decoder may only catch part of the message.&lt;/p&gt;

&lt;p&gt;And if the Morse in the video is visual — flashing lights or dots and dashes on screen — take a screenshot and try the &lt;a href="https://morseclue.com/en/tools/image-decoder" rel="noopener noreferrer"&gt;image translator&lt;/a&gt; instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  7 reasons the output is gibberish (and how to fix them)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Background noise.&lt;/strong&gt; Hiss, hum, voices or wind create false pulses. &lt;em&gt;Fix:&lt;/em&gt; trim to the cleanest section, lower sensitivity, and raise Minimum Pulse to filter short noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Echo or reverb.&lt;/strong&gt; A recording made in a room (or a speaker recorded by a phone) smears each beep, so gaps get "filled in" and letters merge. &lt;em&gt;Fix:&lt;/em&gt; record closer to the source, in a smaller or softer room, or use the original file instead of re-recording it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More than one tone.&lt;/strong&gt; Two signals at once, or Morse mixed with music, confuses the detector. &lt;em&gt;Fix:&lt;/em&gt; cut the clip to where only one tone is audible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed drift.&lt;/strong&gt; Hand-sent Morse (straight key or "fist") often speeds up and slows down. Since the decoder estimates a single unit length, big changes in speed cause dots and dashes to be confused. &lt;em&gt;Fix:&lt;/em&gt; decode shorter sections separately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Farnsworth spacing.&lt;/strong&gt; Learning material often sends letters fast but adds extra space between letters and words. Long gaps can be read as word breaks, adding extra spaces. &lt;em&gt;Fix:&lt;/em&gt; read the Detected Morse line and fix spaces manually, or decode the letters with the &lt;a href="https://morseclue.com/en/learn/chart" rel="noopener noreferrer"&gt;chart&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heavy compression.&lt;/strong&gt; Low-bitrate MP3s or audio that has passed through a phone call or social app can lose the sharp start and end of each beep. &lt;em&gt;Fix:&lt;/em&gt; use the highest-quality version you can find; WAV is ideal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clip too short or too long.&lt;/strong&gt; A few beeps don't give enough data to estimate the timing; a long recording with changing conditions mixes several situations together. &lt;em&gt;Fix:&lt;/em&gt; aim for a clip that contains a full message with several letters, but trim away anything that isn't Morse.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If none of this helps, try the live tool with the Expected Speed set manually — giving the decoder the right WPM can make a big difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about ham radio (CW) recordings?
&lt;/h2&gt;

&lt;p&gt;Clean CW recordings with a strong signal often decode well in a browser tool. Real on-air recordings are harder: weak signals, fading, interference and several stations close together are common. For serious ham radio work, dedicated CW decoding software built for radio receivers (for example CW Skimmer or Morse Expert, among others) is usually the better choice, because it is designed to filter and track signals in noisy bands. MorseClue is best for quick, free decoding of reasonably clear recordings.&lt;/p&gt;

&lt;p&gt;And honestly, the most reliable decoder is your own ear — if you want to get there, practise with the &lt;a href="https://morseclue.com/en/learn/trainer" rel="noopener noreferrer"&gt;Morse trainer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy: your audio stays on your device
&lt;/h2&gt;

&lt;p&gt;MorseClue's audio and live translators run &lt;strong&gt;locally in your browser&lt;/strong&gt;. Your recording is analyzed on your own device and is not uploaded to a server, and the microphone stays off until you click Start Listening. That makes it safe to decode personal voice memos, private puzzle files or anything you'd rather not share.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make your own test audio (WAV)
&lt;/h2&gt;

&lt;p&gt;Not sure whether the problem is your recording or your settings? Create a clean reference file:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://morseclue.com/en/" rel="noopener noreferrer"&gt;MorseClue translator&lt;/a&gt; on the home page.&lt;/li&gt;
&lt;li&gt;Type a short message, e.g. &lt;code&gt;SOS TEST 123&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Play it to check, then &lt;strong&gt;download it as a WAV file&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Upload that WAV to the &lt;a href="https://morseclue.com/en/tools/audio-decoder" rel="noopener noreferrer"&gt;audio translator&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A generated file should decode cleanly. If it does but your recording doesn't, the issue is the recording quality — go back to the seven fixes above. You can also play the test file from a speaker into the live tool to see how much your room and microphone affect the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I decode Morse code from an audio file for free?
&lt;/h3&gt;

&lt;p&gt;Yes. MorseClue's audio translator is free, needs no sign-up, and runs in your browser. It accepts WAV, MP3, M4A, OGG and WebM files up to 5 MB.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is my audio uploaded anywhere?
&lt;/h3&gt;

&lt;p&gt;No. Decoding happens locally in your browser, so the file stays on your device.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does my decoded text have wrong letters or random spaces?
&lt;/h3&gt;

&lt;p&gt;Usually it's noise, echo, changing speed or extra spacing (Farnsworth timing). Trim the clip, adjust sensitivity and minimum pulse, or decode shorter sections.&lt;/p&gt;

&lt;h3&gt;
  
  
  How fast can the Morse code be?
&lt;/h3&gt;

&lt;p&gt;Speed matters less than clarity. Clean, consistent beeps decode best; at higher speeds the dots get very short (about 1200 ÷ WPM milliseconds), so noise and compression have a bigger effect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I decode Morse code from a video?
&lt;/h3&gt;

&lt;p&gt;Yes. Play the video into the live microphone translator, or export the video's audio and upload it to the audio translator.&lt;/p&gt;

</description>
      <category>morsecode</category>
      <category>tutorial</category>
      <category>audio</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Remove Traffic and Road Noise From Outdoor Video</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Sun, 18 Oct 2026 09:26:42 +0000</pubDate>
      <link>https://dev.to/jacak/how-to-remove-traffic-and-road-noise-from-outdoor-video-47nj</link>
      <guid>https://dev.to/jacak/how-to-remove-traffic-and-road-noise-from-outdoor-video-47nj</guid>
      <description>&lt;p&gt;You filmed a walk-and-talk vlog, a quick street interview or a property tour from the sidewalk. The picture looks great. Then you play it back and the voice is sitting on top of a constant road rumble, with the odd bus or motorbike roaring through the middle of a sentence.&lt;/p&gt;

&lt;p&gt;Here's the short answer. To remove traffic noise from a video, upload the original MP4 or MOV to &lt;a href="https://noisewipe.com/remove-background-noise-from-video" rel="noopener noreferrer"&gt;NoiseWipe&lt;/a&gt; and listen to the free 30-second cleaned preview. Steady road rumble and distant traffic usually clean up well; a horn or truck directly over the words can only be reduced. The full download is an MP4 with the original picture and cleaned, in-sync audio.&lt;/p&gt;

&lt;p&gt;The rest of this guide explains why some traffic noise is easy to remove and some isn't, how to clean a video online or by hand in an editor, and how to keep the street quieter on your next shoot.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Traffic Noise Actually Is
&lt;/h2&gt;

&lt;p&gt;"Traffic noise" isn't one sound. It's several sounds stacked together, and each one behaves differently when you try to remove it:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sound&lt;/th&gt;
&lt;th&gt;What it's like&lt;/th&gt;
&lt;th&gt;How well it cleans up&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Road rumble&lt;/td&gt;
&lt;td&gt;A constant low roar from a busy street or highway in the distance&lt;/td&gt;
&lt;td&gt;Usually well. It's steady and sits mostly below the voice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tire noise&lt;/td&gt;
&lt;td&gt;A broadband hiss, louder on wet roads and at speed&lt;/td&gt;
&lt;td&gt;Usually well while it stays steady&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A single car passing&lt;/td&gt;
&lt;td&gt;A swell that rises and fades over a few seconds&lt;/td&gt;
&lt;td&gt;Reasonably well at a distance; harder up close&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Horns and sirens&lt;/td&gt;
&lt;td&gt;Loud, tonal and sudden, often in the same range as speech&lt;/td&gt;
&lt;td&gt;Hard. Can be reduced, rarely removed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wind mixed with traffic&lt;/td&gt;
&lt;td&gt;Low thumps and rumble from air hitting the mic&lt;/td&gt;
&lt;td&gt;Depends on how bad the wind is (see below)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Noise-removal tools, including AI speech models, do best with sound that is steady and doesn't resemble a human voice. The constant wash of a city street fits that well. A horn is the opposite: it's sudden, loud and tonal, and it lands in the frequencies your voice uses.&lt;/p&gt;

&lt;p&gt;If what you're hearing is mainly low thumping and buffeting rather than engines, it's probably wind, not traffic. Our &lt;a href="https://noisewipe.com/blog/wind-noise-video-field-guide" rel="noopener noreferrer"&gt;wind noise field guide&lt;/a&gt; and the guide to &lt;a href="https://noisewipe.com/blog/remove-wind-noise-from-gopro-video" rel="noopener noreferrer"&gt;removing wind noise from GoPro video&lt;/a&gt; cover that problem in depth. And if the voice sounds hollow and roomy rather than noisy, check &lt;a href="https://noisewipe.com/blog/echo-vs-noise-audio-cleanup" rel="noopener noreferrer"&gt;echo vs. noise&lt;/a&gt; first, because the two need different fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Cleanup Can and Can't Fix
&lt;/h2&gt;

&lt;p&gt;Traffic noise is very fixable in some cases and not at all in others. It's worth knowing which group your clip falls into before you spend time or money on it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usually fixable
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Distant or continuous traffic under speech.&lt;/strong&gt; The steady roar of a road down the block, a highway in the background, city ambience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cars passing at a reasonable distance.&lt;/strong&gt; Several metres away, with the speaker still clearly louder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tire hiss and engine drone&lt;/strong&gt; that stays at a fairly constant level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traffic mixed with light wind or general outdoor rumble&lt;/strong&gt;, as long as the voice is still clearly audible.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hard or not fixable
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A horn or siren right on top of the words.&lt;/strong&gt; Cleanup can push it down, but the parts of the voice it covered are gone. You'll usually still hear a trace of it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A truck or bus passing right next to the microphone.&lt;/strong&gt; For a second or two, the vehicle is louder than the speaker, and there isn't enough voice left to recover.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Segments where traffic is louder than the voice overall.&lt;/strong&gt; If you can barely make out the words yourself, a tool won't do much better.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clipped or distorted audio.&lt;/strong&gt; If a passing vehicle overloaded the mic and made the recording crackle, that's damage to the waveform, not noise, and cleanup won't restore it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Music.&lt;/strong&gt; NoiseWipe is built for speech. It won't separate background music from a scene, and a street musician in the shot may be treated as noise.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 30-second preview is the quickest way to find out which group your recording is in before you pay anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remove Traffic Noise From a Video Online (NoiseWipe)
&lt;/h2&gt;

&lt;p&gt;You don't need to pull the audio out of the video, clean it in another app and line it back up. Upload the video and you get the video back.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upload the original video.&lt;/strong&gt; NoiseWipe accepts MP4, MOV, WebM and MKV up to 1 GB. Use the file straight from your phone, camera or editor export if you can. A copy you re-downloaded from Instagram, TikTok or a messaging app has already been compressed, and compression makes noise harder to separate from the voice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Listen to the 30-second cleaned preview.&lt;/strong&gt; It's free and doesn't need an account. Use headphones and pick the noisiest part of the clip. If a bus goes past at 1:40, judge the result by that moment, not by a quiet stretch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download the full file if it sounds right.&lt;/strong&gt; You get back an &lt;strong&gt;MP4&lt;/strong&gt; with your original picture and the cleaned soundtrack in sync. For typical MP4 and iPhone MOV files, the video stream is copied over rather than re-compressed, so the picture quality doesn't change. Only the audio track is replaced. If the video inside your file uses a format that can't go into an MP4 (some WebM or MKV files), it's converted to H.264 so the result plays everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Only need the audio?&lt;/strong&gt; Upload an audio file instead and the cleaned version downloads as &lt;strong&gt;WAV&lt;/strong&gt;. NoiseWipe doesn't export MP3. If you need MP3 or M4A for a podcast host or a smaller file, convert the WAV afterwards in your editor or any audio converter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The preview is free. Downloads start at $0.99 per file. If you clean a lot of footage, hour packs cost $2.99 for 5 hours, $5 for 10 hours and $12 for 30 hours, and subscriptions are $3.50/month for 10 hours, $6/month for 30 hours and $25/month for 100 hours. See &lt;a href="https://noisewipe.com/pricing" rel="noopener noreferrer"&gt;pricing&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Manual Fix in an Editor (If You Prefer)
&lt;/h2&gt;

&lt;p&gt;If you'd rather do it yourself in Premiere Pro, DaVinci Resolve, Final Cut, Audacity or similar, the classic approach has three parts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Cut the low rumble with a high-pass filter.&lt;/strong&gt; Most of the energy in road noise sits below the voice. A high-pass (low-cut) filter removes everything under a chosen frequency. Raise it until the rumble thins out, and stop before the voice starts to sound thin. Deeper voices need a gentler setting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Reduce the remaining noise using a noise sample.&lt;/strong&gt; Find a second or two where nobody is talking and you can hear only traffic. Use it as the noise profile in your editor's noise reduction tool, then apply a light amount to the whole clip. This works well when the traffic is steady. It works badly when the noise keeps changing, because your sample only represents one moment. Busy streets usually do keep changing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Fix individual horns or pass-bys locally.&lt;/strong&gt; Treat a single horn or loud vehicle as its own problem. Lower the volume of just that section, use a spectral editor to paint out the horn where it doesn't overlap the words, or cut to B-roll and use a cleaner take of the line.&lt;/p&gt;

&lt;p&gt;Every manual step has a cost. Too much reduction makes the voice sound thin, watery or "underwater", and noise gating can make the background pump in and out between words. That's often more distracting than the traffic was. Apply a little, listen on headphones, and compare against the original. AI speech models avoid some of this because they adapt as the noise changes instead of relying on one sample, but the same limits apply when a vehicle is louder than the voice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Record With Less Traffic Next Time
&lt;/h2&gt;

&lt;p&gt;Cleanup works best when it only has to remove a little. A few habits make a big difference outdoors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Get the mic close to the speaker.&lt;/strong&gt; This matters more than anything else. A lavalier clipped to a shirt or a handheld mic a hand's width from the mouth picks up far more voice compared with the street than a camera's built-in mic a few metres away.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a directional or lavalier mic.&lt;/strong&gt; A shotgun mic pointed at the speaker rejects some of the sound from the sides and back. A lav keeps the voice loud no matter what passes by.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn the speaker's back to the road.&lt;/strong&gt; Put the traffic behind the speaker, so a directional mic pointed at them faces away from it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let buildings help.&lt;/strong&gt; A doorway, courtyard, side street or the far side of a building blocks a surprising amount of road noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shoot off-peak.&lt;/strong&gt; Early morning or mid-afternoon on a weekday is often much quieter than rush hour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pause for loud vehicles.&lt;/strong&gt; If a bus or siren is coming, wait three seconds and repeat the line. It's free, and no tool beats a clean take.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a windscreen.&lt;/strong&gt; Outdoor wind adds rumble on top of the traffic. A foam cover or furry "deadcat" on the mic helps a lot; the &lt;a href="https://noisewipe.com/blog/wind-noise-video-field-guide" rel="noopener noreferrer"&gt;wind noise field guide&lt;/a&gt; has more tips.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The same idea applies indoors: our guide to &lt;a href="https://noisewipe.com/blog/remove-fan-noise-from-audio" rel="noopener noreferrer"&gt;removing fan and AC noise&lt;/a&gt; covers steady noise sources inside the room.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which File Do You Have?
&lt;/h2&gt;

&lt;p&gt;The cleanup is the same either way, but here's where to go depending on the file you're starting with:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your file&lt;/th&gt;
&lt;th&gt;Where it usually comes from&lt;/th&gt;
&lt;th&gt;Where to start&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MOV&lt;/td&gt;
&lt;td&gt;Videos shot on iPhone, and some cameras&lt;/td&gt;
&lt;td&gt;&lt;a href="https://noisewipe.com/remove-background-noise-from-mov" rel="noopener noreferrer"&gt;Remove background noise from MOV&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MP4&lt;/td&gt;
&lt;td&gt;Android phones, action cams, most cameras and editor exports&lt;/td&gt;
&lt;td&gt;&lt;a href="https://noisewipe.com/remove-background-noise-from-video" rel="noopener noreferrer"&gt;Remove background noise from video&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WAV or M4A&lt;/td&gt;
&lt;td&gt;An external recorder (WAV) or the iPhone Voice Memos app (M4A)&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://noisewipe.com/remove-background-noise-from-wav" rel="noopener noreferrer"&gt;WAV&lt;/a&gt; or &lt;a href="https://noisewipe.com/remove-background-noise-from-m4a" rel="noopener noreferrer"&gt;M4A&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you recorded the audio separately on a recorder or a phone, clean that file and sync it in your editor. It often sounds better than the camera's own mic. For a full rundown of formats and what comes back for each, see &lt;a href="https://noisewipe.com/blog/remove-background-noise-by-file-format" rel="noopener noreferrer"&gt;how to remove background noise by file format&lt;/a&gt;. If the video is headed for YouTube, &lt;a href="https://noisewipe.com/blog/audio-cleanup-for-youtube" rel="noopener noreferrer"&gt;audio cleanup for YouTube&lt;/a&gt; covers the rest of the sound chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can you completely remove traffic noise from a video?
&lt;/h3&gt;

&lt;p&gt;Steady, distant traffic usually yes, or close to it. Horns, sirens and vehicles passing right over speech can only be reduced, because they cover parts of the voice that can't be recovered. Listen to the free 30-second preview on the loudest part of your clip to see what to expect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to extract the audio first?
&lt;/h3&gt;

&lt;p&gt;No. Upload the video itself. You get back an MP4 with the original picture and the cleaned soundtrack in sync, so there's nothing to export or line back up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I clean an iPhone MOV video?
&lt;/h3&gt;

&lt;p&gt;Yes. Upload the MOV directly, without converting it first. The cleaned result downloads as MP4.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will cleaning the audio lower my video quality?
&lt;/h3&gt;

&lt;p&gt;For typical MP4 and iPhone MOV files, no. The video stream is copied into the new file rather than re-compressed, and only the audio track is replaced. If your file's video format can't go into an MP4 container, it's converted to H.264 so it plays everywhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I get the cleaned audio as MP3?
&lt;/h3&gt;

&lt;p&gt;Not directly. Audio downloads as WAV. Convert it to MP3 or M4A afterwards if you need a smaller file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will it remove wind as well as traffic?
&lt;/h3&gt;

&lt;p&gt;It can reduce wind and outdoor rumble while speech is still audible. Strong gusts that overload the mic are harder. See the &lt;a href="https://noisewipe.com/blog/wind-noise-video-field-guide" rel="noopener noreferrer"&gt;wind noise field guide&lt;/a&gt; for prevention tips.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much does it cost?
&lt;/h3&gt;

&lt;p&gt;The 30-second preview is free without signup. Full downloads start at $0.99 per file, with hour packs and subscriptions for regular use. See &lt;a href="https://noisewipe.com/pricing" rel="noopener noreferrer"&gt;pricing&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clean Your Street Footage
&lt;/h2&gt;

&lt;p&gt;Got a clip where the street is louder than you'd like? &lt;a href="https://noisewipe.com/remove-background-noise-from-video" rel="noopener noreferrer"&gt;Upload your video&lt;/a&gt;, listen to 30 seconds of the cleaned result for free, and decide from there.&lt;/p&gt;

</description>
      <category>video</category>
      <category>audio</category>
      <category>youtube</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Remove Background Noise From M4A, MOV and WAV Files</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Sun, 18 Oct 2026 07:48:12 +0000</pubDate>
      <link>https://dev.to/jacak/how-to-remove-background-noise-from-m4a-mov-and-wav-files-4kgp</link>
      <guid>https://dev.to/jacak/how-to-remove-background-noise-from-m4a-mov-and-wav-files-4kgp</guid>
      <description>&lt;p&gt;To remove background noise from an M4A, MOV or WAV file, upload it to NoiseWipe in your browser and listen to a free 30-second cleaned preview before you pay anything. You don't have to convert the file first. Cleaned audio comes back as a WAV file, and a cleaned video comes back as an MP4 with the original picture and the new soundtrack.&lt;/p&gt;

&lt;p&gt;Most noise removal tools treat the file format as a line in a list of supported types. People who search by format usually have a different question, though: &lt;em&gt;"I have this specific file. Can I upload it as-is, and what will I get back?"&lt;/em&gt; This guide answers that question for the three formats people ask about most, along with where each one comes from and what to watch for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Format Do You Have?
&lt;/h2&gt;

&lt;p&gt;If you're not sure, check the file extension. On iPhone, that means the Files app or the share sheet. On a Mac, use Get Info. On Windows, turn on file name extensions in File Explorer.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Where it usually comes from&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;What you get back&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;M4A&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;iPhone Voice Memos, Zoom's audio-only recording, many Android recorders, iTunes/Apple Music exports&lt;/td&gt;
&lt;td&gt;Compressed audio (usually AAC) inside an MPEG-4 container&lt;/td&gt;
&lt;td&gt;Clean &lt;strong&gt;WAV&lt;/strong&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MOV&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;iPhone and iPad camera, many mirrorless cameras, QuickTime screen recordings on Mac&lt;/td&gt;
&lt;td&gt;Apple's QuickTime video container&lt;/td&gt;
&lt;td&gt;Clean &lt;strong&gt;MP4&lt;/strong&gt; video (picture kept, audio replaced)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WAV&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Field recorders (Zoom H-series, Tascam), USB mic software, DAWs, Audacity exports&lt;/td&gt;
&lt;td&gt;Uncompressed audio&lt;/td&gt;
&lt;td&gt;Clean &lt;strong&gt;WAV&lt;/strong&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MP3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Older recorders, downloads, podcast exports&lt;/td&gt;
&lt;td&gt;Compressed audio&lt;/td&gt;
&lt;td&gt;Clean &lt;strong&gt;WAV&lt;/strong&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If your video is an MP4, which is common for Android phones, GoPro, Zoom meetings and most editors, use the &lt;a href="https://noisewipe.com/remove-background-noise-from-video" rel="noopener noreferrer"&gt;video noise removal page&lt;/a&gt;. The workflow is the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remove Background Noise From an M4A File
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What M4A is:&lt;/strong&gt; an M4A file is audio stored in the MPEG-4 container, almost always compressed with AAC. Apple uses it by default because it's small and sounds good at low bitrates. That's why nearly every &lt;strong&gt;iPhone Voice Memo&lt;/strong&gt; is an M4A, and so is the separate audio file Zoom creates when you record a meeting to your computer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why M4A recordings are often noisy:&lt;/strong&gt; they're mostly captured on phones and laptops with built-in mics, so they pick up a lot of the room: fans, traffic, the fridge, keyboards. The AAC compression doesn't add noise, but it can make heavy hiss sound slightly "swirly."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to clean up an M4A recording:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get the original file. On iPhone, open Voice Memos, tap the recording, tap &lt;strong&gt;â‹¯ â†’ Share â†’ Save to Files&lt;/strong&gt;, and upload it from Files. In Zoom, use the &lt;code&gt;.m4a&lt;/code&gt; file in your local recording folder.&lt;/li&gt;
&lt;li&gt;Upload it directly on the &lt;a href="https://noisewipe.com/remove-background-noise-from-audio" rel="noopener noreferrer"&gt;audio noise removal page&lt;/a&gt;. &lt;strong&gt;You don't need to convert M4A to MP3 first.&lt;/strong&gt; Converting adds another round of compression and doesn't help at all.&lt;/li&gt;
&lt;li&gt;Listen to the 30-second preview, then download the full cleaned file as &lt;strong&gt;WAV&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;WAV files are much larger than M4A. That's normal, and every editor, podcast host and transcription tool accepts them. If you need a small file for sharing, export to M4A or MP3 from your editor after cleaning.&lt;/p&gt;

&lt;p&gt;For iPhone-specific tips, such as when Apple's own "Enhance Recording" is enough, see our guide on &lt;a href="https://noisewipe.com/blog/remove-background-noise-from-voice-memo-iphone" rel="noopener noreferrer"&gt;removing background noise from a Voice Memo&lt;/a&gt;. For meetings, see &lt;a href="https://noisewipe.com/blog/remove-background-noise-from-zoom-recording" rel="noopener noreferrer"&gt;cleaning up a Zoom recording&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remove Background Noise From a MOV Video
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What MOV is:&lt;/strong&gt; MOV is Apple's QuickTime container. iPhones record MOV by default, usually with HEVC (H.265) or H.264 video and AAC audio, and so do a lot of cameras and Mac screen recordings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why iPhone video background noise is so common:&lt;/strong&gt; the phone's mics are tiny and sit far from the speaker when you film someone else. Wind, traffic, crowds and room echo all compete with the voice, and the phone's automatic gain raises the noise in every pause.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to remove background noise from a MOV file:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload the original &lt;code&gt;.mov&lt;/code&gt; on the &lt;a href="https://noisewipe.com/remove-background-noise-from-video" rel="noopener noreferrer"&gt;video noise removal page&lt;/a&gt;. If you're on iPhone, AirDrop or save the original clip to Files first instead of sending it through a messaging app, since messaging apps recompress it.&lt;/li&gt;
&lt;li&gt;NoiseWipe pulls out the soundtrack, cleans the speech, and puts the cleaned audio back under your original picture, in sync.&lt;/li&gt;
&lt;li&gt;Watch the 30-second preview, then download the full video.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Important: the download is an MP4, not a MOV.&lt;/strong&gt; NoiseWipe keeps your original video stream (copied as-is where the codec allows, otherwise re-encoded to H.264) and replaces the audio with a cleaned AAC track in an MP4 file. MP4 plays everywhere, and editors like Premiere, DaVinci Resolve, CapCut, iMovie and Final Cut import it fine. If you specifically need a MOV, rewrap or export it in your editor afterward.&lt;/p&gt;

&lt;p&gt;Filming outside? Wind is its own problem. See &lt;a href="https://noisewipe.com/blog/remove-wind-noise-from-gopro-video" rel="noopener noreferrer"&gt;how to remove wind noise from GoPro video&lt;/a&gt;. The same advice applies to iPhone clips.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remove Background Noise From a WAV File
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What WAV is:&lt;/strong&gt; WAV is uncompressed audio. Field recorders, USB mic apps and DAWs use it because no detail is thrown away, which also makes it the best format to start noise removal from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why WAV recordings still have noise:&lt;/strong&gt; a lossless file records the room perfectly too. Podcasts and voiceovers recorded in WAV often have room tone, hum from a ground loop, a computer fan, or hiss from turning the gain up on a quiet mic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WAV noise reduction online, step by step:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload the WAV on the &lt;a href="https://noisewipe.com/remove-background-noise-from-audio" rel="noopener noreferrer"&gt;audio noise removal page&lt;/a&gt;. Use your raw recording, not a version that's already been compressed or processed.&lt;/li&gt;
&lt;li&gt;Preview the cleanup. For podcast or voiceover work, also try one-click mastering (loudness, EQ, compression and limiting) to get an episode-ready level.&lt;/li&gt;
&lt;li&gt;Download the result as &lt;strong&gt;WAV&lt;/strong&gt;, so the cleaned file is still lossless and ready to edit or archive.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Working on a show? The &lt;a href="https://noisewipe.com/podcast-noise-reduction" rel="noopener noreferrer"&gt;podcast noise reduction page&lt;/a&gt; covers multi-speaker balancing for guests recorded at different levels.&lt;/p&gt;

&lt;h3&gt;
  
  
  What about MP3?
&lt;/h3&gt;

&lt;p&gt;MP3 works the same way: upload it, preview it, download a WAV. One honest note: MP3 has already thrown away some detail, so if you also have the original WAV or M4A, start from that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Kinds of Noise Can Be Removed?
&lt;/h2&gt;

&lt;p&gt;Format doesn't change what can be removed. The recording does. NoiseWipe is built for &lt;strong&gt;speech&lt;/strong&gt; and works best on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Steady noise:&lt;/strong&gt; room tone, &lt;a href="https://noisewipe.com/blog/remove-fan-noise-from-audio" rel="noopener noreferrer"&gt;fans and air conditioners&lt;/a&gt;, and electrical &lt;a href="https://noisewipe.com/blog/remove-hum-and-buzz-from-audio" rel="noopener noreferrer"&gt;hum and buzz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clicks&lt;/strong&gt; and small mouth or desk noises&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wind&lt;/strong&gt; and outdoor rumble, as long as the voice is still audible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's less reliable with sudden, loud sounds that overlap words (a door slam, a dog bark mid-sentence), with noise louder than the voice, and with distorted or clipped audio. It &lt;strong&gt;can't&lt;/strong&gt; separate music from vocals, so don't use it to strip background music from a song or a video soundtrack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formats NoiseWipe Accepts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Audio:&lt;/strong&gt; MP3, WAV, M4A, AAC, FLAC, OGG, downloaded as WAV&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video:&lt;/strong&gt; MP4, MOV, WebM, MKV, downloaded as MP4 with the original picture and cleaned audio&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Size:&lt;/strong&gt; files up to 1 GB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Files are encrypted, deleted automatically according to the retention settings, and never used to train models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free Preview vs Full Download
&lt;/h2&gt;

&lt;p&gt;NoiseWipe isn't fully free, and we'd rather say so up front:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free:&lt;/strong&gt; upload any supported file and hear (or watch) a &lt;strong&gt;30-second cleaned preview&lt;/strong&gt;. No signup needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single file:&lt;/strong&gt; download the full cleaned file from &lt;strong&gt;$0.99&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay as you go:&lt;/strong&gt; 5 hours for $2.99, 10 hours for $5, or 30 hours for $12. Buy once and use the hours whenever you like.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subscriptions:&lt;/strong&gt; 10 hours/month for $3.50, 30 hours/month for $6, or 100 hours/month for $25. Cancel anytime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See &lt;a href="https://noisewipe.com/pricing" rel="noopener noreferrer"&gt;current pricing&lt;/a&gt; for the latest details. The preview is there so you can confirm the result on &lt;em&gt;your&lt;/em&gt; file before paying.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do I need to convert M4A to MP3 before removing noise?
&lt;/h3&gt;

&lt;p&gt;No. Upload the M4A directly. Converting first adds another round of compression and doesn't improve the cleanup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I clean the audio of an iPhone MOV video without an app?
&lt;/h3&gt;

&lt;p&gt;Yes. Upload the MOV in Safari or any desktop browser. NoiseWipe returns an MP4 with your original picture and the cleaned audio in sync, so you don't need to install an app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will cleaning a WAV file reduce its quality?
&lt;/h3&gt;

&lt;p&gt;The cleaned file downloads as WAV, so no lossy compression is added. Noise removal always changes the audio a little, which is why you should check the preview with headphones.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it free?
&lt;/h3&gt;

&lt;p&gt;The 30-second preview is free and needs no signup. Downloading the full file starts at $0.99, and there are hour packs and subscriptions if you clean files often.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which noises work best?
&lt;/h3&gt;

&lt;p&gt;Steady noise such as fans, hum, AC and room tone gives the most reliable results. Sudden noises that overlap speech are harder to remove completely.&lt;/p&gt;

&lt;h3&gt;
  
  
  Are my files private?
&lt;/h3&gt;

&lt;p&gt;Yes. Files are encrypted, deleted automatically according to the retention settings, and not used for training.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I get my cleaned audio back as M4A or MP3?
&lt;/h3&gt;

&lt;p&gt;Not directly. Audio downloads as WAV, which is lossless and accepted everywhere. If you need a smaller file, convert the WAV to M4A or MP3 in your editor or a converter afterward.&lt;/p&gt;

</description>
      <category>audio</category>
      <category>video</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>iCloud Private Relay DNS &amp; IP Leak (2026): How to Test Yours</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Sat, 17 Oct 2026 17:47:24 +0000</pubDate>
      <link>https://dev.to/jacak/icloud-private-relay-dns-ip-leak-2026-how-to-test-yours-4bh2</link>
      <guid>https://dev.to/jacak/icloud-private-relay-dns-ip-leak-2026-how-to-test-yours-4bh2</guid>
      <description>&lt;p&gt;Apple's iCloud Private Relay is often treated as "a VPN for Safari." In August 2026 that assumption took a hit: researchers Tommy Mysk and Talal Haj Bakry showed that a few WebKit features could send DNS lookups, or even a device's real IP, outside the relay. &lt;a href="https://www.macrumors.com/2026/08/05/icloud-private-relay-ip-address-leak/" rel="noopener noreferrer"&gt;MacRumors&lt;/a&gt; and &lt;a href="https://www.heise.de/en/news/iPhone-browser-Safari-DNS-and-IP-leaks-despite-iCloud-Private-Relay-11399985.html" rel="noopener noreferrer"&gt;heise&lt;/a&gt; picked it up the next day.&lt;/p&gt;

&lt;p&gt;This post walks through what was reported, what Private Relay actually covers, how to check your own Safari session in about two minutes with free browser tools on &lt;a href="https://ipdet.app/" rel="noopener noreferrer"&gt;ipdet.app&lt;/a&gt;, and which mitigations still make sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the August 2026 disclosure said
&lt;/h2&gt;

&lt;p&gt;On 4 August 2026, Mysk published &lt;a href="https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/" rel="noopener noreferrer"&gt;IP and DNS Leaks in WebKit Affecting Proxy Browsers and Apple iCloud Private Relay&lt;/a&gt;. They described three WebKit features that could send traffic outside the path configured via &lt;code&gt;WKWebsiteDataStore.proxyConfigurations&lt;/code&gt;â€”the API iOS and macOS browsers use for application-level proxies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS prefetching (iOS 26.0 for this path): &lt;code&gt;&amp;lt;link rel="dns-prefetch"&amp;gt;&lt;/code&gt; lookups used the deviceâ€™s normal DNS path, so an authoritative server could see queries from the visitorâ€™s real network rather than from a proxy or Private Relay.&lt;/li&gt;
&lt;li&gt;WebAuthn Related Origin Requests (since iOS 18.0): the OS credential service may fetch &lt;code&gt;/.well-known/webauthn&lt;/code&gt; itself for related-origin passkey flows. That HTTPS request was reported to leave the Safari/Private Relay path and reveal the device IPâ€”even without a visible passkey prompt.&lt;/li&gt;
&lt;li&gt;WebTransport (iOS 26.4): &lt;code&gt;new WebTransport(url)&lt;/code&gt; could open a direct HTTP/3 connection that bypassed the configured proxy, again exposing the real IP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mysk wrote that the same bypasses affected iCloud Private Relay, because those requests sit outside WebKitâ€™s ordinary page-loading traffic that Private Relay is meant to cover. They also stated that system-level VPNs are not affected the same way, because a VPN tunnels the deviceâ€™s traffic as a whole.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.macrumors.com/2026/08/05/icloud-private-relay-ip-address-leak/" rel="noopener noreferrer"&gt;MacRumors&lt;/a&gt; and &lt;a href="https://www.heise.de/en/news/iPhone-browser-Safari-DNS-and-IP-leaks-despite-iCloud-Private-Relay-11399985.html" rel="noopener noreferrer"&gt;heise&lt;/a&gt; covered the story the next day. In a &lt;a href="https://mysk.blog/2026/08/25/responsible-disclosure/" rel="noopener noreferrer"&gt;follow-up on disclosure&lt;/a&gt; (25 August 2026), Mysk reported that on 17 August 2026 Apple shipped changes in iOS/iPadOS 26.6.1 and macOS Tahoe 26.6.2 that, in their testing, stopped those leaks from bypassing Private Relayâ€”and that the fix was Private Relayâ€“specific, not a blanket fix for third-party WebKit proxy browsers.&lt;/p&gt;

&lt;p&gt;So if you are asking â€œdoes iCloud Private Relay leak?â€ in late 2026: it did on the paths Mysk documented before those OS updates. Keep devices updated, and still verify what Safari shows you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Private Relay protectsâ€”and what it does not
&lt;/h2&gt;

&lt;p&gt;Appleâ€™s own support documentation describes &lt;a href="https://support.apple.com/en-us/102602" rel="noopener noreferrer"&gt;iCloud Private Relay&lt;/a&gt; as a privacy feature for iCloud+ subscribers that helps stop websites and network providers from building a detailed profile of your Safari browsing. Traffic leaves the device encrypted and passes through two separate internet relays, so that (by design) no single partyâ€”not even Appleâ€”sees both who you are and which sites you visit.&lt;/p&gt;

&lt;p&gt;That design is easy to confuse with a VPN:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scope: Private Relay targets Safari web browsing and related DNS, not every app on the device.&lt;/li&gt;
&lt;li&gt;Not a whole-device tunnel: Myskâ€™s point that VPNs were unaffected rests on system-level tunneling, not browser proxy configuration.&lt;/li&gt;
&lt;li&gt;Same WebKit bypasses before the fix: Private Relay was susceptible to the three paths above until Appleâ€™s August updates; third-party proxy browsers may still need their own mitigations.&lt;/li&gt;
&lt;li&gt;Other browsers: On Mac you can leave Safari entirely. Private Relay remains an Apple iCloud+ / Safari-oriented feature, not â€œChromeâ€™s VPN.â€&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your mental model is â€œPrivate Relay = my IP is always hidden everywhere,â€ that model was already too strong before August 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  How an â€œicloud private relay ip leakâ€ shows up in practice
&lt;/h2&gt;

&lt;p&gt;It helps to separate three different signals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unexpected DNS resolvers (lookups leaving the path you intended): &lt;a href="https://ipdet.app/dns-leak-test" rel="noopener noreferrer"&gt;/dns-leak-test&lt;/a&gt;, &lt;a href="https://ipdet.app/what-is-my-dns" rel="noopener noreferrer"&gt;/what-is-my-dns&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Unexpected public IP on ordinary HTTPS (the address sites see for normal page loads): &lt;a href="https://ipdet.app/ip-lookup" rel="noopener noreferrer"&gt;/ip-lookup&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Extra WebRTC candidates (STUN/host candidates that may publish another address): &lt;a href="https://ipdet.app/webrtc-leak-test" rel="noopener noreferrer"&gt;/webrtc-leak-test&lt;/a&gt;, &lt;a href="https://ipdet.app/webrtc-test" rel="noopener noreferrer"&gt;/webrtc-test&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Myskâ€™s PoC site (&lt;a href="https://leaks.psylo.app" rel="noopener noreferrer"&gt;leaks.psylo.app&lt;/a&gt;) targets the specific prefetch / WebAuthn / WebTransport behaviours. ipdet does not reproduce those exact pages; it shows the resolvers and addresses your current session exposes during ordinary diagnosticsâ€”what most people need after enabling Private Relay, updating iOS, or switching networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-step: test Private Relay with ipdet (about two minutes)
&lt;/h2&gt;

&lt;p&gt;Use Safari on iPhone, iPad, or Mac. Confirm iCloud Private Relay is on (Settings â†’ [your name] â†’ iCloud â†’ Private Relay, or the equivalent macOS path). Update to at least the versions Mysk reported as fixed for Private Relay if you can (iOS/iPadOS 26.6.1, macOS 26.6.2 or newer). Then:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Record the public IP Safari presents
&lt;/h3&gt;

&lt;p&gt;Open the &lt;a href="https://ipdet.app/ip-lookup" rel="noopener noreferrer"&gt;IP lookup&lt;/a&gt; page. Wait for IPv4 and IPv6 cards to settle. Note country/ASN/ISP across sources. With Private Relay working for ordinary browsing, you should not expect your access ISPâ€™s residential label to look identical to a raw cellular or home WAN check with Private Relay offâ€”Appleâ€™s relay design is meant to hide your exact address from the sites you visit in Safari. Save a screenshot or short note: address(es), ASN, and whether IPv6 appeared. Multi-source disagreement on city is normal; a sudden return of your home ISPâ€™s ASN with Private Relay supposedly on is the signal that matters.&lt;/p&gt;

&lt;p&gt;Toggle Private Relay off, refresh, and compare. Toggle it back on and refresh again. The point is a baseline, not a courtroom proof. If nothing changes when you flip the setting, confirm you are in Safari (not an in-app browser) and that Private Relay is allowed on the current Wi-Fi or cellular network.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Run a DNS leak test
&lt;/h3&gt;

&lt;p&gt;Open the &lt;a href="https://ipdet.app/dns-leak-test" rel="noopener noreferrer"&gt;DNS leak test&lt;/a&gt;. Connect to the network you care about, keep Private Relay on, and run the standard test first. Read which resolver networks answered.&lt;/p&gt;

&lt;p&gt;How to interpret results in this context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resolvers that clearly match your access ISP while you believed all Safari DNS went through Private Relay are the classic â€œDNS leakâ€ smell.&lt;/li&gt;
&lt;li&gt;Resolvers that belong to large public or Apple-related infrastructure may still be intentional. A different resolver is not automatically a failure; an unexpected ISP resolver is the usual red flag. See also &lt;a href="https://ipdet.app/what-is-a-dns-leak" rel="noopener noreferrer"&gt;what is a DNS leak&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If results look noisy, try the &lt;a href="https://ipdet.app/dns-leak-test-modes" rel="noopener noreferrer"&gt;standard vs extended modes&lt;/a&gt; explainer and re-run. Anycast pools can show extra recursive nodes across rounds.&lt;/li&gt;
&lt;li&gt;Cross-check with &lt;a href="https://ipdet.app/what-is-my-dns" rel="noopener noreferrer"&gt;what is my DNS&lt;/a&gt; for a quick view of which resolver the browser appears to be using right now.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Browser Secure DNS / DNS-over-HTTPS can change the picture. If you are diagnosing Private Relay itself, avoid stacking three DNS overrides at once. Change one variable, re-test.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Run the WebRTC leak test
&lt;/h3&gt;

&lt;p&gt;Open the &lt;a href="https://ipdet.app/webrtc-leak-test" rel="noopener noreferrer"&gt;WebRTC leak test&lt;/a&gt; (or the live &lt;a href="https://ipdet.app/webrtc-test" rel="noopener noreferrer"&gt;WebRTC test&lt;/a&gt;). Expand candidates if needed. Compare any public addresses with the IP lookup result.&lt;/p&gt;

&lt;p&gt;WebRTC is a separate channel from the Mysk WebTransport finding, but it answers a related user question: â€œwhile I browse, what else can this browser publish?â€ Host candidates on a LAN are common. An unexpected public or IPv6 address beside your intended egress is worth investigatingâ€”especially on Mac with mixed VPN / relay / Wi-Fi setups.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Optional combined pass
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://ipdet.app/test-vpn" rel="noopener noreferrer"&gt;test VPN&lt;/a&gt; page bundles IP, DNS, and WebRTC-oriented checks. It is a convenient second pass after you change Private Relay, install an OS update, or enable a real VPN alongside Safari.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. If you need the specialist PoC
&lt;/h3&gt;

&lt;p&gt;For the exact WebAuthn / WebTransport / prefetch behaviours from the disclosure, use the researchersâ€™ own test site linked from their post. Treat ipdet and that PoC as complementary, not substitutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to read a â€œfailâ€ without panicking
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;One unexpected resolver once: flush DNS, disable browser Secure DNS temporarily, re-run standard then extended tests.&lt;/li&gt;
&lt;li&gt;Stable ISP DNS with Private Relay on (unpatched OS): update, then re-testâ€”lookups may still be leaving the relayed path.&lt;/li&gt;
&lt;li&gt;IP lookup shows your raw carrier IP with Private Relay on: confirm the feature is enabled for that network (captive portals and some filters break it), then re-test on a patched OS.&lt;/li&gt;
&lt;li&gt;WebRTC shows an extra public IP while HTTPS looks relayed: fix WebRTC separately; that class of exposure predates the Mysk Private Relay story.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigations that still help
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Update to the Private Relay fixes Mysk reported (iOS/iPadOS 26.6.1, macOS 26.6.2 or later) and verify on-device.&lt;/li&gt;
&lt;li&gt;Use a system-level VPN when you need whole-device tunneling, then confirm with &lt;a href="https://ipdet.app/test-vpn" rel="noopener noreferrer"&gt;/test-vpn&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Lockdown Mode (for example Onion Browserâ€™s â€œSilverâ€ level) can disable WebTransport; it has real compatibility costs.&lt;/li&gt;
&lt;li&gt;On Mac, non-Safari browsers avoid Private Relayâ€™s path entirelyâ€”a different tradeoff, not an upgrade to Private Relay.&lt;/li&gt;
&lt;li&gt;Third-party proxy browsers may still need app-level mitigations; Mysk said Appleâ€™s change did not fix general WebKit proxy behaviour for those apps.&lt;/li&gt;
&lt;li&gt;Re-test after every change. The &lt;a href="https://ipdet.app/how-to-fix-a-dns-leak" rel="noopener noreferrer"&gt;how to fix a DNS leak&lt;/a&gt; checklist still applies when a VPN or custom DNS is involved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most people who saw the headline just want a two-minute check. Measure first, then decide whether you need a full VPN, an OS update, or simply a clearer mental model of what Private Relay covers.&lt;/p&gt;

&lt;p&gt;Next step: open Safari, confirm Private Relay, and run &lt;a href="https://ipdet.app/ip-lookup" rel="noopener noreferrer"&gt;/ip-lookup&lt;/a&gt; â†’ &lt;a href="https://ipdet.app/dns-leak-test" rel="noopener noreferrer"&gt;/dns-leak-test&lt;/a&gt; â†’ &lt;a href="https://ipdet.app/webrtc-leak-test" rel="noopener noreferrer"&gt;/webrtc-leak-test&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does iCloud Private Relay leak DNS or IP addresses?
&lt;/h3&gt;

&lt;p&gt;Researchers Tommy Mysk and Talal Haj Bakry reported in August 2026 that three WebKit pathsâ€”DNS prefetching, WebAuthn Related Origin Requests, and WebTransportâ€”could bypass Private Relay and expose real DNS activity or the device IP. Apple later shipped Private Relayâ€“specific fixes in iOS/iPadOS 26.6.1 and macOS 26.6.2. Keep the OS updated and re-test if you rely on Private Relay.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does a VPN fix an iCloud Private Relay leak?
&lt;/h3&gt;

&lt;p&gt;A system-level VPN tunnels device traffic as a whole, so the WebKit proxy bypasses described in the Mysk report do not apply the same way. Private Relay only covers Safari web traffic and DNS for iCloud+ subscribers; it is not a full-device VPN.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does this affect Chrome on iOS?
&lt;/h3&gt;

&lt;p&gt;On iOS outside the EU, browsers must use WebKit. The Mysk write-up focused on WebKit proxy configuration and Private Relay. Chrome on iOS does not use Private Relay; Private Relay is an Apple Safari (and related Apple browsing) feature. For everyday checks, compare DNS and public IP in the browser you actually use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Private Relay the same as a VPN?
&lt;/h3&gt;

&lt;p&gt;No. Apple documents Private Relay as a two-hop relay for Safari browsing so that no single party sees both who you are and which sites you visit. It does not encrypt or tunnel all apps on the device the way a VPN does.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I check for an iCloud Private Relay DNS leak with ipdet?
&lt;/h3&gt;

&lt;p&gt;In Safari with Private Relay on, open the IP lookup, run the DNS leak test, then the WebRTC leak test. Compare resolvers and public addresses with what you expect from Private Relay. Specialized PoCs such as Myskâ€™s leaks.psylo.app target the exact WebAuthn and WebTransport paths; ipdetâ€™s tools show the DNS exits and addresses your session exposes for ordinary browsing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/" rel="noopener noreferrer"&gt;Mysk â€” IP and DNS Leaks in WebKit Affecting Proxy Browsers and Apple iCloud Private Relay (2026-08-04)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.macrumors.com/2026/08/05/icloud-private-relay-ip-address-leak/" rel="noopener noreferrer"&gt;MacRumors â€” Appleâ€™s iCloud Private Relay is Leaking Usersâ€™ Real IP Addresses (2026-08-05)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.heise.de/en/news/iPhone-browser-Safari-DNS-and-IP-leaks-despite-iCloud-Private-Relay-11399985.html" rel="noopener noreferrer"&gt;heise online â€” iPhone browser Safari: DNS and IP leaks despite iCloud Private Relay (2026-08-05)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mysk.blog/2026/08/25/responsible-disclosure/" rel="noopener noreferrer"&gt;Mysk â€” Thoughts on Responsible Disclosure (2026-08-25)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.apple.com/en-us/102602" rel="noopener noreferrer"&gt;Apple Support â€” About iCloud Private Relay&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://ipdet.app/blog/icloud-private-relay-dns-leak" rel="noopener noreferrer"&gt;ipdet.app&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>apple</category>
      <category>networking</category>
    </item>
    <item>
      <title>US Address Form Test Cases: 30 Checks for QA (With Sample Data)</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Sat, 17 Oct 2026 08:12:51 +0000</pubDate>
      <link>https://dev.to/jacak/us-address-form-test-cases-30-checks-for-qa-with-sample-data-l57</link>
      <guid>https://dev.to/jacak/us-address-form-test-cases-30-checks-for-qa-with-sample-data-l57</guid>
      <description>&lt;p&gt;Good US address form test cases cover empty required fields, apartment and suite numbers in line 2, two-letter state codes, ZIP codes with leading zeros stored as text, ZIP+4 format, city-state-ZIP mismatches, PO Boxes, APO/FPO military addresses, US territories, length limits, and special characters. Use fictional addresses, never real customer data.&lt;/p&gt;

&lt;p&gt;This post turns that list into &lt;strong&gt;30 test cases&lt;/strong&gt; with an ID, an input, and an expected result. You can paste the table into TestRail, Jira, or a spreadsheet and adapt it to your own rules.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Scope note:&lt;/strong&gt; This checklist is for testing your own software in development or staging. The sample addresses are fictional. They can't receive mail and won't pass real address, identity, or payment verification. Don't use them to sign up for services or get around any checks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you need help preparing the test &lt;em&gt;data&lt;/em&gt; itself (fixtures, why real addresses are risky, how to build a set quickly), read our companion guide: &lt;a href="https://www.usadizhi.com/en/blog/us-address-test-data-for-checkout-forms" rel="noopener noreferrer"&gt;US Address Test Data for Checkout Forms&lt;/a&gt;. This post focuses on the test &lt;em&gt;cases&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use this checklist
&lt;/h2&gt;

&lt;p&gt;The cases assume a typical US address form with five fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Address line 1&lt;/strong&gt; (required)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Address line 2&lt;/strong&gt; (optional: apartment, suite, unit)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;City&lt;/strong&gt; (required)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State&lt;/strong&gt; (required, dropdown or text)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZIP code&lt;/strong&gt; (required, 5 digits or ZIP+4)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your product may have different rules. For example, you may block PO Boxes for shipping, or you may not ship to territories. That's fine. Keep the case, and change the expected result to match your rule. A test case that says "rejected with a clear message" is just as useful as one that says "accepted".&lt;/p&gt;

&lt;p&gt;For each case, check three things: what the user sees, what gets saved, and what gets sent to downstream systems (shipping, tax, CRM).&lt;/p&gt;

&lt;h2&gt;
  
  
  Required fields and empty states
&lt;/h2&gt;

&lt;p&gt;Start with the simple failures. They catch more bugs than you'd expect.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Each required field empty.&lt;/strong&gt; Leave line 1, city, state, and ZIP empty one at a time. Each should show its own error next to the field, not one generic message at the top.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spaces only.&lt;/strong&gt; Type three spaces into line 1. Many forms check "not empty" but forget to trim, so a blank address gets saved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Values kept after an error.&lt;/strong&gt; Fill everything, leave ZIP empty, and submit. After the error, the other fields should still hold what the user typed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Line 2 empty.&lt;/strong&gt; Line 2 is optional. Submitting without it must work and must not save the word "null" or "undefined".&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Street line 1 and line 2
&lt;/h2&gt;

&lt;p&gt;Street fields need to accept the messy text real people type.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unit formats.&lt;/strong&gt; Test "Apt 4B", "Ste 210", "Unit 7", and "# 12" in line 2. All should be saved exactly as entered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unit typed in line 1.&lt;/strong&gt; Enter "120 Sample Ave Apt 3" in line 1. Decide whether you split it or keep it, and make sure nothing is cut off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apostrophes and hyphens.&lt;/strong&gt; "45 O'Brien St" and "12-14 Test-Hill Rd" are valid. Check that the apostrophe isn't escaped twice ("O\'Brien") on the confirmation page or in emails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Length limit.&lt;/strong&gt; Find your limit (often 35, 50, or 100 characters). Enter exactly the limit, then one more. The form, the database column, and the shipping label API should all agree.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unicode.&lt;/strong&gt; Try "88 Peña Blvd". Accents should save and display correctly. If your carrier needs ASCII only, convert it on purpose instead of breaking it by accident.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  City and state
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Two-letter code vs full name.&lt;/strong&gt; If the state is a dropdown, the label can say "California" but the value sent to the API should usually be "CA". Check the network request, not just the screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;District of Columbia.&lt;/strong&gt; "DC" is not a state, but it's a valid address. Make sure it's in the list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;US territories.&lt;/strong&gt; Puerto Rico (PR), Guam (GU), and the US Virgin Islands (VI) use US ZIP codes. Decide if you support them. If you don't, show a clear message instead of a broken form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;City with spaces or punctuation.&lt;/strong&gt; "Salt Lake City", "St. Louis", and "Winston-Salem" should all save as typed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ZIP and ZIP+4
&lt;/h2&gt;

&lt;p&gt;ZIP codes cause more data bugs than any other field.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Leading zeros.&lt;/strong&gt; Many Northeast ZIP codes start with 0, for example in Connecticut, Massachusetts, and New Jersey. A ZIP like "06103" must stay "06103". If it's stored as a number, it becomes "6103". See sample addresses on the &lt;a href="https://www.usadizhi.com/en/usa-address/connecticut" rel="noopener noreferrer"&gt;Connecticut page&lt;/a&gt; and the &lt;a href="https://www.usadizhi.com/en/usa-address/massachusetts" rel="noopener noreferrer"&gt;Massachusetts page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZIP+4.&lt;/strong&gt; "12345-6789" is valid. Test with and without the hyphen ("123456789") and decide which you accept.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bad characters.&lt;/strong&gt; Letters, spaces, and symbols ("1234A", "12 345") should be rejected with a clear message.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wrong length.&lt;/strong&gt; Four digits, six digits, and "12345-67" should be rejected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZIP doesn't match state.&lt;/strong&gt; A ZIP starting with 9 (West Coast) with state "NY" is suspicious. Decide whether to warn, block, or allow, and test that behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Special addresses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PO Box.&lt;/strong&gt; "PO Box 1234", "P.O. Box 1234", and "Post Office Box 1234". If you block PO Boxes for some carriers, test all common spellings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;APO/FPO/DPO.&lt;/strong&gt; Military addresses use "APO", "FPO", or "DPO" as the city and "AA", "AE", or "AP" as the state. If you sell to military families, these must work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rural route.&lt;/strong&gt; "RR 2 Box 15" is an older format that still appears. It shouldn't break your street parser.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data round-trip
&lt;/h2&gt;

&lt;p&gt;Many bugs happen after the form, not in it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Database to screen.&lt;/strong&gt; Save an address with line 2 and a leading-zero ZIP. Reload the account page. Both should be unchanged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSV and Excel export.&lt;/strong&gt; Export orders to CSV and open the file in Excel. Excel often turns "06103" into "6103". Check the raw CSV too, and consider quoting ZIP values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autocomplete overwrite.&lt;/strong&gt; If you use an address autocomplete, type a line 2 value, then pick a suggestion. The suggestion should not wipe out line 2.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edit and resave.&lt;/strong&gt; Change only the city on a saved address. Every other field should stay the same.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sample test case table
&lt;/h2&gt;

&lt;p&gt;All inputs below are fictional. Replace the expected results with your own rules where needed.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Case&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Expected&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-01&lt;/td&gt;
&lt;td&gt;Line 1 empty&lt;/td&gt;
&lt;td&gt;Line 1 = ""&lt;/td&gt;
&lt;td&gt;Field error on line 1; form not submitted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-02&lt;/td&gt;
&lt;td&gt;City empty&lt;/td&gt;
&lt;td&gt;City = ""&lt;/td&gt;
&lt;td&gt;Field error on city&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-03&lt;/td&gt;
&lt;td&gt;State empty&lt;/td&gt;
&lt;td&gt;State not selected&lt;/td&gt;
&lt;td&gt;Field error on state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-04&lt;/td&gt;
&lt;td&gt;ZIP empty&lt;/td&gt;
&lt;td&gt;ZIP = ""&lt;/td&gt;
&lt;td&gt;Field error on ZIP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-05&lt;/td&gt;
&lt;td&gt;Spaces only&lt;/td&gt;
&lt;td&gt;Line 1 = "   "&lt;/td&gt;
&lt;td&gt;Treated as empty; error shown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-06&lt;/td&gt;
&lt;td&gt;Values kept after error&lt;/td&gt;
&lt;td&gt;All filled except ZIP&lt;/td&gt;
&lt;td&gt;Error on ZIP; other fields keep values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-07&lt;/td&gt;
&lt;td&gt;Line 2 optional&lt;/td&gt;
&lt;td&gt;Line 2 = ""&lt;/td&gt;
&lt;td&gt;Accepted; saved as empty, not "null"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-08&lt;/td&gt;
&lt;td&gt;Apartment in line 2&lt;/td&gt;
&lt;td&gt;Line 2 = "Apt 4B"&lt;/td&gt;
&lt;td&gt;Saved and shown exactly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-09&lt;/td&gt;
&lt;td&gt;Suite in line 2&lt;/td&gt;
&lt;td&gt;Line 2 = "Ste 210"&lt;/td&gt;
&lt;td&gt;Saved and shown exactly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-10&lt;/td&gt;
&lt;td&gt;Hash unit&lt;/td&gt;
&lt;td&gt;Line 2 = "# 12"&lt;/td&gt;
&lt;td&gt;Saved; no HTML or URL encoding issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-11&lt;/td&gt;
&lt;td&gt;Apostrophe&lt;/td&gt;
&lt;td&gt;Line 1 = "45 O'Brien St"&lt;/td&gt;
&lt;td&gt;Saved and shown without extra escaping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-12&lt;/td&gt;
&lt;td&gt;Hyphen in number&lt;/td&gt;
&lt;td&gt;Line 1 = "12-14 Test-Hill Rd"&lt;/td&gt;
&lt;td&gt;Accepted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-13&lt;/td&gt;
&lt;td&gt;Max length&lt;/td&gt;
&lt;td&gt;Line 1 at limit&lt;/td&gt;
&lt;td&gt;Accepted; not cut in DB or label&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-14&lt;/td&gt;
&lt;td&gt;Over max length&lt;/td&gt;
&lt;td&gt;Line 1 at limit + 1&lt;/td&gt;
&lt;td&gt;Blocked with message, or input stops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-15&lt;/td&gt;
&lt;td&gt;Unicode&lt;/td&gt;
&lt;td&gt;Line 1 = "88 Peña Blvd"&lt;/td&gt;
&lt;td&gt;Saved and shown correctly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-16&lt;/td&gt;
&lt;td&gt;State value&lt;/td&gt;
&lt;td&gt;State = California&lt;/td&gt;
&lt;td&gt;API receives "CA"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-17&lt;/td&gt;
&lt;td&gt;DC&lt;/td&gt;
&lt;td&gt;City = Washington, State = DC&lt;/td&gt;
&lt;td&gt;Accepted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-18&lt;/td&gt;
&lt;td&gt;Territory&lt;/td&gt;
&lt;td&gt;State = PR, ZIP = 00901&lt;/td&gt;
&lt;td&gt;Accepted, or clear "not supported" message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-19&lt;/td&gt;
&lt;td&gt;City with punctuation&lt;/td&gt;
&lt;td&gt;City = "St. Louis"&lt;/td&gt;
&lt;td&gt;Saved as typed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-20&lt;/td&gt;
&lt;td&gt;Leading-zero ZIP&lt;/td&gt;
&lt;td&gt;State = CT, ZIP = 06103&lt;/td&gt;
&lt;td&gt;Saved as "06103"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-21&lt;/td&gt;
&lt;td&gt;ZIP+4 with hyphen&lt;/td&gt;
&lt;td&gt;ZIP = 12345-6789&lt;/td&gt;
&lt;td&gt;Accepted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-22&lt;/td&gt;
&lt;td&gt;ZIP+4 no hyphen&lt;/td&gt;
&lt;td&gt;ZIP = 123456789&lt;/td&gt;
&lt;td&gt;Accepted and normalized, or rejected by rule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-23&lt;/td&gt;
&lt;td&gt;Letters in ZIP&lt;/td&gt;
&lt;td&gt;ZIP = 1234A&lt;/td&gt;
&lt;td&gt;Rejected with message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-24&lt;/td&gt;
&lt;td&gt;Short ZIP&lt;/td&gt;
&lt;td&gt;ZIP = 1234&lt;/td&gt;
&lt;td&gt;Rejected with message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-25&lt;/td&gt;
&lt;td&gt;ZIP/state mismatch&lt;/td&gt;
&lt;td&gt;State = NY, ZIP = 97205&lt;/td&gt;
&lt;td&gt;Warning or block, per rule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-26&lt;/td&gt;
&lt;td&gt;PO Box spellings&lt;/td&gt;
&lt;td&gt;Line 1 = "P.O. Box 1234"&lt;/td&gt;
&lt;td&gt;Same handling as "PO Box 1234"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-27&lt;/td&gt;
&lt;td&gt;Military address&lt;/td&gt;
&lt;td&gt;City = APO, State = AE, ZIP = 09012&lt;/td&gt;
&lt;td&gt;Accepted if supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-28&lt;/td&gt;
&lt;td&gt;Rural route&lt;/td&gt;
&lt;td&gt;Line 1 = "RR 2 Box 15"&lt;/td&gt;
&lt;td&gt;Accepted; parser doesn't fail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-29&lt;/td&gt;
&lt;td&gt;CSV export&lt;/td&gt;
&lt;td&gt;Order with ZIP 02108, Line 2 "Unit 7"&lt;/td&gt;
&lt;td&gt;CSV keeps "02108" and line 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ADDR-30&lt;/td&gt;
&lt;td&gt;Autocomplete keeps line 2&lt;/td&gt;
&lt;td&gt;Type line 2, then pick suggestion&lt;/td&gt;
&lt;td&gt;Line 2 not erased&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Generating test data
&lt;/h2&gt;

&lt;p&gt;The cases above need a steady supply of realistic but fictional addresses. The &lt;a href="https://www.usadizhi.com/en" rel="noopener noreferrer"&gt;USA Dizhi US address generator&lt;/a&gt; creates US-formatted sample records (street, city, state abbreviation, ZIP, and phone) for free. It's useful when you need many rows quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use state pages, such as &lt;a href="https://www.usadizhi.com/en/usa-address/california" rel="noopener noreferrer"&gt;California&lt;/a&gt;, to get addresses for a specific state.&lt;/li&gt;
&lt;li&gt;Use city pages, such as &lt;a href="https://www.usadizhi.com/en/usa-address/city/new-york" rel="noopener noreferrer"&gt;New York&lt;/a&gt;, for city-level samples.&lt;/li&gt;
&lt;li&gt;If your form also accepts Canada, the &lt;a href="https://www.usadizhi.com/en/ca-address" rel="noopener noreferrer"&gt;Canada address generator&lt;/a&gt; helps you test postal codes like "K1A 0B1".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Generated records are for testing only. Please read the &lt;a href="https://www.usadizhi.com/en/disclaimer" rel="noopener noreferrer"&gt;disclaimer&lt;/a&gt; before use.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Should a ZIP code field be numeric?
&lt;/h3&gt;

&lt;p&gt;No. Store ZIP codes as text. A numeric field drops leading zeros, so "02108" becomes "2108". On mobile, you can still show a number keypad with &lt;code&gt;inputmode="numeric"&lt;/code&gt; while keeping a text field.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a valid ZIP+4 format?
&lt;/h3&gt;

&lt;p&gt;Five digits, a hyphen, and four digits, for example "12345-6789". Many forms also accept nine digits without the hyphen and add it before saving.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to support APO/FPO addresses?
&lt;/h3&gt;

&lt;p&gt;If you ship to US military members or their families, yes. These addresses use APO, FPO, or DPO as the city and AA, AE, or AP as the state.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Address Line 2 required?
&lt;/h3&gt;

&lt;p&gt;Usually not. But when the user fills it in, it must be saved and passed to shipping. A lost line 2 often means a lost package.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use real addresses for testing?
&lt;/h3&gt;

&lt;p&gt;It's best not to. Real addresses in test systems, screenshots, and bug tickets are personal data and create privacy risk. Fictional data is safer and easier to share.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will generated addresses pass address verification?
&lt;/h3&gt;

&lt;p&gt;No, and they shouldn't be used that way. Generated addresses are for testing your own forms. Don't use them for address verification, identity checks, sign-ups, or payments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.usadizhi.com/en/blog/us-address-form-test-cases" rel="noopener noreferrer"&gt;usadizhi.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>webdev</category>
      <category>forms</category>
    </item>
    <item>
      <title>US Address Test Data for Checkout Forms: A Practical QA Checklist</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Sat, 17 Oct 2026 08:12:40 +0000</pubDate>
      <link>https://dev.to/jacak/us-address-test-data-for-checkout-forms-a-practical-qa-checklist-1bcd</link>
      <guid>https://dev.to/jacak/us-address-test-data-for-checkout-forms-a-practical-qa-checklist-1bcd</guid>
      <description>&lt;p&gt;A checkout form looks simple: street, city, state, ZIP. But it's often where bugs hide. ZIP codes lose their leading zero, apartment numbers vanish, and a state dropdown sends "California" when the API expects "CA". These bugs are cheap to catch in staging and expensive in production.&lt;/p&gt;

&lt;p&gt;This guide explains how to build a small, reliable set of &lt;strong&gt;US address test data for checkout forms&lt;/strong&gt;. It covers the cases that matter, what each one should prove, and how to make sample addresses without using a real customer's details.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Scope note:&lt;/strong&gt; Everything here is about testing your own software in development or staging. Fictional addresses can't receive mail and won't pass real address or card verification (AVS). Don't use them to sign up for services, get past identity checks, or make payments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why you shouldn't test with real addresses
&lt;/h2&gt;

&lt;p&gt;Many teams start by typing in their office address or copying a row from production. Both are bad habits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; Real customer addresses in test databases, screenshots, and bug tickets are personal data. Under most privacy policies, and laws like the CCPA, they shouldn't be there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coverage:&lt;/strong&gt; One real address only tests the happy path. It won't have a suite number, a leading-zero ZIP, or a long street name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducibility:&lt;/strong&gt; Shared fictional fixtures can be committed to your repo and used by everyone. Real data can't.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A generator like the &lt;a href="https://www.usadizhi.com/en" rel="noopener noreferrer"&gt;USA Dizhi US address generator&lt;/a&gt; gives you fictional, US-formatted records with the usual fields (street, city, state abbreviation, ZIP, phone) in one click. Sensitive-looking numbers on the page are built to fail validation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The anatomy of a US address (what your form must handle)
&lt;/h2&gt;

&lt;p&gt;A domestic US address is written from most specific to least specific:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1601 Demo Road, Apt 4B
Portland, OR 97205
United States
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Typical form label&lt;/th&gt;
&lt;th&gt;Store as&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Address line 1&lt;/td&gt;
&lt;td&gt;Street address&lt;/td&gt;
&lt;td&gt;text&lt;/td&gt;
&lt;td&gt;House number + street name + suffix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Address line 2&lt;/td&gt;
&lt;td&gt;Apt, suite, unit&lt;/td&gt;
&lt;td&gt;text, optional&lt;/td&gt;
&lt;td&gt;APT, STE, UNIT, FL, RM, BLDG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;City&lt;/td&gt;
&lt;td&gt;City&lt;/td&gt;
&lt;td&gt;text&lt;/td&gt;
&lt;td&gt;Separate from state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State&lt;/td&gt;
&lt;td&gt;State&lt;/td&gt;
&lt;td&gt;2-letter code&lt;/td&gt;
&lt;td&gt;Display full name, store &lt;code&gt;OR&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ZIP code&lt;/td&gt;
&lt;td&gt;ZIP / Postal code&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;text&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5 digits, or ZIP+4 &lt;code&gt;97205-1234&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Country&lt;/td&gt;
&lt;td&gt;Country&lt;/td&gt;
&lt;td&gt;ISO code &lt;code&gt;US&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Explicit on international forms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you want a quick reference for how each region writes addresses, the &lt;a href="https://www.usadizhi.com/en" rel="noopener noreferrer"&gt;USA Dizhi address format lab&lt;/a&gt; has a format summary at the top of each country page. These include the &lt;a href="https://www.usadizhi.com/en/ca-address" rel="noopener noreferrer"&gt;Canada&lt;/a&gt; and &lt;a href="https://www.usadizhi.com/en/uk-address" rel="noopener noreferrer"&gt;UK&lt;/a&gt; pages, which help when your checkout also ships abroad.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core test matrix
&lt;/h2&gt;

&lt;p&gt;You don't need hundreds of addresses. Ten to fifteen well-chosen fixtures will catch most bugs. Here's a starting matrix:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Case&lt;/th&gt;
&lt;th&gt;Example input&lt;/th&gt;
&lt;th&gt;Expected behavior&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;1601 Demo Road, Portland, OR 97205&lt;/td&gt;
&lt;td&gt;Accepted, saved, shown back unchanged&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Line 2 empty&lt;/td&gt;
&lt;td&gt;(no unit)&lt;/td&gt;
&lt;td&gt;No "required" error on line 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Line 2 filled&lt;/td&gt;
&lt;td&gt;STE 200&lt;/td&gt;
&lt;td&gt;Kept, not merged or dropped&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Leading-zero ZIP&lt;/td&gt;
&lt;td&gt;Boston, MA 02108&lt;/td&gt;
&lt;td&gt;Stays &lt;code&gt;02108&lt;/code&gt; in DB, CSV, JSON, emails&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;ZIP+4&lt;/td&gt;
&lt;td&gt;97205-1234&lt;/td&gt;
&lt;td&gt;Accepted or normalized, per your spec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Invalid ZIP&lt;/td&gt;
&lt;td&gt;9720 / ABCDE&lt;/td&gt;
&lt;td&gt;Clear inline error, other fields kept&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;State/ZIP mismatch&lt;/td&gt;
&lt;td&gt;Austin, TX 02108&lt;/td&gt;
&lt;td&gt;Flagged if you validate region&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Long street&lt;/td&gt;
&lt;td&gt;60+ characters&lt;/td&gt;
&lt;td&gt;No silent truncation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Apostrophe / hyphen&lt;/td&gt;
&lt;td&gt;O'Neil Ave, Winston-Salem&lt;/td&gt;
&lt;td&gt;Saved without escaping bugs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;DC &amp;amp; territories&lt;/td&gt;
&lt;td&gt;Washington, DC / San Juan, PR&lt;/td&gt;
&lt;td&gt;Present in dropdown if you ship there&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;Tax-free state&lt;/td&gt;
&lt;td&gt;Oregon, Delaware, Montana&lt;/td&gt;
&lt;td&gt;Tax line = $0 (if in scope)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;Billing ≠ shipping&lt;/td&gt;
&lt;td&gt;Two different records&lt;/td&gt;
&lt;td&gt;Both stored, correct one used for tax&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Address line 2: the most-dropped field
&lt;/h3&gt;

&lt;p&gt;Line 2 holds secondary unit designators like &lt;code&gt;APT 4B&lt;/code&gt;, &lt;code&gt;STE 300&lt;/code&gt;, or &lt;code&gt;UNIT 7&lt;/code&gt;. Typical bugs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Line 2 marked required, so most real users get blocked.&lt;/li&gt;
&lt;li&gt;The value is saved but left out of the order confirmation email or shipping label.&lt;/li&gt;
&lt;li&gt;Autocomplete fills line 1 and quietly clears line 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Test both the empty and filled states. Also check the &lt;code&gt;autocomplete="address-line2"&lt;/code&gt; attribute so browser autofill works.&lt;/p&gt;

&lt;h3&gt;
  
  
  ZIP codes are strings, not numbers
&lt;/h3&gt;

&lt;p&gt;This is the classic bug. ZIP codes in New England and New Jersey start with &lt;code&gt;0&lt;/code&gt; (Boston &lt;code&gt;02108&lt;/code&gt;, Hartford &lt;code&gt;06103&lt;/code&gt;). If any layer treats the value as an integer, such as a numeric input, an &lt;code&gt;INT&lt;/code&gt; column, or a spreadsheet import, &lt;code&gt;02108&lt;/code&gt; turns into &lt;code&gt;2108&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Follow it through the whole pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Type &lt;code&gt;02108&lt;/code&gt; into the form.&lt;/li&gt;
&lt;li&gt;Check the database value.&lt;/li&gt;
&lt;li&gt;Export to CSV and open it in a spreadsheet.&lt;/li&gt;
&lt;li&gt;Check the API JSON (&lt;code&gt;"zip": "02108"&lt;/code&gt;, not &lt;code&gt;2108&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Check the confirmation email.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A safe client-side pattern is &lt;code&gt;^\d{5}(-\d{4})?$&lt;/code&gt; on an &lt;code&gt;&amp;lt;input type="text" inputmode="numeric"&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  State codes and dropdowns
&lt;/h3&gt;

&lt;p&gt;Store the two-letter USPS code (&lt;code&gt;CA&lt;/code&gt;, &lt;code&gt;NY&lt;/code&gt;, &lt;code&gt;TX&lt;/code&gt;) and show the full name in the UI. Test that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The value sent to your tax or shipping API is the code, not the label.&lt;/li&gt;
&lt;li&gt;DC is included. Add PR, GU, VI and military codes (AA, AE, AP) if you ship there.&lt;/li&gt;
&lt;li&gt;Typing a letter in the dropdown jumps to the right state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For state-specific fixtures, USA Dizhi has per-state pages. Examples include &lt;a href="https://www.usadizhi.com/en/usa-address/california" rel="noopener noreferrer"&gt;California&lt;/a&gt;, &lt;a href="https://www.usadizhi.com/en/usa-address/texas" rel="noopener noreferrer"&gt;Texas&lt;/a&gt; and &lt;a href="https://www.usadizhi.com/en/usa-address/oregon" rel="noopener noreferrer"&gt;Oregon&lt;/a&gt;, a handy no-sales-tax case.&lt;/p&gt;

&lt;h3&gt;
  
  
  City, state and ZIP consistency
&lt;/h3&gt;

&lt;p&gt;ZIP codes follow geography: the first digit roughly marks a region (0 = Northeast, 9 = West Coast). If your checkout checks region consistency, include at least one deliberate mismatch, such as a Texas city with a Massachusetts ZIP. Confirm it's flagged with a helpful message.&lt;/p&gt;

&lt;p&gt;Know what "consistent" means here. A matching city/state/ZIP set passes format and region checks. It does &lt;strong&gt;not&lt;/strong&gt; mean the street address exists. Only a real address verification service (USPS-based, CASS-certified) can confirm that, and fictional data is meant to fail that step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building your fixture set in 10 minutes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Generate a few base records.&lt;/strong&gt; Open the &lt;a href="https://www.usadizhi.com/en" rel="noopener noreferrer"&gt;US address generator&lt;/a&gt; and copy a few full addresses. Use the "generate by city" option for city fixtures, for example &lt;a href="https://www.usadizhi.com/en/usa-address/city/new-york" rel="noopener noreferrer"&gt;New York&lt;/a&gt; or &lt;a href="https://www.usadizhi.com/en/usa-address/city/chicago" rel="noopener noreferrer"&gt;Chicago&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the combination.&lt;/strong&gt; Make sure the city, state, and ZIP you keep belong together for "valid" cases. Fix any that don't before saving them as baseline fixtures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make the edge cases by hand.&lt;/strong&gt; Add the line 2, leading-zero, ZIP+4, long-string and apostrophe variants from the matrix above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit them&lt;/strong&gt; as a JSON or CSV fixture file with ZIPs quoted as strings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Label each fixture&lt;/strong&gt; with the behavior it's meant to prove, so failures are easy to read.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example fixture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"case"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"leading_zero_zip_with_unit"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"line1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1601 Demo Road"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"line2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"STE 200"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"city"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Boston"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"state"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MA"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"zip"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"02108"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"US"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"expect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"accepted; zip preserved as 02108"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Common mistakes to avoid
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Using test addresses outside test environments.&lt;/strong&gt; Fictional addresses belong in staging and automated tests, not in real orders, sign-ups, or verification forms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expecting AVS to pass.&lt;/strong&gt; Payment-provider sandboxes publish their own test card and address values. Use those for payment-gateway tests, and use generated addresses for form and data-handling tests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing only one country.&lt;/strong&gt; If you ship internationally, add a few non-US fixtures. Postal code rules differ a lot (UK postcodes contain letters, and Japan writes addresses largest-to-smallest). See the &lt;a href="https://www.usadizhi.com/en/jp-address" rel="noopener noreferrer"&gt;Japan address format page&lt;/a&gt; for an example.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting accessibility.&lt;/strong&gt; Each field needs a visible label, errors need to be linked to their field, and focus should move to the first error after a failed submit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I use a generated US address to receive packages?
&lt;/h3&gt;

&lt;p&gt;No. Generated addresses are fictional and for testing only. They're not linked to a real mailbox, so nothing sent there will arrive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will these addresses pass address verification or card AVS checks?
&lt;/h3&gt;

&lt;p&gt;They shouldn't, and that's intended. Use your payment provider's sandbox test values for gateway testing, and generated addresses for checking how your own form stores and displays data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should ZIP codes be stored as numbers or text?
&lt;/h3&gt;

&lt;p&gt;Text. ZIP codes can start with zero (02108), and ZIP+4 includes a hyphen. Numeric storage silently corrupts both.&lt;/p&gt;

&lt;h3&gt;
  
  
  What goes in address line 2?
&lt;/h3&gt;

&lt;p&gt;Secondary unit details like APT, STE (suite), UNIT, FL (floor) or RM (room), followed by the number. It should usually be optional.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it legal to use a fake address generator?
&lt;/h3&gt;

&lt;p&gt;Generating fictional data to test your own software is a normal development practice. Using that data to deceive a business, dodge identity checks, or make payments is not. Keep it in test environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  How many test addresses do I need?
&lt;/h3&gt;

&lt;p&gt;Usually 10–15 well-chosen fixtures covering the matrix above. Add more only when you add a new rule, like a new shipping region or tax rule.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Need sample data now? Try the free &lt;a href="https://www.usadizhi.com/en" rel="noopener noreferrer"&gt;USA Dizhi US address generator&lt;/a&gt;. No signup needed, it runs in your browser, and it's built for format learning and software testing.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.usadizhi.com/en/blog/us-address-test-data-for-checkout-forms" rel="noopener noreferrer"&gt;usadizhi.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>webdev</category>
      <category>forms</category>
    </item>
    <item>
      <title>How to Remove the NotebookLM Watermark From Your Slides (2026)</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Sat, 17 Oct 2026 08:12:10 +0000</pubDate>
      <link>https://dev.to/jacak/how-to-remove-the-notebooklm-watermark-from-your-slides-2026-44cm</link>
      <guid>https://dev.to/jacak/how-to-remove-the-notebooklm-watermark-from-your-slides-2026-44cm</guid>
      <description>&lt;p&gt;NotebookLM, which Google now also calls &lt;strong&gt;Gemini Notebook&lt;/strong&gt; in parts of the product, can turn your sources into slide decks, infographics and Video Overviews. Those outputs carry a small visible mark. That is fine for a quick review, but less ideal when the slides go into your own lesson, client deck or class project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; to remove the NotebookLM watermark from slides you created, first check whether your plan has Google's official &lt;em&gt;Visible watermarking&lt;/em&gt; toggle (Google lists it for AI Pro and Ultra). For files you already exported, save each slide as a PNG or JPG, upload it to Clearframe's &lt;a href="https://www.clear-frames.com/notebooklm-watermark-remover/" rel="noopener noreferrer"&gt;image watermark remover&lt;/a&gt;, brush over the corner mark and download the cleaned image.&lt;/p&gt;

&lt;p&gt;Use these steps only on material you made or have permission to edit.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, check the official watermark setting
&lt;/h2&gt;

&lt;p&gt;Before editing any files, see whether Google lets you skip the mark entirely. According to Google's &lt;a href="https://support.google.com/notebooklm/answer/16206866?hl=en" rel="noopener noreferrer"&gt;Gemini Notebook plans help page&lt;/a&gt; (checked October 2026):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Watermark removal is listed for the Pro and Ultra plans&lt;/strong&gt;, and not for the Standard (free) or Plus plans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eligible Google One AI Pro and Ultra subscribers&lt;/strong&gt; control it with the &lt;strong&gt;"Visible watermarking" toggle&lt;/strong&gt; in the drop-down menu under their profile picture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you live in India, South Korea or Vietnam&lt;/strong&gt;, Google applies a visible watermark automatically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Invisible SynthID watermarks stay.&lt;/strong&gt; Google says outputs generated with Veo, Omni or Nano Banana include invisible SynthID watermarks. The toggle only concerns the visible mark.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plans and menus change, so trust what your own account shows. If you can use the toggle, it is the cleanest option: switch it off, then generate the deck or infographic again. A file you already downloaded won't change, so for older exports, keep reading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Already exported? Clean the file as images
&lt;/h2&gt;

&lt;p&gt;Clearframe edits images, not PDF or PowerPoint files. The workflow is to turn each slide into an image, clean it, and put it back.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Export your slides as PNG or JPG
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Slides:&lt;/strong&gt; open the deck, then choose &lt;strong&gt;File → Download → PNG image&lt;/strong&gt; or &lt;strong&gt;JPEG image&lt;/strong&gt;. This saves the current slide; repeat for every slide that shows the mark.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerPoint:&lt;/strong&gt; choose &lt;strong&gt;File → Export&lt;/strong&gt; (or &lt;strong&gt;Save As&lt;/strong&gt;), pick &lt;strong&gt;PNG&lt;/strong&gt; or &lt;strong&gt;JPEG&lt;/strong&gt;, and choose to export every slide. PowerPoint saves one image per slide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A PDF on Mac:&lt;/strong&gt; open it in &lt;strong&gt;Preview&lt;/strong&gt;, choose &lt;strong&gt;File → Export&lt;/strong&gt;, and set the format to PNG or JPEG. Do this one page at a time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use the highest resolution available. Upscaled screenshots give the inpainting model less real detail to work with.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Upload the slide to Clearframe
&lt;/h3&gt;

&lt;p&gt;Open the &lt;a href="https://www.clear-frames.com/notebooklm-watermark-remover/" rel="noopener noreferrer"&gt;NotebookLM watermark remover&lt;/a&gt; and upload one image. JPG, PNG and WEBP are supported.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Brush over the corner mark
&lt;/h3&gt;

&lt;p&gt;Paint over the mark plus a thin ring of pixels around it, so you also catch the soft, semi-transparent edges. If you leave those edges unpainted, a faint outline can remain. Clearframe uses manual selection: you decide exactly which pixels it rebuilds.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Compare and download
&lt;/h3&gt;

&lt;p&gt;Run the removal, then check the before-and-after view at full zoom. Look at the corner against gradients, photos or text near the edge. If the result looks soft, undo and try a tighter or slightly wider mask, then download the PNG.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Put the slide back into your deck
&lt;/h3&gt;

&lt;p&gt;In Google Slides or PowerPoint, insert the cleaned image as a full-slide picture, or replace the background image of the slide. Keep your original NotebookLM export in case you need to make changes later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infographics and single images
&lt;/h2&gt;

&lt;p&gt;Infographics are easier: they are already single images. Download the infographic in PNG or JPG, upload it, mask the mark and download the result.&lt;/p&gt;

&lt;p&gt;Busy infographics sometimes place the mark close to icons or small text. Inpainting rebuilds plausible pixels, but it cannot recover text that the mark covered. If a label is partly hidden, check it carefully, or recreate that label in your editor.&lt;/p&gt;

&lt;p&gt;The same approach works for other small marks you are allowed to remove, such as a sticker, logo or date stamp. See &lt;a href="https://www.clear-frames.com/blog/remove-text-from-image-without-photoshop/" rel="noopener noreferrer"&gt;how to remove text from an image without Photoshop&lt;/a&gt;, or use the &lt;a href="https://www.clear-frames.com/object-remover/" rel="noopener noreferrer"&gt;object remover&lt;/a&gt; for bigger distractions. For images from the Gemini app, there is a separate &lt;a href="https://www.clear-frames.com/gemini-watermark-remover/" rel="noopener noreferrer"&gt;Gemini watermark remover&lt;/a&gt; page.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about Video Overviews?
&lt;/h2&gt;

&lt;p&gt;This is where you need to be realistic. Clearframe's &lt;a href="https://www.clear-frames.com/video-watermark-remover/" rel="noopener noreferrer"&gt;video watermark remover&lt;/a&gt; is built for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MP4, MOV or WEBM&lt;/strong&gt; files&lt;/li&gt;
&lt;li&gt;clips &lt;strong&gt;up to 30 seconds&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;a mark that &lt;strong&gt;stays in one fixed position&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The NotebookLM mark on a Video Overview sits in one place, which suits the tool. But Video Overviews usually run for several minutes, far beyond the 30-second limit. So Clearframe is only practical for &lt;strong&gt;short excerpts&lt;/strong&gt;, like a 20-second clip to embed in a lesson slide or social post. Trim the excerpt first, then mark the corner once.&lt;/p&gt;

&lt;p&gt;For a full-length Video Overview, the better route is the official toggle, if your plan has it, followed by generating the video again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use it on content you own
&lt;/h2&gt;

&lt;p&gt;Clearframe's rule is simple: &lt;strong&gt;only remove marks from content you own or have permission to edit.&lt;/strong&gt; A few points specific to AI output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visible vs. invisible watermarks.&lt;/strong&gt; Google says Gemini Notebook outputs made with certain models carry invisible SynthID watermarks. Clearframe only rebuilds the visible pixels you paint over. It does not remove SynthID or any other hidden identifier, and it isn't meant to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't misrepresent authorship.&lt;/strong&gt; Removing a corner mark to make a slide look cleaner is one thing. Presenting AI-generated work as entirely your own, where your school or client requires disclosure, is another. Follow your institution's AI policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Respect other people's work.&lt;/strong&gt; Don't use this on decks or infographics that someone else made and shared with you, unless they gave you permission.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Check for the official &lt;em&gt;Visible watermarking&lt;/em&gt; toggle on your plan (Pro/Ultra per Google) and generate again if you can.&lt;/li&gt;
&lt;li&gt;Otherwise, export slides as PNG/JPG at full resolution.&lt;/li&gt;
&lt;li&gt;Upload to the &lt;a href="https://www.clear-frames.com/notebooklm-watermark-remover/" rel="noopener noreferrer"&gt;NotebookLM watermark remover&lt;/a&gt;, brush the mark plus its soft edge, then compare.&lt;/li&gt;
&lt;li&gt;Download the PNG and put it back in your deck.&lt;/li&gt;
&lt;li&gt;For video, only process short excerpts (≤30 seconds, fixed mark).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Clearframe is free to try, with fair-use limits. Start with one slide and see how the corner holds up before you work through the whole deck.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.clear-frames.com/blog/remove-notebooklm-watermark/" rel="noopener noreferrer"&gt;Clearframe&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>google</category>
    </item>
    <item>
      <title>How to Remove Fan and AC Noise From Audio and Video</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Sat, 17 Oct 2026 08:11:56 +0000</pubDate>
      <link>https://dev.to/jacak/how-to-remove-fan-and-ac-noise-from-audio-and-video-8jo</link>
      <guid>https://dev.to/jacak/how-to-remove-fan-and-ac-noise-from-audio-and-video-8jo</guid>
      <description>&lt;p&gt;You didn't notice it while you were talking. Then you play the recording back and there's a steady &lt;em&gt;whoosh&lt;/em&gt; under every sentence: the laptop fan, the ceiling fan, the air conditioner, the PC tower under your desk.&lt;/p&gt;

&lt;p&gt;Fan noise is probably the most common background noise in home recordings, and it's also one of the easier ones to clean up. It's steady and broadband, and it sounds nothing like a human voice. This guide covers how to remove fan noise from audio and video files you've already recorded, why some fan noise is harder to fix than other fan noise (most guides skip this), and how to keep fans out of your next recording.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Fan Noise Is So Noticeable in Recordings
&lt;/h2&gt;

&lt;p&gt;Your brain tunes out a constant sound within a few minutes. Microphones can't. Fan and AC noise ends up louder on the recording than it felt in the room for three reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It's broadband.&lt;/strong&gt; Moving air makes a "shhh" spread across a wide range of frequencies, including the range where speech lives. You can't just cut one frequency, the way you can with electrical hum.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gain and compression bring it up.&lt;/strong&gt; Phones, laptops and video apps raise quiet sounds automatically. In every pause between words, the fan gets turned up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your ears notice the pauses.&lt;/strong&gt; Under speech the fan is masked. When the speaker stops, the whoosh comes in, and the switching back and forth is what makes it distracting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AC units and some desk fans also add a low motor hum on top of the airflow. If you mostly hear a tonal drone or buzz instead of a whoosh, our guide to &lt;a href="https://noisewipe.com/blog/remove-hum-and-buzz-from-audio" rel="noopener noreferrer"&gt;removing hum and buzz from audio&lt;/a&gt; covers that problem in detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steady vs Changing Fan Noise: Why It Matters
&lt;/h2&gt;

&lt;p&gt;Most tutorials treat all fan noise as one thing. In practice there are two kinds, and they need different tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steady fan noise&lt;/strong&gt; stays at the same level for the whole recording: a ceiling fan on one speed, a window AC, a desk fan. Almost any method works on this, including the classic "noise profile" approach in Audacity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Changing fan noise&lt;/strong&gt; gets louder and quieter. &lt;strong&gt;Computer fan noise in recordings&lt;/strong&gt; is the usual example. A laptop's fans speed up when you start a screen recording, render a video or open a busy browser tab, and they slow down again a minute later. An AC compressor that switches on and off midway through a take does the same thing. A single noise profile, captured from one moment, doesn't match the rest of the file. You end up with leftover whoosh in some places and a watery, over-processed voice in others.&lt;/p&gt;

&lt;p&gt;So before you pick a method, skim through your recording and ask: does the fan sound the same the whole way through?&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 1: Noise Profile Reduction (Audacity and Similar Editors)
&lt;/h2&gt;

&lt;p&gt;This free, classic method works well for steady fan noise in audio files.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the file in Audacity. For a video, you'll have to export its audio first and put it back into the video afterward.&lt;/li&gt;
&lt;li&gt;Select one or two seconds where only the fan is audible, such as the lead-in before anyone speaks.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Effect → Noise Removal and Repair → Noise Reduction&lt;/strong&gt; and click &lt;strong&gt;Get Noise Profile&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the whole track, open Noise Reduction again, and start with about &lt;strong&gt;12 dB&lt;/strong&gt; of reduction.&lt;/li&gt;
&lt;li&gt;Preview it. If the voice sounds hollow, metallic or "underwater," lower the reduction or sensitivity.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Where it falls short:&lt;/strong&gt; it needs a clean noise-only section, it struggles when the fan speed changes, and it's a lot of steps for a video file. Pushing the reduction high enough to remove a loud fan usually damages the voice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 2: AI Cleanup in Your Browser With NoiseWipe
&lt;/h2&gt;

&lt;p&gt;An AI speech enhancement model doesn't need a noise profile. It's trained to recognize speech and suppress everything else, so it keeps up when a laptop fan ramps up halfway through or the AC kicks in. It also works directly on video files.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://noisewipe.com/remove-background-noise-from-audio" rel="noopener noreferrer"&gt;background noise removal page for audio&lt;/a&gt;, or the &lt;a href="https://noisewipe.com/remove-background-noise-from-video" rel="noopener noreferrer"&gt;one for video&lt;/a&gt; if you want to remove fan noise from video. Drop in your file. NoiseWipe accepts MP3, WAV, M4A, AAC, FLAC and OGG audio, plus MP4, MOV, WebM and MKV video, so you don't need to split the audio out first.&lt;/li&gt;
&lt;li&gt;Wait for processing. You don't install anything or tune any settings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Listen to the free 30-second cleaned preview.&lt;/strong&gt; No signup is needed. Use headphones, and pick a section with pauses, because that's where leftover fan noise shows up.&lt;/li&gt;
&lt;li&gt;If you're happy with it, download the full file. Downloads start at &lt;strong&gt;$0.99 per file&lt;/strong&gt;. If you clean recordings often, there are hour packs and subscriptions. NoiseWipe isn't fully free, but the preview lets you hear the result before you pay anything.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For podcasts or voiceovers, NoiseWipe can also apply one-click mastering (loudness, EQ, compression and limiting) after the cleanup, so the voice doesn't sound thin once the fan is gone.&lt;/p&gt;

&lt;h3&gt;
  
  
  Removing AC noise from video: a quick note
&lt;/h3&gt;

&lt;p&gt;To &lt;strong&gt;remove AC noise from video&lt;/strong&gt;, the steps are the same: upload the MP4 or MOV and preview. The cleaned video keeps your original picture. If your AC also produces a loud tonal buzz, check the preview carefully. Airflow noise is easy to remove, but a strong motor whine sitting right in the voice range is harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Cleanup Can and Can't Fix
&lt;/h2&gt;

&lt;p&gt;Being honest here saves you time and money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usually fixable&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steady ceiling fan, desk fan, or AC airflow under clear speech&lt;/li&gt;
&lt;li&gt;Laptop and desktop fans that speed up and slow down&lt;/li&gt;
&lt;li&gt;Fan noise in Zoom-style calls, screen recordings and talking-head videos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hard or not fixable&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A fan louder than the voice.&lt;/strong&gt; If the speech is buried, there isn't enough voice left to recover.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A fan blowing straight onto the microphone.&lt;/strong&gt; That's wind buffeting the capsule, not background noise. It behaves more like &lt;a href="https://noisewipe.com/remove-wind-noise-from-video" rel="noopener noreferrer"&gt;wind noise in video&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Music.&lt;/strong&gt; NoiseWipe is built for speech. On singing or instruments it may treat parts of the music as noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distorted or clipped audio.&lt;/strong&gt; Cleanup can't rebuild what the mic never captured cleanly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 30-second preview is the quickest way to find out which group your file falls into.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Prevent Fan Noise Next Time
&lt;/h2&gt;

&lt;p&gt;Even the best cleanup works better on a cleaner source. These habits cost nothing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Switch the fan or AC off for the take.&lt;/strong&gt; Cool the room first, then record in 10–15 minute blocks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop your computer's fans from ramping up.&lt;/strong&gt; Close heavy apps and browser tabs, plug the laptop in &lt;em&gt;before&lt;/em&gt; it gets hot, and don't render or export while you record. On a desktop, put the tower on the floor on the far side of the desk from the mic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use an external mic instead of the laptop's built-in one.&lt;/strong&gt; Built-in mics sit centimeters from the fan. A cheap USB or lavalier mic placed close to your mouth makes a huge difference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get closer to the mic.&lt;/strong&gt; Halving the distance between your mouth and the mic makes your voice much louder compared with the room, so the fan ends up quieter in comparison.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Point the mic away from the noise.&lt;/strong&gt; Most USB and lav mics pick up least from behind, so keep the back of the mic facing the fan or vent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn off auto gain if you can.&lt;/strong&gt; Set a fixed input level so the software doesn't raise the fan in every pause.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record 5 seconds of room tone.&lt;/strong&gt; Stay silent at the start of every take. It gives a noise-profile tool something to work with, and editors can use it to fill gaps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do a quick test with headphones.&lt;/strong&gt; Record 10 seconds and listen back with headphones before a long session. It's the cheapest fix there is.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Related guides
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://noisewipe.com/blog/remove-hum-and-buzz-from-audio" rel="noopener noreferrer"&gt;How to remove hum and buzz from audio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://noisewipe.com/blog/remove-background-noise-from-zoom-recording" rel="noopener noreferrer"&gt;How to remove background noise from a Zoom recording&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://noisewipe.com/blog/echo-vs-noise-audio-cleanup" rel="noopener noreferrer"&gt;Echo vs noise: which cleanup do you need?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://noisewipe.com/blog/how-to-record-clean-podcast-audio" rel="noopener noreferrer"&gt;How to record clean podcast audio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I remove fan noise from audio?
&lt;/h3&gt;

&lt;p&gt;For steady fan noise, a noise profile tool like Audacity's Noise Reduction works well. For fan noise that changes, or if you'd rather skip the manual steps, upload the file to an AI tool such as &lt;a href="https://noisewipe.com/remove-background-noise-from-audio" rel="noopener noreferrer"&gt;NoiseWipe&lt;/a&gt;, listen to the free 30-second preview, and download the full file from $0.99 if it sounds right.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I remove fan noise from a video without editing software?
&lt;/h3&gt;

&lt;p&gt;Yes. NoiseWipe accepts MP4, MOV, WebM and MKV directly in the browser and returns the video with cleaned audio, so you don't need to export the audio track and put it back yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does my voice sound robotic after removing fan noise?
&lt;/h3&gt;

&lt;p&gt;That usually means the reduction is too strong, or the noise profile didn't match the rest of the recording (common when a computer fan changes speed). Use less reduction, or use an AI speech model that adapts to the noise as it changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is fan noise the same as hum?
&lt;/h3&gt;

&lt;p&gt;Not quite. Fan noise is mostly a broadband "whoosh" of moving air. Hum is a tonal drone at 50/60Hz and its harmonics, caused by electrical interference. AC units often produce both. Hum responds well to notch filters; airflow noise doesn't.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is NoiseWipe free?
&lt;/h3&gt;

&lt;p&gt;Partly. You can upload a file and listen to a 30-second cleaned preview for free, with no signup. Downloading the full cleaned file starts at $0.99 per file, with optional hour packs and subscriptions.&lt;/p&gt;

</description>
      <category>audio</category>
      <category>podcast</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>DV Lottery Photo Rejected? The 600 600 Spec and How to Fix It</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Fri, 16 Oct 2026 16:57:34 +0000</pubDate>
      <link>https://dev.to/jacak/dv-lottery-photo-rejected-the-600x600-spec-and-how-to-fix-it-eap</link>
      <guid>https://dev.to/jacak/dv-lottery-photo-rejected-the-600x600-spec-and-how-to-fix-it-eap</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.photogovs.com/blog/dv-lottery-photo-rejected" rel="noopener noreferrer"&gt;https://www.photogovs.com/blog/dv-lottery-photo-rejected&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A DV lottery photo is usually rejected because it is not exactly 600×600 pixels, is over 240 KB, is not a JPEG, has a non-white background, or shows glasses or editing. You cannot correct a submitted entry, so prepare a compliant, recent photo before the next registration period opens on dvprogram.state.gov.&lt;/p&gt;

&lt;p&gt;This guide restates the published Department of State rules for Diversity Visa (DV) digital entry photos, lists the rejection causes we see most often, and shows how to prepare a 600×600 JPEG with PhotoGov before you enter. It is not immigration advice. PhotoGov does not file DV entries for you, and meeting the file rules does not guarantee that the Department of State will accept your photo or your entry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is DV-2028 open?
&lt;/h2&gt;

&lt;p&gt;Important&lt;/p&gt;

&lt;p&gt;Entry dates for DV-2028 had not been announced as of October 2026. The Department of State publishes each year’s instructions and dates on travel.state.gov. Enter only at dvprogram.state.gov when that year’s registration opens. PhotoGov is a photo preparation tool only—we do not register DV entries, check eligibility, or submit applications on your behalf.&lt;/p&gt;

&lt;p&gt;Use the wait for official dates to get the photograph right. A wrong file can waste a year of eligibility because you cannot fix a photo after you submit. When instructions appear, read them on travel.state.gov and enter only through the official DV site.&lt;/p&gt;

&lt;h2&gt;
  
  
  The official DV photo spec
&lt;/h2&gt;

&lt;p&gt;For online DV entries, the Department of State’s photo page and the DV program instructions require a digital image that is JPEG, square, exactly 600×600 pixels, and no larger than 240 KB. DV entry photos must also meet the same quality and composition standards as U.S. visa photos: colour, recent likeness, plain white or off-white background, and a head size within the published range.&lt;/p&gt;

&lt;p&gt;DV digital entry photo checklist (published rules)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;What the Department of State expects&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;File format&lt;/td&gt;
&lt;td&gt;JPEG (.jpg)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File size&lt;/td&gt;
&lt;td&gt;≤ 240 KB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aspect ratio&lt;/td&gt;
&lt;td&gt;Square (height equals width)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pixel size&lt;/td&gt;
&lt;td&gt;Exactly 600 × 600 pixels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Colour&lt;/td&gt;
&lt;td&gt;Colour image; 24-bit sRGB (common camera output)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recency&lt;/td&gt;
&lt;td&gt;Taken within the last six months; current appearance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Background&lt;/td&gt;
&lt;td&gt;Plain white or off-white&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Head size&lt;/td&gt;
&lt;td&gt;Head height 50–69% of the image height (chin to top of head)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Glasses&lt;/td&gt;
&lt;td&gt;Not allowed in visa / DV photos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Editing&lt;/td&gt;
&lt;td&gt;Do not manipulate or digitally alter appearance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Composition details also matter. Face the camera directly, keep a neutral expression with both eyes open, and wear everyday clothing—not a uniform (religious clothing worn daily is an exception). Do not submit a photo of a driver’s licence or passport page. Official examples of acceptable and unacceptable photos are linked from travel.state.gov.&lt;/p&gt;

&lt;p&gt;If you scan a printed photo instead of shooting digitally, the paper print must itself meet the 2×2 inch (51×51 mm) visa-photo rules and be scanned at about 300 pixels per inch before you produce the 600×600 JPEG. Scanning an old ID photo is still risky: age, glare and soft focus often fail the six-month and quality rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why DV photos get rejected
&lt;/h2&gt;

&lt;p&gt;Most DV photo failures are technical. The portal expects a precise file. A phone selfie that “looks fine” can still fail every rule below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wrong dimensions: not exactly 600×600 pixels (too small, too large, or not square).&lt;/li&gt;
&lt;li&gt;File over 240 KB: high-quality phone exports and studio JPEGs often exceed the cap.&lt;/li&gt;
&lt;li&gt;Wrong format: PNG, HEIC, WebP or PDF instead of JPEG (.jpg).&lt;/li&gt;
&lt;li&gt;Head too large or too small: outside the 50–69% head-height window in the composition template.&lt;/li&gt;
&lt;li&gt;Background not white or off-white: grey walls, outdoor scenes, patterns, or shadows behind the head.&lt;/li&gt;
&lt;li&gt;Eyeglasses: frames, tint or glare—glasses are not allowed in visa photos.&lt;/li&gt;
&lt;li&gt;Retouching or beauty filters: instructions warn that manipulated photos may make you ineligible.&lt;/li&gt;
&lt;li&gt;Reusing last year’s DV photo: same-photo reuse across years is explicitly discouraged and may make you ineligible.&lt;/li&gt;
&lt;li&gt;Scanned ID or passport photos: low quality, wrong crop, or not a recent live portrait.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Any one of these can invalidate an entry photograph. Fix the file before you open the DV form—not after you hit submit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can you fix a rejected DV entry?
&lt;/h2&gt;

&lt;p&gt;No. Official DV instructions state that you cannot change or correct a submitted entry. If you discover a bad photograph after submission, you cannot upload a replacement for that same entry.&lt;/p&gt;

&lt;p&gt;Submitting more than one entry for the same person in the same DV year can cancel all of that person’s entries. Do not try to “re-enter with a better photo” for the same program year. The only safe path is to prepare a compliant, recent photo before you enter once at dvprogram.state.gov.&lt;/p&gt;

&lt;p&gt;Important&lt;/p&gt;

&lt;p&gt;If your entry is already submitted with a non-compliant photo, treat that year’s digital entry photograph as locked. Use this guide to prepare a correct file for a future registration period when it opens—not to create a duplicate entry now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make a compliant photo with PhotoGov
&lt;/h2&gt;

&lt;p&gt;PhotoGov’s DV Lottery Photo preset targets the published digital entry size: 51×51 mm reference (600×600 px at 300 DPI), white background, JPEG, max 240 KB. The goal is correct crop and file size—not changing your facial features. Official guidance forbids digitally altering appearance; do not use beauty filters or tools that reshape the face.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the DV Lottery Photo requirements page and start from that preset (or choose DV Lottery Photo in Create).&lt;/li&gt;
&lt;li&gt;Upload a clear, recent front-facing portrait taken in soft light against a plain wall. Leave space above the head; remove glasses.&lt;/li&gt;
&lt;li&gt;Crop and export to exactly 600×600 pixels with a plain white background.&lt;/li&gt;
&lt;li&gt;Check the downloaded JPEG file size. It must be 240 KB or less. Re-export with slightly lower JPEG quality if needed—do not crush the face into blockiness.&lt;/li&gt;
&lt;li&gt;Confirm the head fills roughly half to two-thirds of the frame height, then keep the file ready for dvprogram.state.gov when registration opens.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before you upload on the official site, open the file properties: confirm JPEG, 600×600, and ≤240 KB. Compare your framing to the Department of State photo composition template. PhotoGov’s document page also reminds you to check the official rules before submitting.&lt;/p&gt;

&lt;p&gt;Prepare a square DV Lottery JPEG at 600×600 pixels and under 240 KB—then verify it against travel.state.gov before you enter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.photogovs.com/documents/dv-lottery-photo" rel="noopener noreferrer"&gt;Open DV Lottery photo requirements&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Selected later? Interview photos
&lt;/h2&gt;

&lt;p&gt;If you are selected and invited to a Diversity Visa interview, the digital entry file is not the end of the photo story. Each DV applicant must bring two identical printed photos to the interview. Those prints follow the standard U.S. visa 2×2 inch (51×51 mm) paper rules—plain white or off-white background, recent colour likeness, and the same composition standards.&lt;/p&gt;

&lt;p&gt;Plan for a fresh printed pair when you prepare interview documents. You can start from the US visa photo requirements page for the 2×2 inch print pathway, still following the latest instructions on travel.state.gov.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents/dv-lottery-photo" rel="noopener noreferrer"&gt;DV Lottery photo requirements&lt;/a&gt;Primary digital entry preset: 600×600 px, ≤240 KB JPEG&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents/us-visa-photo" rel="noopener noreferrer"&gt;US visa photo (2×2 inch)&lt;/a&gt;Interview print pathway after selection&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents/us-green-card-photo" rel="noopener noreferrer"&gt;US green card photo&lt;/a&gt;Related square US immigration format&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents/us-passport-photo" rel="noopener noreferrer"&gt;US passport photo&lt;/a&gt;Same 2×2 inch idea; different application channel&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents" rel="noopener noreferrer"&gt;All document formats&lt;/a&gt;49 passport, visa and ID presets across 17 countries/regions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/create" rel="noopener noreferrer"&gt;Create a photo&lt;/a&gt;Open the tool and pick the DV Lottery Photo preset&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Checklist before you enter
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;JPEG (.jpg), square, exactly 600×600 pixels, ≤240 KB.&lt;/li&gt;
&lt;li&gt;Taken within six months; not last year’s DV upload.&lt;/li&gt;
&lt;li&gt;Plain white or off-white background; no shadows or patterns.&lt;/li&gt;
&lt;li&gt;No eyeglasses; eyes open; neutral expression; no beauty filters.&lt;/li&gt;
&lt;li&gt;Head height about 50–69% of the frame; face centred.&lt;/li&gt;
&lt;li&gt;You will enter once only at dvprogram.state.gov after official dates are published.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bottom line: DV entry photos fail most often on exact pixels, kilobytes, JPEG type, background, glasses or editing—and you cannot correct a submitted entry. Prepare a compliant recent photo early, wait for official DV-2028 dates on travel.state.gov, and enter only at dvprogram.state.gov. PhotoGov helps with the file; the Department of State decides acceptance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.photogovs.com/create?doc=dv_lottery" rel="noopener noreferrer"&gt;Make this photo in PhotoGov →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>visa</category>
      <category>travel</category>
      <category>immigration</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>COVA China visa photo upload failed: the specs that actually pass</title>
      <dc:creator>jacak</dc:creator>
      <pubDate>Fri, 16 Oct 2026 16:54:51 +0000</pubDate>
      <link>https://dev.to/jacak/cova-china-visa-photo-upload-failed-the-specs-that-actually-pass-1db5</link>
      <guid>https://dev.to/jacak/cova-china-visa-photo-upload-failed-the-specs-that-actually-pass-1db5</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.photogovs.com/blog/cova-china-visa-photo-upload-failed" rel="noopener noreferrer"&gt;https://www.photogovs.com/blog/cova-china-visa-photo-upload-failed&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;China’s online visa forms—often referred to as COVA or the visaforchina / consular online application flow—reject photographs for reasons that feel random: “upload failed,” “face covered,” or a silent reset after three attempts. In practice, most failures are file-spec problems: wrong pixel dimensions, JPEG larger than 120 KB or smaller than 40 KB, non-white backgrounds, or a second crop inside the form that pushes the head outside the biometric window.&lt;/p&gt;

&lt;p&gt;This article consolidates the digital rules published by Chinese visa centres and embassies, shows which export settings usually clear the checker, and explains how to recover when the form has already failed multiple times. It cannot promise that a visa centre will accept your photo at submission.&lt;/p&gt;

&lt;p&gt;If you are filling the newer consular online flow rather than a third-party agency mirror, the same pixel and kilobyte bands still apply in the published photograph specifications—always prefer the instructions shown inside your own application centre’s FAQ when they disagree with a generic blog post.&lt;/p&gt;

&lt;h2&gt;
  
  
  The digital specs that pass most online checks
&lt;/h2&gt;

&lt;p&gt;Across official photograph specification sheets, the digital China visa photo is a colour JPEG with a white or near-white background. Pixel dimensions are typically stated as a range: not smaller than 354 pixels wide by 472 pixels high, and not larger than 420 × 560. File size is generally 40 KB to 120 KB. Paper photos affixed to forms remain 33×48 mm—separate from the upload file.&lt;/p&gt;

&lt;p&gt;China visa online (COVA) digital photo targets&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Widely published rule&lt;/th&gt;
&lt;th&gt;Practical target&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pixels (W × H)&lt;/td&gt;
&lt;td&gt;354×472 to 420×560&lt;/td&gt;
&lt;td&gt;354×472 (safest single size)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File size&lt;/td&gt;
&lt;td&gt;About 40–120 KB&lt;/td&gt;
&lt;td&gt;60–100 KB JPEG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Format&lt;/td&gt;
&lt;td&gt;JPEG / 24-bit colour&lt;/td&gt;
&lt;td&gt;Baseline .jpg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Background&lt;/td&gt;
&lt;td&gt;White or close to white&lt;/td&gt;
&lt;td&gt;Pure white&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recency&lt;/td&gt;
&lt;td&gt;Within 6 months&lt;/td&gt;
&lt;td&gt;Re-shoot if older&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Important&lt;/p&gt;

&lt;p&gt;Caveat: some visa application service centre FAQ pages say the online form photograph “cannot exceed 354×472,” while MFA/embassy specification PDFs describe the full 354×472–420×560 range. If your local centre publishes the stricter FAQ, export exactly 354×472.&lt;/p&gt;

&lt;h2&gt;
  
  
  Composition rules the checker also cares about
&lt;/h2&gt;

&lt;p&gt;Pixel math alone is not enough. Official sheets describe a frontal portrait with eyes open, mouth closed, ears visible, natural expression, and no thick or tinted glasses. Hats and scarves are discouraged except for religious reasons when the full face remains visible. For a 354×472 example, guidance often places the face width near 205±14 pixels, top-of-hair distance from the top edge around 10–70 pixels, and the eye line sufficiently high in the frame.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No other people, chairs or busy patterns in the background.&lt;/li&gt;
&lt;li&gt;No heavy shadows under the chin or behind the head.&lt;/li&gt;
&lt;li&gt;No over-compressed blockiness that makes the face look “covered” to the detector.&lt;/li&gt;
&lt;li&gt;Do not submit a passport scan or a photo of a photo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why uploads fail even when the portrait looks fine
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Wrong dimensions: a 600×800 phone crop or a 33×48 mm scan at odd pixels falls outside the allowed window.&lt;/li&gt;
&lt;li&gt;File size out of band: high-quality exports above 120 KB, or aggressive compression under 40 KB.&lt;/li&gt;
&lt;li&gt;In-form crop drag: moving the face inside the web cropper after upload can violate eye-line or head-height rules.&lt;/li&gt;
&lt;li&gt;Background not white enough: beige walls, grey shadows or green-screen spill.&lt;/li&gt;
&lt;li&gt;Glasses glare / hair over eyes: triggers generic quality failures.&lt;/li&gt;
&lt;li&gt;Stale session: after three failed attempts some centres tell you to bring a print instead—start a fresh form only if their instructions allow it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A recovery workflow that usually clears the form
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Shoot a new front-facing portrait in daylight against a plain wall.&lt;/li&gt;
&lt;li&gt;Process it with the China Visa Online preset so width/height land inside the official range—prefer 354×472 if your centre uses the stricter FAQ.&lt;/li&gt;
&lt;li&gt;Export JPEG between 40 and 120 KB. Check the file properties before opening the visa form.&lt;/li&gt;
&lt;li&gt;Upload the finished file and accept the preview without additional cropping when possible.&lt;/li&gt;
&lt;li&gt;If the form still errors, try another browser or a private window so an old blob is not cached.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Generate a China Visa Online JPEG already sized for COVA-style uploads, then confirm the file is 40–120 KB before you submit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.photogovs.com/create?doc=china_visa_online" rel="noopener noreferrer"&gt;Make a China visa online photo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Internal links for related China formats
&lt;/h2&gt;

&lt;p&gt;Do not mix presets. Online passport renewals, paper visa photos and APEC card photos use different pixel budgets even when they all look like “China ID photos.”&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents/china-visa-online-photo" rel="noopener noreferrer"&gt;China Visa Online photo&lt;/a&gt;COVA / online form digital upload&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents/china-visa-photo" rel="noopener noreferrer"&gt;China Visa photo&lt;/a&gt;Standard visa / print-oriented preset&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.photogovs.com/documents/china-passport-online-photo" rel="noopener noreferrer"&gt;China Passport Online photo&lt;/a&gt;Different KB limits—do not reuse blindly&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.photogovs.com/documents" rel="noopener noreferrer"&gt;All documents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Paper photo vs digital upload
&lt;/h2&gt;

&lt;p&gt;Many applicants still need a 33×48 mm paper photograph for the physical application even after the online form accepts a digital file. Keep both: the JPEG that cleared COVA and a correctly printed 33×48 mm copy on photo paper. Passing the upload step does not cancel paper requirements at your local centre.&lt;/p&gt;

&lt;p&gt;If you have already failed three online uploads, follow the centre’s written instruction—some ask you to stop uploading and bring a compliant print for staff to attach. Fighting the form after that point rarely helps.&lt;/p&gt;

&lt;h2&gt;
  
  
  False rejections and compression artefacts
&lt;/h2&gt;

&lt;p&gt;Applicants often report “face covered” messages when hair, glasses frames or JPEG blockiness confuse the detector. Re-exporting at a slightly higher quality inside the 40–120 KB window—or regenerating from the original portrait instead of repeatedly re-saving the same compressed file—usually produces a cleaner result than dragging the in-form crop handles again.&lt;/p&gt;

&lt;p&gt;Also confirm you uploaded the applicant’s photo, not a dependent’s or a placeholder. Centres explicitly reject mismatched identities and may require an entirely new form. Name the file clearly on your computer so you do not grab an old passport export by mistake.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checklist before you click submit
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Width × height is 354×472 (or otherwise inside 354×472–420×560 if your centre allows the range).&lt;/li&gt;
&lt;li&gt;File type is JPEG and size is between 40 KB and 120 KB.&lt;/li&gt;
&lt;li&gt;Background is white or visually close to white with no shadows.&lt;/li&gt;
&lt;li&gt;Face is frontal, eyes open, mouth closed; no thick tinted glasses.&lt;/li&gt;
&lt;li&gt;You are not about to re-crop inside the browser unless the preview is clearly wrong.&lt;/li&gt;
&lt;li&gt;You still have a 33×48 mm paper option ready if the centre asks for one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Summary: for COVA-style China visa uploads, aim for a white-background JPEG at 354×472 (or within 354×472–420×560 where allowed), keep the file between 40 and 120 KB, avoid in-form re-crops, and treat every automated pass as necessary but not sufficient for final acceptance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.photogovs.com/create?doc=china_visa_online" rel="noopener noreferrer"&gt;Make this photo in PhotoGov →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>visa</category>
      <category>travel</category>
      <category>china</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
