Skip to main content

Analyze the harmonies in music according to a theory of harmonic perception by Franz Sauter, described in his book 'Tonal music: Anatomy of the Musical Aesthetics'

Project description

This library implements some functions for analyzing the harmonic happenings in music. The algorithms are based on a relatively unknown theory of harmony in music by Franz Sauter, specified for implementation by Louis Krüger. This Theory is described in the book of Franz Sauter 'Tonal music: Anatomy of the Musical Aesthetics' (German: 'Die tonale Musik: Anatomie der musikalischen Ästhetik'). One interesting aspect of the theory is that modulations are defined in a way that it can be implemented in a computer program: A modulation occurs if we hear a tone which is not part of the key in which we were before. Instead, we are modulating to the key which

  1. has all the tones of the new harmony we are hearing and
  2. has the most tones in common with the old key we were in.

This library offers the following functions:

  • calc_harmonies: This calculates the resulting harmonies of different simultaneous voices (for example different instruments playing together) in music. The result can be used for:
  • analyze_harmonic_states: From the harmonies that a listener hears the 'harmonic state' in which the listener is is calculated. This term belongs to the theory and describes the key that a listener would assume as the current key in which the music is. A harmonic state can consist of multiple keys simultaneously.
  • analyze_sauterian_formula: Gives back the sauterian formula for each harmony, where the harmonic state has exactly one key. This roughly corresponds to whether the scale degrees for the individual notes of the tonic, dominant and subdominant chords of a key are used in the sounding harmony.
  • analyze_degree_of_dissonance: Based of the sauterian formula of a harmony this gives the degree of dissonance for this harmony: It can be consonant, 'false consonant', can ba a low, medium or high level of dissonanca or it can be an atonal harmony of one of 5 degrees, if the tones of the harmony do not occur in any key.

This library is used in a tool for automatic music harmony analysis that can be found on the website www.notenentwickler.com Also some additional explanation of the theory can be found there. The other modules abcjs_interface, preprocess and to_abc_strings in this package are developed for this project and are not specifically intended for general use.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

music_harmony_analysis-1.1.1.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

music_harmony_analysis-1.1.1-py3-none-any.whl (30.2 kB view details)

Uploaded Python 3

File details

Details for the file music_harmony_analysis-1.1.1.tar.gz.

File metadata

  • Download URL: music_harmony_analysis-1.1.1.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.12

File hashes

Hashes for music_harmony_analysis-1.1.1.tar.gz
Algorithm Hash digest
SHA256 77d9261e2a6849657776b165bd8e38caed6868cce3840fabc87c12309d42f465
MD5 d534df8edcf0fd168c1caed6541cb17d
BLAKE2b-256 d93ff6a06470d514df006eee8cf491e97671ea7125b2b8a53f9a7cbd59608cf4

See more details on using hashes here.

File details

Details for the file music_harmony_analysis-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for music_harmony_analysis-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 01f4151f5e7b5c40337ae2b34973a594f8652a1524965ddb6f2395a208d272e6
MD5 7d9e862c14acbcee6506e71c50d92643
BLAKE2b-256 2799dc7ca8509d8ad676bb7b9e804e0839c3d454694282c878fc99095454a44b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page