R&D Software Internships

Job description

_Internship : Creating automated tests framework 

6 months duration

Arturia is developing and maintaining almost 70 products now. All these products are based on the same sdk, with a lots of unit tests and integration tests. But there is still a lot of tests that is done by hand. This can take a lot of time and create risks of errors to reproduce the issues. Hence the need to speed up the process of automating tests we want to provide the test team with.

To this day, Arturia has already implemented a tool that enable to send some commands to the plugin to load preset or press a button. The idea is to take this workflow further now, to provide an easy interface for the test team to create test, to implement all useful interaction with thes plugin.

The goals of the internship are to:

  • Evaluate common practices / framework in terms of automated tests
  • Analyze an existing product with the Quality Assurance team and identify the needs for automatization
  • Setup the protocol to write tests and validate results (audio, GUI, behavior)
  • Integrate into TestRail (our existing test framework)

Profile - What we expect:

  • Experience in C++ and Python development required
  • Good understanding of Object-Oriented Programming, versioning systems, Xcode or Visual would be best
  • An experience with unit test (cppunit) or automation framework (Selenium, Robot Framework) would be appreciated


_Internship: CLAP, the new open source audio plugin format 

6 months duration

The main part of Arturia software products are virtual emulation of famous analog synthesizers and physical models of electro-acoustic instruments. Musicians can use a MIDI keyboard to control the software sound synthesis done by a software, using the computer’s own processor.

Arturia is already supporting the most common basics plugin format, such as vst2, vst3, au or aax.


Recently, two companies (Bitwig and U-He) came up with a new open-source format named CLAP (CLever Audio Plug-in).

The CLAP format allows in particular:
- Take advantage of multi-core processors
- Better organize its effects using integrated metadata
- Automate and modulate parameters per note, thanks to the new specificities of MIDI 2.0
- Apply parameter modulations with a time delay, in a non-destructive way

Within the Software team composed of 17 people, you will participate in evaluating this new format into our plugin.

Profile - What we expect:

  • Experience in C++ development required
  • A good understanding of Object Oriented Programming, versioning systems, Xcode or Visual would be best.
  • An experience with the world of the MAO / Midi protocol / Modulations is a plus, as well as interest on code optimisation and multi-threading.


_Internship: Creating GUI interface builder 

6 months duration

Arturia’s software is famous for its lovely realistic graphical interfaces that reproduce the look and feel of the original synthesizers that they are emulating. But programming graphical user interfaces can take a lot of time, and needs a lot of prototyping before getting to the most user friendly, and elegant design. Hence the need to speed up the process of creating quick prototypes of the interfaces we want to provide the users with.

To this day, Arturia has already implemented tools to facilitate the developer’s work immensely, providing a whole library of widgets to use without having to code them, and therefore to build graphical interfaces rather quickly from nothing. Currently, we have an incomplete GUI Editor that has the main required features needed. The idea is to take this workflow a step further, to graphically be able to edit any of our software’s interfaces in a non-destructive way. The point of the internship is to analyze the existing product, understand the key points to target to make this product usable by our software team, and in a third time, explore the things you can do on such a product.

The goals for Arturia are:

  • Evaluating common practice in terms of graphical user interface builders
  • Analyzing an existing product and the needs for quick prototyping with a graphical user interface builder
  • Understand the key points to target to make this product usable by our teams
  • Creating a whole GUI without having to write a single line of code

Profile - What we expect:

  • Experience in C++ development required
  • A good understanding of Object-Oriented Programming, versioning systems, Xcode or Visual would be best.
  • An experience with graphical design software (Adobe Illustrator, Inkscape, Corel Draw, etc) would be appreciated


_Internship: Design and build a modern C++ package manager 

6 months duration

Each year, Arturia is releasing multiple new software instruments, effects and tools. Each product is based on core libraries written in modern C++17, mostly for the audio and GUI parts.

Now we maintain about 50 softwares, building them for both Windows and Mac takes a lot of time and computation, and the need to optimize the build process becomes urgent. First to speed up the development process. Then to improve our Continuous Integration System that builds every night all our instruments. This optimization would allow us to gain a lot of time and also improve our energy footprint.

For these reasons we would like to design and integrate a library manager tool with the following features:
- It should store our prebuilt libraries, ready to be used in different build configuration (Release, Debug), for different platforms (Win, Mac, Linux)
- We use git as version controlled system, thus it should be able to store several versions of the lib depending on the branch
- Automatic rebuild of the library when its code has been changed


In the first part of the internship, you will acquire information on existing technologies used for modern C++ library management, like the recent Conan project developed by Jfrog.
Then you will dive in our SDK, understand, and evaluate our current build system to finally propose a technical solution that meets the specification.
Some specific libraries in our SDK will probably require to be adapted to fit with the library manager you will develop, this will be the last part of the internship.

Profile - What we expect:

  • Good Knowledge in Python required
  • Experience with GIT
  • Experience in C++ programming language or any other compiled into binary language
  • Good knowledge of Windows, Mac and Linux

Job requirements

If you are willing to join passionate teams and a growing international company in the music industry, send us your resume and cover letter, specifying the internship for which you apply.