You are browsing as a guest. Sign up (or log in) to start making projects!

Open comments for this post

7h 17m 45s logged

Kadent — A DAW with custom language to create synths and effects

Refactored project strucure

As my codebase became bigger, it started to be a bit complicated, so I’ve refactored the codebase. New folder structure is consist of four directories in src/ directory: commands, core, storage, and ui.
commands directory contains the audio engine communication logic. It has some functions like add_note that adds a new note to the specified track and sends the updated project to the audio thread.
core directory contains KASLNode implementation and some metadata. KASLNode is a specific node that can literally execute KASL programs. Metadata is a data that are not necessarily tied to audio engine. It includes track colors, track names, region names, etc.
storage directory contains some implementation for storing and loading files. It has a logic to save and load the Kadent project file.
ui directory contains the UI implementation. Inside the ui directory, there are components, theme, and workspaces directories. components directory has some common UI parts used in various parts of the DAW. theme defines colors and size used in the UI. workspaces contains the UI implementation for the editor and the splash screen.

Splash screen

I’m currently implementing a splash screen for Kadent. It used to have just two buttons to create or open a project. I’ve just finished implementing “Recent Projects” list. (shown on the right side)

0
1

Comments 0

No comments yet. Be the first!