- Created: 11/05/13
- (Updated: 11/30/13)
The Ula 1.3 arpegiator is a multichannel, polyphonic arpeggiator with played-note ordering in the arpeggiation. Multichannel operation lets it arpeggiate different sounds as well as different notes. Each sound plays in a different voice, so the sounds can overlap and not cut each other off. It arpeggiates notes not only in the order they are played, but also drops notes which are no longer played--That is, it arpeggiates the notes currently pressed on a keyboard, in the order they were pressed.
So that the arpeggiator can be turned on and off without disturbing notes which are not arpeggiated, arpeggiated notes from channel 1 are actually played on channel 4, notes from 2 are on channel 5, and notes from 3, are on 6. Thus, to send notes on channel 1 to the arpeggiator, set one keyboard on channel 1. To highlight arpeggiated notes from channel 1, set the other keyboard to display channel 4.
The panel provides controls to select the channels from which the arpeggiator receives notes. When turning on an arpeggaitor channel, it scans playing notes on that channel and switches them off, then starts arpeggiating on a shared Ula clock. Note duration may be longer or shorter than the clock period and is set as a percentage. Muyting a channel keeps the notes in the arpeeggiator, but does not send them to the channel controller, so a muted channel inserts rests into the sequence.
Internal Design of the Arpeggiator
After making Polyvoice 2.0, building this arpeggiator was also rather simple.
The arpeggiator sends the notes it makes to Polyvoice, which takes care of the voices and channels. To create the arpeggiation note list, a second copy of the Polyvoice module is in front of the first, inside the arpeggiator. the arpeggiator receives notes from screen keyboards and puts them into its own Polyvoice module. The arpeggiator then simply reads the dump output from its own Polyvoice Module, which contains lists of the current velocity, pitch, and age of all playing notes.
On each clock step of the arpeggiation, it picks up the next note in the age list, looks up its velocity and pitch in the other lists, creates a note-on event, and sends it to the later Polyvoice module which actually does the voice management. All the other outputs from the Polyvoice inside the arpeggiator are not connected; the later Polyvoice actually does all the sound playing.
Future versions of the arpeggiator may vary the note length with rhythm generators, which again would be in a separate ULA module. Other possible fugures include multiple arpeggiators, switchable ordering, enhanced timing control, and chord arpeggiation.
The Ula 1.3 arpeggiator is provided in the Ula 1.2 ring system with Polyvoice 2 as a Max/MSP patch.
Notes are currently remembered in the Max keyboard object, which cannot remember note order, so the presets only store notes in descending pitch, but after patch initialization, the note order can be changed.