Real-Time Arpeggio Grid Editing for MIDI Performance Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional arpeggiators are difficult to use, limited in application, and require extensive tinkering to generate harmonically pleasing sequences, making them less useful for many users.
Innovation Solution
A software-based arpeggiator system that allows real-time editing of arpeggio performance data, including velocity, note type, and rhythmic order, enabling users to capture and edit arpeggios in a grid interface, apply changes to subsequent chords, and create new sequences based on captured performance data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If conventional arpeggiators are used to automatically step through note sequences, then arpeggio automation is achieved, but the device becomes difficult and cumbersome to use
Solution Approach 1:
The arpeggiator interface is segmented into distinct functional areas: a performance capture area where users input chords, a grid display area showing the arpeggiated sequence, and a editing area where performance data can be modified. This segmentation allows users to interact with different aspects of arpeggio creation separately, reducing cognitive load and improving ease of use while maintaining full automation capabilities
Solution Approach 2:
The system performs preliminary action by automatically generating the arpeggiated note sequence from the input chord before the user needs to edit it. The arpeggiator pre-calculates and displays the note sequence, velocity values, and rhythmic positioning, allowing users to then make informed edits without having to manually construct the entire sequence from scratch
2Productivity
If conventional arpeggiators provide pre-programmed sequences, then arpeggio generation is enabled, but extensive tinkering is required to generate harmonically pleasing sequences
Solution Approach 1:
The system provides immediate visual feedback by displaying the generated arpeggio sequence in a grid format that shows note positions, velocities, and timing. Users can see the harmonical structure and make real-time adjustments to velocity and rhythmic positioning, allowing rapid iteration and refinement of harmonically pleasing sequences without extensive trial and error
Solution Approach 2:
The system enables easy parameter changes by allowing users to modify velocity values, note timing, and rhythmic positioning directly in the grid interface. Users can adjust individual note parameters or apply global changes to the entire sequence, facilitating quick experimentation with different harmonical interpretations without requiring extensive reprogramming
3Adaptability or versatility
If conventional arpeggiators are used, then basic arpeggio functionality is provided, but the application is limited and requires extensive tinkering
Solution Approach 1:
The arpeggiator is designed as a multi-functional tool that can capture performance data, display sequences in a visual grid, edit individual note parameters, apply edits to subsequent chords, and generate variations of the original sequence. This universal design allows a single interface to handle multiple arpeggio creation tasks that would otherwise require separate tools or extensive configuration
Solution Approach 2:
The system provides dynamic control over arpeggio parameters including velocity, timing, and rhythmic positioning. Users can dynamically adjust these parameters during performance or editing, and the system automatically applies changes to subsequent chords, allowing the arpeggiator to adapt to different musical contexts and styles without requiring complex reconfiguration
Data Source
AI summary
A method including receiving a first set of performance data corresponding to a first plurality of MIDI-based notes in a first rhythmic order. The first plurality of MIDI-based notes may form a first arpeggio, with each of the first plurality of notes having a corresponding first performance data. The method further includes receiving input data indicating a change to the first performance data corresponding to a note in the first plurality of notes, changing the first performance data for the corresponding note using the input data, receiving a second set of performance data corresponding to a second plurality of MIDI-based notes, and applying the changed first performance data to the second performance data. Applying the first changed performance data includes editing the second set of performance data in real-time by replacing the second performance data with the changed first performance data.


