Module Bar
The Module Bar is a categorized library of preset and custom modules that you can drag onto the workspace.
Overview
Located below the top bar, the Module Bar displays:
- Categories: Organized groups of modules (Intervals, Chords, Melodies, Custom)
- Module icons: Draggable items representing each module
- Add/Delete controls: Manage your module library
Categories
Built-in Categories
| Category | Description |
|---|---|
| Intervals | Single intervals (octave, fifth, third, etc.) |
| Chords | Common chord voicings (major, minor, etc.) |
| Melodies | Example sequences including TET scales |
| Custom | Your personal module library |
Category Controls
- Expand/Collapse: Click a category name to show/hide its modules
- Reorder: Drag categories to change their order
- Add Category: Click the "+" button to create a new category
- Delete Category: Click the red "×" on a category to remove it (and its modules)
WARNING
Deleting a category removes all modules within it. This action cannot be undone.
Using Modules
Loading a Module
- Find the module you want in the Module Bar
- Drag the module icon onto the workspace
- Release to load the module
The current workspace content is replaced with the loaded module.
Module Preview
Hover over a module icon to see:
- Module name
- Brief description (if available)
Managing Modules
Adding Modules to the Library
- Find the category where you want to add the module
- Click the "+" icon (add placeholder) in that category
- Select a JSON file from your computer
- The module appears in the category
Removing Modules
- Click the red "×" on any module icon
- Confirm the deletion
- The module is removed from the library
Reordering Modules
- Click and hold a module icon
- Drag to a new position within the same category or to a different category
- Release to place the module
Creating Custom Categories
- Click "Add Category" button
- Enter a name for the category
- The new category appears in the Module Bar
- Add modules by dragging or using the "+" placeholder
Persistence
Automatic Saving
The Module Bar state is saved to your browser's LocalStorage:
- Category order
- Module positions within categories
- Custom modules added
Auto-save interval: Every 30 seconds
Manual Save/Load
- Save UI: Export your entire Module Bar configuration to a JSON file
- Load UI: Import a previously saved configuration
- Reload Defaults: Reset to the original factory configuration
TIP
Use "Save UI" before clearing browser data to preserve your custom module organization.
Resizing
The Module Bar can be resized:
- Find the pull tab at the bottom of the Module Bar
- Drag up or down to resize
- The workspace adjusts accordingly
File Locations
For local development, modules are stored in:
public/modules/
├── intervals/
│ ├── index.json
│ ├── octave.json
│ └── ...
├── chords/
│ ├── index.json
│ ├── major.json
│ └── ...
├── melodies/
│ ├── index.json
│ ├── TET-12.json
│ └── ...
├── custom/
│ ├── index.json
│ └── ...
└── defaultModule.json1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Adding Modules Permanently
To add a module that persists across all users:
- Create your module JSON file
- Place it in the appropriate category folder (e.g.,
public/modules/custom/) - Edit that category's
index.jsonto reference your file:
json
{
"custom": [
{ "file": "my-module.json", "label": "My Module" }
]
}1
2
3
4
5
2
3
4
5
- Restart the dev server or refresh the app
Tips
- Organize by workflow: Create categories for different projects or styles
- Use descriptive names: Clear labels make finding modules easier
- Back up regularly: Use "Save UI" to preserve your library
- Start from presets: Load an existing module and modify it rather than starting from scratch