-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit a05a9e0
Showing
171 changed files
with
542 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
|
||
example: | ||
@./node_modules/.bin/watchify \ | ||
--global-transform [ babelify --presets [ latest ] ] \ | ||
--transform ./wav \ | ||
--verbose \ | ||
--standalone build \ | ||
--entry example/drumbeat.js \ | ||
--outfile example/build.js | ||
|
||
.PHONY: example |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
|
||
# wavepot-cli | ||
|
||
wavepot on the terminal | ||
|
||
`npm install wavepot -g` | ||
|
||
Make sure you have `electron` installed and in your path. If you don't, `npm install electron -g` | ||
|
||
## Usage | ||
|
||
`$ wavepot <sourcefile>` | ||
|
||
Where `<sourcefile>` is a file that contains something like this: | ||
|
||
```js | ||
exports.beep = t => .3 * Math.sin(t * 440 * Math.PI * 2); | ||
exports.noise = t => .15 * Math.random() * 2 - 1; | ||
``` | ||
|
||
And then, try editing the file in your favorite editor. Any changes are reflected in realtime in the audio output. | ||
|
||
## Building modules | ||
|
||
`$ wavepot -b <sourcefile>` | ||
|
||
When you pass the option `--build` or `-b`, the file will be built with browserify and babelify. Babel latest preset is used so you can use imports and any new JavaScript features. An example can be found [here](example/drumbeat.js). | ||
|
||
If you're looking for filters, effects and generators to install and play with, check out [opendsp](https://github.com/opendsp). Then install with npm, github style: `npm install opendsp/some-module --save`. | ||
|
||
Enjoy! | ||
|
||
## License | ||
|
||
MIT © [stagas](https://github.com/stagas) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#!/usr/bin/env electron | ||
|
||
var fs = require('fs'); | ||
var path = require('path'); | ||
var debounce = require('debounce'); | ||
var browserify = require('browserify'); | ||
var watchify = require('watchify'); | ||
var babelify = require('babelify'); | ||
var wav = require('../lib/wav'); | ||
var concat = require('concat-stream'); | ||
var electron = require('electron'); | ||
var program = require('commander'); | ||
|
||
program | ||
.version('1.0.0') | ||
.usage('[options] <sourcefile>') | ||
.option('-b, --build', 'build with browserify') | ||
.parse(process.argv); | ||
|
||
if (!program.args.length) program.help(); | ||
|
||
var filename = path.resolve(program.args[0]); | ||
|
||
var BrowserWindow = electron.BrowserWindow; | ||
var app = electron.app; | ||
var win; | ||
|
||
console.log('sourcefile:', filename); | ||
|
||
var entry = path.resolve(path.join(__dirname, '..', 'index.html')); | ||
var updateSourceFile = debounce(() => win.webContents.send('sourcefile', filename), 10); | ||
|
||
app.on('ready', () => { | ||
win = new BrowserWindow({ show: false }); | ||
win.loadURL('file://' + entry); | ||
win.on('closed', () => win = null); | ||
win.webContents.on('did-finish-load', () => { | ||
if (!program.build) { | ||
fs.watch(filename, updateSourceFile); | ||
updateSourceFile(); | ||
} else { | ||
console.log('building:', filename); | ||
|
||
var b = browserify(filename, { | ||
cache: {}, | ||
packageCache: {}, | ||
standalone: 'build' | ||
}); | ||
b.plugin(watchify); | ||
b.transform(babelify, { global: true, presets: ['latest'] }); | ||
b.transform(wav); | ||
|
||
b.on('update', bundle); | ||
b.on('error', err => console.error(err.stack)); | ||
|
||
bundle(); | ||
|
||
function bundle() { | ||
b.bundle().pipe(concat(sendSource)); | ||
} | ||
|
||
function sendSource(js) { | ||
win.webContents.send('source', js); | ||
} | ||
} | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
import note from 'note'; | ||
import { tri } from 'osc'; | ||
import envelope from 'envelope'; | ||
import Sampler from 'sampler'; | ||
|
||
import kick from './drumkit/BTAA0D3.WAV'; | ||
import clap from './drumkit/HANDCLP1.WAV'; | ||
import snare from './drumkit/ST0T0S7.WAV'; | ||
import ohat from './drumkit/HHOD4.WAV'; | ||
|
||
var drums = Sampler(12); | ||
drums.tune(1); | ||
drums.add('kick', kick); | ||
drums.add('clap', clap); | ||
drums.add('snare', snare); | ||
drums.add('ohat', ohat); | ||
|
||
// 111.9 | ||
// 112.5 | ||
// 120 | ||
// 125 | ||
// 126 | ||
|
||
export let bpm = 125; | ||
|
||
var mul = 10e5; | ||
|
||
function step(t, sig) { | ||
t = t * mul | 0; | ||
sig = sig * mul | 0; | ||
if (t % sig === 0) return t; | ||
} | ||
|
||
export function drumbeat(t){ | ||
if (step(t, 1/4)) drums.play('kick', .35, 0.923); | ||
if (step(t+1/4+1/8, 1)) drums.play('clap', .15, 2); | ||
if (step(t+2/4+1/6, 1)) drums.play('clap', .15, 1.7); | ||
if (step(t+1/4, 1/2)) drums.play('snare', .15, 1); | ||
if (step(t+1/8, 1/4)) drums.play('ohat', .045, 1.02); | ||
return drums.mix(); | ||
} | ||
|
||
var bass_seq = ['c3','f3','d#3','d3'].map(note).reverse(); | ||
var bass_n = 0; | ||
|
||
export function bass(t){ | ||
if (step(t, 1/16)) bass_n++; | ||
bass_n %= bass_seq.length; | ||
return tri(t, bass_seq[bass_n]) * envelope(t, 1/8, 10, 4); | ||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,166 @@ | ||
************************************************************************** | ||
** ** | ||
** 909909909 909909909 909909909 ** | ||
** Roland 909 909 909 909 909 909 ** | ||
** 909 909 909 909 909 909 Copyright ** | ||
** TR- 909909909 909 909 909909909 1995 ** | ||
** 909 909 909 909 ** | ||
** 909 909 909 909 Rob Roy ** | ||
** 909 909 909 909 Recordings ** | ||
** 909 909909909 909 ** | ||
** Minneapolis, USA ** | ||
** Rhythm Composer Samples ** | ||
** ** | ||
************************************************************************** | ||
|
||
------------ | ||
Introduction | ||
------------ | ||
|
||
Since it's admittance into the world of music, the Roland TR-909 has been | ||
one of the most sought after drum machines in existence. Every dance, | ||
techno, and hip-hop artist desperately searches for the "magic box", only | ||
to find the 909. Yet, this box is highly coveted by those who worship its | ||
demonic powers. Many have tried to obtain this box through large sums of | ||
money, deceit, and ultimately theft. | ||
|
||
In order to curve the population's insatiable thirst for the 909, I have | ||
created a 'complete' 909 sample set. I'll be surprised if you can tell the | ||
difference. | ||
|
||
For purists, this sample set will not totally replace a real 909. The 909 | ||
sequencer is really natural for many dance and hip-hop artists. But | ||
in terms of sound quality, this set accurately reproduces the various | ||
instrument settings on the 909. In other words, it is the next best | ||
thing to a real 909. How many drum machines in the store have a five meg | ||
909 sample set? | ||
|
||
I hope you find this set useful. Please feel free to copy or distribute | ||
the set in any way. Please DO NOT change samples, add samples, | ||
delete samples, or modify this text file in any way. Respect the work. | ||
This sample set is FREE. You may not distribute these samples for | ||
profit!! If you have any comments please feel free to email me. | ||
Or, if you create a cool tune using the samples feel free to send me a | ||
tape or dat. Have fun! | ||
|
||
-Rob Roy/ April 20 '95 | ||
|
||
Jason Baker | ||
Rob Roy Recordings | ||
818 SE 8th Street #103 | ||
Minneapolis, MN 55414 USA | ||
email: [email protected] | ||
web: T.B.A. soon! | ||
|
||
** Special thanks and greets to fEEd at MANNA STUDIOS, Minneapolis, for | ||
providing the TR-909. Check out Manna Studios at the following web | ||
site: http://www.ivi.com/~robw | ||
|
||
__________________________________________________________________________ | ||
|
||
Sample set specifications: | ||
-------------------------- | ||
|
||
160 Samples covering the full 909 kit | ||
-24 bass drum | ||
-52 snare drum | ||
-16 low tom drum | ||
-16 mid tom drum | ||
-16 high tom drum | ||
-2 rim shot | ||
-2 hand clap | ||
-6 high hat close | ||
-6 high hat open | ||
-6 crash cymbal | ||
-6 rim cymbal | ||
-4 open->close high hat combinations | ||
-4 close->open high hat combinations | ||
|
||
Disk space requirement: approx. 4.8 megs unzipped | ||
|
||
__________________________________________________________________________ | ||
Recording process: | ||
------------------ | ||
|
||
All samples were recorded in mono at 44.1k using the following process: | ||
|
||
909 -------> EMU ESI-32 :::::::::::::> 486PC running Sound Forge 3.0 | ||
mono sample dump | ||
|
||
The process maintained the greatest s/n ration by recording all | ||
instruments at maximum level (except where noted). All levels on the | ||
909 were kept at their highest setting. The samples were normalized in | ||
Sound Forge 3.0. The sounds were recorded completely dry. | ||
__________________________________________________________________________ | ||
|
||
Sample Listing Notation | ||
----------------------- | ||
|
||
The 909 affords nearly an infinite number of instrument settings. In | ||
order to make the "infinite" possible, I used a standard system for | ||
recording each instrument's possible settings. Each instrument setting | ||
knob on the 909 has 10 decants. I chose to use the 0, 3, 7 and 10 | ||
settings on each knob to create most instrument variations. The sample | ||
listings use the letter "a" to represent 10 (think of 'a' as meaning | ||
'a'll the way). The high hat and cymbal samples use settings of 0, 2, 4, | ||
6, 8, and 10 for the variations. | ||
|
||
So, for example, when I recorded the bass drum I used the four chosen | ||
decants on three knob settings to create 24 bass drum variations. | ||
|
||
For the bass drum and snare drum I eliminated a few settings to reduce | ||
"sonic redundancy". In the case of the bass drum I only used the | ||
0 and 10 ('a') settings on the attack. For the snare drum I did not | ||
vary the tone control while the 'snappy' setting was at 0. | ||
|
||
After recording and normalizing each sample, I saved the samples in their | ||
respective instrument directories. Each sample name is composed of an | ||
instrument letter, and knob settings specifications. | ||
|
||
--------------------- | ||
Sample Identification | ||
--------------------- | ||
|
||
Instrument (first letter) Settings (in order) Directory | ||
|
||
b bass drum t=tune, a=attack, d=decay \bassdm | ||
s snare drum t=tune, t=tone, s=snappy \snaredm | ||
l low tom t=tune, d=decay \lowtomdm | ||
m mid tom t=tune, d=decay \midtomdm | ||
h high tom t=tune, d=decay \hitomdm | ||
rim rimshot #=velocity level \rimshot | ||
hand handclap #=velocity level \handclap | ||
hhc closed high hat d=decay \closedhh | ||
hho open high hat d=decay \openhh | ||
csh crash cymbal t=tune \crshcym | ||
ride ride cymbal t=tune \ridecym | ||
clop closed->open hh #=combination number \misc | ||
opcl open->closed hh #=combination number \misc | ||
|
||
The best way to figure out what sounds you need is to listen to a variety | ||
of samples. Better yet, try to create your own personalized set of 909 | ||
samples. | ||
|
||
Email me at: [email protected] if you have any questions! | ||
|
||
** 909KIT UPDATE 5/12/95 | ||
|
||
I cleaned a bunch of sound file headers. Apparently some .wav file have not | ||
been loading properly on systems. The new headers contain the proper sound | ||
data information. | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
exports.beep = t => .3 * Math.sin(t * 440 * Math.PI * 2); | ||
exports.noise = t => .15 * Math.random() * 2 - 1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>wavepot</title> | ||
</head> | ||
<body> | ||
<script>require('./wavepot.js')</script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
var extname = require('path').extname; | ||
var read = require('fs').readFileSync; | ||
var through = require('through2'); | ||
|
||
module.exports = function (file) { | ||
var ext = extname(file).toLowerCase(); | ||
|
||
return through(function (buf, enc, next) { | ||
if (ext === '.wav') { | ||
this.push('module.exports = new Buffer("' | ||
+ read(file).toString('base64') | ||
+ '", "base64").buffer;' | ||
); | ||
} else { | ||
this.push(buf); | ||
} | ||
next(); | ||
}); | ||
}; |
Oops, something went wrong.