GithubHelp home page GithubHelp logo

spotlightkid / ardour2fxp Goto Github PK

View Code? Open in Web Editor NEW
20.0 6.0 6.0 53 KB

Convert between Ardour XML and binary FXP VST2 preset files.

License: Other

Python 100.00%
ardour vst fxp converter daw vst2

ardour2fxp's Introduction

ardour2fxp

Convert between Ardour XML and binary FXP VST2 preset files.

Warning

This is software is still in beta stage. Use at your own risk!

Latest version Date of latest release Status MIT License Python versions Distribution format

Overview

The Open Source DAW Ardour saves user presets for VST2 plugins as XML documents in the directory ~/.config/ardour5/presets, with file names like vst-1094861636, where 1094861636 is the VST2 plugin indentifier as an integer. Unfortunately, most proprietary DAWs expect presets for VST2 plugins as FXP files (extension .fxp) or banks of presets as FXB files (extension .fxb). This makes it very hard to share presets for VST2 plugins between users of Ardour and those propietary DAWs.

The ardour2fxp script converts Ardour VST2 preset XML files to FXP preset files, so the presets can be imported when using the plug-in in another DAW.

The fxp2ardour script converts FXP preset files to Ardour VST2 preset XML files. FXB preset bank files are currently not supported.

Getting Started

Requirements

  • Python 3.6+

Installation

Install ardour2fxp with pip:

$ pip install ardour2fxp

or directly from the source code:

$ git clone https://github.com/SpotlightKid/ardour2fxp.git
$ cd ardour2fxp
$ pip install .

Usage

ardour2fxp

The ardour2fxp script can be used like this:

$ ardour2fxp -o my-vst-presets ~/.config/ardour6/presets/vst-1094861636

This will create an FXP (extension .fxp) file for every preset in the Ardour preset file(s) given on the command line (vst-1094861636 in the example above). FXP files will be put into sub-directories of the output directory given with the -o command line option (my-vst-presets in the example). The FXP files will be named after the preset label (with spaces replaced with underscores) and the sub-directories will be named after the plug-in identifier (1094861636 -> "ABCD" in the example). Existing files will not be overwritten (unless the -f / --force command line option is given).

fxp2ardour

The fxp2ardour script can be used like this:

$ fxp2ardour -o ardour-presets my-vst-presets/*.fxp

This will create Ardour VST2 preset XML files for all presets in the FXP file(s) given on the command line. The Ardour preset files will be placed in the output directory given with the -o command line option (ardour-presets in the example above, defaults to the current directory). One Ardour preset file per plugin will be written. Each Ardour preset file is named with a "vst-" prefix plus the plugin identifier interpreted as a signed integer (e.g. when the plugin identifier is "ABCD", the file name will be vst-1094861636). Existing files will not be changed or overwritten, unless one of the -f / --force, -a / --append or -m / --merge command line options are used.

The output files can be copied to the user's Ardour preset directory. The location of this preset directory differs depending on your operating system:

OS Path
Linux ~/.config/ardour6/presets
Windows %LOCALAPPDATA%\Ardour6\presets
MacOS ~/Library/Preferences/Ardour6/presets

This assumes your Ardour major version is 6. Substitute 6 with 5 if you are still using Ardour 5.x Care must be taken not to overwrite existing user preset files.

To append the converted FXP presets to (an) existing Ardour preset file(s), use the command line option -a / --append and set the output directory to the one containing the ardour preset file(s). Existing presets in the Ardour preset file(s) will not be changed.

With the -m / --merge command line option you can merge the converted FXP presets into (an) existing Ardour preset file(s). This means that existing presets in the Ardour preset file(s) with the same label as a converted preset for the same plugin will be be replaced with the latter.

CAUTION: If you have several existing presets in an Ardour preset file with the same label or several converted FXP presets with the same name for the same plugin, it can be difficult to determine, which preset is overwriten by which.

Contributing

Please submit an issue or pull request to the project on GitHub.

Authors

License

This project is licensed under the MIT License - see the file LICENSE.txt about copyright and usage terms.

Acknowledgments

The following resources were used to implement this script:

  • Ardour sources (vst_plugin.cc)
  • VST SDK headers (pluginterfaces/vst2.x/vstfxstore.h)

ardour2fxp's People

Contributors

spotlightkid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ardour2fxp's Issues

Parsing argument problem on Windows 10

Hi, I found issue probably concerning to argument parser.
This works:
$ cd "/c/Users/mvond/vst/P8/Patches/P8 - Factory Patches/Pads"
$ ~/projects/ardour2fxp/fxp2ardour.py -m -o "C:/Users/mvond/AppData/Local/Ardour6/presets" *.fxp

But this does not:
$ cd "/c/Users/mvond/projects/ardour2fxp"
$ fxp2ardour -m -o 'C:\Users\mvond\AppData\Local\Ardour6\presets' 'C:\Users\mvond\vst\P8\Patches\P8 - Factory Patches\Pads\*.fxp' Error reading FXP preset file 'C:\Users\mvond\vst\P8\Patches\P8 - Factory Patches\Pads\*.fxp': [Errno 22] Invalid argument: 'C:\\Users\\mvond\\vst\\P8\\Patches\\P8 - Factory Patches\\Pads\\*.fxp'

I suppose that spaces in the path make problems. I ran it from Git Bash on Windows 10, but in cmd is the same. I tried quotes, double quotes, escaping spaces etc.

fxp2ardour python error

Hi. I have a error message when I try convert fxp file to xml .

On terminal, write:
$ fxp2ardour -o my-xml-presets ~/audio/plugins_presets/Obxd-new_strings.fxp

Terminal out:
Traceback (most recent call last): File "/home/audiopc/.local/bin/fxp2ardour", line 11, in <module> sys.exit(main()) File "/home/audiopc/.local/lib/python2.7/site-packages/fxp2ardour.py", line 116, in main sha1.update(bytes(preset.label, 'latin1')) TypeError: str() takes at most 1 argument (2 given)

P.D.: On the README file and the info on github repository the command for convert fxp files to xml is wrong type: fxp2ardour2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.