Skip to main content
Dryad logo

A Hopf Adaptive Oscillator Analog Circuit as a musical instrument

Citation

Perkins, Edmon; Li, XiaoFu; Shougat, Md Raf E Ul (2021), A Hopf Adaptive Oscillator Analog Circuit as a musical instrument, Dryad, Dataset, https://doi.org/10.5061/dryad.hmgqnk9gs

Abstract

The utilization of a Hopf adaptive frequency oscillator as a musical instrument is explored. The analog circuit design of this nonlinear oscillator are presented, and the procedure to use it as a musical instrument is described. Although similar to other analog electronics instruments such as the theremin, the authors believe this is the first time that an adaptive oscillator has been implemented as a musical instrument. Ave Maria, D. 839-Bradley Chapman (https://musopen.org/music/1673-ave-ma...​), is used here as an example. The dataset contains four parts. 1) vocalAveMaria.mat is the time series data that was input to the adaptive frequency oscillator. 2) afoAveMaria.mat is the response of the y state of the adaptive frequency oscillator. 3) pianoAveMaria.mat is the time series data of the piano accompaniment. 4) Exp_remix_by_y.wav is the sound file of the adaptive oscillator "singing" the vocal track, and it is overlaid on top of the piano accompaniment.

Methods

The time series, the vocals of Ave Maria plus pedal points (vocalAveMaria.mat), was sent to the circuit using a National Instrument (NI) cDAQ-9174 controlled by MATLAB, which was also used to record the x, y, and omega states of the circuit. No post-processing was performed on the data. The y state from the circuit (afoAveMaria.mat) was then added back to the piano accompaniment (pianoAveMaria.mat). The final sound file is Exp_remix_by_y.wav.

Usage Notes

The time series data of the vocals (vocalAveMaria.mat) could be used as input to other types of circuits. The output of other circuits could then be added to the piano accompaniment (pianoAveMaria.mat) to create new versions of the piece of music. The produced sound file could then be compared to Exp_remix_by_y.wav.