├── README.md ├── notes.md └── tutorials ├── images ├── 1_software.jpg └── header.jpg ├── tutorial_1.md ├── tutorial_2.md ├── tutorial_3.md ├── tutorial_4.md ├── tutorial_5.md ├── tutorial_EN_00.md ├── tutorial_ES_01.md └── tutorial_FR_01.md /README.md: -------------------------------------------------------------------------------- 1 | # Tutorial: How to create modules for VCV-Rack 2 | Trainings and tips on how to build your own virtual instrument for the [**VCV Rack**](https://vcvrack.com/) platform, written by uriel Deveaud - 2019 3 | 4 | --- 5 | 6 | ![](tutorials/images/header.jpg) 7 | 8 | ## Introduction 9 | 10 | So, you want to create your own instruments or modules to be played in **VCV Rack**. Welcome on-board ! 11 | 12 | Before we start talking about **computer programming**, let´s have a look at the general profile and basic knowledge you may need during the process of creating your plugin. Right now, you have an idea, and i´am sure, the best one ! As a musician, you may have been diving into some sort of code... or not ! Or maybe, as a programmer, you want to learn how to make **musical instruments and audio devices** ? This tutorials serie is made for you. Lets look at the general context: 13 | 14 | Basically, musicians don´t like to loose their time into coding work, but there are exceptions of course. 15 | In this case, you want to join the group of **musician-developper**, and that´s fine. We will progress step by step and go from a basic module to very complexe ones. 16 | 17 | If you are very new to **audio programming, c++ and SVG design**, you can still follow those tutorials, but i suggest you to be very curious and engaged regarding learning the bases or any introductions that you may see on youtube or other forums and facebook pages... ask, search and take notes ;) By entering into module creation, there is 99% chance that you will produce more than one plugin, so, **take it seriously, learn by method, stay organized, go step-by-step, respect yourself**... and you will see, slowly, your instrument coming alive !, the price is nothing compared to the full satisfaction of creating your **dream´s device** and turning it on for the very first time :) 18 | 19 | Well, let´s have a look at this tutorial´s menu. Each section presents various tasks that you want **to repeat** as necessary, depending of your personal project. So first, you need to know about the "VCV modules API code structure", to know how to compile a plugin and finally to test your creation "live" in **VCV Rack**. Once this cycle is understood, you are ready to developpe your **module´s features and users interface (UI)**. As just said, we are progressing, following these 3 steps in loop: 20 | 21 | * Looking for **code expressions** and understanding the "rules" 22 | * Adapting the **code rule**s to the actual needs 23 | * Duplicate and clean **code sections** 24 | 25 | Of course, after some times, you will build **your own codes library** and you will be able to jump quickly to the next level ! 26 | One common suggestion, and it is very important, if you are not an experienced programmer, to "explore" other Module´s codes from their authors pages. From them, you will learn what solution they were choosing and what is the result. You can download their repositories and build them on your local machine. Great teaching, but at least, you need to understand what you are reading :) Let´s reach this objective together with this tutorials serie. Enjoy ! 27 | 28 | ## Summary 29 | 30 | 1. Prerequisites 31 | - **Tutorial 01:** Setup your development environment under Win10 [**> Read the tutorial**](tutorials/tutorial_1.md) 32 | - _Install a compiler and text editor_ 33 | - _Downloading the VCV Rack Repository and building the main application_ 34 | - _Configuring files and folders_ 35 | 36 | --- 37 | 38 | 2. Building your First complete module 39 | - **Tutorial 02:** Build and test the classic VCV Fundamental modules > [**> Read the tutorial**](tutorials/tutorial_2.md) 40 | - _Download the package files_ 41 | - _Build and test the modules in VCV Rack_ 42 | - **Tutorial 03:** Use the new tutorial´s template > [**> Read the tutorial**](tutorials/tutorial_3.md) 43 | - _Set basic module settings files and folders_ 44 | - _Build and store new modules_ 45 | - _Test your module in VCV Rack_ 46 | 47 | --- 48 | 49 | 3. Organizing your work and planning tasks 50 | - **Tutorial 04:** Consolidating and validating your project > [**> Read the tutorial**](tutorials/tutorial_4.md) 51 | - _Check for similar existing plugins_ 52 | - _Draw some mockups and define features_ 53 | - **Tutorial 05:** Are you ready ? if yes, time to work > [**> Read the tutorial**](tutorials/tutorial_5.md) 54 | - _Setting up your SLUG, ModuleName, and files_ 55 | - _Defining size and style for your module_ 56 | - _Commenting your code blocks_ 57 | 58 | --- 59 | 60 | 4. Building your first created module 61 | - **Tutorial 06:** Building basic components > [TODO](https://) 62 | - _Objective, creating a simple audio circuit, aka "THE MIXER"_ 63 | - _Creating Input and outpout ports_ 64 | - _Creating a knob that controls a num param_ 65 | - _Creating a switch button to change a boolean param_ 66 | - _Creating a vu meter to visualize a num param_ 67 | - _Creating a screen to visualize any param_ 68 | - _Creating a momentary button_ 69 | - _Creating a menu with static infos_ 70 | - _Creating a user´s dynamic info on panel_ 71 | - **Tutorial 07:** Customizing your components > [TODO](https://) 72 | - _Creating your background layer_ 73 | - _Creating new controls_ 74 | - _Creating a screen panel_ 75 | - _Adding some conditional infos in the menu_ 76 | - _Adding some folders for presets_ 77 | 78 | --- 79 | 80 | 5. Building an advanced module 81 | - **Tutorial 08:** Creating an audio source > [TODO](https://) 82 | - _Objective, creating a new audio circuit, aka "THE SAMPLER"_ 83 | - ... 84 | - **Tutorial 09:** Creating a wave generator > [TODO](https://) 85 | - _Objective, creating a new audio circuit, aka "THE SYNTHETIZER"_ 86 | - ... 87 | - **Tutorial 10:** Creating a filter section > [TODO](https://) 88 | - _Objective, creating a new audio circuit, aka "THE EQUALIZER"_ 89 | - ... 90 | 91 | --- 92 | 93 | ... 94 | 95 | - i am looking for people who can help to extend this documentation on building modules on MacOS and Linux ;) 96 | 97 | -------------------------------------------------------------------------------- /notes.md: -------------------------------------------------------------------------------- 1 | # From users, requested tutorials: 2 | 3 | - json 4 | - nanovg 5 | - paths files and directory 6 | - jog dial control 7 | 8 | - multiple audio recorder/player 9 | - Drum machine 10 | - Aux bus 11 | - 64 sequencer 12 | 13 | - theme changer 14 | ------------------------------------------------ 15 | - keying set, keyboard control (from menu panel) 16 | - swap panel extension ! 17 | -------------------------------------------------------------------------------- /tutorials/images/1_software.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KoreTeknology/Tutorial-How-to-create-modules-for-VCV-Rack/5639ba61717a578cf51dd0b843a4f78a496b1fed/tutorials/images/1_software.jpg -------------------------------------------------------------------------------- /tutorials/images/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KoreTeknology/Tutorial-How-to-create-modules-for-VCV-Rack/5639ba61717a578cf51dd0b843a4f78a496b1fed/tutorials/images/header.jpg -------------------------------------------------------------------------------- /tutorials/tutorial_1.md: -------------------------------------------------------------------------------- 1 | **Tutorial 01**: Version 0.1 (written by Uriel Deveaud - 01/2019) 2 | 3 | [**Return to Main Menu**](../README.md) 4 | 5 | ![](images/header.jpg) 6 | 7 | # Setup your development environment under Win10 8 | 9 | So, let´s start from the beginning, you computer is up to become your building machine, but you need to prepare your setup to be able to build applications. First of all, you will need to download a couple of Free softwares to perform each tasks, as always, i recommend to get some free or open source applications, but other professional softwares will be fine. Just mind the corresponding download, regarding your operating system, and don´t forget that VCV Rack is only working on 64bits OS ! 10 | 11 | - **Coding**, [**Visual Studio Code**](https://code.visualstudio.com/), one of the best, free and great ui 12 | - **Drawing**, [**Inskape**](https://inkscape.org/), but it can be done with Adobe illustrator, Gravit, etc... or any on-line SVG Editor 13 | - **Building**, [**MSYS64 and its installer**](https://www.msys2.org/), the only one that actually works for me... 14 | 15 | Once you have installed those softwares, you need to understand what kind of file´s extension you want to create and execute: 16 | 17 | - **.cpp**, all our code will be written in C++, before it get compiled 18 | - **.svg**, our visuals will be exported as SVG or "vector based graphics" 19 | - **.dll**, our final release will include the plugin file and its image´s folder 20 | 21 | If everything is fine, you should be able to open the 3 softwares at the same time. I know that there is an issue if you have some anti-virus applications running, so i recommend to disable it during your installation process ! 22 | 23 | ![](images/1_software.jpg) 24 | 25 | Don´t forget to do any necessary updates, you always need the last version ! I suggest you to read carefully this page, regarding Msys64 updates: [**How to update MSYS64 ?**](https://www.msys2.org/) 26 | 27 | --- 28 | 29 | ## Downloading the VCV Rack Repository and building the main application 30 | 31 | Now, we have to get the source code of VCV Rack, to be able to compile it and to run it of course ! 32 | Again, read carefully the [**VCV documentation page**](https://vcvrack.com/manual/Building.html#setting-up-your-development-environment), and make sure you are completing each steps of the process, it is kind of easy, just follow the guide. 33 | Be aware that from now, most of the commands will be executed thru the Msys64 console terminal, keep it open ! 34 | 35 | To get a close look at the commands, i did join each line bellow: 36 | ``` 37 | $ git clone https://github.com/VCVRack/Rack.git 38 | $ cd Rack 39 | $ git submodule update --init --recursive 40 | $ make dep 41 | $ make 42 | $ make run 43 | ``` 44 | - Duplicate the repository to your computer (automaticly in the HOME folder of Msys64) 45 | - Go to the newly created folder, called "Rack" 46 | - Check for updates (important ! 47 | - Download files (you may add your processor setup: make -j4 dep) 48 | - Build the application (again, your processor setup is important here) 49 | - Open and run the application, You´ve just build VCV Rack ! 50 | 51 | 52 | 53 | ## Configuring files and folders 54 | 55 | If everything was running up to the end, you should have this main VCV Rack directory´s accessible at: 56 | ``` 57 | C:/msys64/home/Rack/ 58 | ``` 59 | If it not exists, you want create manually the plugins folder: 60 | ``` 61 | C:/msys64/home/Rack/plugins/ 62 | ``` 63 | 64 | The VCV Rack source code doesn´t come with modules, you must download them and install them, or you must just open the module´s browser, on the official VCV RAck website. As you need some basic modules, you want to download the [**Fundamental**](https://github.com/VCVRack/Fundamental) modules serie. We will see in the next chapter how to build a module, and we will start with those ones, for their basic VCO, LFO, VCA, VCF,etc.. modules. 65 | 66 | Download the package and "unzip" it into your plugins folder.. that´s all for the moment. 67 | 68 | --- 69 | 70 | [**Return to Main Menu**](../README.md) 71 | 72 | [**Next tutorial**](tutorial_2.md) 73 | -------------------------------------------------------------------------------- /tutorials/tutorial_2.md: -------------------------------------------------------------------------------- 1 | **Tutorial 02**: Version 0.1 (written by Uriel Deveaud - 01/2019) 2 | 3 | [**Return to Main Menu**](../README.md) 4 | 5 | ![](images/header.jpg) 6 | 7 | # Building your first modules 8 | 9 | As we did for building VCV Rack, we will now add some modules from the "Fundamental" Official Serie. 10 | 11 | 12 | --- 13 | 14 | [**Return to Main Menu**](../README.md) 15 | 16 | [**Previous tutorial**](tutorial_1.md) - [**Next tutorial**](tutorial_3.md) 17 | -------------------------------------------------------------------------------- /tutorials/tutorial_3.md: -------------------------------------------------------------------------------- 1 | **Tutorial 03**: Version 0.1 (written by Uriel Deveaud - 01/2019) 2 | 3 | [**Return to Main Menu**](../README.md) 4 | 5 | ![](images/header.jpg) 6 | 7 | # Using module´s Template files 8 | 9 | As we have a basic understanding of how we will make a new module plugin from a bunch of files, placed in the Correct folder ! 10 | [**HERE**](files/tutorial_VCV_modules.zip) is the link to download the template files ! Get the archive and uncompress it in your plugins folder... you should be able to access this directory: 11 | ``` 12 | C:/msys64/home/Rack/plugins/tutorial/ 13 | ``` 14 | 15 | Now, lets have a look in detail inside those files. At least, you need only 5 files to make a module: 16 | * _**Makefile**_ = Got all relation data para building the final plugin 17 | * _**MyModule.cpp**_ = Got all the source code of your module 18 | * _**MyProject.cpp**_ = Got all initialization data, shared between modules (if you create more than one) 19 | * _**MyProject.hpp**_ = Got all Project references, common data and shared UI elements 20 | * _**background.svg**_ = The design of your module´s background 21 | 22 | ## Makefile 23 | ``` 24 | RACK_DIR ?= ../.. 25 | 26 | SLUG = Tutorial 27 | VERSION = 0.6.1 28 | 29 | FLAGS += 30 | CFLAGS += 31 | CXXFLAGS += 32 | LDFLAGS += 33 | SOURCES += $(wildcard src/*.cpp) 34 | DISTRIBUTABLES += $(wildcard LICENSE*) res 35 | 36 | include $(RACK_DIR)/plugin.mk 37 | ``` 38 | --- 39 | 40 | ## MyProject.hpp 41 | ```c++ 42 | #include "rack.hpp" 43 | 44 | using namespace rack; 45 | 46 | extern Plugin *plugin; 47 | 48 | extern Model *modelTUTO_MODULE; 49 | ``` 50 | --- 51 | 52 | ## MyProject.cpp 53 | ```c++ 54 | #include "MyProject.hpp" 55 | 56 | Plugin *plugin; 57 | 58 | void init(Plugin *p) { 59 | plugin = p; 60 | p->slug = TOSTRING(SLUG); 61 | p->version = TOSTRING(VERSION); 62 | 63 | // Add all Models defined throughout the plugin 64 | p->addModel(modelTUTO_MODULE); 65 | 66 | // Any other plugin initialization may go here. 67 | // As an alternative, consider lazy-loading assets and lookup tables when your module is created to reduce startup times of Rack. 68 | } 69 | ``` 70 | --- 71 | 72 | ## MyModule.cpp 73 | ```c++ 74 | #include "MyProject.hpp" 75 | 76 | // ------------------------------------------------------------- VARIABLES 77 | struct tutoModule : Module { 78 | enum ParamIds { 79 | //SOME_PARAM, 80 | NUM_PARAMS 81 | }; 82 | enum InputIds { 83 | //SOME_INPUT, 84 | NUM_INPUTS 85 | }; 86 | enum OutputIds { 87 | //SOME_OUTPUT, 88 | NUM_OUTPUTS 89 | }; 90 | enum LightIds { 91 | //SOME_LIGHT, 92 | NUM_LIGHTS 93 | }; 94 | 95 | tutoModule() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} 96 | void step() override; 97 | }; 98 | 99 | // ------------------------------------------------------------- FEATURES 100 | void tutoModule::step() { 101 | // Implement features here ! 102 | 103 | } 104 | 105 | // ------------------------------------------------------------- UI 106 | struct tutoModuleWidget : ModuleWidget { 107 | tutoModuleWidget(tutoModule *module) : ModuleWidget(module) { 108 | setPanel(SVG::load(assetPlugin(plugin, "res/TutoModule.svg"))); 109 | 110 | addChild(Widget::create(Vec(RACK_GRID_WIDTH, 0))); 111 | addChild(Widget::create(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); 112 | addChild(Widget::create(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); 113 | addChild(Widget::create(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); 114 | 115 | } 116 | }; 117 | 118 | // ------------------------------------------------------------- MODEL 119 | Model *modelTUTO_MODULE = Model::create("Tutorial", "tutoModule", "tutorial Module", OSCILLATOR_TAG); 120 | 121 | ``` 122 | 123 | 124 | 125 | --- 126 | 127 | [**Return to Main Menu**](../README.md) 128 | 129 | [**Previous tutorial**](tutorial_2.md) - [**Next tutorial**](tutorial_4.md) 130 | -------------------------------------------------------------------------------- /tutorials/tutorial_4.md: -------------------------------------------------------------------------------- 1 | **Tutorial 04**: Version 0.1 (written by Uriel Deveaud - 01/2019) 2 | 3 | [**Return to Main Menu**](../README.md) 4 | 5 | ![](images/header.jpg) 6 | 7 | # bbbbb 8 | 9 | 10 | --- 11 | 12 | [**Return to Main Menu**](../README.md) 13 | 14 | [**Previous tutorial**](tutorial_3.md) - [**Next tutorial**](tutorial_5.md) 15 | -------------------------------------------------------------------------------- /tutorials/tutorial_5.md: -------------------------------------------------------------------------------- 1 | **Tutorial 05**: Version 0.1 (written by Uriel Deveaud - 01/2019) 2 | 3 | [**Return to Main Menu**](../README.md) 4 | 5 | ![](images/header.jpg) 6 | 7 | # ggg files 8 | 9 | --- 10 | 11 | [**Return to Main Menu**](../README.md) 12 | 13 | [**Previous tutorial**](tutorial_4.md) - [**Next tutorial**](tutorial_6.md) 14 | -------------------------------------------------------------------------------- /tutorials/tutorial_EN_00.md: -------------------------------------------------------------------------------- 1 | # Tutorial: How to create modules for VCV-Rack 2 | Trainings and tips on how to build your own virtual instrument for the [**VCV Rack**](https://vcvrack.com/) platform, written by uriel Deveaud - 2019 3 | 4 | --- 5 | 6 | ![](images/header.jpg) 7 | 8 | ## Introduction 9 | 10 | So, you want to create your own instruments or modules to be played in **VCV Rack**. Welcome on-board ! 11 | 12 | Before we start talking about **computer programming**, let´s have a look at the general profile and basic knowledge you may need during the process of creating your plugin. Right now, you have an idea, and i´am sure, the best one ! As a musician, you may have been diving into some sort of code... or not ! Or maybe, as a programmer, you want to learn how to make **musical instruments and audio devices** ? This tutorials serie is made for you. Lets look at the general context: 13 | 14 | Basically, musicians don´t like to loose their time into coding work, but there are exceptions of course. 15 | In this case, you want to join the group of **musician-developper**, and that´s fine. We will progress step by step and go from a basic module to very complexe ones. 16 | 17 | If you are very new to **audio programming, c++ and SVG design**, you can still follow those tutorials, but i suggest you to be very curious and engaged regarding learning the bases or any introductions that you may see on youtube or other forums and facebook pages... ask, search and take notes ;) By entering into module creation, there is 99% chance that you will produce more than one plugin, so, **take it seriously, learn by method, stay organized, go step-by-step, respect yourself**... and you will see, slowly, your instrument coming alive !, the price is nothing compared to the full satisfaction of creating your **dream´s device** and turning it on for the very first time :) 18 | 19 | Well, let´s have a look at this tutorial´s menu. Each section presents various tasks that you want **to repeat** as necessary, depending of your personal project. So first, you need to know about the "VCV modules API code structure", to know how to compile a plugin and finally to test your creation "live" in **VCV Rack**. Once this cycle is understood, you are ready to developpe your **module´s features and users interface (UI)**. As just said, we are progressing, following these 3 steps in loop: 20 | 21 | * Looking for **code expressions** and understanding the "rules" 22 | * Adapting the **code rule**s to the actual needs 23 | * Duplicate and clean **code sections** 24 | 25 | Of course, after some times, you will build **your own codes library** and you will be able to jump quickly to the next level ! 26 | One common suggestion, and it is very important, if you are not an experienced programmer, to "explore" other Module´s codes from their authors pages. From them, you will learn what solution they were choosing and what is the result. You can download their repositories and build them on your local machine. Great teaching, but at least, you need to understand what you are reading :) Let´s reach this objective together with this tutorials serie. Enjoy ! 27 | 28 | ## Summary 29 | 30 | 1. Prerequisites 31 | - **Tutorial 01:** Setup your development environment under Win10 [**> Read the tutorial**](tutorials/tutorial_1.md) 32 | - _Install a compiler and text editor_ 33 | - _Downloading the VCV Rack Repository and building the main application_ 34 | - _Configuring files and folders_ 35 | 36 | --- 37 | 38 | 2. Building your First complete module 39 | - **Tutorial 02:** Build and test the classic VCV Fundamental modules > [**> Read the tutorial**](tutorials/tutorial_2.md) 40 | - _Download the package files_ 41 | - _Build and test the modules in VCV Rack_ 42 | - **Tutorial 03:** Use the new tutorial´s template > [**> Read the tutorial**](tutorials/tutorial_3.md) 43 | - _Set basic module settings files and folders_ 44 | - _Build and store new modules_ 45 | - _Test your module in VCV Rack_ 46 | 47 | --- 48 | 49 | 3. Organizing your work and planning tasks 50 | - **Tutorial 04:** Consolidating and validating your project > [**> Read the tutorial**](tutorials/tutorial_4.md) 51 | - _Check for similar existing plugins_ 52 | - _Draw some mockups and define features_ 53 | - **Tutorial 05:** Are you ready ? if yes, time to work > [**> Read the tutorial**](tutorials/tutorial_5.md) 54 | - _Setting up your SLUG, ModuleName, and files_ 55 | - _Defining size and style for your module_ 56 | - _Commenting your code blocks_ 57 | 58 | --- 59 | 60 | 4. Building your first created module 61 | - **Tutorial 06:** Building basic components > [TODO](https://) 62 | - _Objective, creating a simple audio circuit, aka "THE MIXER"_ 63 | - _Creating Input and outpout ports_ 64 | - _Creating a knob that controls a num param_ 65 | - _Creating a switch button to change a boolean param_ 66 | - _Creating a vu meter to visualize a num param_ 67 | - _Creating a screen to visualize any param_ 68 | - _Creating a momentary button_ 69 | - _Creating a menu with static infos_ 70 | - _Creating a user´s dynamic info on panel_ 71 | - **Tutorial 07:** Customizing your components > [TODO](https://) 72 | - _Creating your background layer_ 73 | - _Creating new controls_ 74 | - _Creating a screen panel_ 75 | - _Adding some conditional infos in the menu_ 76 | - _Adding some folders for presets_ 77 | 78 | --- 79 | 80 | 5. Building an advanced module 81 | - **Tutorial 08:** Creating an audio source > [TODO](https://) 82 | - _Objective, creating a new audio circuit, aka "THE SAMPLER"_ 83 | - ... 84 | - **Tutorial 09:** Creating a wave generator > [TODO](https://) 85 | - _Objective, creating a new audio circuit, aka "THE SYNTHETIZER"_ 86 | - ... 87 | - **Tutorial 10:** Creating a filter section > [TODO](https://) 88 | - _Objective, creating a new audio circuit, aka "THE EQUALIZER"_ 89 | - ... 90 | 91 | --- 92 | 93 | ... 94 | 95 | - i am looking for people who can help to extend this documentation on building modules on MacOS and Linux ;) 96 | 97 | -------------------------------------------------------------------------------- /tutorials/tutorial_ES_01.md: -------------------------------------------------------------------------------- 1 | In progress !!! 2 | 3 | Tutorial: Cómo crear módulos para VCV-Rack 4 | Entrenamientos y consejos sobre cómo construir su propio instrumento virtual para la plataforma VCV Rack , escrito por uriel Deveaud - 2019 5 | 6 | Introducción 7 | Por lo tanto, desea crear sus propios instrumentos o módulos para tocar en VCV Rack . La bienvenida a bordo ! 8 | 9 | Antes de comenzar a hablar sobre programación de computadoras , veamos el perfil general y los conocimientos básicos que puede necesitar durante el proceso de creación de su complemento. En este momento, tienes una idea, y estoy seguro, ¡la mejor! Como músico, es posible que hayas estado buceando en algún tipo de código ... ¡o no! O tal vez, como programador, ¿quieres aprender a hacer instrumentos musicales y dispositivos de audio ? Esta serie de tutoriales está hecha para ti. Veamos el contexto general: 10 | 11 | Básicamente, a los músicos no les gusta perder su tiempo en el trabajo de codificación, pero hay excepciones, por supuesto. En este caso, quieres unirte al grupo de desarrolladores de músicos , y eso está bien. Avanzaremos paso a paso y pasaremos de un módulo básico a uno muy complejo. 12 | 13 | Si eres muy nuevo en la programación de audio, c ++ y SVG design , aún puedes seguir esos tutoriales, pero te sugiero que tengas mucha curiosidad y participes con respecto al aprendizaje de las bases o cualquier introducción que puedas ver en youtube u otros foros y páginas de Facebook. ... pregunte, busque y tome notas;) Al ingresar en la creación del módulo, hay un 99% de posibilidades de que produzca más de un complemento, así que, tómelo en serio, aprenda por el método, manténgase organizado, vaya paso a paso , respétate ... y verás, lentamente, ¡tu instrumento cobrará vida! El precio no es nada comparado con la plena satisfacción de crear el dispositivo de tus sueños y encenderlo por primera vez :) 14 | 15 | Bueno, echemos un vistazo al menú de este tutorial. Cada sección presenta varias tareas que desea repetir según sea necesario, dependiendo de su proyecto personal. Entonces, primero debe conocer la "estructura del código API de los módulos VCV", saber cómo compilar un complemento y, finalmente, probar su creación "en vivo" en VCV Rack . Una vez que se entienda este ciclo, estará listo para desarrollar las características de su módulo y la interfaz de usuario (UI) . Como acabo de decir, estamos progresando, siguiendo estos 3 pasos en bucle: 16 | 17 | Buscando expresiones de código y entendiendo las "reglas" 18 | Adaptar las reglas del código a las necesidades reales. 19 | Secciones de código duplicadas y limpias. 20 | ¡Por supuesto, después de algunas veces, construirá su propia biblioteca de códigos y podrá saltar rápidamente al siguiente nivel! Una sugerencia común, y es muy importante, si usted no es un programador experimentado, "explorar" los códigos de otros Módulos desde las páginas de sus autores. De ellos, aprenderá qué solución eligieron y cuál es el resultado. Puede descargar sus repositorios y construirlos en su máquina local. Buena enseñanza, pero al menos, necesitas entender lo que estás leyendo :) Alcancemos este objetivo junto con esta serie de tutoriales. Disfrutar 21 | 22 | Resumen 23 | Prerrequisitos 24 | Tutorial 01: Configure su entorno de desarrollo en Win10 > Lea el tutorial 25 | Instalar un compilador y un editor de texto. 26 | Descarga del repositorio de rack VCV y compilación de la aplicación principal 27 | Configurando archivos y carpetas 28 | Construyendo tu primer módulo completo 29 | Tutorial 02: Construya y pruebe los módulos básicos de VCV clásicos >> Lea el tutorial 30 | Descarga los archivos del paquete 31 | Construye y prueba los módulos en VCV Rack 32 | Tutorial 03: Usa la nueva plantilla de tutoriales >> Lee el tutorial 33 | Establecer los archivos y carpetas de configuración básica del módulo 34 | Construye y almacena nuevos módulos. 35 | Pruebe su módulo en VCV Rack 36 | Organizando tu trabajo y planificando tareas. 37 | Tutorial 04: Consolidando y validando su proyecto >> Lea el tutorial 38 | Compruebe si existen complementos similares 39 | Dibuja algunas maquetas y define características. 40 | Tutorial 05: ¿Estás listo? Si es así, es hora de trabajar >> Leer el tutorial 41 | Configurando tu SLUG, ModuleName y archivos 42 | Definiendo tamaño y estilo para tu módulo. 43 | Comentando tus bloques de código 44 | Construyendo tu primer módulo creado 45 | Tutorial 06: Construyendo componentes básicos> TODO 46 | Objetivo, crear un circuito de audio simple, también conocido como "EL MEZCLADOR" 47 | Creación de puertos de entrada y salida 48 | Creando un mando que controla un parámetro num. 49 | Creando un botón de cambio para cambiar un parámetro booleano. 50 | Creando un vu meter para visualizar un param param 51 | Creando una pantalla para visualizar cualquier param. 52 | Creando un botón momentáneo 53 | Creando un menú con infos estáticos. 54 | Creando una información dinámica del usuario en el panel. 55 | Tutorial 07: Personalizando tus componentes> TODO 56 | Creando tu capa de fondo 57 | Creando nuevos controles 58 | Creando un panel de pantalla 59 | Añadiendo algunas informaciones condicionales en el menú. 60 | Añadiendo algunas carpetas para presets 61 | Construyendo un módulo avanzado 62 | Tutorial 08: Creando una fuente de audio> TODO 63 | Objetivo, crear un nuevo circuito de audio, también conocido como "EL SAMPLER". 64 | ... 65 | Tutorial 09: Creando un generador de ondas> TODO 66 | Objetivo, crear un nuevo circuito de audio, también conocido como "EL SINTETIZADOR" 67 | ... 68 | Tutorial 10: Creando una sección de filtro> TODO 69 | Objetivo, crear un nuevo circuito de audio, también conocido como "EL EQUALIZADOR". 70 | ... 71 | ... 72 | 73 | Estoy buscando personas que puedan ayudar a ampliar esta documentación sobre la creación de módulos en MacOS y Linux;) 74 | -------------------------------------------------------------------------------- /tutorials/tutorial_FR_01.md: -------------------------------------------------------------------------------- 1 | **Tutorial 01**: Version 0.1 (Ecrit par Uriel Deveaud - 01/2019) 2 | 3 | [**Retour au Menu general**](../README.md) 4 | 5 | ![](images/header.jpg) 6 | 7 | # Installer votre environement de developement sous Win10 8 | 9 | So, let´s start from the beginning, you computer is up to become your building machine, but you need to prepare your setup to be able to build applications. First of all, you will need to download a couple of Free softwares to perform each tasks, as always, i recommend to get some free or open source applications, but other professional softwares will be fine. Just mind the corresponding download, regarding your operating system, and don´t forget that VCV Rack is only working on 64bits OS ! 10 | 11 | - **Coding**, [**Visual Studio Code**](https://code.visualstudio.com/), one of the best, free and great ui 12 | - **Drawing**, [**Inskape**](https://inkscape.org/), but it can be done with Adobe illustrator, Gravit, etc... or any on-line SVG Editor 13 | - **Building**, [**MSYS64 and its installer**](https://www.msys2.org/), the only one that actually works for me... 14 | 15 | Once you have installed those softwares, you need to understand what kind of file´s extension you want to create and execute: 16 | 17 | - **.cpp**, all our code will be written in C++, before it get compiled 18 | - **.svg**, our visuals will be exported as SVG or "vector based graphics" 19 | - **.dll**, our final release will include the plugin file and its image´s folder 20 | 21 | If everything is fine, you should be able to open the 3 softwares at the same time. I know that there is an issue if you have some anti-virus applications running, so i recommend to disable it during your installation process ! 22 | 23 | ![](images/1_software.jpg) 24 | 25 | Don´t forget to do any necessary updates, you always need the last version ! I suggest you to read carefully this page, regarding Msys64 updates: [**How to update MSYS64 ?**](https://www.msys2.org/) 26 | 27 | --- 28 | 29 | ## Downloading the VCV Rack Repository and building the main application 30 | 31 | Now, we have to get the source code of VCV Rack, to be able to compile it and to run it of course ! 32 | Again, read carefully the [**VCV documentation page**](https://vcvrack.com/manual/Building.html#setting-up-your-development-environment), and make sure you are completing each steps of the process, it is kind of easy, just follow the guide. 33 | Be aware that from now, most of the commands will be executed thru the Msys64 console terminal, keep it open ! 34 | 35 | To get a close look at the commands, i did join each line bellow: 36 | ``` 37 | $ git clone https://github.com/VCVRack/Rack.git 38 | $ cd Rack 39 | $ git submodule update --init --recursive 40 | $ make dep 41 | $ make 42 | $ make run 43 | ``` 44 | - Duplicate the repository to your computer (automaticly in the HOME folder of Msys64) 45 | - Go to the newly created folder, called "Rack" 46 | - Check for updates (important ! 47 | - Download files (you may add your processor setup: make -j4 dep) 48 | - Build the application (again, your processor setup is important here) 49 | - Open and run the application, You´ve just build VCV Rack ! 50 | 51 | 52 | 53 | ## Configuring files and folders 54 | 55 | If everything was running up to the end, you should have this main VCV Rack directory´s accessible at: 56 | ``` 57 | C:/msys64/home/Rack/ 58 | ``` 59 | If it not exists, you want create manually the plugins folder: 60 | ``` 61 | C:/msys64/home/Rack/plugins/ 62 | ``` 63 | 64 | The VCV Rack source code doesn´t come with modules, you must download them and install them, or you must just open the module´s browser, on the official VCV RAck website. As you need some basic modules, you want to download the [**Fundamental**](https://github.com/VCVRack/Fundamental) modules serie. We will see in the next chapter how to build a module, and we will start with those ones, for their basic VCO, LFO, VCA, VCF,etc.. modules. 65 | 66 | Download the package and "unzip" it into your plugins folder.. that´s all for the moment. 67 | 68 | --- 69 | 70 | [**Return to Main Menu**](../README.md) 71 | 72 | [**Next tutorial**](tutorial_2.md) 73 | --------------------------------------------------------------------------------