# pluck-node

> PluckNode for Web Audio API

Latest version **1.0.0** (published 2016-05-28) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install pluck-node
pnpm add pluck-node
yarn add pluck-node
bun add pluck-node
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2016-05-28 |
| First published | 2016-05-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 17 |
| Author | Nao Yonamine |
| Maintainers | mohayonao |
| Keywords | pluck, karplusstrong, webaudioapi |

## Links

- npm: https://www.npmjs.com/package/pluck-node
- Repository: https://github.com/mohayonao/pluck-node
- Homepage: http://mohayonao.github.io/pluck-node/
- Issues: https://github.com/mohayonao/pluck-node/issues
- npm.io page: https://npm.io/package/pluck-node

## Recent versions

- 1.0.0 (latest) — 2016-05-28

## README

# PluckStringNode
[![Build Status](https://img.shields.io/travis/mohayonao/pluck-string-node.svg?style=flat-square)](https://travis-ci.org/mohayonao/pluck-string-node)
[![NPM Version](https://img.shields.io/npm/v/pluck-string-node.svg?style=flat-square)](https://www.npmjs.org/package/pluck-string-node)
[![License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://mohayonao.mit-license.org/)

> Pluck String AudioNode for Web Audio API

## Installation

```
npm install pluck-string-node
```

#### downloads:

- [pluck-string-node.js](https://raw.githubusercontent.com/mohayonao/pluck-string-node/master/build/pluck-string-node.js)
- [pluck-string-node.min.js](https://raw.githubusercontent.com/mohayonao/pluck-string-node/master/build/pluck-string-node.min.js)

## API
### PluckStringNode
- `constructor(audioContext, opts)`
  - `audioContext: BaseAudioContext`
  - `opts.color: number` tone color (aka cutoff frequency)
  - `opts.timeConstant: number` time constant until harmonics converges

#### Instance Attributes
- `frequency: AudioParam` _readonly_
- `detune: AudioParam` _readonly_
- `color: number`
- `timeConstant: number`

#### Instance Methods
- `start(when: number): void`
- `stop(when: number): void`

## Quick Example

```js
var pluck = new PluckStringNode(audioContext);

pluck.color = 1000;
pluck.timeConstant = 10;
pluck.frequency.value = 880;
pluck.start(audioContext.currentTime);
pluck.stop(audioContext.currentTime + 4);
```

## Demo

https://mohayonao.github.io/pluck-string-node/

## Algorithm
This node's algorithm is inspired from [Karplus–Strong string synthesis](https://en.wikipedia.org/wiki/Karplus%E2%80%93Strong_string_synthesis).

1. create OscillatorNode
2. OscillatorNode connect to WaveShaperNode which has random curve
3. WaveShaperNode connect to lowpass BiquadFilterNode
4. when `start()`, set `color` to the BiquadFilterNode frequency
5. and the cutoff frequency continuous change to very low frequency during `timeConstant`.

## AudioGraph

![pluck-string-node](assets/pluck-string-node.png)

## License

MIT

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