https://github.com/maxreciprocate/hebbian-consonance
Recovering Helmholtz's pattern from Hebbian plasticity
https://github.com/maxreciprocate/hebbian-consonance
hebbian-learning music-theory
Last synced: 3 months ago
JSON representation
Recovering Helmholtz's pattern from Hebbian plasticity
- Host: GitHub
- URL: https://github.com/maxreciprocate/hebbian-consonance
- Owner: maxreciprocate
- Created: 2020-08-14T09:16:19.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-08-14T12:22:12.000Z (almost 5 years ago)
- Last Synced: 2025-01-08T02:46:07.603Z (5 months ago)
- Topics: hebbian-learning, music-theory
- Language: Julia
- Homepage:
- Size: 31.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Extracting Helmholtz's consonance ranking from Hebbian plasticity
Implementation of ["Emergence of the consonance pattern within synaptic weights of a neural network featuring Hebbian neuroplasticity"](https://doi.org/10.1016/j.bica.2017.09.001) (Pankovski and Pankovska, 2017). In short: two layer network accepts one complex tone with some harmonics on top, with subsequent rewiring by [Hebbian rule](https://en.wikipedia.org/wiki/Hebbian_theory). Prevalent consonance ranking of two-tone intervals is then extracted from weights of the network.

## Reproduce
```bash
julia -e 'using Pkg; Pkg.activate(); Pkg.instantiate()' # install dependenciesjulia --project trivial-consonance.jl
feh reproduce-ranking.png
```Calculations run under 10 seconds (improvement over 24 hours mentioned in the paper). Ranking recovered:
```
Root > Octave > P5 > P4 > M6 > M3 > m3 > m6 > M2 > m7 > M7 > m2 > Tritone
```## Discussion
Due to simplicity of the algorithm proposed, it diverges after many training steps and is highly dependent on the number of harmonics and their magnitude.
###### (original implementation is behind a paywall)