Changes
* **[Byte Pair Encoding](https://en.wikipedia.org/wiki/Byte_pair_encoding)** is up ! it works with any tokenizer (except multi-embedding like CP Word or Octuple) as a wrapper to use as bpe(tokenizer_class, params) (see example in readme)
* 72a0f323c9234d3886f9c4867c44fa270d09db84 **Vocabulary** class now have a update_token_types_indexes method to create its _token_types_indexes attribute, which can be called after loading a tokenizer with its vocabulary saved (as with BPE)
* d232f4abb4ca6ceb388a8e04062e1fae98873f98 **Structured** now takes additional_tokens as constructor argument, to aligning with all other tokenizers
* 4b0dc9ff38021a375213149c005d4f2971a6ea0a Bugfix in **MIDITokenizer** base class for rest and beat range attributes when loading class from params
* eb3612fd194e1eae960756f78a6eae80f2e44e67 save_tokens now saves tokens as a dictionary with *tokens* and *programs* keys so that the distinction is clear
* tqdm is now used (and required) in tokenize_dataset and bpe methods
Compatibility
* Structured now takes additional_tokens as constructor argument, to aligning with all other tokenizers
* As from v1.2.4, tokens saved with the save_tokens method will now be saved as a dictionary, so that no confusion is made between tracks and programs (as it could before). You can still load tokens saved with < v1.2.4 with load_tokens with no consequences, as you then handle how to index from it.