Browse Source

Add TSchmittTrigger. Update/clean up changelog.

tags/v1.0.0
Andrew Belt 5 years ago
parent
commit
1aa351cecc
5 changed files with 36 additions and 16 deletions
  1. +10
    -9
      CHANGELOG.md
  2. +19
    -0
      include/dsp/digital.hpp
  3. +1
    -1
      include/dsp/midi.hpp
  4. +1
    -1
      src/app/MenuBar.cpp
  5. +5
    -5
      src/window.cpp

+ 10
- 9
CHANGELOG.md View File

@@ -1,9 +1,9 @@

### 1.0.0 (in development)

- Add undo/redo history
- Add polyphonic cables
- Add multithreading to engine
- Add undo/redo history
- Add module expander support
- Add parameter labels, units, and descriptions
- Add parameter tooltips for quickly viewing parameter values
@@ -33,22 +33,23 @@
- Add `-p X` flag for dumping a screenshot of each available module

- Core
- Add Core CV-MIDI, CV-CC, and CV-Gate for sending MIDI to external devices
- Add Core MIDI-Map for mapping MIDI CC parameters directly to Rack parameters
- Add polyphony to Core MIDI-CV
- Add MPE mode to Core MIDI-CV
- Add Audio-16 with 16/16 inputs/outputs
- Add CV-MIDI, CV-CC, and CV-Gate for sending MIDI to external devices
- Add MIDI-Map for mapping MIDI CC parameters directly to Rack parameters
- Add polyphony to MIDI-CV
- Add MPE mode to MIDI-CV
- Add "Panic" button to all MIDI modules to reset performance state
- Add Core Audio 16

- API
- Plugin API
- Add [`helper.py`](helper.py) for creating and manipulating plugins with the command-line
- Add [`simd.hpp`](include/dsp/simd.hpp) for generically handling arithmetic and math functions for vectors of floats, accelerated with SSE
- Add `dsp::VuMeter2`
- Add `dsp::Timer` and `dsp::Counter`
- Overhaul event system with many new events
- **TODO** Make audio driver use the same RtAudio device for multiple audio ports
- etc
- etc. See more at https://vcvrack.com/manual/Migrate1.html.

- Licenses
- Relicense Rack to GPLv3 with the VCV Rack Non-Commercial Plugin License Exception and a commercial licensing option.
- Collect all license statements into new [LICENSE.md](LICENSE.md) file
- License Core panel graphics under CC BY-NC-ND 4.0



+ 19
- 0
include/dsp/digital.hpp View File

@@ -61,6 +61,25 @@ struct SchmittTrigger {
};


template <typename T>
struct TSchmittTrigger {
T state;
TSchmittTrigger() {
reset();
}
void reset() {
state = T::mask();
}
T process(T in) {
T on = (in >= 1.f);
T off = (in <= 0.f);
T triggered = ~state & on;
state = on | (state & ~off);
return triggered;
}
};


/** When triggered, holds a high value for a specified time before going low again */
struct PulseGenerator {
float remaining = 0.f;


+ 1
- 1
include/dsp/midi.hpp View File

@@ -116,7 +116,7 @@ struct MidiGenerator {
if (ccs[id] == cc)
return;
ccs[id] = cc;
// Control change
// Continuous controller
midi::Message m;
m.setStatus(0xb);
m.setNote(id);


+ 1
- 1
src/app/MenuBar.cpp View File

@@ -637,7 +637,7 @@ struct PluginsMenu : ui::Menu {
loggedIn = true;

UrlItem *manageItem = new UrlItem;
manageItem->text = "Manage";
manageItem->text = "VCV Store";
manageItem->url = "https://vcvrack.com/plugins.html";
addChild(manageItem);



+ 5
- 5
src/window.cpp View File

@@ -340,12 +340,12 @@ void Window::run() {
}

// Get desired scaling
float pixelRatio;
glfwGetWindowContentScale(win, &pixelRatio, NULL);
pixelRatio = std::floor(pixelRatio + 0.5);
if (pixelRatio != this->pixelRatio) {
float newPixelRatio;
glfwGetWindowContentScale(win, &newPixelRatio, NULL);
newPixelRatio = std::floor(newPixelRatio + 0.5);
if (newPixelRatio != pixelRatio) {
APP->event->handleZoom();
this->pixelRatio = pixelRatio;
pixelRatio = newPixelRatio;
}

// Get framebuffer/window ratio


Loading…
Cancel
Save