Lempel–Ziv–Markov chain algorithm in Max _Olivier Pasquet _2019


Lzw (Lempel–Ziv–Welch) is used to compress data in zip. It is an algorithm used to perform lossless data compression. It has been under development since either 1996 or 1998 by Igor Pavlov and was first used in the 7z format of the 7-Zip archiver.
Very useful with markovian and grammar based discrete models. It encodes and decoding allowing multi-scale recursive segmentation of data structures. This is can be used to extend pseudo-repetitive sequences from a dictionary of multi-scalar repetitions observed in an initial sequence. The initial idea applied for music comes from an article and a documention written by Olivier Lartillot, Shlomo Dubnov, Gérard Assayag and Gill Bejerano: the Open Music LZ 2.2 Library in 2001 and the 2012 LZ Automatic Modeling of Musical Style. Open Music is a composition software.
This tool was used for a piece within the Flucoma project.

jtol.bach.lzw is part of jtol.
Or direct access to jtol.bach.lzw_encode.maxhelp, jtol.bach.lzw_decode.maxhelp, jtol.bach.lzw_encode.maxpat and jtol.bach.lzw_decode.maxpat.

This is available on GitHub. An alternative, and maybe older version, is available here (MacOS – 23.8Mb – august 13th 2019).

Explanation is located HERE. There is still a lot of ideas to implement but it is interesting to compare its results with google’s magenta devices powered by tensorflow. More explanation on this page.

jtol.lzw maxforlive screenshot _ Olivier Pasquet _2019
maxforlive interface screenshot