Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sampler implementation #131

Open
14 of 23 tasks
jmidt opened this issue Aug 12, 2019 · 1 comment
Open
14 of 23 tasks

Sampler implementation #131

jmidt opened this issue Aug 12, 2019 · 1 comment
Assignees

Comments

@jmidt
Copy link
Member

jmidt commented Aug 12, 2019

The samplers are controlled by the sequencer. Basically, this exists to play back a simple sample, with some basic editing and visualization. There are two screens, the sampler screen and the envelope screen. The envelope screen is reached by pressing the sampler button and then the envelope button. The centerpiece of the visualization is a zoom-able waveform.
GFI marks a Good First Issue.

  • Sampler screen
    • Filter
    • Playback speed
      • reverse (toggle with encoder click)
    • Sample selection
      • Basic single-encoder selection
      • GFI Real menu with folders
        • Tags?
        • Select kits or select types? (808->snare vs snares->808)
    • Collapse envelope to single line (with yellow/red segments) on sampler screen
      • GFI Animate this
  • Envelope screen
    • Begin/End, Fade-in/out
    • Draw envelope under waveform like a reflection
  • Waveform (for both screens)
    • Draw fades. Stationary endpoints, only waveform zooms.
    • Finish zoom algorithm (run build/bin/test Waveform)
    • Draw waveform in top half, same position on both screens
  • Change start/end point props to ints counting samples. Step by some fixed amount. Reset on sample change.
    • Shift + encoder turn lower/higher resolution
  • Benchmark
    • with/without filters? Lo+Hi vs. BP?
    • Waveform view generation. start/mean/max
@jmidt jmidt self-assigned this Aug 14, 2019
@jmidt
Copy link
Member Author

jmidt commented Aug 28, 2019

Sometimes, the sampler will output NaN's or Inf's, causing ALSA to throw a fit and stop all audio output.

  • 1: Put a bit of code in the AudioManager that checks and shows an error if any frames are not valid numbers. Change frame to 0 if this happens. Should only happen on debug builds!
  • 2: Actually find the source of the bug and fix it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant