MIDI Sequencer Architecture for Compact Music Players
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional MIDI players with a single CPU struggle to smoothly play multiple channels of MIDI data due to varying message lengths, requiring complex programs and significant memory for OS or scheduler support, making it difficult to control sequencers efficiently, especially in compact devices like mobile phones.
Innovation Solution
A music player design that includes separate function units for reading and restoring, message analyzing and processing, writing, and sequencer controlling, all controlled by a simple program without an OS or scheduler, allowing for efficient switching and operation of multiple sequencers with maintained operational states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a single CPU operates several sequencers in multiple channels, then music playback in multiple channels is enabled, but the program becomes complex and requires large memory capacity for OS or scheduler
Solution Approach 1:
The patent divides the single CPU's operation into multiple independent sequencer units, each capable of autonomous operation. Each sequencer is structured as an independent module that can process MIDI messages separately, eliminating the need for complex OS-level task management while enabling multi-channel playback.
Solution Approach 2:
The patent implements a preliminary action mechanism by pre-organizing MIDI message processing into standardized sequencer units with predetermined operation sequences. Each sequencer unit is pre-configured with its own operation queue and processing logic, allowing the CPU to switch between sequencers without requiring complex runtime scheduling decisions.
2Manufacturing precision
If sequencers process MIDI messages of varying lengths sequentially, then accurate message processing is achieved, but other sequencers must stop and wait, disrupting smooth playback
Solution Approach 1:
The patent implements dynamic sequencer switching that adapts to the varying processing times of different MIDI messages. When one sequencer completes its message processing, the system dynamically switches to the next sequencer in the queue, ensuring continuous operation without idle waiting periods. This dynamic allocation maintains processing accuracy while maximizing productivity.
Solution Approach 2:
The patent employs periodic action by organizing sequencer operations into regular cycles where each sequencer gets a turn to process its next message. The CPU periodically switches between sequencers in a predetermined sequence, ensuring that each sequencer receives regular processing opportunities while maintaining overall system continuity and smooth playback.
3Ease of operation
If an OS or scheduler is used to control sequencer switching, then sequencer control becomes easier, but large capacity memory (ROM or RAM) is required
Solution Approach 1:
The patent extracts the scheduling functionality from the CPU core and implements it as a simple, dedicated sequencer control mechanism. Instead of relying on a full OS or complex scheduler, the system uses a streamlined control unit that manages sequencer switching through basic queue management and priority handling, significantly reducing memory requirements while maintaining ease of control.
Solution Approach 2:
Each sequencer unit is designed to be self-sufficient with its own operation queue and processing logic. The sequencers automatically manage their own message queues and can independently determine when they are ready to process the next message, reducing the burden on the CPU and eliminating the need for complex external scheduling while maintaining ease of operation.
Data Source
AI summary
A music player has sequencers each including a reading and restoring function unit for reading music information including header information, a delta time, and a message and restoring running status of the message; a message analyzing and processing function unit for analyzing the header information, consuming a period of time according to the delta time, and processing the message to generate sound source drive information; a writing function unit for writing the sound source drive information into an output memory; and a sequencer controlling function unit for controlling the reading and restoring function unit to read and restore the music information, controlling the message analyzing and processing function unit to analyze the header information, and controlling the message analyzing and processing function unit and the writing function unit to consume the period of time, generate the sound source drive information, and write the sound source drive information.


