Releases: Luke-Poeppel/decitala
Releases · Luke-Poeppel/decitala
Version 1.1.2
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
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 functionschultz_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
v1.1.0 July 27, 2021
Added
- Added prosodic meters CSV file to the
corpora/prosody
directory. These encodings map to the newProsodicMeter
object. - Added
exact
parameter toFragmentHashTable
–– 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
v1.0.0 July 19, 2021
First stable release.
Added
- Added a class method to
db.ExtractionData
to maintain consistency between it andsearch.Extraction
. - Added
split_dict
parameter tosearch.path_finder
. That way one doesn't need to re-write this post-processing code. - Added a
contour_class
inhm.contour
for experimenting with Schultz's work. - Added
NormalizedCounter
anddict_to_ordered_dict
todecitala.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 toODNC
database and corresponding attribute to theSpecies
wrapper. - Allow the user to choose spearman or pearson correlation in the
KS
andKS_diatonic
functions inhm.hm_utils
. - Added function for getting the "shells" of an iterable to
utils
:utils.get_shells(iterable)
. - Added
create_path_database
function todatabase.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 usehm_utils.normalize_pc_counter
. - The default cost function used in
path_finder
and the associated helpers is nowCostFunction3D
with the optimized parameters. - Renamed
create_database
tocreate_extraction_database
. - Renamed poorly named functions in the contour module, e.g.
contour.pitch_content_to_contour
is now justcontour.pitch_contour()
.
Removed
- Removed unnecessary
frag_type
parameter toExtraction
. Now a class attribute ofGeneralFragment
(and subclasses).
Fixed
- The
return_tonic
parameter forKS_diatonic
was returning incorrect values.
Version 0.14.1
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 theinclude_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
v0.14.0 July 1, 2021
Added
- Moved all
moiseaux
(private repo) tools todecitala
. Thedecitala.db
now holdsTranscription
andSpecies
SQLAlchemy query wrappers; also added the corresponding helpers:db.get_all_transcriptions()
anddb.get_all_species()
. - Added
database.db_utils
module. - Added a
make_core_dbs
file todecitala.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 anhm.molt
module (tools for dealing with the modes of limited transposition), anhm.contour
module for contour calculations (moved some general utils there, like Morris prime contour calculation), and anhm.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 ansp_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 topath_finding_utils.sources_and_sinks
. - Added
split()
method to bothGeneralFragment
andExtraction
. Used for splitting Di- and Tri- partite greek prosodic feet. - Added
slur_count
andslur_start_end_count
arguments to theExtraction
dataclass.
Changed
- Changed
roll_window
parameter towindow_size
(instead ofwindow_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
Version 0.13.1
Version 0.13.0
v0.13.0 June 19, 2021
Added
- All results from
search.rolling_hash_search
are now stored asExtraction
dataclasses. This new approach greatly simplifies the inconsistent dictionary-style search results. Also removes the need to storefrag_type
s in the hash tables. - Added a
CostFunction
class todecitala.path_finding_utils
. This cost function class is to be used as an input topath_finder
anddijkstra
(andfloyd_warshall
, as well), replacing the previously usedweights
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
, andget_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 thetests/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
andsuccessive_difference_array
using numpy.
Fixed
Version 0.12.1
[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 incorrectself.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.