Skip to content

Releases: Luke-Poeppel/decitala

Version 1.1.2

17 Aug 22:41
Compare
Choose a tag to compare

v1.1.2 August 17, 2021

Fixed

  • Fixed typo for Shattala (formerly Shaltala).
  • Added missing Schultz prime contour classes, 12a and 12b, to the contour module.

Version 1.1.1

14 Aug 19:56
Compare
Choose a tag to compare

v1.1.1 August 14, 2021

Fixed

  • Rewrote my implementation of the Morris (1993) and Schultz (2008) contour reduction algorithms. Greatly shortened and simplified the code. The Schultz implementation was still complex enough that I decided to move it to a new module (decitala.hm.schultz), but the function schultz_prime_contour is still used in the same way –– it's just wrapped now.
  • Added tests for all Rossignol examples from Schultz (2008).

Version 1.1.0

27 Jul 22:36
Compare
Choose a tag to compare

v1.1.0 July 27, 2021

Added

  • Added prosodic meters CSV file to the corpora/prosody directory. These encodings map to the new ProsodicMeter object.
  • Added exact parameter to FragmentHashTable –– this allows you to more easily create exact-match hash tables for the various corpora.
  • Added ditrochee to default_split_dict.

Fixed

  • Issues #227: SP plotting utils were incorrectly returning plt.show.

Version 1.0.0

19 Jul 21:51
Compare
Choose a tag to compare

v1.0.0 July 19, 2021

First stable release.

Added

  • Added a class method to db.ExtractionData to maintain consistency between it and search.Extraction.
  • Added split_dict parameter to search.path_finder. That way one doesn't need to re-write this post-processing code.
  • Added a contour_class in hm.contour for experimenting with Schultz's work.
  • Added NormalizedCounter and dict_to_ordered_dict to decitala.utils.
  • Cleaned up existing hyperparameter calculation and plotting scripts, as well as (re)added a file for hyperparameter optimization (SLSQP and constricted space at finer resolution).
  • Added Di- and Tri- proceleusmatic to corpora.
  • Switched to codecov.io for coverage; it was annoying to include it as part of my workflow –– I'd rather it be automated.
  • Added colors column to ODNC database and corresponding attribute to the Species wrapper.
  • Allow the user to choose spearman or pearson correlation in the KS and KS_diatonic functions in hm.hm_utils.
  • Added function for getting the "shells" of an iterable to utils: utils.get_shells(iterable).
  • Added create_path_database function to database.db for creating a database from fragments in a path.

Changed

  • Return type for hm_utils.pc_counter is now either a tone counter or the sum of the quarter length values associated with each pitch class; any normalization now must use hm_utils.normalize_pc_counter.
  • The default cost function used in path_finder and the associated helpers is now CostFunction3D with the optimized parameters.
  • Renamed create_database to create_extraction_database.
  • Renamed poorly named functions in the contour module, e.g. contour.pitch_content_to_contour is now just contour.pitch_contour().

Removed

  • Removed unnecessary frag_type parameter to Extraction. Now a class attribute of GeneralFragment (and subclasses).

Fixed

  • The return_tonic parameter for KS_diatonic was returning incorrect values.

Version 0.14.1

02 Jul 15:48
Compare
Choose a tag to compare

v0.14.1 July 2, 2021

Fixed

  • Fixed a number of typos and added missing examples in decitala.hm.
  • The contour_to_prime_contour function still had the include_depth argument. I removed it.
  • Re-added commented-out assertions and exceptions, now that all the tests are passing.
  • Updated Basic Usage to match the most recent updates.
  • Missing default weights to CostFunction3D.

Version 0.14.0

01 Jul 23:31
Compare
Choose a tag to compare

v0.14.0 July 1, 2021

Added

  • Moved all moiseaux (private repo) tools to decitala. The decitala.db now holds Transcription and Species SQLAlchemy query wrappers; also added the corresponding helpers: db.get_all_transcriptions() and db.get_all_species().
  • Added database.db_utils module.
  • Added a make_core_dbs file to decitala.extra that creates the fragment database and ODNC database.
  • Added decitala.hm directory for holding all harmony and melody (i.e. pitch) related analysis tools. This directory holds an hm.molt module (tools for dealing with the modes of limited transposition), an hm.contour module for contour calculations (moved some general utils there, like Morris prime contour calculation), and an hm.hm_utils for utility functions; this final module also stores the associated color and key-finding coefficient data.
  • Improved implementation of the Morris contour reduction algorithm (1993). Also added an implementation of Schultz's modified contour reduction algorithm (see Schultz 2008, p. 108).
  • Added decitala.sp directory for holding signal processing tools. It currently only holds an sp_utils module for spectrogram/audio plotting, but this directory will be populated in future versions.
  • Added Dipartite and Tripartite Hexasyllabic Metrics: Dianapest, Dicretic, Didactyl, and Triiamb.
  • Scripts for calculating hyperparameters and plotting analysis are in the decitala.extra directory. Latest accuracy is 74.41%.
  • Added enforce_earliest_start argument to path_finding_utils.sources_and_sinks.
  • Added split() method to both GeneralFragment and Extraction. Used for splitting Di- and Tri- partite greek prosodic feet.
  • Added slur_count and slur_start_end_count arguments to the Extraction dataclass.

Changed

  • Changed roll_window parameter to window_size (instead of window_length).

Removed

  • Dactylo-Epitrite. Removed as, along with Dochmius, there are a large number of variations of the fragment (see Traité Vol. 1).

Fixed

  • Graph calculation for Dijkstra was being done within the function. Given the agnostic source/target picking, this was very inefficient; now, the graph is generated a single time in dijkstra_best_source_and_sink.
  • Various bugfixes for Dijkstra and Floyd-Warshall for source and target picking.

Version 0.13.2

20 Jun 13:01
Compare
Choose a tag to compare

v0.13.2 June 19, 2021

Fixed

  • Added the missing progress bar for path_finding_utils.build_graph (verbose=True did nothing).
  • Fixed bug (#144) in measure_divide_mode of utils.get_object_indices.
  • Fixed several documentation errors.

Version 0.13.1

19 Jun 22:32
Compare
Choose a tag to compare

v0.13.1 June 19, 2021

Fixed

  • Issue #157: broken source button.

Version 0.13.0

19 Jun 21:28
Compare
Choose a tag to compare

v0.13.0 June 19, 2021

Added

  • All results from search.rolling_hash_search are now stored as Extraction dataclasses. This new approach greatly simplifies the inconsistent dictionary-style search results. Also removes the need to store frag_types in the hash tables.
  • Added a CostFunction class to decitala.path_finding_utils. This cost function class is to be used as an input to path_finder and dijkstra (and floyd_warshall, as well), replacing the previously used weights dictionaries. This addition allows the user to input any cost function they like (see PR#152).
  • Added three functions to fragment for querying the fragment database for each fragment type: get_all_greek_feet, get_all_decitalas, and get_all_prosodic_fragments.
  • Added rolling_SRR function to utils.
  • Added decitala.extra module where miscellaneous scripts will be stored. This will eventually hold the script for computing hyperparameters (decitala.extra.hyperparameters) and the formerly hidden script for remaking analysis files.
  • Added decitala dtest --module CLI tool for quickly running doctests (hindered by relative imports). Consequently removed the tests/doctest_runner.py file.
  • Restructured the DB approach. Added a database directory that will store all the database-related material.

Changed

  • All tree creation has migrated to the treeplotter package. Removed the Treant templates accordingly.
  • Greatly simplified the logic in successive_ratio_array and successive_difference_array using numpy.

Fixed

  • Issues #147: allow weight hyperparameters as input to Dijkstra; #143: 0 as possible quarter length in FragmentHashTable; #157: broken source button in docs (as well as missing section).

Version 0.12.1

23 May 15:05
Compare
Choose a tag to compare

[v0.12.1] May 23, 2021

Fixed

  • The path_finding_utils.build_graph function was calculating the cost between two vertices without checking if it needed to be calculated.
  • Bug in GreekFoot returned incorrect self.data due to extra slash in path.
  • Fixed incorrect presets for generate_all_modifications in the hash table module. Also now force clearing the dictionary before running load with new parameters.
  • Documentation fixes; added screenshots of the visualization functions.