Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jaakkopee/neuronSeq

A MIDI sequencer based on a neural network.
https://github.com/jaakkopee/neuronSeq

ai midi midi-sequencer neural-network python

Last synced: about 1 month ago
JSON representation

A MIDI sequencer based on a neural network.

Awesome Lists containing this project

README

        

# neuronSeq
A MIDI sequencer based on a real time oscillating neural network

(c) Jaakko Prättälä 2019-2023, use as you wish.

Based on the ideas of motion patterns and the MINN-network in the doctoral thesis of Pauli Laine.

What is neuronSeq?

-- An implementation of a neural network that outputs MIDI data.

-- neuronSeq can be connected to send real time event data to anything that reads MIDI.

-- An exploration of the oscillation/resonance model of music and mind.

-- Whole lot of psychedelic fun.

What is required?

-- Programming language python, libraries rtmidi, tkinter, numpy and matplotlib
Also, a MIDI router or interface and some syntheziser or drum machine, soft or hard.

-- Patience.

What does it do?

-- neuronSeq's NNote objects implement a class that mimic the actions of a nerve cell.
They fire when a threshold is reached by an ever ascending activation counter. As NNote fires,
a MIDI event is produced and activation is reset to 0.0.
NNotes can be connected to other NNotes. Connected NNotes modulate each other's activation value
via a weighed connection to create simultaneous (positive weight in connection)
or fluctuating patterns (negative weight in connection). These +/- connections
are essentially the modes of operation needed to make anything musical.

-- Connection objects in neuronSeq model a neuron to neuron weighed connection.

-- Implements a model of sequencing musical events without a central timer. NNotes are bound to only their activation
and the activation of their connected NNotes, not to a central clock that would specify tempo, quantization, groove
and other such variables.

-- neuronSeq is a relatively novel way to use the neural network paradigm. In stead of creating a static
representation of a pattern, neuronSeq creates a connected set of real time operating oscillators
(nerve cell simulations). This network could be taught to simulate any musical pattern,
but then, a learning algorithm is needed. At the moment parameters have to be set manually.

-- It makes noise. Which is nice.

Run the gui with

$ python nsTkGUI3.py