Socket
Book a DemoInstallSign in
Socket

lrc-kit

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lrc-kit

lrc parser, maker, runner

latest
Source
npmnpm
Version
1.1.1
Version published
Weekly downloads
53
32.5%
Maintainers
1
Weekly downloads
 
Created
Source

LRC Kit

NPM version NPM downloads Build Status

lrc parser and runner

Install

npm

npm i -S lrc-kit

Lrc

Usage

import

import { Lrc } from 'lrc-kit';

parse lyric

var lrc = Lrc.parse(`
  [ti:Title]
  [ar:Lyrics artist]
  [00:09.010][00:30.000]i guess you're my creep tonight
`)

lrc.info
// { ti: 'Title', ar: 'Lyrics artist' }

lrc.lyrics
// [{
//   content: "i guess you're my creep tonight",
//   timestamp: 9.01
// }, {
//   content: "i guess you're my creep tonight",
//   timestamp: 30.0
// }]

make lyric

var lrc = new Lrc()
lrc.info['ar'] = 'Lyrics artist'
lrc.lyrics.push({
    content: "i guess you're my creep tonight",
    timestamp: 9.01,
})
lrc.lyrics.push({
    content: "i guess you're my creep tonight",
    timestamp: 30.0,
})

lrc.toString()
// [ar:Lyrics artist]
// [00:30.00][00:09.01]i guess you're my creep tonight

lrc.toString({combine: false})
// [ar:Lyrics artist]
// [00:09.01]i guess you're my creep tonight
// [00:30.00]i guess you're my creep tonight


lrc.offset(-3)
lrc.toString()
// [ar:Lyrics artist]
// [00:27.00][00:06.01]i guess you're my creep tonight

API

Lrc.parse(text): parse lyirc text and return a lrc object

Lrc object

  • lrc.info lyric info plain object
{
    'ar': 'Lyrics artist',
    'al': 'Album where the song is from',
    'ti': 'Lyrics (song) title',
    'au': 'Creator of the Songtext',
    'length': 'music length, such as 2:50',
    'by': 'Creator of the LRC file',
    'offset': '+/- Overall timestamp adjustment in milliseconds, + shifts time up, - shifts down',
    're': 'The player or editor that created the LRC file',
    've': 'version of program',
}
  • lrc.lyrics lyric array
[
    {
        content: "i guess you're my creep tonight",
        timestamp: 9.01,
    },
    {
        content: "The way you knock me off my feet",
        timestamp: 12.08,
    },
]
  • lrc.offset(offset) offset all lyrics

  • lrc.toString(options) generate lyric string

    • options.combine (boolean) lyrics combine by same content
    • options.sort (boolean) lyrics sort by timestamp
    • options.lineFormat (string) newline format

Runner

Usage

import

import { Runner } from 'lrc-kit';

run

var runner = new Runner(Lrc.parse(...))

audio.addEventListener('timeupdate', () => {
    runner.updateTime(audio.currentTime)
    var lyric = runner.curLyric()
    // or
    var lyric = runner.getLyric(runner.curIndex())

    lyric
    // {
    //    content: "i guess you're my creep tonight",
    //    timestamp: 9.01
    // }
})

// Modify lyric
runner.lrc.lyrics.push({
    content: "Now i can't tell my left form right",
    timestamp: 17.3,
})
runner.lrcUpdate() // Must call lrcUpdate() when update lyrics

API

new Runner(lrc = new Lrc(), offset=true)

  • lrc lrc object
  • offset parse lrc.info.offset if offset is true

Runner object

  • runner.setLrc(lrc) reset the lrc object
  • runner.lrcUpdate() call it when lrc updated
  • runner.timeUpdate(timestamp) time update
  • runner.getInfo() get runner.lrc.info
  • runner.getLyrics() get runner.lrc.lyrics
  • runner.curIndex() current index
  • runner.curLyric() current lyric

License

MIT

Keywords

lrc

FAQs

Package last updated on 14 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts