networks synchrony and timing


Synchrony is a natural phenomenon that can be observed in humans, animals and other organisms. Humans, animals and plants, for example, synchronize their internal daily rhythm (circadian rhythm) to the 24 hour cycle of the earth’s rotation.

When a group of people gives applause they tend to synchronize their hand clapping. Most interestingly there is no single person that would act as timer. If one thinks about how to realize such a synchronization artificially, things quickly can become very complicated, especially without a central timer. How are different processes informed about the rhythm of others? Does every process need to communicate with every other process? If processes have different rhythms, how to agree on a common rhythm? Conversely, to clap your hands out of rhythm in a group of hand clapping people requires more mental effort than just clapping in sync. Why is it that we can clap our hands in synchrony without effort?

youtube video of 32 metronomes that synchronize through a suspended support platform

An experiment using metronomes reveals that synchrony may result out of simple physical interaction and does not need high level communication. Two or more (the video shows the synchronization of 32 metronomes) synchronize in phase when they are put on a common support platform that mediates the swing between the metronomes. The simplest setup for the experiment uses twe empty cans as wheels and a small wood plank as support base to place two metronomes. After short time the metronomes will synchronize. Here synchronization is an emergent effect that results from the coupling through the wood plank.

Synchrony in neural oscillators

Similarly when neural oscillators are connected so that they form a network, they will show synchrony as an emergent effect. This means synchronization behavior is not explicitly programmed but appears as a result of the network connectivity between the oscillators.
You can try out this synchronization behavior in a processing script that couples two neural oscillators by modifying the connection strength. The default is a connection strength of 1, both oscillators run in synchrony. But when the connection strength is set two 0 the two oscillators will run out of synchrony.

two coupled neural oscillators. You may modify the coupling using the top slider. When the coupling is set to zero, the two oscillators will move out of phase.

With the arduino code you can try the same. By running two oscillators, each on its own arduino board, the connectivity is created by putting patch cables between the digital output of the first board to the input of the second board and vice versa. If you have motors connected to the arduino, you will see how the motors will start to move in synchrony.

The pure data implementation lets you explore an effect beyond synchronization: the possibility to have more complex phase relations between oscillators. With the initial settings both oscillators run in anti-phase, when you move the slider that controls the coupling strength to a value near zero of 0.02, the oscillating frequency goes up and below a value of 0.1 the anti-phase behavior becomes unstable and then moves into an in-phase relation.

Software download

puredata patch click to download
arduino sketch, click to download
processing sketch, click to download


More examples

15 randomly coupled oscillators