{"_id":"sample-player","_rev":"17-e386a1530a6d0e6d56632ce272d206c3","name":"sample-player","description":"A flexible web audio buffer player","dist-tags":{"latest":"0.5.5"},"versions":{"0.0.1":{"name":"sample-player","version":"0.0.1","description":"A web audio sample player","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/danigb/samplr/tree/master/packages/sample-player"},"keywords":["music","audio","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/samplr/issues"},"dependencies":{},"devDependencies":{"web-audio-test-api":"^0.3.6"},"_id":"sample-player@0.0.1","_shasum":"a979188d079c49cbe908a0b41ff480a29b19606a","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"a979188d079c49cbe908a0b41ff480a29b19606a","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.0.1.tgz","integrity":"sha512-H9qQzdtMMVIAoNhQVrmCE3t6rBAS6KQwxgIiSkeZd5GE6xqOYrS6e9KiPTHJmSe6ETwfkl2AngKfEXLE2M0Syw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHPoxaCnQZQPwf4e2INaiN6DFZBkepdCJyXtOJxoHYcoAiAdKaGvhQCe4eeZqL8F9NkhijUOv5lG/3PM1wndAh0RKA=="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}]},"0.1.0":{"name":"sample-player","version":"0.1.0","description":"A web audio sample player","main":"index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","docs":"documentation -f md > API.md","dist":"mkdir -p tmp && browserify index.js | uglifyjs > tmp/sample-player.min.js&& ls -hall tmp/","disc":"mkdir -p tmp && browserify --full-paths index.js | uglifyjs | discify > tmp/disc.html","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["music","audio","sample","player","webaudio","smplr"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0"},"devDependencies":{"audio-loader":"^0.1.2","sinon":"^1.17.2","web-audio-test-api":"^0.3.6"},"gitHead":"42df4d863174cdd2c1e109153e4a0a5dcaf9aa78","_id":"sample-player@0.1.0","_shasum":"4722635a70641781efb50c975ba903c926d444d3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"4722635a70641781efb50c975ba903c926d444d3","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.1.0.tgz","integrity":"sha512-zLU/g33QPZVaXA4atC+X2ZD931W3DesNpjoH8PTdbIiNY0E5R6Gz1Y9YjJ7vIDI6RG+lKoLJ8mrHVa4idXMpnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmsH5CrMP/bJ4BjagO/O2Xj8iLRzTM/YN0PuUbCKackgIhANOIrYXnGEAdZsGviByupK0SVdVLhIMYPrNSMGTiOEjW"}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}]},"0.3.0":{"name":"sample-player","version":"0.3.0","description":"A simple audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/index.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2.9.0","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"*","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","sinon":"^1.17.2","web-audio-test-api":"^0.3.6"},"gitHead":"54c1eac479f83495ef838c1c134c909ac2439046","_id":"sample-player@0.3.0","_shasum":"123983040b826253d696aa10b9e603791d16bfa7","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"123983040b826253d696aa10b9e603791d16bfa7","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.3.0.tgz","integrity":"sha512-mFU3iaQYvuAkz2/gHBvCIk64V8kgPk1aguI+FlEfJLypXMUGh2CDo3drPxy6OtpIp8dBU6HIKAO09dIkjDNnUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFIx9bouPBdXtBg5ywmhPHUKPiletm6slmT+1J/FJz4KAiBCCfl5b+/uVsgNUyejd5J4AXg+v6r0cKh+E8GA/EuJZA=="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/sample-player-0.3.0.tgz_1463996237934_0.10186757380142808"}},"0.3.1":{"name":"sample-player","version":"0.3.1","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/index.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2.9.0","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"*","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","sinon":"^1.17.2","web-audio-test-api":"^0.5.2"},"gitHead":"54cb006a2a0d714f5082ea40247a2863de44752c","_id":"sample-player@0.3.1","_shasum":"8ba5f466d1153c095ff4c485992efa9c1e464ebf","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"8ba5f466d1153c095ff4c485992efa9c1e464ebf","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.3.1.tgz","integrity":"sha512-bLTeBoKC6XxAD1oN6iZ/wF3oXCuMvF36PuW6UgCTQYmuR3B4fzUfiC9MfFvQoSuVimg2rLmUs8YjqORVKwDMgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBvyLehTxEuEZUi0jjKztGT+koHMiPKbV9Nbw3Ojo2alAiEA6HPZ/RNn6pyE5Uo4A75KOWu6ZhoRkYqpbWVvnPnY0Kw="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.3.1.tgz_1463999056790_0.895628877915442"}},"0.3.2":{"name":"sample-player","version":"0.3.2","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/index.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","sinon":"^1.17.2","web-audio-test-api":"^0.5.2"},"gitHead":"54cb006a2a0d714f5082ea40247a2863de44752c","_id":"sample-player@0.3.2","_shasum":"153a38ff4c819c1ce50e6398bb7b3b30d8e64009","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"153a38ff4c819c1ce50e6398bb7b3b30d8e64009","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.3.2.tgz","integrity":"sha512-Uxb9f8dEf1O9TdNKONpVzMAJ0d9Nj9mK1QK/YGiTWkUuOMWIdFTD7ZPQygQ/lW+XyaJS+2MWiLkj/F/goCqMuQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBI3HsDLnoNwkgQk0bLRAqi+ARK6NxVl1ka8WBpn42lfAiEAxzTecphEAKIzk+E4nOEIws1EbxQLc87xmRBFUIsM7gI="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.3.2.tgz_1464183098033_0.1277473175432533"}},"0.4.0":{"name":"sample-player","version":"0.4.0","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","sinon":"^1.17.2","web-audio-test-api":"^0.5.2"},"gitHead":"0fc409a50066b9f8897dba7b07cee1532861d540","_id":"sample-player@0.4.0","_shasum":"b885a390216660f6cde8b2fa5ac605acdf805c98","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"b885a390216660f6cde8b2fa5ac605acdf805c98","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.4.0.tgz","integrity":"sha512-46OdzjEmO+dkKXw5VDHLYMwYaemdkqzkoRg0t+hTlIdZn9iByxbToquVjvNBpZEvVZY5QZHeeSLccEKIHR/cDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTOUv0Be8h1EezqHbHyEC+Du72YZ5DPKyifQmskTMSbAIhANdxtpEvllJanHDht4Nz01KQb9gfrb/eI+iYOAm7zOxK"}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.4.0.tgz_1464253161468_0.8780877131503075"}},"0.4.1":{"name":"sample-player","version":"0.4.1","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","sinon":"^1.17.2","web-audio-test-api":"^0.5.2"},"gitHead":"839fd2af326d27fe61099d69e78fa445fe2230cf","_id":"sample-player@0.4.1","_shasum":"0a4ecceb632aa8d2ad3b5afcbf98eb80792be488","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"0a4ecceb632aa8d2ad3b5afcbf98eb80792be488","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.4.1.tgz","integrity":"sha512-57EbF9JdkrfkcsafuDdh4MATsdWShaK5O1Zndkt32qAW2TwuiO9YShgWjW0grDDcqN8E8XL9SVQzih2MgDqnDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDYxIV460ZwarTMflsbiXeKNRP1uPOZBI00VQ22pB3v+AiEA7Zs/ad21YPbssbKbBYU3O1VCjATC+6a4Dkk08oxW6V0="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.4.1.tgz_1464557821002_0.9264929359778762"}},"0.5.0":{"name":"sample-player","version":"0.5.0","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","sinon":"^1.17.2","web-audio-test-api":"^0.5.2"},"gitHead":"421d9b3a48ecc1d093b1dca7a3d0bf278070ddc0","_id":"sample-player@0.5.0","_shasum":"dbca36f98d5639951882e346a194322eff53b6d2","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"dbca36f98d5639951882e346a194322eff53b6d2","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.5.0.tgz","integrity":"sha512-syEClATFwLtO+4fIHVzpW+w1TrLcJA8nqNW7Ri5hucYBJVFqmgLe8XETHL6IpRqWejvdnvK8i7Mm8UjBgPPqKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQcNoJ/B2hV1YmYtG0zLsi1u23vDV+vGvnLelXMDlHKAiBk6BeG8PiMPHD4I3eWqXvLZ7lmRBfNblqGEoKIsWFSRA=="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.5.0.tgz_1465126461049_0.43502152850851417"}},"0.5.1":{"name":"sample-player","version":"0.5.1","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","discify":"browserify --full-paths lib/index.js | uglifyjs | discify > tmp/disc.html && open tmp/disc.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"https://github.com/danigb/smplr/tree/master/packages/sample-player"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/smplr/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","sinon":"^1.17.2","web-audio-test-api":"^0.5.2"},"gitHead":"da93881c6b9b1a7b57833db46905dc478a585635","_id":"sample-player@0.5.1","_shasum":"6091f01b043aecfb323b1ae9035fd1d3c37016d3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"6091f01b043aecfb323b1ae9035fd1d3c37016d3","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.5.1.tgz","integrity":"sha512-lCM2EdrJCqlcTynlrCbJeeBAgWj2+FDOFNf4xG5/eTdUMW9gYQlHq66OUb0SfQg/iVhiCmgD46G98A1zBk8qlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB6RKz90R+n1lT0l0dsN2iOBij3fNrRHrXPiyDIsaAV+AiBP950sJtceUdEYUKpeux+SFuOG59bzw5Y4eL5Avkzr4g=="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/sample-player-0.5.1.tgz_1465164540868_0.23149473336525261"}},"0.5.2":{"name":"sample-player","version":"0.5.2","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","discify":"browserify --full-paths lib/index.js | uglifyjs | discify > tmp/disc.html && open tmp/disc.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"git+https://github.com/danigb/sample-player.git"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/sample-player/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","web-audio-test-api":"^0.5.2"},"gitHead":"50e08325ea2d1e04c26feabc1f2c5ebf418b504e","homepage":"https://github.com/danigb/sample-player#readme","_id":"sample-player@0.5.2","_shasum":"abf5e4d0dc2ee8a964451bc64a382da07087029a","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"abf5e4d0dc2ee8a964451bc64a382da07087029a","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.5.2.tgz","integrity":"sha512-E3MSJi2GaEu1F8YG7LWaz6qeSj+0xUZz6D8SQJ0GIYv/uHe69tn8o8AjabuD84EKmw0f8KRsbRJzfO+7uwEZAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZmU26e8zXsleBDPChl/zQY1TJlczlIUk+9WCbxY5dxAIgZCos1iaGrdBMLHVAGJyoQ2fh1XsAIO1fDc9qvCSVRaY="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.5.2.tgz_1465166103228_0.5402469518594444"}},"0.5.3":{"name":"sample-player","version":"0.5.3","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run docs && npm run disc && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","discify":"browserify --full-paths lib/index.js | uglifyjs | discify > tmp/disc.html && open tmp/disc.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"git+https://github.com/danigb/sample-player.git"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/sample-player/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","web-audio-test-api":"^0.5.2"},"gitHead":"50e08325ea2d1e04c26feabc1f2c5ebf418b504e","homepage":"https://github.com/danigb/sample-player#readme","_id":"sample-player@0.5.3","_shasum":"cc1a88425c9d1474c268070b3fb7cc0317fc4d5f","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"cc1a88425c9d1474c268070b3fb7cc0317fc4d5f","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.5.3.tgz","integrity":"sha512-1ZVJ89to2zmPpmFvKSwQ6ageqirIU3YieEf0TJwX1lIe9MXl/C1V4/T5AIyZ5Gs+4CRy7w4unbJMKOm6B5NmhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDdvX1b/ZdrGnGDXhO0qBTwJxGU1Mm/7keqBXGWLcGW5AiAMAOxPN8d/GVm0MaHg0m60iy+Cf6cQj2jxsUxMrJakFA=="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.5.3.tgz_1465327184057_0.48909516306594014"}},"0.5.4":{"name":"sample-player","version":"0.5.4","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run api && npm run discify && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","discify":"browserify --full-paths lib/index.js | uglifyjs | discify > tmp/disc.html && open tmp/disc.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"git+https://github.com/danigb/sample-player.git"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/sample-player/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","web-audio-test-api":"^0.5.2"},"gitHead":"31a8873a9ea88aa6782ae5eca5a2cac9daa76984","homepage":"https://github.com/danigb/sample-player#readme","_id":"sample-player@0.5.4","_shasum":"1dd541a6815d23a25406a69b7249af1ef09757e3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"1dd541a6815d23a25406a69b7249af1ef09757e3","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.5.4.tgz","integrity":"sha512-C2LrfKqgV6auuapBPTbURgcq9JS9IC/QVEJegcGet9ZwRDVmGbJW46Krg8tRImYxMOG3v871VBGxRM6c1+JHuQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI1e4hM7Zr8TkuO+Tpi6dNxmJl4jEA3ElhDvdgG0MstgIgFK8RVNEm9XPOo2IxxqUXRi7+9ccZgd6JFIEROyD81yw="}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sample-player-0.5.4.tgz_1475438531869_0.5425407679285854"}},"0.5.5":{"name":"sample-player","version":"0.5.5","description":"A flexible web audio buffer player","main":"lib/index.js","scripts":{"build":"npm run coverage && npm run api && npm run discify && npm run dist","test":"mocha","api":"jsdoc2md --property-list-format none --member-index-format none lib/*.js > API.md","dist":"mkdir -p dist && browserify lib/index.js | uglifyjs > dist/sample-player.min.js && ls -hall dist/","coverage":"istanbul cover _mocha","cover":"npm run coverage && open coverage/lcov-report/index.html","discify":"browserify --full-paths lib/index.js | uglifyjs | discify > tmp/disc.html && open tmp/disc.html","prepublish":"npm test && npm run dist"},"repository":{"type":"git","url":"git+https://github.com/danigb/sample-player.git"},"keywords":["audio","buffer","sample","player","webaudio"],"author":{"name":"danigb","email":"danigb@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/danigb/sample-player/issues"},"dependencies":{"adsr":"^1.0.0","midimessage":"^1.0.5","note-parser":"^1.1.0"},"devDependencies":{"browserify":"^13.0.0","eslint":"^2","eslint-config-standard":"^5.3.1","eslint-plugin-promise":"^1.1.0","eslint-plugin-standard":"^1.3.2","mocha":"^2","uglifyjs":"^2.4.10","audio-loader":"^0.4.0","web-audio-test-api":"^0.5.2"},"gitHead":"c9596fc8d261df71e9c9145c6a322efacd650b0b","homepage":"https://github.com/danigb/sample-player#readme","_id":"sample-player@0.5.5","_shasum":"bc35bea3449c6fa972528f022a9bbc2872195637","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"danigb","email":"danigb@gmail.com"},"dist":{"shasum":"bc35bea3449c6fa972528f022a9bbc2872195637","tarball":"https://registry.npmjs.org/sample-player/-/sample-player-0.5.5.tgz","integrity":"sha512-VQ9pXPJ1m/eTH8QK6OQ8Dn/HSVToNyY9w9vnv+y/yjkJeRm87tJ/gBEm66jItfSLhKe6VG1DfX8+oT+Mg7QUpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXLiDGO/9MzZcrNFBhgNUkUyiJnmLHQJNGuNtVdH/ymgIhAPoLfdUKqFEkl8bdBAxUStdSEjVkfOkhbUPXbmIut8IH"}]},"maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/sample-player-0.5.5.tgz_1475766050320_0.5081045909319073"}}},"readme":"# sample-player [![npm](https://img.shields.io/npm/v/sample-player.svg?style=flat-square)](https://www.npmjs.com/package/sample-player)\n\n[![Build Status](https://img.shields.io/travis/danigb/sample-player/master.svg?style=flat-square)](https://travis-ci.org/danigb/sample-player)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard) [![license](https://img.shields.io/npm/l/sample-player.svg?style=flat-square)](https://www.npmjs.com/package/sample-player)\n\nFlexible audio sample player for browser:\n\n```js\nvar player = require('sample-player')\nvar ac = new AudioContext()\n\nvar sample = player(ac, <AudioBuffer>)\nsample.start()\nsample.start() // can start several samples at the same time\nsample.stop() // stop all playing sounds\n```\n\n## Features\n\n#### Create multi-sample player\n\nPass a map of names to audio buffers to create a multi-sample player:\n\n```js\nvar player = require('sample-player')\nvar ac = new AudioContext()\nvar drums = player(ac, {\n  kick: <AudioBuffer>,\n  snare: <AudioBuffer>,\n  hihat: <AudioBuffer>\n})\ndrums.start('kick')\ndrums.start('snare', ac.currentTime, { gain: 0.5 })\n```\n\n#### Map note names to midi (and oposite)\n\nIf the buffers are mapped to note names, you can pass note names (including enharmonics) or midi numbers:\n\n```js\nvar samples = { 'C2': <AudioBuffer>, 'Db2': <AudioBuffer>, ... }\nvar piano = player(ac, samples)\npiano.start(69) // => Plays 'A4'\npiano.start('C#2') // => Plays 'Db2'\n```\n\nDecimal midi note numbers can be used to detune the notes:\n\n```js\npiano.start(69.5) // => Plays a note in the middle of 'A4' and 'Bb4'\n```\n\n#### Events\n\nYou can register event handlers with the `on` function:\n\n```js\nvar drums = player(ac, { kick: ..., snare: ..., hihat ... })\ndrums.on('start', function (when, name) {\n  console.log('start', name)\n})\ndrums.on('ended', function (when, name) {\n  console.log('ended', name)\n})\ndrums.start('kick')\n// console logs 'start kick'\n// console.logs 'ended kick' when sound ends\n```\n\nTo add a listener to all events use: `player.on(function (eventName, when, obj, opts))`.\n\nCurrently it fires: `start`,  `started`, `stop`, `ended`, `scheduled`\n\n#### Amplitude envelope control\n\nYou can apply an amplitude envelope control player-wide or shot-wide. You can pass a signle `adsr` option with an array of `[attack, decay, sustain, release]` or add each parameter to the options object:\n\n```js\n// using a single option to set all envelop\nvar longSound = player(ac, <AudioBuffer>, { adsr: [1.2, 0.5, 0.8, 1.3] })\nlongSound.start()\n// override only the attack\nlongSound.start(ac.currentTime + 10, { attack: 3 })\n```\n\n#### Listen to midi inputs\n\nEasily attach the player to a Web MIDI API `MidiInput`:\n\n```js\nvar piano = player(...)\nwindow.navigator.requestMIDIAccess().then(function (midiAccess) {\n  midiAccess.inputs.forEach(function (midiInput) {\n    piano.listenToMidi(midiInput)\n  })\n})\n```\n\n#### Schedule to play buffers at given times\n\n```js\nvar buffers = { 'C2': <AudioBuffer>, 'Db2': <AudioBuffer>, ... }\nvar marimba = player(ac, buffers)\nmarimba.schedule(ac.currentTime, [\n  { note: 'c2', time: 0, gain: 0.9 },\n  { note: 'e2', time: 0.25, gain: 0.7 },\n  { note: 'g2', time: 0.5, gain: 0.5 },\n  { note: 'c3', time: 0.75, gain: 0.3 }\n])\n```\n\n## Install\n\nVia npm: `npm i --save sample-player` or grab the [browser ready file](https://raw.githubusercontent.com/danigb/sample-player/master/dist/sample-player.min.js) which exports `SamplePlayer` as window global.\n\n## Options\n\nThe options can be passed to the `SamplePlayer` function to apply to all buffers, or to `start` function to apply to one shot.\n\n- `gain`: float between 0 to 1\n- `attack`: the attack time of the amplitude envelope\n- `decay`: the decay time of the amplitude envelope\n- `sustain`: the sustain gain value of the amplitude envelope\n- `release`: the release time of the amplitude envelope\n- `adsr`: an array of `[attack, decay, sustain, release]`. Overrides other parameters.\n- `duration`: set the playing duration in seconds of the buffer(s)\n- `loop`: set to true to loop the audio buffer\n\n## API\n\n<a name=\"SamplePlayer\"></a>\n\n## SamplePlayer(ac, source, options) ⇒ <code>player</code>\nCreate a sample player.\n\n**Returns**: <code>player</code> - the player  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| ac | <code>AudioContext</code> | the audio context |\n| source | <code>ArrayBuffer</code> &#124; <code>Object.&lt;String, ArrayBuffer&gt;</code> |  |\n| options | <code>Onject</code> | (Optional) an options object |\n\n**Example**  \n```js\nvar SamplePlayer = require('sample-player')\nvar ac = new AudioContext()\nvar snare = SamplePlayer(ac, <AudioBuffer>)\nsnare.start()\n```\n\n* [SamplePlayer(ac, source, options)](#SamplePlayer) ⇒ <code>player</code>\n  * [.play](#player.play)\n  * [.start(name, when, options)](#player.start) ⇒ <code>AudioNode</code>\n  * [.stop(when, nodes)](#player.stop) ⇒ <code>Array</code>\n  * [.on(event, callback)](#player.on) ⇒ <code>[SamplePlayer](#SamplePlayer)</code>\n  * [.connect(destination)](#player.connect) ⇒ <code>[SamplePlayer](#SamplePlayer)</code>\n  * [.schedule(source, map, when)](#player.schedule) ⇒ <code>Array</code>\n  * [.listenToMidi(input, options)](#player.listenToMidi) ⇒ <code>[SamplePlayer](#SamplePlayer)</code>\n\n<a name=\"player.play\"></a>\n### player.play\nAn alias for `player.start`\n**See**: player.start  \n\n<a name=\"player.start\"></a>\n### player.start(name, when, options) ⇒ <code>AudioNode</code>\nStart a sample buffer. The returned object has a function `stop(when)` to stop the sound.\n\n**Returns**: <code>AudioNode</code> - an audio node with a `stop` function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| name | <code>String</code> | the name of the buffer. If the source of the SamplePlayer is one sample buffer, this parameter is not required |\n| when | <code>Float</code> | (Optional) when to start (current time if by default) |\n| options | <code>Object</code> | additional sample playing options |\n\n**Example**  \n```js\n// A single sample player\nvar sample = player(ac, <AudioBuffer>).connect(ac.destination)\nvar first = sample.start(ac.currentTime, { loop: true })\nvar second = sample.start(ac.currentTime + 0.5, { loop: true, gain: 0.7 }) // name not required since is only one AudioBuffer\nfirst.stop(ac.currentTime + 1) // only stops first sound\nsample.stop() // stop all sounds\n```\n\n**Example**  \n```js\n// A multi-sample player\nvar drums = player(ac, { snare: <AudioBuffer>, kick: <AudioBuffer>, ... }).connect(ac.destination)\ndrums.start('snare')\ndrums.start('snare', 0, { gain: 0.3 })\n```\n\n<a name=\"player.stop\"></a>\n### player.stop(when, nodes) ⇒ <code>Array</code>\nStop some or all samples\n\n**Returns**: <code>Array</code> - an array of ids of the stoped samples  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| when | <code>Float</code> | (Optional) an absolute time in seconds (or currentTime if not specified) |\n| nodes | <code>Array</code> | (Optional) an array of nodes or nodes ids to stop |\n\n**Example**  \n```js\nvar longSound = player(ac, <AudioBuffer>).connect(ac.destination)\nlongSound.start(ac.currentTime)\nlongSound.start(ac.currentTime + 1)\nlongSound.start(ac.currentTime + 2)\nlongSound.stop(ac.currentTime + 3) // stop the three sounds\n```\n\n<a name=\"player.connect\"></a>\n### player.connect(destination) ⇒ <code>AudioPlayer</code>\nConnect the player to a destination node\n\n**Chainable**  \n**Returns**: <code>AudioPlayer</code> - the player  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| destination | <code>AudioNode</code> | the destination node |\n\n**Example**  \n```js\nvar sample = player(ac, <AudioBuffer>).connect(ac.destination)\n```\n\n<a name=\"player.on\"></a>\n### player.on(event, callback) ⇒ <code>[SamplePlayer](#SamplePlayer)</code>\nAdds a listener of an event\n\n**Chainable**  \n**Returns**: <code>[SamplePlayer](#SamplePlayer)</code> - the player  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| event | <code>String</code> | the event name |\n| callback | <code>function</code> | the event handler |\n\n**Example**  \n```js\nplayer.on('start', function(time, note) {\n  console.log(time, note)\n})\n```\n\n<a name=\"player.schedule\"></a>\n### player.schedule(when, events) ⇒ <code>Array</code>\n\nSchedule a list of events to be played at specific time.\n\nIt supports two formats of events:\n\n- An array with `[time, note]`\n- An array with objects `{ time: ?, [name|note|midi|key]: ? }`\n\n**Returns**: <code>Array</code> - an array of ids  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| when | <code>Float</code> | an absolute time to start (or AudioContext's currentTime if it's less than currentTime) |\n| source | <code>Array</code> | the events array |\n\n**Example**  \n```js\n// Event format: [time, note]\nvar piano = player(ac, ...).connect(ac.destination)\npiano.schedule(0, [ [0, 'C2'], [0.5, 'C3'], [1, 'C4'] ])\n```\n\n**Example**  \n```js\n// Event format: object { time: , name: }\nvar drums = player(ac, ...).connect(ac.destination)\ndrums.schedule(ac.currentTime, [\n  { name: 'kick', time: 0 },\n  { name: 'snare', time: 0.5 },\n  { name: 'kick', time: 1 },\n  { name: 'snare', time: 1.5 }\n])\n```\n\n<a name=\"player.listenToMidi\"></a>\n### player.listenToMidi(input, options) ⇒ <code>[SamplePlayer](#SamplePlayer)</code>\nConnect a player to a midi input\n\nThe options accepts:\n\n- channel: the channel to listen to. Listen to all channels by default.\n\n**Returns**: <code>[SamplePlayer](#SamplePlayer)</code> - the player  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| input | <code>MIDIInput</code> |  |\n| options | <code>Object</code> | (Optional) |\n\n**Example**  \n```js\nvar piano = player(...)\nwindow.navigator.requestMIDIAccess().then(function (midiAccess) {\n  midiAccess.inputs.forEach(function (midiInput) {\n    piano.listenToMidi(midiInput)\n  })\n})\n```\n\n## Run tests and examples\n\nTo run the test, clone this repo and:\n\n```bash\nnpm install\nnpm test\n```\n\nTo run the examples:\n\n```bash\nnpm i -g budo\nbudo examples/microtone.js\n```\n\n(Take a look into `examples` folder)\n\n## License\n\nMIT License\n","maintainers":[{"name":"danigb","email":"danigb@gmail.com"}],"time":{"modified":"2022-06-26T15:47:44.218Z","created":"2015-12-09T20:16:31.600Z","0.0.1":"2015-12-09T20:16:31.600Z","0.1.0":"2015-12-22T11:11:52.729Z","0.3.0":"2016-05-23T09:37:18.982Z","0.3.1":"2016-05-23T10:24:19.415Z","0.3.2":"2016-05-25T13:31:40.698Z","0.4.0":"2016-05-26T08:59:24.040Z","0.4.1":"2016-05-29T21:37:03.814Z","0.5.0":"2016-06-05T11:34:23.692Z","0.5.1":"2016-06-05T22:09:02.522Z","0.5.2":"2016-06-05T22:35:05.659Z","0.5.3":"2016-06-07T19:19:46.649Z","0.5.4":"2016-10-02T20:02:14.052Z","0.5.5":"2016-10-06T15:00:52.771Z"},"keywords":["audio","buffer","sample","player","webaudio"],"repository":{"type":"git","url":"git+https://github.com/danigb/sample-player.git"},"author":{"name":"danigb","email":"danigb@gmail.com"},"bugs":{"url":"https://github.com/danigb/sample-player/issues"},"license":"MIT","readmeFilename":"README.md","users":{"jondashkyle":true,"rchk":true},"homepage":"https://github.com/danigb/sample-player#readme"}