Overview
modernGraphTool is a Single Page Application (SPA) based on modern web technologies, designed for visualizing and analyzing Frequency Response (FR) data.
Why modernGraphTool?
modernGraphTool was directly inspired by CrinGraph, which appeared in 2019 and has long been used as a standard tool for visualizing frequency response data. Even now, CrinGraph is widely used and loved for visualizing and comparing FR data.
However, as time went by, those who operating databases gradually needed more complex and diverse functions. Custom HRTF targets with their own preference adjustments are a prime example.
Unfortunately, CrinGraph was not designed with extensibility in mind from the initial design stage, leading to fragmentation issues where numerous derivative versions emerged as users added their own features.
This made code maintenance extremely difficult and made it almost impossible for users without programming knowledge to add new features or import features from other versions.
modernGraphTool aims to solve these problems, inheriting the core features of CrinGraph while introducing modern techniques and a modular design to significantly enhance stability and extensibility.
Core Principles
Expandable Design
One of the biggest features of modernGraphTool is its architecture, which is divided into 'Core' and 'Extension'.
- Core: Provides core functionalities including frequency response data processing and graph visualization.
- Extension: Additional features such as AutoEQ and target preference adjustment tools can be implemented as independent modules. Users can safely add or remove Extensions as needed.
In the existing CrinGraph, nearly all functions were integrated into a single script, so a small mistake could lead to the malfunction of the entire program.
On the other hand, in modernGraphTool, even users without background knowledge can easily add or remove features, and it is designed so that even if they make some mistake, it won't affect the Core functions.
Easy-to-Use Design
Some CrinGraph derivative versions had problems with UI complexity as various features were added.
Numerous horizontal scroll areas with long list of buttons often impaired usability in mobile environments.
modernGraphTool focuses on user interface (UI) and user experience (UX) design to be intuitive and convenient in both desktop and mobile environments, while providing powerful extensibility.
Compatibility with Existing Programs
modernGraphTool fully supports the folder structure and file format of FR data used in the existing CrinGraph.
Therefore, you can load the data from your existing CrinGraph directly into modernGraphTool, and compatibility with squig.link
is also ensured through Extensions.
Features
Frequency Response Graph Visualization
- Normalization options - (Hz / Midrange Average (300Hz~3kHz))
- Smoothing options - (1/48oct ~ 1/3oct)
- Custom HRTF Target support via extension (with Tilt & Preference Adjustment)
Headphone / Target Selector
- Search headphones by name or brand
- Headphone / target compensation (set as baseline)
- Compatible with CrinGraph file structure (phone_book & target_manifest)
Graph Tools
- Share with URL (+ Base62 encoding support)
- Save Frequency Response graph screenshot
User Interface & Customization
- Multi-Language & Dark Mode support
- User configurable elements (Link, Watermark..)
- Based on 'Material Design 3' color palette (+ Theme Generator)
Expandability
- API-based extension system
- User configurable extension
Available Extensions
This section lists the extensions that are pre-loaded with modernGraphTool.
Name | Description |
---|---|
device-peq | A bridge extension that integrates devicePEQ plugin by jeromeof |
equalizer | A equalizer panel with AutoEQ functionality |
frequency-tutorial | Frequency range tutorial for beginners |
graph-color-wheel | A rudimentary implant for customizing color and appearance of graphs |
preference-bound | Customizable preference bound overlay |
squiglink-integration | A bridge extension that integrates squig.link functionality (search other databases, hints, and more) |
target-customizer | A target customizer panel with Tilt & Preference Adjustment functionality |