Skip to content

stanford-stagecast/proleptic

Repository files navigation

Compile

Overview

  • src/: standalone binaries and demos
  • src/graph/: svg generation for the web interface
  • src/libsimplenn/: the public interface of simplenn
  • src/nn/: the core neural network code, including inference and training
  • src/tests/: unit tests
  • src/util/: helpful classes/structures used elsewhere
  • src/audio/: classes used for audio synthesis and talking to ALSA devices
  • src/dbus/: code to claim exclusive use of an audio device
  • src/stats/: a task that periodically prints runtime info and timing
  • src/frontend/: user-invoked programs (originally part of the synthesizer)

Setup

  1. Clone the repo and enter it: git clone git@github.com:stanford-stagecast/proleptic.git && cd proleptic
  2. Initialize CMake: cmake -S . -B build

Common Tasks

  • Building: cmake --build build
  • Building in parallel: cmake --build build --parallel
  • Formatting: cmake --build build --target format
    • or use git clang-format when you have staged changes
  • Testing: cmake --build build --target check
    • or run ctest --test-dir build
  • Running the audio synthesizer: ./build/src/frontend/synthesizer-test [device_prefix] [midi_device] [sample_directory]
    • On the snr-piano machine:
      • device_prefix: Scarlett
      • midi_device: /dev/snd/midi*
      • sample_directory: /usr/local/share/slender/samples/

If you want to use a compiler other than the default, delete your build directory, then redo the initialization step with CC and CXX set appropriately:

  • CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake -B build

CMake has the following configs set up:

  • Debug
  • Release
  • DebugASan

Repository Checks

Current checks:

  • tests pass in DebugASan and Release modes
  • code is correctly formatted, according to clang-format
  • linear history
  • only branches with all checks passing can be pushed to main

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9