TR123e - EMCT Computing Final Project Version 1.0
Research Project Translation from gen~ to embedded Moog synth
Loading...
Searching...
No Matches
PortamentoFilter.h File Reference

Legato playing technique detection and portamento triggering logic. More...

Go to the source code of this file.

Classes

class  PortamentoFilter
 Musical technique analyzer for intelligent portamento triggering. More...

Detailed Description

Legato playing technique detection and portamento triggering logic.

This module implements sophisticated analysis of MIDI note patterns to determine when portamento (smooth pitch transitions) should be applied in monophonic synthesis. The system distinguishes between legato and staccato playing techniques through temporal analysis of note overlap patterns, providing musically intelligent portamento behavior that responds to performer intent.

@musical_theory_background Portamento is a musical ornament involving a continuous slide between two pitches, commonly used in string, vocal, and synthesizer performance. In traditional acoustic instruments, portamento occurs naturally during legato playing when the performer transitions between notes without releasing the first. Electronic synthesizers must analyze playing technique to determine when this effect should be applied.

@detection_algorithm The system employs a state machine approach to analyze note timing patterns:

  1. Overlap Detection: Identifies when new note-on occurs before previous note-off
  2. Pitch Analysis: Ensures portamento only triggers for different note values
  3. State Tracking: Maintains previous note information for comparison

This approach provides musically intelligent behavior that matches performer expectations from acoustic instruments and traditional analog synthesizers.

@performance_characteristics

  • Computational complexity: O(1) for all operations
  • Memory footprint: 12 bytes (3 member variables)
  • Real-time safety: No dynamic allocation or blocking operations
  • Deterministic execution: Bounded processing time for all inputs
Author
Timothy Paul Read
Date
2025/03/10 @organization AABSTRKT at play via gaialive.com
Version
1.0

@license This source code is provided as is, without warranty. You may copy and distribute verbatim copies of this document. You may modify and use this source code to create binary code for your own purposes, free or commercial.

@references

  • "The MIDI Manual" by David Miles Huber
  • "Synthesizer Programming" by Jim Aikin
  • MIDI 1.0 Detailed Specification, Section 4.2 (Note Messages)
  • "Computer Music: Synthesis, Composition, and Performance" by Dodge & Jerse