Skip to content

Latest commit

 

History

History
210 lines (173 loc) · 12.7 KB

meeting-notes.md

File metadata and controls

210 lines (173 loc) · 12.7 KB

2022-06-08

Meeting

2022-05-11

Meeting

  • Cwits: Implemented the timing of MIDI events using a combination of precise sleep with nanosleep() & a bit of busy wait. For next meeting will try to fix a crash that’s probably caused by a race condition.
  • Fotis: https://github.com/DISTRHO/Cardinal & https://aria.dog/barks/why-i-will-never-create-modules-for-vcv-rack-anymore/. For next meeting will study about sound engines combining sampling & synthesis.
  • Leandro: Reading A Tour of C++, by Bjarne Stroustrup. Recommended for experienced programmers with a foot in programming-language theory who want to get up to speed in C++ relatively fast. For next meeting will finish reading the book and start applying the knowledge to the Automixer.
  • Bo: Following along The Audio Programmer’s JUCE tutorials. Got stuck because of a couple syntax issues & a misnamed class, but back on track now. We talked about classes, inheritance, and namespaces. For next meeting will continue with the tutorials.

2022-05-11

Meeting

2022-04-26

Meeting

2022-04-13

Meeting

2022-03-29

Meeting

  • Unusual meeting because some people were busy and we wanted to catch https://www.youtube.com/watch?v=gnbSMmTiDxk
  • Leandro’s progress:
    • Ergonomics: Having to close and reopen REAPER to load a new version of a VST.
      • Tale told me a probable reason for this: REAPER keeps the VST loaded in memory; on Windows one isn’t even able to overwrite the VST file while a DAW has it open.
      • Tried to get the plugin to load in Live, just to check. But Live doesn’t pick it up. Probably because Xcode puts it under ~/Library/Audio/Plug-ins/, instead of /Library/Audio/Plug-ins/ 🤷
    • Plugin still crashes REAPER from time to time.
    • Using Tale’s trick of outputting RMS as audio, it turns out that RMS computation is wrong! 🤷
    • Plugin delays on different automixed tracks could be an issue!

2022-03-15

Meeting

2022-03-02

Meeting

2022-02-15

Meeting

  • We talked about our goals.
    • Fotis: Learn how synthesizers work, for example, what makes a synth from brand X different from brand Y. Explore CLAP.
    • Victor: Learn how the mathematics, music, and code come together. Build a custom livelooping that works well for accompanying monophonic instruments (flute).
    • Tom: Build a standalone application with PulseAudio, instead of a plugin that’s loaded into a DAW. Build delays & reverbs for guitar. Build an instrument similar to theremin that’s controlled with something like a Leap Motion.
    • Cwits: Learn how the mathematics, music, and code come together. Build basic plugins like delays.
    • Leandro: Develop a version of his Automixer that works in every DAW.
  • We reported success in building the basic example code given by APIs/frameworks of choice.
  • We looked at the basic example code generated by Projucer and discussed the lifecycle of a plugin and some C++.
  • We chose a task that will take us towards our goals that’s small enough we can finish it until next meeting (2022-03-01).

Links

2022-02-01

Meeting

We started by introducing ourselves. We have some people who are new to programming, and so people who are authors of C++ programming books(!)

Logistics

We’ll meet every 15 days for about 1~1.5h. We’ll communicate on Discord, Skype, and over here on this GitHub repository, where we’ll also share the code we end up writing.

Materials

Goals for Next Week

  • Setting an objective. Examples: Making a synthesizer, making a compressor, contributing to an existing open-source project, learning how a reverb works.
  • Digital Signal Processing:
    • Have a basic understanding of Digital Audio Workstations (DAW) and what some audio effects do: EQ, compression, delay, reverb, distortion, and so forth.
    • Understand how digital audio is represented: floating points, sampling rates, bit depths, frequency, amplitude, audio-to-digital conversation and digital-to-audio conversion, DC, Nyquist frequency, aliasing, time-domain vs frequency domain, and so forth.
    • How to make sense of what’s displayed in an oscilloscope (time-domain) and on a frequency spectrum analyzer (frequency domain).
    • Get a point where the first chapter of Designing Audio Effect Plug-Ins in C++ makes sense.
  • Programming:
    • Setting up a project for an audio plugin, getting it to compile, and running it inside a DAW. Either using JUCE or something else.