Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions docs/feature-schema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Feature Schema – MusicBlocks-v4

## Overview
This document outlines the features to be implemented in Music Blocks v4 (MBv4). It details brick interactions, user interface enhancements, and implementation strategies.

## Discussion Topics

### Core Requirements for Programs
- Identifying the basic functional needs for MB-v4 programs.

### Bricks: Structure and Interactions

#### Linking and Moving Bricks
- Drag-and-drop functionality will be used for connecting and rearranging bricks.
- Some bricks can connect sequentially, while others require nesting.
- Return statements and certain blocks should not accept connections below them.
- Bricks requiring specific functionalities must be linked to the correct compatible component.

#### Connection Points and Validations
- Bricks have designated connection points:
- Some handle arguments (incoming/outgoing).
- Some handle instructions (execution flow).
- Invalid connections must be restricted to prevent logical errors.
- Certain bricks have predefined values and should only accept valid selections.

### User Interaction Enhancements

#### Workspace and Brick Organization
- Users can drag bricks from a structured list into the workspace.
- Right-clicking a brick will open a menu with the following options:
- Duplicate, Close, Extract, Delete, Help.
- Bottom-right controls include:
- Fold/unfold workspace content for better visibility.
- Fold/unfold individual bricks to reduce clutter.
- An auto-arrange feature will be implemented to organize bricks in a structured manner(Home).

#### Visual Customizations
- Bricks will have distinct colors, sizes, and customization options.
- The brick list will be categorized by function.
- Hovering over bricks will highlight them with different colors.
- Some arguments will have labels, while others will not.
- Horizontal Scrolling feature can be enabled as default for MusicBlocks-v4.

#### Defining Features and Implementation Strategy

- A comprehensive feature list will be compiled from a user perspective.
- This list will be referred to as "Stories," detailing various user interactions.
- A group of related stories will be categorized as an "Epic," representing a major milestone.

## Next Steps
- Finalize the list of bricks and their properties.
- Create an initial set of Stories to outline user interactions.
- Define the first Epic, grouping key functionalities for structured implementation.