CLIWave banner

CLIWave

4 devlogs
4h 42m 4s

CLIWave is a DAW (digital audio workstation) built entirely in terminal, and it is relatively lightweight. This DAW has features to record tracks, record over those tracks loop things and more.

Repository

Loading README...

samhith (dont ooc)

Add export mixdown and user-configurable directories

  • Add user prompts for recording and export directories in session setup
  • Implement full-song mixdown export with multi-track mixing
  • Add ‘E’ key to export all tracks to single stereo WAV file
  • Use miniaudio decoder for reading segments during mixdown
  • Apply normalization to prevent clipping in mixed output
  • Update recording path to use user-specified directory
  • Add file/directory helper functions (ensureDir, joinPath, baseName, copyFile)
  • Fix ma_decoder_read_pcm_frames call to use 4-arg signature (oh my gosh this was a pain)
  • Update function signatures to pass recordDir/exportDir through session flow
Attachment
0
samhith (dont ooc)

I’m planning on adding a live visualiser next for the actual audio aspect of this.
But here’s what I have worked on so far:

  • I integrated the recording aspect with the tracks and made it so that you can record and add it to tracks and play it back!
  • I did some optimization and spent like 30 minutes fixing a mistake that I made regarding linking C and C++ with a header file and then went into a wikipedia deep dive about function overloading.
Attachment
0
samhith (dont ooc)

I added basic audio functionality (hackatime is being weird and only adding 40 minutes on this devlog, but It’s alright though). This audio functionality just includes a basic test right now and I am yet to link it with the rest of my code and add a way to actually record, I’m 99% sure that’s a job that takes like ~30 minutes just because of how smoothly everything works and how easy the awesome library that I am using is to use. Check out my recent commit on my GitHub for this project to see which library (its really just one header file in the dependencies folder).

Attachment
0
samhith (dont ooc)

I added:

  • Basic functionality to the main menu and the actual DAW itself.
  • You can make a session (like a project/song) and navigate around the basic interface.
  • No recording or actual sound interface yet, it’s just a basic UI that I got going here.
  • Sessions don’t actually get stored anywhere, thinking of making a file format for that, so that you can load them in that would be neat.
  • You can change basic project settings, but buffer length currently does nothing.
  • Exit option works too, it just quits the program (what else would it do).
1

Comments

Charmunk
Charmunk 3 months ago

woahh cool