{"_id":"@akordi/chord-transposer","_rev":"1-30027dd5c069a2f38bb6bf774c0c1d48","name":"@akordi/chord-transposer","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@akordi/chord-transposer","private":false,"version":"0.0.1","description":"Transposes musical chords in arbitrary text.","main":"dist/index.js","dependencies":{"ts-enums":"0.0.6","xregexp":"^4.4.0"},"devDependencies":{"@types/jasmine":"^3.6.2","@types/node":"^12.19.7","jasmine":"^3.6.3","ts-node":"^8.10.2","tslint":"^6.1.3","typescript":"^3.9.7","typescript-formatter":"^7.2.2"},"scripts":{"build":"npx tslint src/* && tsfmt -r && tsc","test":"npm run build && ts-node node_modules/jasmine/bin/jasmine --config=jasmine.json"},"repository":{"type":"git","url":"git+https://github.com/OskarsPakers/chord-transposer.git"},"keywords":["transpose","chord","music","pitch","note","lyrics","tabs"],"author":{"name":"Duncan Cai"},"license":"MIT","bugs":{"url":"https://github.com/ddycai/chord-transposer/issues"},"homepage":"https://github.com/ddycai/chord-transposer#readme","exports":{"require":"./dist/index.js","import":"./dist/esm/wrapper.js"},"gitHead":"19665a805d9db711e6982bf5df1b037eda270e18","_id":"@akordi/chord-transposer@0.0.1","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-q78ytUrzuDsHXjpEKSGLlLcRzJ55lMO7m259z9VR1ZV4h+dNEEhRLyAxXSSupefAcRh5mGlIkD8LkblXlgGLPQ==","shasum":"a751d295e2279be936747504666b37e23efdd523","tarball":"https://registry.npmjs.org/@akordi/chord-transposer/-/chord-transposer-0.0.1.tgz","fileCount":17,"unpackedSize":47888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/lyPCRA9TVsSAnZWagAAczMP/jNoRMQw4IjjcHdNHNSu\nets06ZrVYw9sNiwkmrUVuKA1bboANMEIuHwZxvNbx1nNmo6O3VJjCWyAKR/b\nJrPx5ssPyvxJBUYNqoU1/IpFHC7xB3WLjK3ALvNK1OxSi9HOm/e+dfTRxJdz\n5BOE0XVRPJz6SkjrtBt+40381N5wfdzKhhTDP2mvEd9jkAlQ8gOzxs0ZAlYc\nBoDLComoNj4ccjd7sr/YX0PXumhqcgqq3h7YXWBhX8XiX20aELAJbXGJ3wwS\nio937VF9w78tOWequ5If4Y51P0+bbgNq1ErQhL28oy0+DjqifFOIwT2wl9A4\npBnFiZ4Y0XP04RSWtadkUpqqZFYz1YYF92sYU7HtAshPjKNZp9fUSylP/O3v\nHI3M9at8nEO/FjSAugmwzZrdKtG/XB4kNF/8o+UzfbsoS8+VANkfMgpgSMeQ\nTH/o7OCZgBBSS2ID63RUHuzmneG+3MV42AlgecV5Kolt6L877t6WHE3a04DR\nZuNTcqaOoQY8ygdEixpmhdIwwiWbRt9btNVOx1rlhpUnIeDL3+M9xdGLMZ9z\nJ21hx35hqKECL6DT1A/qH59vemHWzNmZqjH2ZBMH75ZUO1HKIm4t/XdG0nd6\nbMBmpiMXW93XhVCiBR7TIXrhITOCMFhrwRW1/Q+tfnP0y4I/qWOb+lfkWh7M\n+u16\r\n=inZg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC1zhQ5fn3nFH/vPza3mRPvjMpsFvCHlkJIgyiGrzMXLAiEAyp99lKwYyint8V3AWWjXjkTDIx8oqn834SO89c6j0Fs="}]},"_npmUser":{"name":"oskarspakers","email":"oskars.pakers@gmail.com"},"directories":{},"maintainers":[{"name":"oskarspakers","email":"oskars.pakers@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chord-transposer_0.0.1_1627282575134_0.30936579809001086"},"_hasShrinkwrap":false}},"time":{"created":"2021-07-26T06:56:15.083Z","0.0.1":"2021-07-26T06:56:15.335Z","modified":"2022-04-04T12:31:05.160Z"},"maintainers":[{"name":"oskarspakers","email":"oskars.pakers@gmail.com"}],"description":"Transposes musical chords in arbitrary text.","homepage":"https://github.com/ddycai/chord-transposer#readme","keywords":["transpose","chord","music","pitch","note","lyrics","tabs"],"repository":{"type":"git","url":"git+https://github.com/OskarsPakers/chord-transposer.git"},"author":{"name":"Duncan Cai"},"bugs":{"url":"https://github.com/ddycai/chord-transposer/issues"},"license":"MIT","readme":"Chord Transposer\r\n========\r\n\r\nJavascript/TypeScript library for transposing musical chords within arbitrary\r\ntext.\r\n\r\nThis is a fork from ddycai/chord-transposer with extended chord support and support for ChordProd chord format.\r\n\r\n## Usage\r\n\r\nInstall via npm:\r\n\r\n```\r\nnpm install chord-transposer\r\n```\r\n\r\nImport the package using your preferred import syntax:\r\n\r\n```javascript\r\nconst Transposer = require('chord-transposer');\r\n\r\nimport * as Transposer from 'chord-transposer';\r\n\r\nimport { transpose, Chord, KeySignatures } from 'chord-transposer';\r\n```\r\n\r\n## Transposing\r\n\r\nTo a certain key signature:\r\n\r\n```javascript\r\n> Transposer.transpose(\r\n\"G        C           Am7            C        D7       G\\n\" +\r\n\"Saying I love you is not the words I want to hear from you\").toKey('F').toString()\r\n'F        Bb          Gm7            Bb       C7       F\\n' +\r\n'Saying I love you is not the words I want to hear from you'\r\n```\r\n\r\n`up` or `down` any number of semitones:\r\n\r\n```javascript\r\n// Up 7 semitones.\r\n> Transposer.transpose(\r\n\"G        C           Am7            C        D7       G\\n\" +\r\n\"Saying I love you is not the words I want to hear from you\").up(7).toString()\r\n'D        G           Em7            G        A7       D\\n' +\r\n'Saying I love you is not the words I want to hear from you'\r\n\r\n// Down 4 semitones.\r\n> Transposer.transpose(\r\n\"G        C           Am7            C        D7       G\\n\" +\r\n\"Saying I love you is not the words I want to hear from you\").down(4).toString()\r\n'Eb       Ab          Fm7            Ab       Bb7      Eb\\n' +\r\n'Saying I love you is not the words I want to hear from you'\r\n```\r\n\r\n### Auto Key Signature\r\n\r\nIf the key signature is not specified, the key will be inferred from the first\r\nchord.\r\n\r\n```javascript\r\n> Transposer.transpose('F  C7 Bb').toKey('D').toString()\r\n'D  A7 G'\r\n\r\n> Transposer.transpose('Fm  C Ab').toKey('Dm').toString()\r\n'Dm  A F'\r\n```\r\n\r\n### Supported Chords\r\n\r\n```javascript\r\n> Transposer.transpose('A Bmaj CM Dm/F E7/G# Gsus4').toKey('F').toString()\r\n'F Gmaj AbM Bbm/Db C7/E  Ebsus4'\r\n\r\n> Transposer.transpose('Abm Bbmin C- Ddim Ebaug F+ Gb+5').toKey('Dm').toString()\r\n'Dm  Emin  Gb- Abdim Aaug  Cb+ C+5'\r\n```\r\n\r\n## Parsing\r\n\r\nWhen text is passed into `transpose`, it is parsed into `Token[][]` where\r\n`Token = Chord | string`. You can access these through `tokens` to parse\r\nhowever you like:\r\n\r\n```javascript\r\n> Transposer.transpose('C  G  Am  G7/B  C    F  C   F   G7\\n'+\r\n                       'O Canada  Our home and native land').tokens\r\n[\r\n  [\r\n    Chord { root: 'C', suffix: '', bass: undefined },\r\n    '  ',\r\n    Chord { root: 'G', suffix: '', bass: undefined },\r\n    '  ',\r\n    Chord { root: 'A', suffix: 'm', bass: undefined },\r\n    '  ',\r\n    Chord { root: 'G', suffix: '7', bass: 'B' },\r\n    '  ',\r\n    Chord { root: 'C', suffix: '', bass: undefined },\r\n    '    ',\r\n    Chord { root: 'F', suffix: '', bass: undefined },\r\n    '  ',\r\n    Chord { root: 'C', suffix: '', bass: undefined },\r\n    '   ',\r\n    Chord { root: 'F', suffix: '', bass: undefined },\r\n    '   ',\r\n    Chord { root: 'G', suffix: '7', bass: undefined }\r\n  ],\r\n  [ 'O Canada  Our home and native land' ]\r\n]\r\n```\r\n\r\nYou can also parse individual chords:\r\n\r\n```javascript\r\n> const Transposer = require('chord-transposer')\r\n> Transposer.Chord.parse('Cm7/E')\r\nChord { root: 'C', suffix: 'm7', bass: 'E' }\r\n```\r\n","readmeFilename":"README.md"}