{"id":18645215,"url":"https://github.com/danigb/pitch-op","last_synced_at":"2025-11-05T03:30:26.585Z","repository":{"id":66458373,"uuid":"44131638","full_name":"danigb/pitch-op","owner":"danigb","description":"Music pitch operator","archived":false,"fork":false,"pushed_at":"2015-10-21T09:53:52.000Z","size":137,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-27T11:34:48.388Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danigb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-12T20:12:27.000Z","updated_at":"2015-10-22T14:33:00.000Z","dependencies_parsed_at":"2023-02-20T20:00:28.138Z","dependency_job_id":null,"html_url":"https://github.com/danigb/pitch-op","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danigb%2Fpitch-op","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danigb%2Fpitch-op/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danigb%2Fpitch-op/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danigb%2Fpitch-op/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danigb","download_url":"https://codeload.github.com/danigb/pitch-op/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239449552,"owners_count":19640532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T06:15:03.471Z","updated_at":"2025-11-05T03:30:26.514Z","avatar_url":"https://github.com/danigb.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pitch-op\n\n[![Build Status](https://travis-ci.org/danigb/music-chord.svg?branch=master)](https://travis-ci.org/danigb/music-chord)\n[![Code Climate](https://codeclimate.com/github/danigb/music-chord/badges/gpa.svg)](https://codeclimate.com/github/danigb/music-chord)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)\n[![npm version](https://img.shields.io/npm/v/music-chord.svg)](https://www.npmjs.com/package/music-chord)\n[![license](https://img.shields.io/npm/l/music-chord.svg)](https://www.npmjs.com/package/music-chord)\n[![pitch-array](https://img.shields.io/badge/pitch--array-compatible-yellow.svg)](https://github.com/danigb/pitch-array)\n\nMusic pitch operator is a fast and low level library to manipulate pitches or intervals in [pitch-array](https://github.com/danigb/pitch-array) format.\n\nProbably you wanto to use a higher level library:\n\n- [pitch-transpose](https://github.com/danigb/pitch-transpose): transpose pitches\n- [music-gamut](https://github.com/danigb/music-gamut): work with groups of notes or intervals\n- [music-scale](https://github.com/danigb/music-scale): music scales made easy\n- [music-chord](https://github.com/danigb/music-chord): music chords library\n\n\n## API\n\n\u003c!-- START docme generated API please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN docme TO UPDATE --\u003e\n\n\u003cdiv\u003e\n\u003cdiv class=\"jsdoc-githubify\"\u003e\n\u003csection\u003e\n\u003carticle\u003e\n\u003cdiv class=\"container-overview\"\u003e\n\u003cdl class=\"details\"\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"add\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003eadd\u003cspan class=\"signature\"\u003e(a, b)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {Array}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eAdd two pitches or intervals. Can be used to tranpose pitches.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003ea\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003eone pitch or interval in \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003eb\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe other pitch or interval in \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L118\"\u003elineno 118\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003eboth pitches or intervals added in \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003evar op = require('pitch-op')\nop.add([3, 0, 0], [4, 0, 0]) // =\u003e [0, 0, 1]\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"comparator\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003ecomparator\u003cspan class=\"signature\"\u003e(descending)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {function}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eGet a comparator to sort pitches by height (frequency)\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003edescending\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eBoolean\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003eset to \u003ccode\u003etrue\u003c/code\u003e if want a descending comparator\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L91\"\u003elineno 91\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003ethe comparator function\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003efunction\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003earrayOfPitches.sort(op.comparator())\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"multiply\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003emultiply\u003cspan class=\"signature\"\u003e(n, a)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {Array}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eMultiply a pitch or interval by a scalar\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe scalar\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003ea\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe pitch or interval in \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L151\"\u003elineno 151\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003ethe pitch or interval multiplied in \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003evar op = require('pitch-op')\nop.multiply(2, [4, 0, 0]) // =\u003e [1, 0, 1]\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"pitchClass\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003epitchClass\u003cspan class=\"signature\"\u003e(pitch)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {Array}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eGet pitch class of a pitch.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003epitch\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe pitch\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L9\"\u003elineno 9\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003ethe pitch class of the pitch\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003epitchClass([1, -2, 3]) // =\u003e [1, -2, nul]\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"semitones\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003esemitones\u003cspan class=\"signature\"\u003e(pitch)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {Integer}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eGet distance in semitones from \u003ccode\u003e[0, 0, 0]\u003c/code\u003e (\u003ccode\u003e'C0'\u003c/code\u003e or \u003ccode\u003e'1P'\u003c/code\u003e)\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003epitch\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe pitch or interval\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L77\"\u003elineno 77\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003ethe distance\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003eInteger\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003eop.semitones([1, 1, 0]) // =\u003e 3\nop.semitones([0, 0, 0]) // =\u003e 0\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"setDefaultOctave\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003esetDefaultOctave\u003cspan class=\"signature\"\u003e(octave, pitch)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eSet the octave only if not present\u003c/p\u003e\n\u003cp\u003eThis function can be partially applied (Integer -\u0026gt; Array -\u0026gt; Array)\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003eoctave\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eInteger\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe octave number\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003epitch\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe pitch\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L56\"\u003elineno 56\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003eop.setDefaultOctave(1, [1, 2, null]) // =\u003e [1, 2, 1]\nop.setDefaultOctave(1, [1, 2, 3]) // =\u003e [1, 2, 3]\n// partially applied:\narrayOfPitches.map(op.setDefaultOctave(3))\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"setOctave\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003esetOctave\u003cspan class=\"signature\"\u003e(octave, pitch)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {Array}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eSet octave of a pitch.\u003c/p\u003e\n\u003cp\u003eThis function can be partially applied (Integer -\u0026gt; Array -\u0026gt; Array)\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003eoctave\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eInteger\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe octave to set\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003epitch\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe pitch\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L22\"\u003elineno 22\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003ethe pitch with the given octave\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003esetOctave(2, [1, 2, 0]) // =\u003e [1, 2, 2]\n// partially applied, you get a function:\narrayOfPitchs.map(setOctave(2))\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"simplify\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003esimplify\u003cspan class=\"signature\"\u003e(interval)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {Array}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eSimplify interval (set the octave to 0)\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003einterval\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe interval\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L43\"\u003elineno 43\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003ethe simplified interval\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003eop.simplify([1, 2, 3]) // =\u003e [1, 2, 0]\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"subtract\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003esubtract\u003cspan class=\"signature\"\u003e(a, b)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {Array}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eSubtract two pitches or intervals. Can be used to find the distance between pitches.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003ea\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003eone pitch or interval in \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003eb\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ethe other pitch or interval in \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/danigb/pitch-op/blob/master/index.js#L128\"\u003elineno 128\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003eboth pitches or intervals substracted \u003ca href=\"https://github.com/danigb/pitch-array\"\u003epitch-array\u003c/a\u003e format\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003eArray\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eExample\u003c/h5\u003e\n\u003cpre class=\"prettyprint\"\u003e\u003ccode\u003evar op = require('pitch-op')\nop.subtract([4, 0, 0], [3, 0, 0]) // =\u003e [1, 0, 0]\u003c/code\u003e\u003c/pre\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/article\u003e\n\u003c/section\u003e\n\u003c/div\u003e\n\n*generated with [docme](https://github.com/thlorenz/docme)*\n\u003c/div\u003e\n\u003c!-- END docme generated API please keep comment here to allow auto update --\u003e\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanigb%2Fpitch-op","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanigb%2Fpitch-op","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanigb%2Fpitch-op/lists"}