2.2.0 • Published 8 months ago

libkss-js v2.2.0

Weekly downloads
5
License
ISC
Repository
github
Last release
8 months ago

libkss-js npm version

Breaking Changes on 2.0.0

The module format of the package has chnaged to ES6 module from CommonJS.

Breaking Changes on 1.4.0

KSS.loadFromUrl(url) is removed in order to eliminate dependence on fetch API. Use the following code instead if required.

async function loadKSSFromUrl(url) {
  const res = await fetch(url);
  const ab = await res.arrayBuffer();
  return KSS.createUniqueInstance(new Uint8Array(ab), url);
}

Breaking Changes on 1.3.0

KSSPlay.initialize() must be called with await before using KSSPlay.

Install

npm install --save libkss-js

Usage

const { KSS, KSSPlay } = require('libkss-js');
const { WaveFile } = require('wavefile');
const fs = require('fs');

async function loadKSSFromUrl(url) {
  const res = await fetch(url);
  const ab = await res.arrayBuffer();
  return KSS.createUniqueInstance(new Uint8Array(ab), url);
}

async function main() {
  await KSSPlay.initialize(); // must be called before using KSSPlay.

  const RATE = 44100;

  const kssplay = new KSSPlay(RATE);
  const kss = await KSS.loadFromUrl('https://digital-sound-antiques.github.io/msxplay-js/demo/grider.mgs');

  kssplay.setData(kss);
  kssplay.reset();

  const samples = kssplay.calc(RATE * 30); // Generate 30 seconds
  const wav = new WaveFile();
  wav.fromScratch(1, RATE, '16', samples);
  fs.writeFileSync('test.wav', wav.toBuffer());

  kssplay.release();
  kss.release();
}

main();

How to Build

To build libkss.js, Emscripten 2.0.0 or greater is required. The latest tested version is 3.1.21. emcmake and cmake with some proper C compiler is required before npm install.

git clone --recursive https://github.com/digital-sound-antiques/libkss-js.git
cd libkss-js
npm install
npm run build

API Document

https://digital-sound-antiques.github.io/libkss-js/api/

2.2.0

8 months ago

2.2.0-beta.0

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.7.3

1 year ago

1.7.2

1 year ago

1.7.1

1 year ago

2.1.0

1 year ago

1.7.0

1 year ago

1.6.4

2 years ago

1.6.3

2 years ago

1.6.2

2 years ago

1.6.1

2 years ago

1.6.0

2 years ago

1.5.0

2 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.4.3-alpha.0

3 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.2.1

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.16.8

4 years ago

0.16.7

4 years ago

0.16.6

4 years ago

0.16.5

4 years ago

0.16.4

4 years ago

0.16.3

4 years ago

0.16.2

4 years ago

0.16.0

4 years ago

0.16.1

4 years ago

0.15.0

4 years ago

0.14.0

4 years ago

0.13.11

4 years ago

0.13.10

4 years ago

0.13.9

4 years ago

0.13.8

4 years ago

0.13.7

4 years ago

0.13.6

4 years ago

0.13.5

4 years ago

0.13.3

4 years ago

0.13.4

4 years ago

0.13.2

4 years ago

0.13.1

4 years ago

0.13.0

4 years ago

0.12.0

4 years ago

0.11.2

4 years ago

0.11.3

4 years ago

0.11.4

4 years ago

0.11.1

4 years ago

0.11.0

4 years ago

0.10.5

4 years ago

0.10.4

4 years ago

0.10.3

4 years ago

0.10.2

4 years ago

0.10.1

4 years ago

0.10.0

4 years ago

0.9.14

5 years ago

0.9.13

5 years ago

0.9.12

5 years ago

0.9.11

5 years ago

0.9.10

5 years ago

0.9.9

5 years ago

0.9.8

5 years ago

0.9.7

5 years ago

0.9.6

5 years ago

0.9.5

5 years ago

0.9.4

5 years ago

0.9.2

6 years ago

0.9.1

6 years ago

0.9.0

6 years ago