react-audio-pad
Version:
React Component to build music apps with pads like Akai MPC or Maschine
118 lines (104 loc) • 3.31 kB
Markdown
## Audio Pad React Component
It's React Component to create music apps, drum machines, samplers like `Akai MPC` series
or `Maschine`. In next stages I plan add React-Native component, options for users like volume or change sound support.
<p align="center">
<img src="https://media.giphy.com/media/3Z1p7RAAAhVmaEI1lj/giphy.gif"/>
</p>
## Installation
`npm install react-audio-pad`
## Usage
```js
import React, { Component } from 'react';
import AudioPad from "react-audio-pad"
import kick from './assets/KICK01.WAV';
import openHihat from './assets/OPENHIHAT01.WAV';
import snare from './assets/SNARE03.WAV';
import hihat from './assets/HIHAT01.WAV'
import logo from './logo.svg';
import './App.css';
class App extends Component {
render() {
return <div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to Audio Pads for React</h1>
</header>
<AudioPad audioUrl={kick} keyCode="49" keyUp={false} color={"#d127d1"} volume={0.3}>
Kick
</AudioPad>
<AudioPad audioUrl={snare} keyCode="50" keyUp={false} color={"#d127d1"} volume={1}>
Snare
</AudioPad>
<AudioPad audioUrl={hihat} keyCode="51" keyUp={false} color={"#d127d1"} volume={1}>
Hihat
</AudioPad>
<AudioPad audioUrl={openHihat} keyCode="52" keyUp={false} color={"#d127d1"} volume={1}>
Open Hihat
</AudioPad>
</div>;
}
}
export default App;
```
## API
### Props
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>audioUrl</td>
<td>string</td>
<td></td>
<td>import string from Your assets - I have some issues when try pass just string - look at example</td>
</tr>
<tr>
<td>keyCode</td>
<td>string</td>
<td></td>
<td>string with number of keycode (https://css-tricks.com/snippets/javascript/javascript-keycodes/)</td>
</tr>
<tr>
<td>keyUp</td>
<td>boolean</td>
<td>false</td>
<td>if true, sound will cut when You up key</td>
</tr>
<tr>
<td>color</td>
<td>string</td>
<td></td>
<td>color pad shadow when pressed</td>
</tr>
<tr>
<td>volume</td>
<td>number</td>
<td>1.0</td>
<td>volume of your sound</td>
</tr>
<tr>
<td>width</td>
<td>number</td>
<td>100</td>
<td>width of pad</td>
</tr>
<tr>
<td>height</td>
<td>number</td>
<td>100</td>
<td>height of pad</td>
</tr>
<tr>
<td>margin</td>
<td>number</td>
<td>20</td>
<td>components margin (not only pad part - paragraph too)</td>
</tr>
</tbody>
</table>