Helm - a free polyphonic synth with lots of modulation



Helm is a free, cross-platform, polyphonic synthesizer that runs on GNU/Linux, Mac, and Windows as a standalone program and as a LV2/VST/AU/AAX plugin. Release is in beta so there are outstanding bugs. Please send any bugs found to [email protected]


Go to tytel.org/helm for builds.


If you want to build AAX plugins You'll need its SDK located in ~/srcs
For AU on the Mac you'll want to put the CoreAudio SDK in /Applications/Xcode.app/Contents/Developer/Extras/CoreAudio
Nothing extra is needed for building VST/LV2 plugins


To build and install the standalone, lv2 and vst plugin:

sudo make install

Other make commands:

# Build just the Linux standalone executable:
make standalone

# Build just the Linux LV2 plugin:
make lv2

# Build just the Linux VST plugin
make vst

# Install just the Linux standalone executable:
sudo make install_standalone

# Install just the Linux LV2 plugin:
sudo make install_lv2

# Install just the Linux VST plugin
sudo make install_vst

The standalone executable is built to standalone/builds/linux/build and installed to /usr/bin The LV2 plugin is built to builds/linux/LV2 and installed to /usr/lib/lv2 The VST plugin is built to builds/linux/VST and installed to /usr/lib/lxvst


Open /standalone/builds/osx/Helm.xcodeproj for standalone version
Open /builds/osx/Helm.xcodeproj for plugin versions


Open /standalone/builds/vs15/Helm.sln for standalone version
Open /builds/vs15/Helm.sln for plugin versions


  • 32 voice polyphony
  • Interactive visual interface
  • Powerful modulation system with live visual feedback
  • Dual oscillators with cross modulation and up to 15 unison oscillators each
  • Sub oscillator with shuffle waveshaping
  • Oscillator feedback and saturation for waveshaping
  • 12 different waveforms
  • Blending between 12 or 24dB low/band/high pass filter
  • Low/Band/High Shelf filters
  • 2 monophonic and 1 polyphonic LFO
  • Step sequencer
  • Lots of modulation sources including polyphonic aftertouch
  • Simple arpeggiator
  • Effects: Formant filter, stutter, delay, distortion, reverb

alt tag

  • ARM support

    ARM support

    I was hoping to try Helm out under Arch Linux on my Banana Pi. I realise its only got a (dual-core) 1 Ghz ARMv7 CPU so I think I'll be lucky to get more than a couple of instances of Helm running on it, if that. It'd be cool if I can just use 1 instance of Helm as then I could then potentially use it as a live instrument. A more realistic ARM platform would be something like one of the 64 bit AArch64 Nvidia Shield devices - they compete quite well with i3 machines I believe.

    I can probably (hopefully) just hack the current makefiles to remove the sse2 flags but if Helm can't get ARM NEON support any time soon then it would be nice if it could detect non-x86 CPUs and disable sse2 and any other x86-specific automatically.


    opened by danboid 41
  • GUI size problem on 1920x1080 monitor

    GUI size problem on 1920x1080 monitor

    On 1920x1080 displays using Linux, the helm gui appears to be very oversized (as if it were zoomed in) with the result that most of the parameters cannot be accessed.

    It displays fine on another laptop with a different (lower) screen resolution which makes me wonder whether this is something to do with this specific resolution setting.

    opened by asbaklm 13
  • Envelope pre-attack / hold / decay issues

    Envelope pre-attack / hold / decay issues

    Using Helm v0.7.0 on OSX 10.11.5, in Bitwig Studio 1.3.9.

    This is easy to reproduce: load the synth with whatever init patch, change OSC 1 to saw, drop Formant X to 0, map Mod Envelope to Formant X, increase amount to the right most of the way. Hold a whole note: observe the envelope jumps back to some random spot in the middle instead of behaving like a normal ADSR envelope, almost like there's a random pre-delay. It's a little sporadic, but seems to happen 80% of the time or more for me. Oddly, it seems that mapping to the Filter Envelope to the Cutoff in a similar manner (leaving the Env Amount at 0) has a similar behavior for the visual display but does not affect the sound audibly. Other mappings seem to have similar issues like OSC pitch, etc..

    One other note: it seems after loading the 2nd preset and the 1st preset again, the issue is no longer present. Maybe it's something as simple as fixing the init values? I hope it could be fixed pretty easily. The init patch having this issue is a non-starter for using it with the One-Synth-Challenge -- which I hope, one day will happen -- because people have to design patches from scratch a considerable amount.

    opened by kzantow 10
  • feature request: more stereo options.

    feature request: more stereo options.

    A synth typically sounds much bigger when it's not just the effects that make it stereo.

    On the top of my list are: -stereo spread for unison, like ZynAddSubFX. -phase offset for LFOs: in many chorus plugins, you can set the phase offset between the LFO modulating the left signal, and the one modulating right. Combined with Helms flexible modulation options, this would lead to some awesome sound-design possibilities.

    I realize this would probably double the dsp load, but IMHO that's worth it.

    opened by magnetophon 10
  • Modulation is sometimes not saved in Ardour

    Modulation is sometimes not saved in Ardour

    I don't have a reproducible recipe (yet), but I've noticed that sometimes after re-opening a .ardour file, the modulation destinations and amounts are not saved, so the patch comes up without modulation.

    opened by magnetophon 9
  • Aftertouch responds to velocity instead

    Aftertouch responds to velocity instead

    I'm using Mac OS X 10.5.7 on a refurbished Mac Pro, Cubase 7.5 and Helm 0.6.0 downloaded from the official site.

    I tested aftertouch capabilities of my keyboard and NI Massive reacts as expected, but Helm seems to only get the first aftertouch message that comes after note on, then all the rest is ignored. No motion with aftertouch.

    Can anybody confirm this behavior?

    opened by unfa 8
  • The i3 window manager cannot drag the Helm window.

    The i3 window manager cannot drag the Helm window.

    In i3, windows can be floating, and when they are, you can drag them around by pressing a modifier key. Helm simply ignores this. I've never seen another window do this in i3.

    opened by magnetophon 8
  • Feature: add wavetable oscillator

    Feature: add wavetable oscillator

    Possibly not an easy to implement feature but it would be nice to additionally have arbitrary waves for oscillators/LFOs. I guess something like libsamplerate or libresample could be used for the resampling.

    opened by kjyv 7
  • Feature Request - More Filters

    Feature Request - More Filters

    I was recently doing some sound design thingies when I discovered that Massive has two filters. (Or, rather, I realized that this fact was actually quite important - more important than I had believed it to be before then.) I had already known for some time that Serum has lots of filter options. I thought that this feature was very useful, and so I wanted to suggest that multiple filters be added to Helm.


    Sorry if the picture looks a bit sloppy. :/

    I suggest that the user is given the option to add as many "sub filters" as they need, that an "overall filter" is added so that the user can see what all of the sub filters add up to, and that the sub filters' influence on the overall filter can be modulated. It would also be absolutely incredible if sub filters could multiply, subtract, and divide each other instead of only being able to add to each other. To do this properly, the adding/subtracting/multiplying/dividing should be done in order from the first sub filter to the last filter. The order of the sub filters should be able to be changed very easily.

    opened by BiRD4 7
  • Automation via Ardour unreliable

    Automation via Ardour unreliable

    Automating parameters like arpeggio-frequency only works sometimes and is ignored most of the time. Since automating other plugins works, I assume it's an issue with Helm.

    There's no obvious trigger, but it maybe have to do with initial playhead position and cycle-boundaries (rgareus's suggestion, I'm clueless in that regard).

    I have a fairly minimal test session, but can't attach it here :/

    opened by thorwil 7
  • Freezes in Cubase 8.0.10 64bit, Windows 8.1

    Freezes in Cubase 8.0.10 64bit, Windows 8.1


    When using Helm 64bit in Cubase 8.0.10 64bit, on Windows 8.1 Pro, if I make a few changes (play with) the "A" attribute of the Amplitude Envelope, it often freezes the VST plugin and the whole of Cubase. I then have to End Task on Cubase.

    Regards, Nikos

    opened by ntsarb 7
  • Size is out of proportion - Studio One

    Size is out of proportion - Studio One

    I installed this just now and the interactive elements are in the wrong space compared to the PNG behind it. I tried resetting the window size using the option in the VST but it didnt fix the issue.

    Im using 1920 x 1080 monitor, Windows 10, Studio One


    opened by VenomRaven 0
  • Fixes #217 - Use correct MIDI channel when reactivating previous note

    Fixes #217 - Use correct MIDI channel when reactivating previous note

    This patch uses the correct MIDI channel so that releasing a note whilst others are held will assert pitch bend (and other controllers) to the next asserted note. Fixes bug #217.

    opened by riban-bw 0
  • Legato and porta type labels deform on maximized window in widescreen

    Legato and porta type labels deform on maximized window in widescreen

    Screenshot of the issue screenshot of the issue

    Under Windows 10 Professional 21H2 19044.1766 AMD64, maximizing Helm at 3440x1440 (100% scaling in Windows) resolution results in the Legato and Porta-Type labels clipping off the edge of the panel they display within.

    This appears to occur regardless of the display height. I am guessing these labels may just have layout boundaries that are slightly misconfigured, since other similar controls on the display seem to not have this issue.

    Taking a look at the source code, I spotted what appears to be the code to define this:


    float space_x = (getWidth() - (knob_width + selector_width + text_width)) / 4.0f;
    float space_y = (getHeight() - (knob_width + text_height)) / 2.0f;
    float extra_text_space = 2 * (knob_width - text_height) / 3;
    portamento_->setBounds(space_x, space_y, knob_width, knob_width);
    portamento_type_->setBounds(knob_width + 2 * space_x, space_y + extra_text_space, selector_width, text_height);
    legato_->setBounds(knob_width + selector_width + 3 * space_x, space_y + extra_text_space,  text_width, text_height);

    In another file, I seem to have spotted a similar thing, but it is configured slightly differently:


    float space_x = (getWidth() - (3.0f * knob_width)) / 4.0f;
    float space_y = (getHeight() - (knob_width + text_height)) / 2.0f;
    polyphony_->setBounds(space_x, space_y, knob_width, knob_width);
    pitch_bend_->setBounds(knob_width + 2 * space_x, space_y, knob_width, knob_width);
    velocity_track_->setBounds(2 * knob_width + 3 * space_x, space_y, knob_width, knob_width);

    My (very uninformed and probably wrong) guess here is that portamento_ is not adding the extra_text_space attribute, but portamento_type_ and legato_ both are, and this might not be necessary? Even if I try to coerce the window to fill to a portrait aspect ratio, I cannot get a situation where that extra_text_space does anything.

    Screenshot of window on 1440x2560 monitor (portrait aspect ratio) screenshot of the issue

    Would removing that extra_text_space entirely resolve this? If so, I can always put a PR up to fix this?

    opened by ascopes 0
  • Feature request: easier file management by remembering last file location and classic open/save .helm file

    Feature request: easier file management by remembering last file location and classic open/save .helm file

    Platform: Linux Ubuntu 20.04 Version: Helm v0.9.0

    This issue is strongly related to https://github.com/mtytel/helm/issues/194, but the latter was closed with no reply to the OP's last questions.

    https://github.com/mtytel/helm/issues/293 remarks that mtytel is busy on other work, but I'm still opening this so at least we have some open ticket on the issue, even if for a different maintainer in the future.

    I like the Patch Bank system, but I find it hard to use the app as a normal file editor, as the file browser doesn't remember last opened locations. Besides, working with both the Bank and file system is a bit counter-productive.

    Context: I'm working on several patches for a project, and I'd like to benefit from the Bank system to load my patches directly in Reaper, while also keeping file backups of my patches in some shared project folder.

    Bank system

    1. To use this, click Save, and indicate a Patch name, Bank and Folder.
    2. If you keep working on the patch and want to save the latest version overwriting the previous one, you must click Save, and manually type the exact Patch name again (with no autocompletion nor patch selection dropdown), then confirm Save (there is no prompt there, it just overwrites the existing file). Workaround: https://github.com/mtytel/helm/issues/194 just revealed to me the hidden shortcut Ctrl+S to save current work at previously selected Patch in Bank. So the functionality is there, we just need a "Save" button distinguished from a "Save as" button which is what the current "Save" button does. Then we can add tooltips for the shortcuts, e.g. Ctrl+S and Ctrl+Shift+S. It would be nice to also see the list of existing Patches in the Save popup too, but that'd be more to avoid naming a new Patch like an existing one and overwriting it by accident.
    3. To load a Patch in some Bank, click Browse > select Bank > select Folder > select Patch, then Done. The last Bank and Folder are remembered, so this workflow is good enough (maybe "Open" would be clearer than "Done" though; and optionally some "discard changes?" warning if you were working on something, but that's not my issue here).

    File system

    Bank is nice, but it's located somewhere on my computer that doesn't fit my project flow. I need a backup of my work in some folder that I share with my colleagues. I cannot change the Bank location (https://github.com/mtytel/helm/issues/3 mentions that it is in "~/.helm/Bank Name on Linux), and I want to avoid symlinks, so the best seems to export either individual patches or even the Bank itself. 2. To export a Patch: click Export, go to the target folder, input Patch name and confirm. That's okay. 3. To repeat exporting the same Patch, you must do the full steps again. The last export location is not remembered by the file browser popup, so I must either navigate to the target folder each time, or bookmark it. Workaround: https://github.com/mtytel/helm/issues/194 mentioned the hidden shortcut Ctrl+S to repeat Save. Well, I discovered that it also works to repeat last Export patch. However, it will do only one of the two actions: Save in Bank if we saved in Bank last, or Export patch if we exported a patch last, not both. Since there is no feedback on the GUI, it's hard to tell what is happening if you didn't remember exactly what you did last time. Remembering last export location would help, and possibly an "Export Last" button too. If using shortcut Ctrl+S, it may be nice to show a message at the bottom saying what happened: whether we saved or exported at the last location. Or we could have a different shortcut Ctrl+E to repeat export. 4. To export a Bank: click Browse > Export Bank, then same thing: go to the target folder, input Patch name and confirm. That's okay too. 5. To repeat exporting a Bank, you must also repeat all steps, as the last export location is not remembered. This time, there is no workaround: Ctrl+S will do nothing. Exporting a full bank is not common, so remembering last (bank) export location would probably be the best. 6. To load a Patch from file: there is no simple way in GUI. In terminal, you can run helm patch.helm. https://github.com/mtytel/helm/issues/194 also notes that there is a hidden shortcut Ctrl+O. We need a GUI button (with tooltip for the shortcut) to load a single Patch. 7. To load a Bank from file: click Browse > Import Bank. No problem here, although remembering the last export/import location would also help.

    *Working with both Bank and File system"

    When doing this, we need to keep two copies of the same files at two different locations, so I understand that it's not a native feature. In fact, once last export location is remembered, this will become much easier as we can just export the full bank as backup from times to times.

    In the meantime, I found the following workaround: keep your file browser open at the default bank location (on Linux, "~/.helm/..."). Work with Bank system most of the time. After important changes, just copy paste the whole folder to your target project folder (removing any old files you don't need anymore, e.g. if you renamed some patches). Or you can use any file sync tool there.

    One reason you need to keep working with banks even if you export patches or banks at custom locations, is that Helm used as plugin works more smoothly with a local bank. As noted by https://github.com/mtytel/helm/issues/194, the Ctrl+O shortcut doesn't work in Reaper, so you cannot load an individual patch. You can still import a bank, but that's cumbersome (esp. as last used location is not remembered). So using the default Bank via Browse is much easier.

    opened by hsandt 0
  • M1 Macbook Air with Logic - sequenced notes getting stuck on

    M1 Macbook Air with Logic - sequenced notes getting stuck on

    Has anyone else had this issue? When I play a song with sequenced parts using Helm, notes will get stuck on, no matter what settings I use on the actual synth (it's not the envelope getting stuck).

    Has anyone else experienced this? I am using an M1 Macbook Air with MacOS 12.1

    opened by benchardell2 0
  • v0.9.0(Jul 9, 2017)

    • New OpenGL interface for lower CPU usage and faster frame rate  - New slider/knob style  - Better oscilloscope  - Added peak meter  - Added graphical feedback for envelopes and poly lfo  - Added tooltip popup when changing value  - Fully resizable GUI  - Allow poly modulation sources to modulate global settings!  - Better waveform interpolation  - More filter types!  - Added low/band/high pass filter blending  - Added distortion section  - Normalized unison volume  - Added random modulation source  - Fixed effect wet/dry mixing levels  - Distributing VST for Linux build  - Better performance (~50%!)  - Fixed some crashing bugs for format/stutter/delay  - Fixed some crashing bugs for dynamic buffer sizes  - Fixed some realtime hazards  - Created a manual (work in progress)  - Added DAW/MIDI automation to buttons  - ARM Support  - Raspberry (armhf) support  - New patches  - Easy import/export for patch banks  - Added patch exporting  - Faster launching for VST and LV2 plugins  - Added 'Init Patch' option  - Can open raw .helm files now  - Added "headless" standalone option
    Source code(tar.gz)
    Source code(zip)
  • v0.8.6(May 17, 2017)

  • v0.8.0(May 17, 2017)

    • Fixed crash/loud noise/silence when opening a project back up in some DAWs
    • Normalized all factory patches!
    • Better volume range to reduce distortion
    • Fixed audio "blipping" that occurred sometimes when playing low notes, then high notes
    • Fixed polyphonic modulation bugs in formant filter and stutter
    • Modulation meters show last note played instead of (jumpy) average
    • New stutter format with tempo syncing
    • Stutter responds better to modulation and changing parameters
    • Helm now responds to midi learn when GUI is closed
    • Prioritized audio thread reduces the possibility of glitches at high CPU usage
    • Fixed author not saving to patch
    • Added modulation highlighting so you can see what sources are modulating a control
    • Performance improvements for some features
    • Oscilloscope now is note aligned for better viewing
    • Fixed audio glitch when loading a patch with lots of saturation then one with little saturation
    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(May 17, 2017)

    • Performance improvements!
    • Fixed crash when deleting and recreating a plugin
    • Fixed saved state not loading correctly when opening project in DAW
    • Fixed some Windows installation problems that caused patches not to appear
    • Fixed some buffer size issues that caused audio glitches in some DAWs
    • Way better sounding Formant Filter
    • Per channel pitch bend
    • Microtonal pitch bend support
    • Added randomized waveforms to LFO sections
    • Better oscilloscope scale in plugin version
    • Added enable/disable animation flag
    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Dec 30, 2015)

    • Performance improvements!
    • Added a graphical keyboard!
    • Added third envelope
    • Reorganized layout and new colors, what do you think?
    • Replaced oscillator "Mix" parameter with a full oscillator mixer
    • Added update checking
    • Added patch changing through MIDI
    • Added some more patches
    • Fixed 'zippering' and 'buzzing' with weird buffer sizes and bouncing audio
    • Fixed portamento still affecting sound when off
    • Fixed some problems with presets in different DAWs
    • Fixed automation issues on tempo parameters
    • Fixed unison phasing at beginning of note
    • Fixed latency when reverb was enabled
    • Fixed some Windows 64bit patch loading/saving problems
    • Fixed Windows missing MSVCP110.dll problem
    • When reopening the plugin GUI, Helm now shows the current patch and folder
    • JACK MIDI input is now labeled "Helm"
    • Better starting phases for unison voices
    • Fixed some other small bugs no one probably (hopefully) noticed
    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Sep 11, 2015)

    • New patch browser!
    • Added a bunch of patches submitted by Cris Owl Alvarez
    • Finally fixed AAX plugin on OSX ( Windows AAX still broken :( )
    • Fixed latency when playing monophonically with legato off
    • Portamento now always uses the last note pressed to slide from
    • Saving dialog shows up over synth now
    • Saving now allows to specify author
    • Fixed freeze when quickly loading patches
    • JACK inputs are now labeled "Helm"
    • Tooltip shows better names for controls
    • Fixed audio breaking bug when first note is played with formant filter on
    • Fixed setting new parameters with old patches
    • Added configuration file where users can customize the keyboard layout
    • Added --version [-v] flag for GNU/Linux
    • Fixed clipped text on GNU/Linux
    Source code(tar.gz)
    Source code(zip)
  • v0.4.1(Aug 3, 2015)

    • Add Audio/MIDI settings page under Helm logo button
    • Fixed occasional hang when using MIDI learn/automation
    • JACK support for GNU/Linux!
    • Better MIDI default device connection.
    • Reduced aliasing in sub oscillator a bit
    • Added DC blocker
    • Added retrigger to monophonic LFOs and step sequencer
    • Added playhead sync to monophonic LFOs and step sequencer
    • Improved portamento slide function
    • Change white noise LFO to Sample and Hold
    • Added Sample and Glide to LFO waveforms
    • Fixed unintentional automation cancelling in some DAWs
    • Fixed zippering when modulating some parameters
    Source code(tar.gz)
    Source code(zip)
InsNet Runs Instance-dependent Neural Networks with Padding-free Dynamic Batching.

InsNet documentation InsNet (documentation) is a powerful neural network library aiming at building instance-dependent computation graphs. It is desig

Chauncey Wang 58 Jun 9, 2022
Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.

Cinder 0.9.3dev: libcinder.org Cinder is a peer-reviewed, free, open source C++ library for creative coding. Please note that Cinder depends on a few

Cinder 4.9k Aug 10, 2022
A collective list of free APIs

Public APIs A collective list of free APIs for use in software and web development Status The Project Contributing Guide • API for this project • Issu

null 204k Aug 5, 2022
Wasserstein Inverted Frequency Modulation Synthesizer

Wasserstein Inverted Frequency Modulation Synthesizer 発表資料: https://speakerdeck.com/fadis/wassersteinni-fmyin-yuan 発表動画: https://youtu.be/VF9VX01QYs0

Fadis 12 May 25, 2022
Wonderful library with lots of useful functions, algorithms and data structures in C, link it with -l9wada

Lib9wada Wonderful library with lots of useful functions, algorithms and data structures in C, link it with -l9wada Usage Compile the library with mak

Lprogrammers Lm9awdine 48 Jul 18, 2022
Real-time 2D fluid simulator with lots of visualization options.

Fluid Simulator Building Start by cloning the program and all submodules using the following command: git clone --recursive https://github.com/linusmo

Linus Mossberg 26 Jun 20, 2022
Wonderful library with lots of useful functions, algorithms and data structures in C, link it with -l9wada

LibC+ Wonderful library with lots of useful functions, algorithms and data structures in C, link it with -lC+ Better than C, not as much as c++ Usage

BnademOverflow 48 Jul 18, 2022
Spectral warping wavetable synth

Vital Vital is a spectral warping wavetable synthesizer. This is the source. Code Licensing If you are making a proprietary or closed source app and w

Matt Tytel 1k Aug 9, 2022
SynthLab is a synth plugin framework for developing software synthesizers.

SynthLab SynthLab is a synth plugin framework for developing software synthesizers.

willpirkleaudio 66 Aug 5, 2022
A library for using real OPL2 synth chips via ALSA's hwdep interface.

oplhw: A library for using real OPL2 synth chips via ALSA's hwdep interface ==========================================================================

David Gow 1 Nov 30, 2021
C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format

OPBinaryLib C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format Basic usage Store your OPL commands as a conti

Emma Maassen 10 Feb 2, 2022
Single file synth + demo song

P.S. is a music track written from scratch using the C programming language. All sounds and notes were entered manually without using any music progra

NightRadio 42 Aug 9, 2022
A basic infrastructure for a polyphonic synthesiser, written with the JUCE framework.

JuceSynthBase This JUCE module is a complete infrastructure for a polyphonic synthesizer, providing voice management, MIDI management, and some more a

Ben Vining 14 May 28, 2021
synthv1 - an old-school polyphonic synthesizer

synthv1 - an old-school polyphonic synthesizer

Rui Nuno Capela 30 May 7, 2022
Arduino polyphonic synthesizer project (not a Moog) for ESP32 - STM32 - Teensy and more

ml_synth_basic_example Arduino polyphonic synthesizer project (not a Moog) for ESP32 - STM32 - Teensy and more link to the video My intention was to m

Marcel 13 Jun 14, 2022
Jeannie 8-voice polyphonic open source synthesizer

Jeannie 8-voice polyphonic open source synthesizer Jeannie is an 8-voice polyphonic open source synthesizer kit with digital sound synthesis and digit

Rolf Degen 30 Aug 4, 2022
A bounded single-producer single-consumer wait-free and lock-free queue written in C++11

SPSCQueue.h A single producer single consumer wait-free and lock-free fixed size queue written in C++11. Example SPSCQueue<int> q(2); auto t = std::th

Erik Rigtorp 509 Aug 7, 2022
Forkpool - A bleeding-edge, lock-free, wait-free, continuation-stealing scheduler for C++20

riften::Forkpool A bleeding-edge, lock-free, wait-free, continuation-stealing scheduler for C++20. This project uses C++20's coroutines to implement c

Conor Williams 123 Jul 6, 2022
Awesome-lockfree - A collection of resources on wait-free and lock-free programming

Awesome Lock-Free A collection of resources on wait-free and lock-free programming. ?? ?? ?? Even better resource from MattPD: C++ links: atomics, loc

Erik Rigtorp 1.3k Aug 9, 2022
A collection of hash tables for parallel programming, including lock-free, wait-free tables.

Hatrack Hash tables for parallel programming This project consisists of fast hash tables suitable for parallel programming, including multiple lock-fr

null 57 Jul 26, 2022
A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment.

FREE Reverse Engineering Self-Study Course HERE Hacking Windows The book and code repo for the FREE Hacking Windows book by Kevin Thomas. FREE Book Do

Kevin Thomas 1k Aug 11, 2022
header only, dependency-free deep learning framework in C++14

The project may be abandoned since the maintainer(s) are just looking to move on. In the case anyone is interested in continuing the project, let us k

tiny-dnn 5.6k Aug 11, 2022
Concurrency Kit 2.1k Aug 2, 2022
A fast multi-producer, multi-consumer lock-free concurrent queue for C++11

moodycamel::ConcurrentQueue An industrial-strength lock-free queue for C++. Note: If all you need is a single-producer, single-consumer queue, I have

Cameron 7k Aug 6, 2022
A fast single-producer, single-consumer lock-free queue for C++

A single-producer, single-consumer lock-free queue for C++ This mini-repository has my very own implementation of a lock-free queue (that I designed f

Cameron 2.7k Aug 5, 2022
free C++ class library of cryptographic schemes

Crypto++: free C++ Class Library of Cryptographic Schemes Version 8.4 - TBD Crypto++ Library is a free C++ class library of cryptographic schemes. Cu

null 3.5k Aug 6, 2022
A powerful free cross-platform RTS game engine

Spring RTS game engine README Spring (formerly TASpring) is an Open Source Real Time Strategy game engine. Visit our project homepage for help, sugges

Spring RTS 2.7k Aug 7, 2022
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Dear ImGui (This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addit

omar 40.3k Aug 5, 2022
LibTomMath is a free open source portable number theoretic multiple-precision integer library written entirely in C.

libtommath This is the git repository for LibTomMath, a free open source portable number theoretic multiple-precision integer (MPI) library written en

libtom 525 Aug 10, 2022