Overview

Dillfrog Muse is a set of free online tools to help with your English [song]writing. Its defining features include:

  • Rhyming Dictionary - Find rhyming words with varying degrees of stability, including slant/off rhyme: perfect/identical, family, additive, consonance, assonance. Refine and group your results by factors such as part of speech (verb, noun, adjective, or adverb), familiarity, and syllable count.
  • Meaning Dictionary/Thesaurus - Navigate words' meanings and relationships via hyperlinked WordNet data.
  • Lists - Use our random word lists to fill in your blank. Resolve a writer's block, or simply steer your work in a new direction.
  • Low mud - The minimalist, mobile-friendly interface helps you focus on the craft, distraction-free.

Cookbook

I want to find rhymes
Use the Rhyme search, or Storm's "Dial-A-Rhyme" search
I want more rhyme search results than what I'm seeing, and I'm willing to see less familiar words or looser sonic matches
In the Rhyme search, untick the "only common words" box, or change your search from "I'm Feeling Rhymey" to something more inclusive like "Vowel Sound (exact)". In Storm, change the Familiarity filter from "Common+ | Defined" to "Any Familiarity", or change the Dial-A-Rhyme preset to something more inclusive like "I'm Feeling Rhymier" or "I'm Feeling Desperate".
I want an idea for a song topic / title
Use the Random Title search (WIP), or the List "Smash"es.
I want to find phrases that fit a rhythm
Use Storm's "Graft" search.
I want to learn how to pronounce a word, so I sing it properly
Use Storm's Dial-A-Rhyme search, look at the phonemes in the phoneme filter. This requires some familiarity however.

Rhyme search

This is our main rhyming-dictionary search tool. Use it to search for words that look or sound similar to your input word.

Quick start

To find words that rhyme or off-rhyme with "elephant"
In the a word to rhyme field, type elephant. Then, press the Enter or Return key of your keyboard, or click the magnifying glass (search) button on the screen.
 Try it yourself!
To increase the number of results, when you're okay with unfamiliar words showing up
Uncheck the Only common words checkbox, then click the "search" button to re-search. Results will include some previously-hidden words.
To increase the number of results when searching words whose stressed syllable is early in the word
Change the Match type dropdown from "I'm Feeling Rhymey" to "Vowel Sounds (exact)". The search results will automatically update.
 Try it yourself!

Activity Ideas

  • What rhymes with these atypical or difficult words? Try using the "I'm Feeling Rhymey" match type for words like: "sushi", "silver", "orange", "purple", "typical".
  • Are you having trouble finding a rhyme for a multisyllabic word? If so, try the "Vowel Sounds (exact)" search. This will find other words with the same vowel sounds and stress patterns. It tends to work really well and sounds fairly stable for words with 3 or more syllables. For example, consider the word "effigy" which doesn't have many perfect rhymes. A "Vowel Sounds (exact)" search yields results like "charity", "chemistry", "density", "sparingly" which share the same vowel sounds and stress pattern as "effigy".
  • Create your own portmanteaus: Pick a word that you want to be the start of the portmanteau. Then, search with a Match Type of "Vowel Sounds (stressed + consonant)". All the results share the same primary-stress vowel sound and singe trailing consonant. Review these words as possible candidates for the first or second part of the portmanteau. For example, search for "snuggle" (the "UG" sound). You might see "luxury" in the results and reason that "snuggle" + "luxury" = "snuxury".
  • Use the "Vowel Sounds (stressed + consonant)" or "Vowel Sounds (stressed)" to find similar words to string together in a phrase for a good rhythmic assonance feel. Group results by "Stress Pattern" so that words of similar stress and syllables are grouped together where you can find them. Use the "Word Type" filter to narrow to adjectives/nouns/etc depending on what blanks you're trying to fill. For example, you might search for "went" (the "EN" sound) and string results together like "He wENt to defENd his best friENd who surrENdered to bENches and cENsure, a sENseless advENture."

Match type

The "match type" is the main algorithm, or search mode, to use when finding words based on their spelling or sound.

When you change the Match type, search results are automatically updated.

I'm Feeling Rhymey

The default match type; this is a fast way to get a decent selection of words that rhyme and off-rhyme, without sacrificing a lot of stability of the rhyme. (The results should generally feel pretty tight, despite including slant rhymes.) Here, we're trying to strike the balance delivering too few results, and too many results that don't seem like they should rhyme.

This match type's approach is likely to change/improve over time, but as of September 2017 the results are a blend of perfect rhymes, family rhymes, slant rhymes, and last-3-syllable rhymes.

Rhymes (perfect/identical)

Also known as: perfect rhymes and identical rhymes.

This finds words where the stressed vowel sound, and all sounds after the stressed vowel are identical to the input word. Since we don't look at sounds prior to the vowel of primary stress, the results can include identical rhymes as well as perfect rhymes.

Tips:

  • Perfect rhymes are about as stable as you're going to get. They are useful in situations where you want to convey confidence, certainty, and strength.
  • Perfect rhymes are hard to find, so they tend to be predictable and overused. If all the rhymes appear too cliche for your purposes, consider using a different match type like "Rhymes (slant)" or "Rhymes (family)" instead.
Rhymes (family)

This finds words that are almost perfect rhymes of the input word, by matching consonant sounds of the same family as one another.

For example, any plosive such as "P", "T", "K", "B", "G" and "D" can match any other plosive.

The same goes for fricatives (V, TH, Z, etc) and nasals (M, N).

Pat Pattison covers this type of rhyme very well in his online Songwriting course, which I highly recommend. See Week 4 for some great rhyme theory and examples.

Rhymes (vowel shift)

This finds words that would perfectly rhyme with the input word, if the vowel sounds in the original word's rhyming syllables were changed to slightly different vowel sounds. These results won't feel like incredibly stable rhymes, but they're more stable than allowing the original vowel sound to match any vowel.

Vowel sounds are chosen based on their relationship in the vowel diagram, or within a diphthong.

Example: if you search for "smoke" (whose perfect-rhyme phonemes sound like "oke"), we find words whose perfect-rhyme phonemes sound like "ah-k", "oo-k", or "ow-k". So you get results like "block", "walk", "luke".

Example: a search for "bind" yields results like "bond", "leaned", and "beyond".

Example: a search for bind finds:

bond, leaned, beyond

Example: a search for "afford" yields results like "insured", "blurred", and "bernard".

Vowel Sounds (last 2)

This finds words whose last 2 vowel sounds are the same as the word you typed, ignoring stress. If you typed a single-syllable word (i.e. it only has 1 vowel sound), then we find any words that share that last vowel sound.

Example: a search for "bind" yields results like "cites", "smile", "sometimes", and "institutionalized".

Example: a search for "affluent" yields results like "dual", "student", "monument" and "circumlocution".

Group by

Specifies how search results should be grouped. Depending on how you plan to use the results, you may find one grouping more useful than another. In general, the Syllable count - minimum and Stress pattern settings will likely be useful.

The following groupings are available:

Frequency class
Pertains to the familiarity or common-ness of the word. Common words have a low score, uncommon words have a high score.
Letter/number count
The number of letters or numbers in the word. Other characters, such as dashes, are not counted.
Meaning count
The number of meanings available for the word. Words with multiple meanings are generally more ambiguous than other words, and are ripe for wordplay.
Primary part of speech
The main part of speech of the word. For example, if the word is typically used as an adjective and less-so as a noun, it will show up in the adjective grouping and not the noun grouping.
Pronunciation count
The number of pronunciations available for the word. This isn't generally useful, but may be for some rare wordplay opportunities.
Stress pattern
The pattern of stress that the word pertains to. Example: the word development is 4 syllables and has primary stress on the 2nd syllable, so its stress pattern is USUU. If the word has multiple stress patterns, it may show up in multiple lists. This is sometimes more useful than the "Syllable count" groupings, in that it separates the groups further by primary stress. For example, rather than seeing all 2-syllable words together, you can separate the "SU" from the "US" words, to find the words that best fit your song's rhythm.
Syllable count - maximum
The maximum number of syllables known for this word. Most words have 1 pronunciation, in which case the max and the min are identical.
Syllable count - minimum
The minimum number of syllables known for this word. Most words have 1 pronunciation, in which case the max and the min are identical.

Word type

The Word type filter allows you to narrow results by their part of speech (adjective, adverb, noun, or verb). Options are:

Any

The default option, this skips part-of-speech filtering.

Adjective

Only adjectives are displayed in the results.

Adverb

Only adverbs are displayed in the results.

Noun

Only nouns are displayed in the results.

Verb

Only verbs are displayed in the results.

Same

Only shows words that have at least 1 part of speech in common with the input word.

For example, if you use this filter to search for "run" (which can be used as a noun or a verb), we display verbs and nouns in the results.

A word to rhyme

Pretty self-explanatory. Type the word you want to search for here.

Press the Enter or Return key on your keyboard to trigger a search.

If you type multiple words, results will show for the last word you type. You will also see a link to our Mosaic assonance rhyme tool, which supports searching for a multi-word phrase.

Search

It looks like a magnifying glass. You click it when you want to search.

Only common words

When checkmarked, results will only include words that are relatively common or familiar.

Only defined words

When checkmarked, results will only include words we know the meanings of. This is another way to filter out unfamiliar words.

Mosaic assonance search

This tool searches for phrases that off-rhyme with an input phrase (a.k.a. mosaic rhyme or multi-rhyme).

It is considered separate from the single-word Rhyme search functionality.

Quick start

In the search box, type a multisyllabic word or phrase that you want to find rhymes for. To be interesting, this ought to be at least 2 syllables. For example you might search for "alligator" or "the doctor is in".

In the search results, you see phrases whose vowel sounds match your input. Other preceding (non-matched) phrase input appears, grayed out. Phrases are bolded when their stress pattern matches your input stress pattern. Results are grouped by how many extra syllables are included in the phrase. For example, if you search for "eating pie", you might see "army design" in the '1 extra syllable' group. This is because the word "army" includes an extra syllable that is not matched: the "my" part of "army" is matched, but the "ar" part is just coming along for the ride.

 Try it yourself!

Tips

  • The search only matches vowel sounds, not consonant sounds. Because of this, many of the results may not feel fully resolved compared to your input word. Rhymes of long vowel sounds (eee, oh, eye, etc) will feel more stable than their shorter counterparts (ah, ih, etc). So in other words, if your input word has lots of long vowel sounds, you will probably find some great results here.
  • Results are in bold when they match the stress of your input pattern. These might be strong matches for you. The others might be good too, but this is a nice place to start.
  • Sometimes your input words have multiple pronunciations. When this happens, we search for phrases that match any combination of those pronunciations. In the future, we might let you choose which pronunciations to use and which to ignore, but for now it's all-in.

Result format

Each result is formatted in 2 parts: the actual result (which rhymes with your input), and some preceding context that might help you pick usage. Some results have no additional context, and some results have multiple contextual examples. Results are displayed in bold when their stress pattern matches the stress pattern of your input (generally a tighter match).

Search results are grouped based on how many additional syllables are found in the highlighted result compared to the input word.

For example, if you search for elephant stew (4 syllables), you will find:

exact syllable matches
...where the match has exactly 4 syllables, like "arrogant shrew" or "best of the blues"
with 1 extra syllable
...where the match has 5 syllables, like "ostensible use" and "concepts of the group"

If there aren't a lot of matches for these groups, you may find additional groupings like "with 2 extra syllables".

Limitations

Not all pronunciations are considered
Although some words have multiple pronunciations, our phrase data only stores 1 pronunciation for each phrase. Because of this, some phrases might be excluded from the results when you are expecting an alternate pronunciation.
When multiple pronunciations exist for the same word, we don't always pick the best pronunciation. For example, words like "wind", "subject, and "contest" are pronounced differently as a noun than as a verb. "Dr" can be pronounced like "doctor" or "drive". This tool isn't smart enough to realize the word is used as one or the other, so it might pick the wrong pronunciation when the word is used in context.
Your input words must be in our dictionary
We don't search if we cannot pronounce any input words. If this happens, check your spelling or pick alternative words that sound similar. Remember, only the vowel sounds matter [for now].
Optimized for desktop users
Due to space limitations, the "preceding text" (gray text) in search results is not visible on small screens.

Meaning search

This is a more traditional dictionary search tool. Use it to figure out what a word means (e.g. as seen via rhyming dictionary search results), or to find other words related to a theme.

Activity ideas

  • Find related words and the right level of specificity by following "hyponym" and "hypernym" links from your search results. For example, you might search for "snow", meaning "a layer of snowflakes". The results show a hypernym of "layer" (snow is a type of layer), and hypernyms of "corn snow" and "crud" (these are types of snow). If you follow the link to "layer", you'll find other related layers like "cell wall", "stratosphere", "ozone layer", etc. You can use this to find related ideas, and the right level of specificity for your work.

Result format

Search results for a given word are separated by part of speech (e.g. noun, verb, adverb, adjective).

The most common usages/meanings float toward the top.

For each meaning, you might find other related words listed, including the following types:

hypernym
A more general version of the word. Example: "feline" is a hypernym of "cat"
hyponym
A more specific version of the word. Example: "house cat" is a hyponym of "cat"
synonym
A different word that has the same meaning.

Use these related-word links to add more color to your lyrics. For example, writing about "a cat" is less interesting than writing about a "tabby cat" or "maltese", etc.

Word lists

Our word lists organize our dictionary words by topic, such as "animals", "where?", "adjectives", etc.

Activity Ideas

Ad-lib, fill in the blank
Seed a short writing exercise by picking an item from each of the "Who?", "When?" and "Where?" lists.
Paint colorful detail
Add detail to your writing by picking very specific words from lists like "Clothing", "Feelings and Emotions", and "Man-Made Instruments".

Types of lists

By category
These are custom-curated lists that help answer questions like "who?", or pick a genre, or find words that are very specific (i.e. not ambiguous; there's only 1 meaning).
By part of speech
Get random adjectives, adverbs, nouns, or verbs. Some lists allow you to narrow on specific subcategories, like nouns that are plants.
Smashed phrases
Smashes words from various lists together. For example, you can build a list of {Adjective, Noun} pairs.
Specialty
Other one-off lists, like a list of ambiguous words (i.e. words that have many meanings).

Context search

The context search tool gives examples of how to use a given word, or how to evoke the meaning of a given word.

It's pretty simple to use. Just search for a word, and you'll see the following sections of results:

Before

A list of words that often appear BEFORE the searched word. Results are grouped by syllable count and stress pattern.

Example
Search for car, and find results like "armoured", "cattle", "company", and "conditioned".
After

A list of words that often appear AFTER the searched word. Results are grouped by syllable count and stress pattern.

Example
Search for absolutely, and find results like "livid", "smashing", "hilarious", and "astounded".
Surrounder Phrases

Popular combinations of the BEFORE and AFTER words. Often, these phrases evoke the feeling of the searched word without saying the word itself.

Example
Search for love, and find results like "bittersweet chocolate", "magic potion", "endures forever", "spicy peanut", and "womanly charms".
Q: What's with the commas in "Surrounder Phrases" results?
A: Sometimes lines contain multiple pairings that start with the same word; in this case, the second word of the pairing is separated with commas. For example, "tractor drivers, wheels" is shorthand for the phrases "tractor drivers" and "tractor wheels".

Other notes

Tip: Results with "sonic affinity" are bold and light blue.
You'll notice that some search results are bold and light blue. These results have sonic affinity (i.e. they sound good) with either the search term (for Before and After results) or with the other word in the result phrase (for Surrounder Phrases results). For example, search for lost and you'll find results with sonic affinity, like "loves" (which alliterates with "lost") and "cause" (which off-rhymes with "lost").
Tip: Add credibility and flavor to your end rhymes
Suppose you want a line of your lyrics to end with "traitor", and you want to find another word to pair with it. To accomplish this, use the Context search to search for "traitor". Then, pick a word from the results' "Before" section. Results are grouped by syllable count and stress pattern, so pick a grouping that fits the rhythm of your lyrics. Bolded results have sonic affinity with the search term, so look at those first. For example you might end up with a phrase like "turning traitor" or "greatest traitor".
Bug: Data set includes some foreign words and phrases
Though we've gone through some effort to weed out foreign words, some obviously-foreign phrases (e.g. German, French, etc) are still creeping through.

Word lists

Our word lists organize our dictionary words by topic, such as "animals", "where?", "adjectives", etc.

Activity Ideas

Ad-lib, fill in the blank
Seed a short writing exercise by picking an item from each of the "Who?", "When?" and "Where?" lists.
Paint colorful detail
Add detail to your writing by picking very specific words from lists like "Clothing", "Feelings and Emotions", and "Man-Made Instruments".

Types of lists

By category
These are custom-curated lists that help answer questions like "who?", or pick a genre, or find words that are very specific (i.e. not ambiguous; there's only 1 meaning).
By part of speech
Get random adjectives, adverbs, nouns, or verbs. Some lists allow you to narrow on specific subcategories, like nouns that are plants.
Smashed phrases
Smashes words from various lists together. For example, you can build a list of {Adjective, Noun} pairs.
Specialty
Other one-off lists, like a list of ambiguous words (i.e. words that have many meanings).

Storm

Storm is primarily a rhyming dictionary, but it includes other features and flexibility that you won't find anywhere else.

You might use it to:

  • Find rhymes: Off-rhyme, inner-rhyme, multi-rhyme. Find words that look or sound like a given word.Features like "Dial-A-Rhyme" and flexible input options make this the most customizable rhyming dictionaries you'll see.
  • Find related and descriptive words: Find adjectives that describe an apple. Find words related to boating. Flesh out your idea with specificity.
  • Wordplay: Find words that use the same phonemes (sounds) as your word. Look up portmanteaus. Use fresh patterns to carve your own style.

Quick start

Let's learn by example!

Example: Search for off-rhymes

Dillfrog Storm is mainly a rhyming dictionary. All you have to do is:

  1. Leave the Search Type dropdown set to "Dial-A-Rhyme"
  2. In the Search Text box, type "love"
  3. Press the Enter or Return key on your keyboard, or click the Search icon
  4. Use the results as inspiration to write awesome rhyming phrases.

By default, we show you close off-rhymes, not just perfect rhymes. If you want to fine-tune the results, you can fiddle with the Searchlet controls. We'll dive into that soon.

Example steps to find single-word offrhymes

Example: Search for multiple words at once (comma-separated)

Storm lets you view results for multiple searches at the same time. All you have to do is separate your search words with a comma. This comes in handy when you want to quickly find rhyming pairs.

To do this:

  1. Leave the Search Type dropdown set to "Dial-A-Rhyme"
  2. In the Search Text box, type "love, fish"
  3. Press the Enter or Return key on your keyboard, or click the Search icon
  4. *Notice that the search results are colored now! In the screenshot below, red results rhyme with the first word. Blue results rhyme with the second word. Black results rhyme with multiple words.

Example steps to find multi-word off-rhymes

Query Format

This section describes the input formats you can use in the "a word to storm" search box.

Storm search box

Typically you'll just enter a single word. However, more complex input formats are supported as well, for more-advanced queries.

Syntax: A single word (common)

Example Input: dreaming

Interpreted As: The word you entered. This is the most commonly used format. Storm will look up the word in its phonetic dictionary, and use that word's pronunciations.


Syntax: Multiple words, separated by the comma symbol (common)

Example Input: food, time

Interpreted As: A multi-query (multi-word) search. In this example, you are querying for both the word "food", and "time", as 2 separate queries. You see the results on the same page.

This can be useful for some multi-rhyme brainstorming, where you want to see the results for both words next to each other, and you want to adjust the search settings for each word individually.

It can also be useful when searching for words related to a number of terms, that happen to rhyme with each other. Since this runs additional queries behind the scenes, search results may take a little longer than usual to appear. Because of the performance implications, there is a limit (???TBD? Probably around 3-5) to how many queries you can combine in the same results.

πŸ’‘ Tip: Use this to save time flipping back and forth between rhyming words. For example, if your song's section is "A B A B", then search for both your "A" and your "B", and see both results at once! This also helps brainstorm multi-word rhymes, where you pair an "A" word next to a "B" word or vice versa.


Syntax: Multiple words, separated by spaces (common)

Example Input: food time

Interpreted As: A multi-word phrase, whose pronunciation data is the cross product of "food" and "time". For queries that use dictionary data, ALL words in the phrase must exist in the dictionary.


Syntax: Multiple words, separated by the pipe symbol (atypical)

Example Input: food | time

Interpreted As: A merged dictionary entry. In other words, our example is treated as a single word, whose pronunciation data includes the pronunciations of "food" and "time". For queries that use dictionary data, ALL words to merge must exist in the dictionary.


Syntax: A well-formed ARPABET pronunciation. (uncommon)

  • Case-insensitive
  • Exactly one vowel phoneme must be of primary stress (with the '1'). All other vowels must have 0 stress. A malformed entry like M EY0 D or M EY D will be treated like a word lookup, and essentially be ignored.

Example Input: D IH1 L F R AA0 G or M ey1 d

Interpreted As: A dictionary entry with that specific pronunciation.

πŸ’‘ Tip: This can be useful if you want to look up rhymes for a word that isn't in our dictionary, such as a brand name or some other word you made up.

Dial-A-Rhyme Searchlet

Summary

You type a word. It finds rhymes for that word, using a variety of highly-customizable match types.

When to use it?

Use this when you want to find a rhyme, and either:

  • The word is fairly easy to rhyme
  • OR you like to play with knobs and dials to find similar-sounding words (thus fine-tuning your rhyme)
  • OR you want to find words for multiple words in one swoop
  • OR you want to make multi-rhymes or inner rhymes

This searchlet is great for finding rhymes for the end of your lines, but it's also good for inner rhyme (rhyme within the same line). Check out the "Stressed + 1" preset or the "Reverse Rhyme" extractor, for example, for inner rhyme use.

Presets

If you're new to Dial-A-Rhyme:

  1. Use the Preset control (default setting: I'm Feeling Rhymey) to get you in the ballpark. This will change the other fine-grained settings for you.
  2. If you're not seeing what you want, then flip to a different preset like I'm Feeling Rhymier

Once you choose a preset, you can fine-tune the results by modifying the other parameters. For example, you could start with the Rhyme (perfect) preset to find strict perfect rhymes, and then change C As-Is to Family (C Fam), to relax the search and include family rhymes.

Presets are factory-configured and cannot be saved nor customized. However, all of the parameters these presets control ARE configurable.

Each preset is documented within the tool itself. Hover or long-press a menu item to see what it does.

Customization

This searchlet exposes a large number of controls, so you can fine tune your rhyme. See Common Searchlet Controls for more details.

Rhymeshtein Searchlet

Summary

You type a word. It finds rhymes for that word, using a phonetic Levenshtein distance algorithm.

🌟 Insight: The Levenshtein distance, also known as the "edit distance," counts the operations needed (additions, deletions, or modifications) to convert string A into string B. If less changes are necessary, then A and B are closer to each other. In our case, we utilize it to gauge the "distance" between the end-rhyme phonemes of two words.

The results show words whose phonemes (pronunciations) vary by no more than N% of the search word's phonemes, (rounded up).

You can change which phonemes are compared:

  • End Rhyme: (default) This compares ONLY the phonemes of the end rhyme. For example this might compare the EH1 S T of T EH1 S T (test) to the EH1 S of CH EH1 S (chess).
  • Full Pronunciation: This compares the full pronunciation of both words. For example this might compare T EH1 S T to CH EH1 S

You can also set the minimum-percent filter. For tigher matches, set the filter high (example: 80% Match Minimum). For looser matches, set it lower.

That percentage is relative to the length of the first extracted pronunciation of your search term, rounded down to the nearest phoneme. That's a confusing way to say that an "80% match" of a 3-phoneme search phrase will find words that are 0 or 1 distance away. In that example, rather than capping the distance at (20% * 3 = 0.6) phonemes away, we round up to the next phoneme. If it feels like the filter isn't working, this is probably why.

This filter will be more sensitive for shorter pronunciations, since even 1 change to a 3-phoneme word means it's only a 66% match

When to use it?

Use this when:

  • Dial-A-Rhyme is failing you
  • OR your word has 3+ phonemes after the stressed syllable (i.e. you're searching a big word that rarely rhymes with stuff)
  • OR you are OK with seeing less-stable rhymes

This search will run a bit slower than other approaches, and it will give you less stable rhymes, but in general you will see more options than what Dial-A-Rhyme provides.

Example

Search for quantum and get results like: Autumn, bottom, haunted, … horizontal, pocahontas, periodontal

Portmanteau Generator Searchlet

Summary You type a word, and it lists words that you could smash to the beginning or end of that word, to form a portmanteau.

When to use it? Use this to find cutesy product names, puns, or create riddles.

Example Search for "pencil".

You'll see some results that can smash with the beginning or end of pencil. Review the list, and consider which make portmanteaus.

Storm Quickstart Rhyme Comma

Perhaps:

  • Dispense + pencil = dispencil
  • Pencil + salami = pencilami
  • Dispense + pencil + salami = dispencilami

Limitations

  • πŸ”’ A modern browser is required: Chrome, Safari (iOS 11 and above), Firefox, and Edge should all work. Internet Explorer 11 users are out of luck.
  • πŸ”’ English only: Only English words and pronunciations are supported. (Sorry - no Spanish, French, German, Latin, etc.)

Origins, stuff for geeks

Storm began as a research tool, when Plat was trying to refine the Dillfrog Muse "I'm Feeling Rhymey" logic. The tool allowed him to search for words that matched certain phoneme sequences, to help determine which phoneme matches are essential or flexible to a tight rhyme.

Whereas most rhyming dictionaries are implemented as server-side code or applications you have to download, Storm's core functionality is implemented in JavaScript (via ECMAScript 6 syntax). This means core functionality runs in your web browser, and thus:

  • βœ… Generally works offline after you initially load the page. If you lose a connection later (like when in the subway), you probably won't notice an issue. Some functionality may still require a connection.
  • βœ… Is cheaper to host
  • βœ… Allows more intensive and customized search options, that would typically tax a server
  • ❌ Will use more browser resources (CPU, memory, and hence battery) than traditional tools
  • ❌ Has a smaller data set than traditional tools. Your favorite esoteric words might be missing.

General design goals are:

  • General
    • Create a tool that the author would use
    • Make as much functionality work offline as possible (i.e., put as much on the client as we can)
    • Make typical use cases fast, clear, and easy (e.g., via presets, minimal UI unless the user opts for more advanced UI, clear and uncluttered output formats)
    • When sourcing data, prefer free (as in liberty and beer) sources wherever possible
  • UI analogies
    • What if a songwriting tool were played more like an instrument?
      • I.e., you don't just look up something, but you experiment and tweak with it too, like a mixing board or guitar string or an effects pedal.
    • What if a songwriting tool acted more like a DAW plug-in chain?
      • Give the songwriter some creative control over the results
      • Provide "presets" to get started with, but expose advanced "under the hood" features for when the user wants to fine-tune.
      • E.g. what is the songwriting equivalent to… a signal generator? a given filter plug-in? a spectral analyzer?
    • What if a songwriting tool acted more like an IDE?

Phoneme Syntax

To discover similar-sounding words, we need to know how words sound. Therefore, we rely on a dictionary of pronunciations.

There are a few popular formats for those pronunciations. Among them:

  1. ARPABET
  2. International Phonetic Alphabet (IPA)

Dillfrog Muse uses the ARPABET syntax.

Casual users don't need to learn this syntax. Use the presets, and you're good to go. To unlock your rhyming potential, though, you'll need a basic understanding of this syntax.

Pronunciations are expressed as a sequence of sounds, each called a phoneme. Let's go over the vowel and consonant sounds.

Vowels

Vowel phonemes act as the nucleus (center) of a syllable. Each vowel phoneme is listed below.

Long vowels:

Phoneme Comment Example Word
AY Long I my
EY Long A aim
IY Long E ease
OW Long O grow
UW Long U chew

⚠️Gotcha: Notice that some phoneme spellings are not intuitive. For example, the "long-E" song is represented as "IY", and the "long-I" sound is represented as "AY"

Other diphthongs:

Like some of these "long vowels", these weirdos also transition from one sound to another. They have at least 1 "long vowel" sound hiding inside.

Phoneme Comment Example Word
AW Short A -> Long U cow
OY Long O -> E boy

Short vowels:

Phoneme Example Word
AA cot
AE at
AH but
AO off
AW cow
EH egg
IH it
OY boy
UH hood

Stress markers:

Each vowel phoneme is also accompanied by a trailing digit. The digit indicates whether the phoneme is unstressed (0), has primary stress (1). Some pronouncing dictionaries go further and indicate the secondary (2), tertiary (3) etc.

For example, IH1 indicates that the phoneme has the primary (strongest) stress. IH0 would indicate that it has no particular emphasis.

The word eagle is pronounced IY1 G AH0 L, with stress on the first syllable. The word apply is pronounced AH0 P L AY1, with stress on the second syllable.

It is important to understand stress markers, because most rhyme patterns focus on the stressed syllable.

Semivowels

Part vowel, part consonant; they're goofy. We tend to treat them as consonants.

Phoneme Example Word
W way
Y you

Consonants

Consonant sounds tend to have voiced and unvoiced buddies. The voiced phonemes sound like their unvoiced mate, but they add sound from your vocal cord. In other words, your throat will vibrate for the voiced versions, like when humming.

πŸ’‘ Tip: Improve your slant rhymes by understanding phoneme categorization and their interrelationships. For instance, substituting one "stop" with another often maintains a strong rhyme.

We've broken these consonants up into families, so that similar sounds appear near each other. Phonemes can belong to multiple groups, though, so this is just an approximation.

Stops (a.k.a. plosives):

To make these sounds, you STOP airflow (to build up pressure), and then let'er explode with a puff of air!

Phoneme Comment Example Word
B voiced P buy
D voiced T due
G voiced K guy
Phoneme Comment Example Word
P unvoiced B pow
K unvoiced G cow
T unvoiced D toy

Fricatives:

To make these sounds, you limit the airflow (adding FRICtion), but don't stop it completely:

Phoneme Comment Example Word
DH voiced TH the
V voiced F vow
Z voiced S zoo
ZH voiced SH rouge
Phoneme Comment Example Word
F unvoiced V fed
S unvoiced Z saw
SH unvoiced ZH shy
TH unvoiced DH thaw

Affricates:

A combination of a Stop AND a Fricative.

Phoneme Category Example Word
CH unvoiced JH chow
JH voiced CH jaw

Nasals:

These sounds come from your nose!

Phoneme Category Example Word
M nasal my
N nasal now
NG nasal bang

The rest:

Phoneme Category Example Word
HH aspirate / "voiceless glottal fricative" hay
L liquid law
R liquid raw

Additional Resources

Known issues

Atypical pronunciations

Our data has some strange pronunciations. We clean up these outliers as we become aware of them. For example, at some point we encountered these impossibilities:

  • "home" rhymed with "room", "broom", "zoom", etc (because proper noun "Home" is pronounced "hume")
  • "bung" rhymed with "fun" (because it can be pronounced like "bung" or "bun")