Water Level Sensor ~ the bowl’s pouring water depth
ADXL 345 ~ the bottle’s position changing acceleration
FSR ~ the Water Moving Pressure to the Bottle Wall
In this part, Spring Flowing uses three sensors to obtain three different data generated by the interaction between the player and the instrument. Among them, the gyroscope ADXL345 transmits the acceleration data generated by the shaking of the water bottle on the XYZ tri-axis through the SCl and SDA ports; FSR through the A0 port Transmit the pressure of the water on the cup wall and the size of the force of the player holding the water bottle; the LED data is output by the digital 4 port to detect whether the FSR reaches the pressure value of the starting instrument; Water Level Sensor transmits the water depth data in the bowl through the A1 port. . Except for LED data, the above data is transmitted to Max/Msp by Arduino through the OSC protocol.
Core Module:Markov Chain
The Markov chain is mainly used for the pitch generation of musical instruments. First, according to the different water level data transmitted by the water level sensor, the corresponding music learning is selected from 4 different styles of traditional Chinese music expressing water, and the corresponding input related chord structure is generated. Secondly, the Background Sound under the water level condition is generated through Markov Chain. The pitch generated when the water bottle is shaken is also generated by Markov Chain based on the learning of the music. At the same time, the pitch generation in the water bottle part also drives the generation of different types of water sound, so that the music in the Melody Sound part is more rhythmic and musical.
The data obtained from Arduino is an actual value, and the data transmission between Ableton live and Max, which finally produces the sound effect, is MIDI data, so it is necessary to process the acquired data and map with the actual sound parameters that need to be changed. The data generated by ADXL345 is the separate data of the XYZ three axes, and this sensor is mainly used to change the force information of water sound. Only one value needs to be entered. Therefore, the acceleration data of the XYZ three axes is first merged and processed, and the appropriate MIDI signal value is matched according to the actual numerical range. , FSR data is also processed in the same way, and finally two new data, VelMIDI and WPMIDI, are obtained. At the same time, because the output data of ml.markov is a MIDI data type, it can also be directly used for parameter control of sampling sound changes.
The visual effects of "Spring Flowing" are generated in real-time by the jit modules in Max. When the background sound and melody sound are generated, they each trigger their own random scenes to play, which are then merged and presented in the same window using jit.op.
“from Max 1” :Background Sound
(Track 1 to 5)
“from Max 2”:Melody Sound
(Track 6 and 7)
The parameter adjustment mapping between Max and Live is as shown in the right figure.
By Xinyue Xu