Double click on the file HexaChord.jar to launch the program, without moving it from its directory.

Any buggs, questions, comments and ideas are welcomed, do not hesitate to send me a mail.


  • To switch input source (between midi file and external keyboard) press key 'p'
  • To save the current sequence (after some transformations for example) as a midi file, press key 's'. The midi file should be saved in the directory “out”.
  • To change the orientation of the axis (for example if you want the fith cycle oriented horizontally instead of vertically) : if you're on mac, keep pressed cmd+left-mouse then move the mouse to change the orientation. On windows/other just do the same with windows key instead of cmd key.

for any other question do not hesitate to send me a mail :)

Short description

HexaChord is a computer-aided music analysis environment based on spatial representations of musical objects inspired by the Tonnetz. The software provides 3D visualizations of complexes representing any set of chords [1]. Chord complexes related to a T/I class grouping 3-note chords in diatonic and chromatic scales are available as infinite triangular tessellations. HexaChord also includes other musical representation spaces as the chromatic and fifths circles, as a voice-leading space which organizes spatially chord intervallic structures of size 3 depending on their voice-leading proximity.

Musical pieces are imported as MIDI files. An algorithm described in [4] is used to compute a trajectory for any pair of musical piece/chord complex. The different visualization spaces are updated in real time when a file is played. The musical sequence is then represented as a path which evolves in some complexes choosen by the user. The spatial harmonization functionality highlights at any instant of the piece the pitch classe(s) not played but having the highest number of neighborhood relationship with the played pitch classes. HexaChord also takes as input any MIDI device including MIDI keyboards. The interface displays then in real time the trajectory corresponding to the performance of the player in any chord complex.

Spatial transformations can be applied to any trajectory in a planar chord complex [1]. For each transformation, the user specifies:

  • the reference complex in which the trajectory is initially computed
  • a destination complex in which the trajectory is going to be embedded
  • an angle of rotation
  • two vector coordinates (North and North-east), enabling to specify any translation in a triangular lattice.

The interface enables one to compose one rotation, one translation and one embedding in a unique transformation. To proceed a rotation or a translation only, the embedding complex will have to be the same than the reference complex. Also, to proceed an embedding without any additional geometrical transformation, translation and rotation fields will have to be set to 0. The musical sequence resulting from any transformation can be exported as a MIDI file. The transformations examples available on that page were generated using HexaChord.

Other features dedicated to analysis have been integrated in the application. For instance, HexaChord determines automatically the chord complex which is the most suitable for representing a musical sequence. This task is connected to the notion of compliance [2] and is achieved by comparing the compactness of the trajectories representing the piece in the different complexes. The hypothesis beyond this functionality is that the high compactness of the trajectory in a particular complex might be seen as a stylistic signature of the piece. Following this idea, the computation of the compactness has been experimented with interesting preliminary results in music classification [4].

Although it was initially conceived to assist music analysis, we believe that HexaChord provides interesting pedagogical qualities. The visual aspects of the chord complexes give an intuitive understanding of some mechanisms of harmony, particularly in the context of modern set theory. Also, the midi device functionality is a strong utility for the composer who uses such spaces as a tool for its compositions. Following this line, HexaChord has inspired the development of the composition aided system PaperTonnetz [3] that enables the user to manipulate a trajectory in a chord complex as a central object in his composition process.


Tonnetz visualisation of some pop songs.

The Adobe Flash Plugin is needed to display this content.


[1] L. Bigo, D. Ghisi, A. Spicher, M. Andreatta, « Representation of Musical Structures and Processes in Simplicial Chord Spaces », Computer Music Journal, vol. 39, n° 3 - 2015

[2] L. Bigo. Représentations symboliques musicales et calcul spatial. Phd thesis Université Paris-Est LACL/IRCAM, Paris, France, December 2013. thesis slides


hexachord.txt · Last modified: 2018/09/03 22:15 by admin
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported