# rime

> Finds rhymes, including loose rhymes

Latest version **1.1.1** (published 2016-04-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install rime
pnpm add rime
yarn add rime
bun add rime
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.1 |
| Published | 2016-04-25 |
| First published | 2014-10-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 13 |
| Known vulnerabilities | 0 (+6 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Jim Kang |
| Maintainers | jimkang |
| Keywords | rhyme, loose, words |

## Links

- npm: https://www.npmjs.com/package/rime
- Repository: https://github.com/jimkang/rime
- Issues: https://github.com/jimkang/rime/issues
- npm.io page: https://npm.io/package/rime

## Dependencies (13)

- [tape](https://npm.io/package/tape.md) ^3.5.0
- [split](https://npm.io/package/split.md) ^0.3.3
- [lodash](https://npm.io/package/lodash.md) ^3.2.0
- [jsonfile](https://npm.io/package/jsonfile.md) ^2.0.0
- [probable](https://npm.io/package/probable.md) ^1.5.0
- [phonemenon](https://npm.io/package/phonemenon.md) ^1.2.1
- [seedrandom](https://npm.io/package/seedrandom.md) ^2.3.11
- [queue-async](https://npm.io/package/queue-async.md) ^1.0.7
- [conform-async](https://npm.io/package/conform-async.md) ^1.1.1
- [phoneme-types](https://npm.io/package/phoneme-types.md) ^1.2.2
- [export-methods](https://npm.io/package/export-methods.md) ^1.1.0
- [word-phoneme-map](https://npm.io/package/word-phoneme-map.md) ^1.3.2
- [phoneme-sequencer](https://npm.io/package/phoneme-sequencer.md) ^1.2.0

## Recent versions

- 1.1.1 (latest) — 2016-04-25
- 1.1.0 — 2015-12-16
- 1.0.0 — 2015-06-26
- 0.1.0 — 2014-10-17

## README

rime
====

rime is a module that finds rhymes, including loose rhymes.

A rhyme finder that works by strictly matching the phonemes of the last syllable of words would get rhymes for the word AIM such as:

    SHAME
    TAME
    BAIM
    BAME
    BOEHM
    BOEHME
    GAME
    CAME
    KAIM
    NAME
    DAME
    DAMME

However, rime can additionally find rhymes for AIM like:

    GAIN
    LAIN
    LAINE
    LANE
    MOSCOWANE
    WINDOWPANE
    PREORDAIN
    LEGERDEMAIN
    ST_GERMAIN
    ST_GERMAINE
    MANGIAPANE
    SULFUROPHANE
    FINKIELSTAIN
    POLYURETHANE
    CYCLOHEXANE
    AINGE
    CHSEING
    MERENGUE
    D'ESTAING

In some artistic contexts, this is desirable.

Installation
------------

    npm install rime

Then, there are manual postinstall steps:

    cd node_modules/rime
    npm install
    make build-word-phoneme-map
    make data/syllables-for-words.json

It's not run on postinstall automatically because it takes a while, about 40 minutes on a computer with a 3.2 GHz i3 processor with 4 GB of RAM. But once you do it, you never have to do it again. This step builds a database that indexes every word in the CMU Pronouncing Dictionary by phoneme sequence and also by reverse phoneme sequence. With this, `rime` can look up what words correspond to what phonemes quickly.

Usage
-----

Create an instance of rime.

    var createRime = require('rime');

    createRime(
      {
        random: seedrandom('outer'),
        wordPhonemeDbPath: __dirname + '/../data/word-phoneme-map.db'
      },
      useRime
    );

    function useRime(error, rime) {
      if (error) {
        console.log(error);
      }

      rime.getRhymes(
        {
          base: 'pock'
        },
        reportWords
      );

      function reportWords(error, words) {
        if (error) {
          console.log(error);
        }
        else {
          console.log(words);
        }
      }

API
---

TODO

Tests
-----

Run tests with `make test`.

[Specification](specification.md)

License
-------

MIT.

---
_Source: https://npm.io/package/rime · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
