UNPKG

lsdj-wave-cruncher

Version:

Turns a sound clip into a LSDJ wavetable synth.

67 lines (47 loc) 3.49 kB
# 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] --normalize --channel=0 ``` * *[SAMPLE.WAV]* is the file that'll be crunched. * *[NOTE|FREQUENCY]* is either the note at which the sample is (ex: C4, D4) or its frequency (ex: 440 Hz). * *--normalize*, if present, will [normalize](https://en.wikipedia.org/wiki/Audio_normalization) 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. ## patching **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] [LSDJSAVE.SAV] [SONGNUMBER] [SYNTHNUMBER] $ node crunch-patcher.js [SAMPLE.WAV] [NOTE|FREQUENCY] [SONG.SRM|.LSDSNG] [SYNTHNUMBER] ``` * *[SAMPLE.WAV]* is the file that'll be crunched. * *[NOTE|FREQUENCY]* is either the note at which the sample is (ex: C4, D4) or its frequency (ex: 440 Hz). * *[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.