Commissioned Research
Top 9 Best Midi Routing Software of 2026

GITNUXSOFTWARE REVIEW

Music And Audio

Top 9 Best Midi Routing Software of 2026

Compare midi routing software options for musicians and producers, including LoopMIDI and other tools, with practical tradeoffs for setup and workflow.

19 min readUpdated Editorially scoped research
How we ranked these tools
01Editorial Scope

Vendors set the topic, but our editors set the inclusion criteria and the evaluation framework before research starts.

02Source Research

AI search agents find sources, extract figures with provenance, and aggregate written reviews. They also transcribe video reviews and podcasts.

Read our full methodology →

Framework: Features 40% · Ease 30% · Value 30%

Gitnux may earn a commission through links on this page. This does not influence our reviews. Editorial policy

MIDI routing software matters because it moves messages between DAWs, synths, controllers, and hardware with predictable configuration, transformation rules, and monitoring. This comparison helps technical evaluators weigh desktop utilities and app routers against deeper translation pipelines, rack-based performance routing, and configuration styles suited to Windows, macOS, and Linux studios.

LoopMIDI is the best pick for studio setups on desktop that just need dependable virtual MIDI ports because it auto-handles virtual port creation and reopening so DAWs reconnect without manual rewiring after restarts, whereas Bome MIDI Translator Pro suits scripted message-level translation across multiple destinations thanks to its event rule logic.

Editor’s top 3 picks

Three quick recommendations before you dive into the full comparison below — each one leads on a different dimension.

Editor pick
1

LoopMIDI

Auto-handling of virtual port creation and reopening so DAWs can reconnect without manual rewiring after restarts.

Best for: Fits when studio setups need dependable virtual MIDI ports and simple Thru-style chaining across multiple apps.

2

Bome MIDI Translator Pro

Editor pick

Scripted event processor that translates incoming MIDI messages into custom outputs with per-message conditional logic.

Best for: Fits when scripted MIDI translation must match message-level conditions across multiple virtual destinations.

3

Audiobus

Editor pick

Built-in MIDI monitor with per-port visibility for confirming channel and controller behavior during routing changes.

Best for: Fits when routing MIDI between a handful of macOS music apps needs quick validation and clean connections.

Comparison Table

1
LoopMIDIBest overall
SMB
9.2/10
Overall
2
vertical specialist
8.8/10
Overall
3
vertical specialist
8.6/10
Overall
4
8.4/10
Overall
5
vertical specialist
8.3/10
Overall
6
7.7/10
Overall
7
vertical specialist
7.4/10
Overall
8
vertical specialist
7.3/10
Overall
9
open-source
6.9/10
Overall
#1

LoopMIDI

SMB

Windows utility that creates virtual MIDI ports for routing data between software applications.

9.2/10
Overall
Features9.5/10
Ease of Use9.0/10
Value9.0/10
Standout feature

Auto-handling of virtual port creation and reopening so DAWs can reconnect without manual rewiring after restarts.

LoopMIDI creates and manages virtual MIDI ports on Windows, macOS, and Linux, so routing happens through the OS MIDI subsystem. It provides a lightweight patching workflow where one port can act as an input and another as an output for MIDI Thru chaining.

Message handling is intentionally minimal, so routing behavior is mostly about port connections rather than deep transformation. It is commonly used with DAWs, virtual instruments, and MIDI monitor tools where virtual instrument routing needs consistent port names.

Pros
  • +Creates virtual MIDI ports on all major desktop OSes
  • +Stable port aliases that help DAW templates stay consistent
  • +Low overhead for MIDI Thru chaining across multiple apps
  • +Simple configuration that avoids complex routing graphs
Cons
  • –Limited MIDI message filtering and translate capabilities
  • –No built-in latency compensation controls for clocked routing
  • –Minimal tooling for MIDI monitor workflows beyond port visibility
  • –Routing complexity grows as port counts increase
Use scenarios
  • DAW workflow builders

    Chain virtual MIDI inputs

    Stable port-based routing

  • Virtual instrument users

    Preserve device port names

    Less manual repatching

Show 1 more scenario
  • MIDI monitor operators

    Verify routed traffic path

    Clear routing visibility

    Route MIDI through virtual ports so monitor tools inspect the exact messages hitting each endpoint.

Best for: Fits when studio setups need dependable virtual MIDI ports and simple Thru-style chaining across multiple apps.

#2

Bome MIDI Translator Pro

vertical specialist

Windows and macOS software for MIDI routing, message translation, filtering, and device mapping.

8.8/10
Overall
Features8.8/10
Ease of Use8.7/10
Value8.9/10
Standout feature

Scripted event processor that translates incoming MIDI messages into custom outputs with per-message conditional logic.

Bome MIDI Translator Pro turns MIDI streams into scripted translations with a deterministic event-processing engine. It provides granular control over filtering, mapping, and output generation across multiple virtual MIDI ports.

Bome’s core differentiation comes from its rule and callback style automation that can react to specific incoming messages and conditions. It also supports device-level integration patterns such as DIN-MIDI conversion workflows and SysEx transmission for instruments that rely on vendor message formats.

Pros
  • +Event rule scripting provides deterministic translation logic
  • +Virtual port creation supports patching workflows across apps
  • +SysEx translation support fits instruments with vendor-specific commands
  • +MIDI monitor visibility helps validate message-level behavior
Cons
  • –Complex rule graphs take time to debug and maintain
  • –MIDI clock sync handling needs explicit configuration for each scenario
  • –High message rates can become CPU-sensitive with dense rule sets
  • –Port aliasing and naming hygiene requires consistent admin discipline
Use scenarios
  • Live performers

    Route multiple devices with rules

    Repeatable device plan

  • MIDI educators

    Test routing transformations

    Validated routing behavior

Show 2 more scenarios
  • Controller builders

    Trigger computer actions from MIDI

    MIDI drives apps

    Convert MIDI input into keystrokes and application commands using deterministic event scripts.

  • Music producers

    Remap controllers to DAW commands

    DAW-ready control data

    Translate knobs and pads into notes or control messages that a chosen DAW or instrument expects.

Best for: Fits when scripted MIDI translation must match message-level conditions across multiple virtual destinations.

#3

Audiobus

vertical specialist

iOS and iPadOS app router that supports MIDI routing between music apps and external devices.

8.6/10
Overall
Features8.6/10
Ease of Use8.6/10
Value8.6/10
Standout feature

Built-in MIDI monitor with per-port visibility for confirming channel and controller behavior during routing changes.

Audiobus maps MIDI flows by connecting app ports and virtual endpoints, which supports workflows that require translating controller moves and note streams between instruments. It includes routing configuration that can suppress unwanted MIDI echo and filter messages so only selected event types reach the target app. The MIDI monitor makes it practical to confirm channel, controller, and note behavior without leaving the routing environment.

A common tradeoff is that Audiobus is less suited for large, multi-device patchbay layouts where heavy automation via code and APIs is the core requirement. Audiobus fits best when a small set of apps needs reliable MIDI message routing and quick diagnostics while building an instrument chain.

Pros
  • +Graph-style routing between app ports and virtual endpoints
  • +MIDI monitor for verifying actual message flow in real time
  • +Message filtering and echo suppression per connection
  • +Fast iteration when building small instrument chains
Cons
  • –Limited fit for large multi-hardware patchbay graphs
  • –Deep automation needs more external tooling
  • –Troubleshooting can require careful port naming and mapping
  • –Advanced transformations need manual configuration and routing discipline
Use scenarios
  • Project studio producers

    Route controllers into synth app chain

    Cleaner performance control

  • Live performance setups

    Prevent MIDI feedback loops

    Stable stage routing

Show 1 more scenario
  • Sound designers

    Debug pitch and controller behavior

    Faster iteration

    Use MIDI monitor to verify which notes and control messages actually arrive after each routing change.

Best for: Fits when routing MIDI between a handful of macOS music apps needs quick validation and clean connections.

#4

Gig Performer

SMB

Live performance software with rackspace-based MIDI routing, processing, and plugin hosting.

8.4/10
Overall
Features8.4/10
Ease of Use8.3/10
Value8.5/10
Standout feature

Per-node routing graph processing with built-in MIDI monitor for tracing transformed events end to end.

Gig Performer’s core workflow centers on building a routing graph of nodes that process MIDI events before sending them to virtual MIDI ports or external hardware ports. It supports MIDI message filtering, translation, and mapping for controller changes and other event types, and it can merge multiple sources into one or more outputs without losing per-event intent. MIDI clock sync handling and timing-aware processing help when instruments must stay aligned across multiple devices. MIDI monitor views give direct visibility into what leaves each processing stage, which reduces guesswork when debugging multi-device routing.

Pros
  • +Routing graph supports multi-stage MIDI filtering and event translation
  • +MIDI monitor shows per-stage output to debug complex transformations
  • +Clock sync handling helps keep external devices aligned
  • +Virtual MIDI ports simplify connecting instruments and DAWs
Cons
  • –Graph configuration becomes time-consuming with many controller rules
  • –Deep routing behavior depends on users modeling event flow carefully
  • –Some edge cases require test sessions to confirm timing interactions
  • –Large setups can be harder to review than spreadsheet-based mappings
Use scenarios
  • Live keyboard performer

    Route controllers to multiple synths

    Consistent performance controls

  • Studio MIDI engineer

    Debug multi-device clock alignment

    Fewer synchronization issues

Show 2 more scenarios
  • Orchestral template builder

    Translate patch maps across setups

    Repeatable template routing

    Apply stable controller and mapping rules so sessions keep consistent behavior across instruments.

  • DAW-based system integrator

    Connect virtual ports to hardware

    Cleaner DAW-to-hardware flow

    Bridge MIDI between software instruments and external hardware using virtual MIDI ports and routing rules.

Best for: Fits when studios need deterministic MIDI routing and transformations across multiple instruments.

#5

MIDIHub

vertical specialist

Hardware-configured software environment for building MIDI routing, filtering, and transformation pipelines.

8.3/10
Overall
Features8.3/10
Ease of Use8.3/10
Value8.3/10
Standout feature

Routing graph editor with stage-based message translation plus MIDI monitor for verifying each hop in a complex chain.

MIDIHub from blokas.io is a visual MIDI routing tool aimed at building repeatable MIDI patchbays across DAWs and hardware setups. It provides a routing graph with virtual MIDI ports, message filtering, and translation stages that can reshape how notes, controllers, and system messages travel between endpoints.

Pros
  • +Routing graph makes multi-device signal paths auditable and easier to refactor
  • +Message filtering and translate stages support targeted transformations
  • +Clock sync and MIDI monitor simplify troubleshooting timing and stuck messages
  • +Configuration-centric workflow supports moving routing between machines
Cons
  • –Advanced setups can require careful channel and port naming discipline
  • –SysEx handling details are less obvious than note and controller routing
  • –Graph complexity grows quickly with many merge, split, and feedback paths
  • –Does not replace DAW audio routing tools for sample-accurate synchronization
Use scenarios
  • Studio producers

    Build reusable MIDI patchbays

    Consistent session routing

  • Hardware setup managers

    Reproduce routing across machines

    Same routing setup

Show 1 more scenario
  • Audio technicians

    Inspect clock sync behavior

    Timing issues reduced

    Validate timing by monitoring MIDI traffic while adjusting routing stages and filters.

Best for: Fits when studio rigs need a repeatable MIDI patchbay with inspection and clock-aware behavior across apps.

#6

AudioSwift MIDI Router

emerging

macOS app feature set that includes virtual MIDI control and routing from trackpad and remote input.

7.7/10
Overall
Features7.7/10
Ease of Use7.7/10
Value7.7/10
Standout feature

Session-scoped routing rules with built-in MIDI monitor makes debugging and iteration faster than manual patch changes.

AudioSwift MIDI Router focuses on fast, rule-based routing between virtual MIDI ports with an event-processor style pipeline. It maps MIDI messages with per-channel and per-controller logic, including translation of note and controller data, to reduce manual patching.

Pros
  • +Rule-based routing reduces manual virtual port patching
  • +Message filtering prevents unintended echoes into downstream devices
  • +Per-controller mapping supports detailed controller assignment workflows
  • +MIDI monitor view speeds up troubleshooting during session setup
Cons
  • –Routing graph complexity grows quickly for multi-stage chains
  • –Advanced features need careful configuration to avoid channel mismatches
  • –Sysex routing support is limited compared with dedicated MIDI utility suites
  • –Clock-related behaviors get fewer controls than clock-focused routers
Use scenarios
  • Studio engineers

    Route by channel and controller

    Controlled instrument input

  • Session template designers

    Keep routing consistent across sessions

    Less cabling changes

Show 2 more scenarios
  • MIDI integrators

    Translate notes and controllers

    Fewer manual steps

    Convert note and controller data via the pipeline to reduce manual patching between instruments.

  • Performance techs

    Monitor traffic during routing edits

    Fewer routing mistakes

    Use MIDI monitoring to confirm filtered output while changing routing filters and logic.

Best for: Fits when repeatable MIDI routing rules matter more than deep clock and SysEx specialization.

#7

mozaic

vertical specialist

AUv3 MIDI scripting environment on Apple platforms that can process and route MIDI between apps.

7.4/10
Overall
Features7.4/10
Ease of Use7.4/10
Value7.4/10
Standout feature

Node-based routing graph that keeps multi-step MIDI translate, filter, and merge stages connected in one configuration.

Mozaic is a desktop MIDI routing application that builds a node-based MIDI routing graph for translating, filtering, and merging events. It focuses on configurable routing logic for multiple virtual ports and hardware inputs, including channel-aware transforms and conversion steps used in studio setups.

Pros
  • +Graph editor makes routing logic legible across many virtual ports
  • +MIDI monitor views help trace messages through each routing stage
  • +Message filtering and translation steps fit complex controller workflows
  • +Saved routing configurations support repeatable studio patching
Cons
  • –Routing graphs can become hard to navigate when large
  • –Virtual port wiring still depends on external virtual cable tools
  • –No dedicated latency compensation layer for clock-driven pipelines
  • –Fine-grained governance controls for teams are limited
Use scenarios
  • Studio remixers

    Edit routing with a node graph

    Reusable routing presets

  • MIDI setup administrators

    Prevent feedback loops

    Stable monitoring

Show 1 more scenario
  • Live studio operators

    Combine multiple inputs safely

    Predictable multi-input flow

    Merge and route hardware inputs into multiple virtual ports with channel-aware transforms.

Best for: Fits when a studio needs saved MIDI routing graphs for repeatable controller and virtual-instrument patching.

#8

MIDIFlow

vertical specialist

macOS and iOS application for routing, filtering, remapping, and monitoring MIDI streams.

7.3/10
Overall
Features7.3/10
Ease of Use7.3/10
Value7.3/10
Standout feature

Ordered routing blocks with a built-in MIDI monitor makes it practical to validate complex translation and filter chains.

MIDIFlow provides a visual event-processor workflow for routing MIDI across virtual ports, hardware ports, and instrument inputs. It includes message filtering and translation steps that can remap channels, translate controllers, and forward SysEx without requiring a DAW-specific routing layer.

Pros
  • +Visual event graph makes multi-step routing logic easy to trace
  • +Message filtering and translation blocks cover common remap workflows
  • +SysEx passthrough works as part of the same routing chain
  • +MIDI monitor output helps verify routing changes in real time
Cons
  • –Clock handling support is limited for advanced MIDI sync scenarios
  • –Deep chaining across many ports can increase routing latency
  • –Channel multiplexing and note-priority logic require careful ordering
  • –Extensibility depends on adding separate nodes for edge workflows
Use scenarios
  • DAW-light setups

    Route across virtual and hardware ports

    DAW-independent routing

  • MIDI power users

    Remap channels and controllers

    Correct target mappings

Show 2 more scenarios
  • Synth technicians

    Forward SysEx through chains

    Vendor messages preserved

    Include SysEx-capable forwarding in routed graphs so instrument vendor messages reach targets.

  • Mix and session validators

    Inspect behavior during graph edits

    Faster troubleshooting

    Validate routing output while adjusting graphs using monitor-style inspection tools.

Best for: Fits when studio routing needs a visual patchbay for translate, filter, and monitor workflows.

#9

MIDI Lab

open-source

Open-source MIDI monitor and router used for inspecting and forwarding MIDI messages.

6.9/10
Overall
Features6.9/10
Ease of Use6.9/10
Value6.9/10
Standout feature

Per-routing message rules let controller mapping and filtering apply only to the intended destination path.

MIDI Lab provides a routing layer that connects MIDI input ports to destinations and then applies per-path transformations such as message filtering and control mapping. It is designed for repeatable studio routing where controllers, virtual instruments, and external hardware need consistent behavior across sessions. Routing is expressed as connected flows between ports, which makes it easier to reason about where events originate and where they end.

Pros
  • +Rule-based message filtering prevents unrelated controller traffic
  • +Controller mapping supports practical translation from hardware to instruments
  • +Port-to-port chaining keeps routing behavior readable and repeatable
  • +Event monitoring helps diagnose mapping and routing errors
Cons
  • –Graph complexity grows quickly for multi-device routing topologies
  • –Less suited for advanced sync tooling beyond typical routing needs
  • –SysEx workflows are limited compared with dedicated MIDI utility suites
  • –Virtual port planning can be a prerequisite for larger setups
Use scenarios
  • Live DJ operators

    Hardware controller maps into Mixxx parameters

    Stable mappings during sets

  • Project studio engineers

    Route controller lanes to virtual instruments

    Repeatable sessions across reboots

Show 1 more scenario
  • MIDI techs

    Debug why a controller control misfires

    Faster issue isolation

    Monitoring patterns help confirm which messages reach the mapping rules and which are dropped.

Best for: Fits when Mixxx-based studios need deterministic controller translation and message-level filtering.

Conclusion

After evaluating 9 midi routing software, LoopMIDI stands out as our overall top pick — it scored highest across our combined criteria of features, ease of use, and value, which is why it sits at #1 in the rankings above.

Our Top Pick
LoopMIDI

Use the comparison table and detailed reviews above to validate the fit against your own requirements before committing to a tool.

Frequently Asked Questions About Midi Routing Software

How does Gig Performer handle deterministic MIDI transformations compared with mozaic’s saved routing graphs?
Gig Performer routes through an internal event processor that applies filter, transform, and sequence behavior per port and channel before output. mozaic focuses on a node-based routing graph saved as reusable configurations, so changes typically involve graph edits and reloads rather than continuously evaluated deterministic execution.
Which tools provide a built-in MIDI monitor for validating routed messages on virtual ports?
Audiobus includes per-port MIDI monitor views that show what each virtual connection is receiving and sending. Gig Performer and MIDIHub also ship with MIDI monitor-style inspection so the transformed event path can be checked at each routing hop.
When do LoopMIDI and Bome MIDI Translator Pro differ in what they can route without a DAW-specific layer?
LoopMIDI concentrates on creating and reopening virtual MIDI ports for OS-level Thru chaining, so routing is mostly about port connections. Bome MIDI Translator Pro performs scripted event processing with conditional callbacks, which supports complex filtering and translation where simple Thru-style patching cannot match incoming message conditions.
What breaks if SysEx transmission is required for an instrument workflow that also needs controller mapping?
Bome MIDI Translator Pro can translate and forward vendor-specific SysEx as part of scripted rules, which keeps both controller mapping and SysEx transmission in the same pipeline. Tools that treat routing as mostly port-to-port Thru, like LoopMIDI, may still pass SysEx through if the OS route is wired correctly, but they do not provide the same per-message translation logic for controller-to-message coupling.
Which applications are better suited for merge plus translate workflows without manual cabling changes?
MIDIFlow uses ordered routing blocks that combine merge and translation steps while keeping execution order explicit. AudioSwift MIDI Router also supports rule-based routing with monitoring, but its emphasis is on fast rule application and configurable filters rather than a block-ordered graph for complex merge chains.
How does MIDI Lab’s chain-style configuration affect deterministic controller translation in Mixxx-based studios?
MIDI Lab builds routing chains driven by explicit port-to-port links and per-message rules so controller translation stays predictable during rehearsals. Gig Performer can also filter and transform per port and channel, but MIDI Lab’s configuration model is optimized for the Mixxx-style workflow pattern.
When do clock-aware routing checks matter, and which tools expose timing validation features?
Gig Performer includes timing features and MIDI monitor visibility to keep note streams aligned during merges and transformations when clock sync is in play. MIDIHub pairs clock sync support with inspection so routed traffic can be validated during project-like configuration changes.
What security and admin control gaps typically appear when building multi-user studio setups?
GUI-only routing tools like mozaic and AudioSwift MIDI Router focus on configuration and inspection, but they do not inherently define RBAC or audit log controls for shared systems. For permissioned environments, RBAC and audit logging usually require OS-level account governance plus configuration file access controls rather than a built-in admin model inside the router.
How does data migration work when moving a saved routing configuration between machines?
MIDIHub’s project-like setups are designed around configuration files that can be recreated on another machine. mozaic also saves routing graphs for repeatable patching, while LoopMIDI relies on virtual port creation and reopening behavior that can change port availability after restarts if applications reconnect at different times.

Tools reviewed

Primary sources checked during evaluation.

Referenced in the comparison table and product reviews above.

How to Choose the Right Midi Routing Software

Options differ most in how they move MIDI reliably: our main separator is integration depth around routing configuration, plus whether you can control timing and transformation behavior without surprises. If you care about what changes when you press play, start with the criterion labeled MIDI path behavior.

Routing configuration flexibility

Why it matters

Routing configuration flexibility matters because each setup labels channels, ports, and targets differently, so the tool that fits your workflow avoids constant rebuilds. When routing rules are easy to express, you can test ideas faster during a session.

How to check

Open a demo project and change a single source-to-destination path. Verify you can update it using the same workflow you would use day-to-day, not a workaround.

MIDI path behavior

Why it matters

MIDI path behavior is what determines what actually happens to notes, controllers, and timing when they traverse a chain. Two tools can look similar on paper but differ in what gets passed, transformed, or dropped.

How to check

Route one controller message and one note from an input to a target, then observe what reaches the output using the app’s diagnostics or logging. Try removing a rule and confirm whether the output fully reverts.

Clock and sync handling

Why it matters

Clock and sync handling matters when multiple devices must start together and stay aligned during playback. If sync is inconsistent, you’ll hear drift even when routing is correct.

How to check

Start playback in a sender and watch whether the receiver locks consistently after a stop/start cycle. Ask the vendor/demo to show sync behavior when one side starts late.

Session configuration persistence

Why it matters

Session configuration persistence matters because you’ll likely revisit the same routing layouts across projects. If settings reset or re-map on restart, you lose time and can send wrong MIDI to the wrong destination.

How to check

Configure a routing path, then reload the app or reopen the project. Confirm the same ports and routes are selected without manual reassembly.

MIDI transformation options

Why it matters

MIDI transformation options determine whether you can adapt one controller or keyboard layout to different instruments without external scripting. You want clear, predictable mapping so changes during a set don’t break expressive control.

How to check

Demonstrate a rule that changes how incoming messages are interpreted before they reach the output. Verify behavior across at least two message types (for example, notes and one controller).

Monitoring and diagnostics

Why it matters

Monitoring and diagnostics matters because routing problems often look like “nothing happened.” The right tool shows what was received, what was routed, and where it was altered so you can fix issues quickly.

How to check

Trigger events and use the app’s live view or logging to confirm the message’s path. Ask what information is recorded when a route is disabled or misconfigured.

Red flags

  • Routes change but the actual output does not match the displayed rule
  • Sync locks in one direction but drifts or fails after stop/start
  • Reloading a session breaks port selection or removes rules

Fit by situation

  • If you switch projects often and rely on repeatable setups, prioritize Session configuration persistence.
  • If you’re debugging why a controller doesn’t affect the target, prioritize Monitoring and diagnostics.
  • If your studio uses multiple clock sources and frequent start/stop, prioritize Clock and sync handling.
Commissioned Research

Funding and competing interests

This study was co-funded by several of the vendors assessed in it. No single vendor funded it. Funders could propose the market studied.

They had no role in selecting vendors, setting or weighting criteria, analysing data or drawing conclusions, and they received the same factual-accuracy check as every other vendor assessed.

Market definition, inclusion rules and criteria weights were fixed by an editor before research began and did not change afterwards. Editorial process →

Keep exploring

FOR SOFTWARE VENDORS

Not on this list? Let’s fix that.

Our best-of pages are how many teams discover and compare tools in this space. If you think your product belongs in this lineup, we’d like to hear from you—we’ll walk you through fit and what an editorial entry looks like.

Apply for a Listing

WHAT THIS INCLUDES

  • Where buyers compare

    Readers come to these pages to shortlist software—your product shows up in that moment, not in a random sidebar.

  • Editorial write-up

    We describe your product in our own words and check the facts before anything goes live.

  • On-page brand presence

    You appear in the roundup the same way as other tools we cover: name, positioning, and a clear next step for readers who want to learn more.

  • Kept up to date

    We refresh lists on a regular rhythm so the category page stays useful as products and pricing change.