I recently set up some automation sub-tracks to generate control changes for a MIDI device. After drawing a few points and curves, and setting up my USB-to-MIDI cable, I was able to get the results I desired. However, I soon found that my actual MIDI note commands were getting swamped in the control change messages.
What I discovered is that curves and lines with slope (i.e., not horizontal or vertical) generate a ridiculous number of control change messages. I piped the output into a MIDI loopback app, which reported ~5000 bytes/second for 3 control change tracks. This equates to something like 700 updates per second. It explains why the USB-to-MIDI cable was choking.
Worse yet, some of the lines I drew looked horizontal and appeared to have the same value at both ends (within 0.1, which is as many digits as MuLab displays), but still generated hundreds of updates per second.
Since MIDI control change messages only have 127 possible levels (7 bits), it doesn't make sense to output a new control change message unless the output value has actually changed. In some of my tracks, it was the same value every time, for seconds on end.
The problem can be worked around in my application by ensuring that horizontal lines are truly the same value at each endpoint (via numerical entry), and by using a MIDI loopback application to overcome the speed of true electrical MIDI. Somehow, the receiving app (a lighting controller) hasn't balked at receiving 5000+ control changes per second during ramping. However, I'd like to be able to send control changes to actual MIDI devices eventually.
Thoughts?
Automation Tracks Generate Excessive Control Change Messages
Official support for: mutools.com
Automation Tracks Generate Excessive Control Change Messages
2018-07-18T17:02:47+00:00
I recently set up some automation sub-tracks to generate control changes for a MIDI device. After drawing a few points and curves, and setting up my USB-to-MIDI cable, I was able to get the results I desired. However, I soon found that my actual MIDI note commands were getting swamped in the control change messages.
What I discovered is that curves and lines with slope (i.e., not horizontal or vertical) generate a ridiculous number of control change messages. I piped the output into a MIDI loopback app, which reported ~5000 bytes/second for 3 control change tracks. This equates to something like 700 updates per second. It explains why the USB-to-MIDI cable was choking.
Worse yet, some of the lines I drew looked horizontal and appeared to have the same value at both ends (within 0.1, which is as many digits as MuLab displays), but still generated hundreds of updates per second.
Since MIDI control change messages only have 127 possible levels (7 bits), it doesn't make sense to output a new control change message unless the output value has actually changed. In some of my tracks, it was the same value every time, for seconds on end.
The problem can be worked around in my application by ensuring that horizontal lines are truly the same value at each endpoint (via numerical entry), and by using a MIDI loopback application to overcome the speed of true electrical MIDI. Somehow, the receiving app (a lighting controller) hasn't balked at receiving 5000+ control changes per second during ramping. However, I'd like to be able to send control changes to actual MIDI devices eventually.
Thoughts?
cjdickey36
https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=422858
-
- KVRer
- 1 posts since 18 Jul, 2018
Post by cjdickey36 »
- KVRAF
- 13863 posts since 24 Jun, 2008 from Europe
- Contact:
Post Reply
2 posts
• Page 1 of 1
Jump to
- The Main Forums
- ↳ KVR Studio Manager
- ↳ Getting Started (AKA What is the best...?)
- ↳ Instruments
- ↳ Effects
- ↳ Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)
- ↳ Guitars
- ↳ Mobile Apps and Hardware
- ↳ Soundware
- ↳ Samplers, Sampling & Sample Libraries
- ↳ Hardware (Instruments and Effects)
- ↳ Modular Synthesis
- ↳ Sound Design
- ↳ Production Techniques
- ↳ Music Theory
- ↳ Computer Setup and System Configuration
- ↳ DSP and Plugin Development
- ↳ DIY: Build it and they will come
- ↳ Music Cafe
- ↳ Sell & Buy (+Special Offers, Deals & Promos)
- ↳ KVR Experts
- ↳ KVR Developer Challenge 2026
- ↳ Everything Else (Music related)
- ↳ Off Topic
- ↳ Off Topic Classics
- ↳ Machine Learning and AI for Music Creation
- Official Company Forums
- ↳ 2getheraudio
- ↳ accSone
- ↳ Acon Digital
- ↳ AcousticsampleS
- ↳ AcousModules
- ↳ Agitated State
- ↳ AIR Music Technology
- ↳ AMG
- ↳ Ample Sound
- ↳ Antares Audio Technologies
- ↳ Apisonic Labs
- ↳ APU Software
- ↳ apulSoft
- ↳ AriesCode
- ↳ Arts Acoustic
- ↳ Arturia
- ↳ Audjoo
- ↳ AudioSpillage
- ↳ Audiority
- ↳ Best Service
- ↳ Big Tick
- ↳ Bitwig
- ↳ Controller Scripting
- ↳ Blue Cat Audio
- ↳ Cherry Audio
- ↳ CWITEC
- ↳ Embertone
- ↳ energyXT
- ↳ Eventide
- ↳ Expert Sleepers
- ↳ forward audio
- ↳ Future Audio Workshop
- ↳ FXpansion
- ↳ g200kg
- ↳ Harrison Mixbus
- ↳ HG Fortune
- ↳ Homegrown Sounds
- ↳ HoRNet Plugins
- ↳ Ilya Efimov Production
- ↳ Image Line
- ↳ Impact Soundworks
- ↳ Indiginus
- ↳ Insert Piz Here
- ↳ Ju-X
- ↳ Kirk Hunter Studios
- ↳ Kirnu
- ↳ Kong Audio
- ↳ Krotos
- ↳ Kuassa
- ↳ KV331 Audio
- ↳ LennarDigital
- ↳ Les Productions Zvon
- ↳ Liqube Audio
- ↳ Loomer
- ↳ LVC-Audio
- ↳ Maizesoft
- ↳ Manytone Music
- ↳ Media Overkill (MOK)
- ↳ MeldaProduction
- ↳ Mellowmuse
- ↳ MIDIMood
- ↳ moForte
- ↳ Mozaic Beats
- ↳ mucoder
- ↳ MusicDevelopments
- ↳ Tips & Tricks
- ↳ MusicLab
- ↳ MuTools
- ↳ New Sonic Arts
- ↳ NUSofting
- ↳ Oli Larkin Plugins
- ↳ Orange Tree Samples
- ↳ patchpool
- ↳ Photosounder
- ↳ PlugInGuru
- ↳ Polyverse Music
- ↳ Precisionsound
- ↳ Premier Sound Factory
- ↳ Psychic Modulation
- ↳ Realitone
- ↳ Resonance-Sound
- ↳ Reveal Sound
- ↳ Roger Linn Design
- ↳ rs-met
- ↳ S3A: Spatial Audio
- ↳ SaschArt
- ↳ Smart Electronix
- ↳ sonible
- ↳ SonicBirth
- ↳ Sonic Reality / eSoundz.com
- ↳ Soundiron
- ↳ SPC Plugins
- ↳ Sugar Bytes
- ↳ TAL Software
- ↳ Tokyo Dawn Labs
- ↳ Tracktion
- ↳ Tweakbench
- ↳ u-he
- ↳ u-he Linux support
- ↳ UJAM
- ↳ United Plugins
- ↳ VAZ Synths
- ↳ Virharmonic
- ↳ xoxos
- ↳ XSRDO - SynthCraft
- ↳ ZynAddSubFX
- Site Stuff
- ↳ Site Stuff
- Archived Forums
- ↳ AlgoMusic
- ↳ easytoolz
- ↳ Elevayta
- ↳ Hollow Sun
- ↳ LinPlug
- ↳ Muse Research and Development
- ↳ Shuriken
- ↳ SoHa Sound Design
- ↳ Soniccouture
- ↳ Topten Software
- ↳ Valhalla DSP
- ↳ CK Modules & VST
- ↳ Sennheiser AMBEO
- ↳ Muon Software
- ↳ Westgatesounds.net
- ↳ Squaredheads
- ↳ Sonigen
- ↳ CFA-Sound
- ↳ Back In Time Records
- ↳ Livelab.dk
- ↳ Skytopia
- ↳ audioD3CK
- ↳ Inspire Audio
- ↳ Krakli
- ↳ Drumdrops
- ↳ Futucraft
- ↳ OverTone DSP
- ↳ RaXnTraX
- ↳ solar3d-software
- ↳ Signaldust
- ↳ Soundemote
- ↳ ReleaseLab (Powered by Artist Expansion)
- ↳ Wolfgang Palm
- KVR Forum index
- All times are UTC
- Delete cookies
