Giter Site home page Giter Site logo

lsdj-wave-cruncher's Introduction

lsdj-wave-cruncher

lsdj-wave-cruncher is a bundle of scripts allowing an LSDJ user to create wavetables instruments in LSDJ (a steel drum, or other instruments with complex waveforms).

WARNING โš ๏ธ : .snt files only contain the 16-frames long 4-bit waveform data. The synth parameters are not saved.

crunching

Crunching a sample is downsampling and bitcrushing the given sample into a .snt binary file ready to be patched to a LSDJ song.

To crunch a sample, use :

$ node crunch.js [SAMPLE.WAV] [NOTE|FREQUENCY|auto]
  • [SAMPLE.WAV] is the file that'll be crunched.
  • [NOTE|FREQUENCY|auto] is either the note at which the sample is (ex: C4, D4), its frequency (ex: 440 Hz), or auto to auto-detect the frequency.

Optional flags:

  • --linear or --exp will interpolate sample data either evenly or exponentially throughought the entire sample, instead of from only the beginning.
  • --normalize, will normalize the sample.
  • --channel=0 specifies the channel where the sound data will be taken. If not present, it defaults to the 1st channel (0). This parameter is only relevant for stereo sound.
  • --output=filename will specify an output filename for the .snt (default is same name of wave file but with .snt extension)
  • --analyze will analyze the waveform only and will not output a .snt file (useful for testing if pitch detection fails).

patching

Note: I no longer recommend using the patcher from this repository. Please use the LSDJ Wavetable Importer from libLSDJ.

Patching a synth is writing the binary .snt data into a LSDJ song.

To patch a synth, you can use both of these commands :

$ node patch.js [LSDJSAVE.SAV] [SONGNUMBER] [SYNTHFILE.SNT] [SYNTHNUMBER]
$ node patch.js [SONG.LSDSNG|.SRM] [SYNTHFILE.SNT] [SYNTHNUMBER]
  • [LSDJSAVE.SAV] is the save that'll be patched. If you want to patch a .SAV file, you'll have to supply the number of the song [SONGNUMBER] you want to add the synth to.
  • [SONG.LSDSNG|.SRM] is the song file that'll be patched. In that case, you don't have to supply a song number.
  • [SYNTHFILE.SNT] is the synth data that'll be patched.
  • [SYNTHNUMBER] is the ID of the synth where the data will be written.

crunch-patching

Crunch-patching is downsampling and bitcrushing a sample and writing it right away into a LSDJ save file/song.

To crunch-patch a sample, you can use both of these commands :

$ node crunch-patcher.js [SAMPLE.WAV] [NOTE|FREQUENCY|auto] [LSDJSAVE.SAV] [SONGNUMBER] [SYNTHNUMBER]
$ node crunch-patcher.js [SAMPLE.WAV] [NOTE|FREQUENCY|auto] [SONG.SRM|.LSDSNG] [SYNTHNUMBER]
  • [SAMPLE.WAV] is the file that'll be crunched.
  • [NOTE|FREQUENCY|auto] is either the note at which the sample is (ex: C4, D4), its frequency (ex: 440 Hz), or auto to auto-detect the frequency.
  • [LSDJSAVE.SAV] is the save that'll be patched. If you want to patch a .SAV file, you'll have to supply the number of the song [SONGNUMBER] you want to add the synth to.
  • [SONG.LSDSNG|.SRM] is the song file that'll be patched. In that case, you don't have to supply a song number.
  • [SYNTHNUMBER] is the ID of the synth where the data will be written.

exporting

Exporting a synth is extracting synth data from an existing LSDJ save or song and exporting it as a .snt file.

To export a synth, you can use both of these commands :

$ node export.js [LSDJSAVE.SAV] [SONGNUMBER] [SYNTHFILE.SNT] [SYNTHNUMBER]
$ node export.js [SONG.LSDSNG|.SRM] [SYNTHFILE.SNT] [SYNTHNUMBER]
  • [LSDJSAVE.SAV] is the save that'll be used as source. If you want to find a synth in a .SAV file, you have to supply the number of the song [SONGNUMBER] you'll want to get the synth from.
  • [SONG.LSDSNG|.SRM] is the song file that'll be used as source. In that case, you don't have to supply a song number.
  • [SYNTHFILE.SNT] is the path of the .snt file that'll be created.
  • [SYNTHNUMBER] is the ID of the synth that'll be exported.

lsdj-wave-cruncher's People

Contributors

ilambda avatar urbster1 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

defensem3ch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.