{"id":13517313,"url":"https://github.com/DISTRHO/Cardinal","last_synced_at":"2025-03-31T08:31:36.132Z","repository":{"id":37206887,"uuid":"414548115","full_name":"DISTRHO/Cardinal","owner":"DISTRHO","description":"Virtual modular synthesizer plugin","archived":false,"fork":false,"pushed_at":"2024-10-09T05:38:37.000Z","size":13499,"stargazers_count":2255,"open_issues_count":112,"forks_count":155,"subscribers_count":52,"default_branch":"main","last_synced_at":"2024-10-29T17:55:47.017Z","etag":null,"topics":["audio","eurorack","lv2-plugin","plugin","vcvrack","vst-plugin"],"latest_commit_sha":null,"homepage":"https://cardinal.kx.studio/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DISTRHO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"falkTX","liberapay":"falkTX","patreon":"falkTX","custom":"https://paypal.me/falkTX"}},"created_at":"2021-10-07T10:01:22.000Z","updated_at":"2024-10-29T07:14:08.000Z","dependencies_parsed_at":"2023-02-09T09:00:23.781Z","dependency_job_id":"be590fb2-6b82-4d85-bc4a-a67138fc5fc4","html_url":"https://github.com/DISTRHO/Cardinal","commit_stats":{"total_commits":1830,"total_committers":24,"mean_commits":76.25,"dds":"0.050819672131147575","last_synced_commit":"980deb2f31937abd29ab4c20d30dac2676ee8541"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DISTRHO%2FCardinal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DISTRHO%2FCardinal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DISTRHO%2FCardinal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DISTRHO%2FCardinal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DISTRHO","download_url":"https://codeload.github.com/DISTRHO/Cardinal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246441541,"owners_count":20778050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","eurorack","lv2-plugin","plugin","vcvrack","vst-plugin"],"created_at":"2024-08-01T05:01:32.448Z","updated_at":"2025-03-31T08:31:36.118Z","avatar_url":"https://github.com/DISTRHO.png","language":"C++","funding_links":["https://github.com/sponsors/falkTX","https://liberapay.com/falkTX","https://patreon.com/falkTX","https://paypal.me/falkTX"],"categories":[":headphones: Audio Production","C++","Open Source Music Projects"],"sub_categories":["ARM"],"readme":"# DISTRHO Cardinal\n\n*Cardinal, the Rack!*\n\nCardinal is a free and open-source virtual modular synthesizer plugin,\navailable in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.  \nIt is based on the popular [VCV Rack](https://vcvrack.com/) but with a focus on being a fully self-contained plugin version.\n\nMore specifically, this is a [DPF-based](https://github.com/DISTRHO/DPF/)\nplugin wrapper around [VCV Rack](https://github.com/VCVRack/Rack/),\nusing its code directly instead of forking the project,\nwith the target of having a **self-contained, fully free and open-source plugin version of Rack**.  \nSee the [why section](#Why) below for the reasons Cardinal exists,\nalso for frequently asked questions check this [FAQ document](docs/FAQ.md).\n\nCardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary.  \nAll \"Core\" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.\n\nCardinal does not load external modules and does not connect to the official Rack library/store.  \nAll VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.\n\n\n## Current status\n\nCardinal should be considered stable, if you spot any bugs please report them.  \nCurrently the following should be noted:\n\n- CLAP support is a work-in-progress [DPF#383](https://github.com/DISTRHO/DPF/issues/383)\n- VST3 plugin hosting (inside Carla or Ildaeil modules) mostly works but is considered experimental\n- Windows 32bit builds still have a few problematic modules [#80](https://github.com/DISTRHO/Cardinal/issues/80)\n\n### Stable release\n\nCardinal releases have official builds for Linux, macOS and Windows.  \nYou can find these under https://github.com/DISTRHO/Cardinal/releases.\n\nThere are Linux builds for various architectures (armhf, arm64, i686, riscv64 and x86_64), macOS \"universal\" (arm64 + intel) and Windows 32 and 64bit builds.\nBoth macOS and Windows builds have an installer.  \nInstall instructions are available [here](https://github.com/DISTRHO/Cardinal/wiki/Install).\n\nNote: Neither the macOS or Windows builds are signed, so expect warnings saying they are from an \"untrusted developer\".\n\n### Nightly builds\n\nYou can find builds for pretty much any recent Cardinal commit [here](https://github.com/DISTRHO/Cardinal/actions/workflows/build.yml).  \nJust click on any successful build, and scroll to the bottom to find the builds.  \n(note the canvas-like area in the middle prevents mouse wheel scrolling)\n\nA GitHub account is required in order to download these builds.\n\n### Building\n\nBasic building instructions are available in [BUILDING.md](docs/BUILDING.md).\n\n\n## Plugin variants\n\nCardinal provides 3 plugin variants - \"main\", Synth and FX.  \nThey are all equivalent in performance and behaviour, with only the IO and metadata that changes.  \nThis is because some hosts are very strict on which plugins are allowed as instruments vs FX, so separate variants of the same plugin are needed.\n\nFX and Synth variants both have 2 audio outputs, while \"main\" has 8.  \nAll variants have MIDI input and output support.\n\n### Main\n\nThis variant provides 8 audio inputs and outputs and 10 CV inputs and outputs.\n\nNOTE: Due to AU and VST2 formats not supporting CV ports, this variant is not available for those formats.  \nNOTE: This variant is not available in CLAP yet, to be added in a later release\n\n### Synth\n\nThis variant provides 2 audio outputs but no audio inputs or CV ports.  \nPlugin type is set as \"instrument\".\n\n### FX\n\nThis variant provides 2 audio inputs and outputs, but no CV ports.  \nPlugin type is set as regular \"effect\".\n\n### Mini\n\nThis is a special variant with a very small, hand-picked module selection and limited IO (2 audio ports plus 5 CV).  \nIt only exists as LV2 and Standalone plugin.\n\nFor now the list of selected modules is quite small, intentionally. We will add a few more as the need appears.  \nAll included modules support polyphony, reducing confusion for new users not yet used to mono vs poly approach in Rack/Cardinal.\n\nThe main reason for this variant to exist is being able to support DSP/UI separation, which is only possible with more simple modules.  \nThe DSP/UI separation means we can run the DSP on a different machine than the UI.  \nThis is particularly interesting for running Cardinal on embed systems, being controlled remotely via a web browser or a native desktop application.  \nSuch setup is already in use in [Cardinal Mini for MOD Audio](https://forum.mod.audio/t/distrho-cardinal-mini/9262/).\n\n\n## Screenshots\n\nBecause people will ask for it. It is, well... Rack.  \nBut a couple of modules background's have their colors flipped, because damn we want proper dark mode!\n\n### Module browser\n\n![screenshot](docs/Screenshot_Module-Browser.png \"Screenshot\")\n\n### Basic patching\n\n![screenshot](docs/Screenshot_Basic-Patching.png \"Screenshot\")\n\n### Carla and Ildaeil plugin hosts\n\n![screenshot](docs/Screenshot_Carla+Ildaeil.png \"Screenshot\")\n\n### Custom Fundamental modules design\n\n![screenshot](docs/Screenshot_Fundamental.png \"Screenshot\")\n\n\n## Included modules\n\nAt the moment the following 3rd-party modules are provided:\n\n- [21kHz](https://github.com/netboy3/21kHz-rack-plugins)\n- [8Mode](https://github.com/8Mode/8Mode-VCV_Modules)\n- [Aaron Static](https://github.com/aaronstatic/AaronStatic_modules)\n- [Admiral](https://github.com/wapiflapi/admiral)\n- [alef's bits](https://github.com/alefnull/alefsbits)\n- [AlgoritmArte](https://github.com/algoritmarte/AlgoritmarteVCVPlugin)\n- [Amalgamated Harmonics](https://github.com/jhoar/AmalgamatedHarmonics)\n- [Animated Circuits](https://github.com/AnimatedCircuits/RackModules)\n- [Arable Instruments](https://github.com/adbrant/ArableInstruments)\n- [Aria Salvatrice](https://aria.dog/modules/)\n- [AS](https://github.com/AScustomWorks/AS)\n- [Audible Instruments](https://vcvrack.com/AudibleInstruments)\n- [Autinn](https://github.com/NikolaiVChr/Autinn)\n- [Axioma](https://github.com/kauewerner/Axioma)\n- [Bacon Music](https://github.com/baconpaul/BaconPlugs)\n- [Befaco](https://github.com/VCVRack/Befaco)\n- [Bidoo](https://github.com/sebastien-bouffier/Bidoo)\n- [Biset](https://github.com/gibbonjoyeux/VCV-Biset)\n- [Bogaudio](https://github.com/bogaudio/BogaudioModules)\n- [Catro/Modulo](https://github.com/catronomix/catro-modulo)\n- [cf](https://github.com/cfoulc/cf)\n- [ChowDSP](https://github.com/jatinchowdhury18/ChowDSP-VCV)\n- [Computerscare](https://github.com/freddyz/computerscare-vcv-modules)\n- [CVfunk](https://github.com/codygeary/CVfunk-Modules)\n- [dBiz](https://github.com/dBiz/dBiz)\n- [DHE Modules](https://github.com/dhemery/DHE-Modules)\n- [DrumKit](https://svmodular.com/plugin/vcv/drumkit.html)\n- [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack)\n- [E-Series](https://github.com/VCVRack/ESeries)\n- [ExpertSleepers Encoders](https://expert-sleepers.co.uk/vcvrack_encoders.html)\n- [Extratone](http://extratone.xyz/modules)\n- [Fehler Fabrik](https://github.com/RCameron93/FehlerFabrik)\n- [forsitan modulare](https://github.com/gosub/forsitan-modulare)\n- [Fundamental](https://github.com/VCVRack/Fundamental)\n- [Glue the Giant](https://github.com/gluethegiant/gtg-rack)\n- [GoodSheperd](https://github.com/jensschulze/GoodSheperd)\n- [Grande](https://github.com/dbgrande/GrandeModular)\n- [H4N4 Modules](https://github.com/hannakoppelaar/h4n4-modules)\n- [Hampton Harmonics](https://gitlab.com/hampton-harmonics/hampton-harmonics-modules)\n- [HetrickCV](https://github.com/mhetrick/hetrickcv)\n- [ihtsyn](https://github.com/nysthi/ihtsyn)\n- [Impromptu](https://github.com/MarcBoule/ImpromptuModular)\n- [JW-Modules](https://github.com/jeremywen/JW-Modules)\n- [kocmoc](https://github.com/janne808/kocmoc-rack-modules)\n- [LifeFormModular](https://github.com/TimeControlledOrganism/LifeFormModular)\n- [Lilac Loop](https://grough.github.io/lilac-loop-vcv)\n- [Little Utils](https://github.com/mgunyho/Little-Utils)\n- [Lomas Modules](https://github.com/LomasModules/LomasModules)\n- [Lyrae Modules](https://github.com/VegaDeftwing/LyraeModules)\n- [Meander](https://github.com/knchaffin/Meander)\n- [MindMeld](https://github.com/MarcBoule/MindMeldModular)\n- [ML Modules](https://github.com/martin-lueders/ML_modules)\n- [Mockba Modular](https://github.com/MockbaTheBorg/MockbaModular)\n- [Mog](https://github.com/JustMog/Mog-VCV)\n- [mscHack](https://github.com/mschack/VCV-Rack-Plugins)\n- [MSM](https://github.com/netboy3/MSM-vcvrack-plugin)\n- [MUS-X](https://github.com/Jojosito/MUS-X)\n- [Myth](https://github.com/Ahineya/vcv-myth-plugin)\n- [Nonlinear Circuits](https://github.com/mhetrick/nonlinearcircuits)\n- [Orbits](https://github.com/RareBreeds/Orbits)\n- [Parable Instruments](https://github.com/adbrant/ArableInstruments)\n- [Path Set](https://github.com/patheros/PathSetModules)\n- [PdArray](https://github.com/mgunyho/PdArray)\n- [PinkTrombone](https://github.com/VegaDeftwing/PinkTromboneVCV)\n- [Prism](https://github.com/SteveRussell33/Prism)\n- [rackwindows](https://github.com/n0jo/rackwindows)\n- [RCM](https://github.com/Rcomian/rcm-modules/)\n- [RebelTech](https://github.com/hemmer/rebel-tech-vcv)\n- [repelzen](https://github.com/wiqid/repelzen)\n- [Sapphire](https://github.com/cosinekitty/sapphire)\n- [Sonus Modular](https://gitlab.com/sonusdept/sonusmodular)\n- [stocaudio](https://github.com/aptrn/stocaudio-modules)\n- [Starling Via](https://github.com/starlingcode/Via-for-Rack)\n- [Stoermelder Pack-One](https://github.com/stoermelder/vcvrack-packone)\n- [Surge XT](https://github.com/surge-synthesizer/surge-rack)\n- [unless_modules](https://gitlab.com/unlessgames/unless_modules)\n- [Valley](https://github.com/ValleyAudio/ValleyRackFree)\n- [Voxglitch](https://github.com/clone45/voxglitch)\n- [WhatTheRack](https://github.com/korfuri/WhatTheRack)\n- [ZetaCarinae](https://github.com/mhampton/ZetaCarinaeModules)\n- [ZZC](https://github.com/zezic/ZZC)\n\nAdditionally Cardinal provides its own modules for DAW/Host automation, time position, audio to CV pitch conversion and internal plugin hosting.\n\n### Adding modules\n\nInstalling new modules on a Cardinal build is not possible, but we can integrate existing open-source modules to be part of Cardinal.\nDetails on this are available [here](https://github.com/DISTRHO/Cardinal/discussions/28).  \nAlso check [this wiki page](https://github.com/DISTRHO/Cardinal/wiki/Possible-modules-to-include)\nwhere we discuss possible modules to include.  \n\n### Module restrictions\n\nAll included modules are open-source and have a GPLv3+ compatible license. (GPLv3-only modules are not allowed)  \nIt is a requirement that the final Cardinal binary is GPLv3+ licensed.\n\nModule dependencies should be kept at a minimum, as otherwise it quickly grows the complexity of the build.  \nOnline access (such as phone-home) is not allowed.\n\nWorth noting that a few modules have artwork licensed separately from their code.  \nThese licenses range from CC-0 to CC-NC-ND to custom (used with permission).  \nAn overview of the included artwork licenses can be seen [here](docs/LICENSES.md#artwork--panel-licenses).\n\nEven though CC-NC is problematic for packaging (some linux distributions are commercial in nature),\nCardinal allows their use because of how prevalent they are across many Rack modules.  \nEven the Rack \"Component Library\" (which can be considered the base widget elements) is CC-NC licensed.\n\nAny artwork that uses a custom license has had explicit permission to be used in Cardinal.\n\n\n## Why\n\nCardinal was created first and foremost as a way to have Rack as a **proper open-source audio plugin**.  \nA proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host.\nLoading external modules clearly goes against this idea.  \nNot to mention being **open-source**, otherwise we are at the mercy of the wishes of a company for what we can and cannot do,\nwhich is not something Cardinal's authors wish to abide by.\n\nA self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes.  \nWhile Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds.  \nOn the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.\n\nSupport for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start.  \nWhile we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product.  \nThe online library/store only supports a very specific set of platforms too,\nso non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.\n\nUnhappiness with the audio threading behaviour of Rack also plays a role.  \nBoth audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter.  \nThe use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years...  \nBut Rack's use of RtMidi requires separate threading, so Cardinal does not use it.\n\nOther relevant reasons include:\n\n - LV2 plugin version from the start\n - Proper dark mode support\n - Real CV ports to and from the plugin\n - Removing online access from the plugin and included modules (no phone-home here!)\n - Works as a test case for [DPF](https://github.com/DISTRHO/DPF/) and [Carla](https://github.com/falkTX/Carla/)\n - It is fun :)\n\n\n## Vs. Rack Pro\n\nIt needs to be said that Cardinal project and its author(s) do not wish anything bad to the original/official Rack project.  \nIn fact, Cardinal wouldn't exist if not for Rack v2 release. (which has many needed things to make a plugin version work)\n\nCardinal and Rack should be able to co-exist friendly and peacefully, as they clearly have different targets.  \nIt is likely most people will prefer to use Rack Pro for its official support and its big module collection (including commercial ones).\n\nA feature comparison between Cardinal and Rack Pro can be seen [here](docs/DIFFERENCES.md).\n\n\n## License\n\nCardinal is licensed under GPLv3+, see [LICENSE](LICENSE) for more details.  \nAn overview of the included code and linked submodules can be seen [here](docs/LICENSES.md#code-license--binary).\n\n\n## Community chat\n\nCurrently we are all on #cardinal IRC room in irc.libera.chat server.  \nCome join us in your favorite IRC client.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDISTRHO%2FCardinal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDISTRHO%2FCardinal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDISTRHO%2FCardinal/lists"}