Code Monkey home page Code Monkey logo

dawvert's Introduction

DawVert Logo

DawVert - The DAW ConVERTer

DawVert is a Project File Converter

Discord Server

How to Use

python3 dawvert_cmd.py -i <input> -ot <output type> -o <output>

input type: -it 
input file: -i 
output type: -ot 
output file: -o

e.g: 
    python3 dawvert_cmd.py -i song.txt -ot flp -o out.flp

    python3 dawvert_cmd.py -it jummbox -i song.txt -ot flp -o out.flp

Command Line Options

GM Soundfont File Path (for GM MIDI instruments): 
--soundfont <sf2 file>

Sample Folder Path (path for sample extraction): 
--samplesfolder <sample folder>

Song Number (used for Multi-Song inputs): 
--songnum <number>

MultipleIndexed2Multiple:  
--mi2m--output-unused-nle           (Output Unused Patterns)

e.g: 
    python3 dawvert_cmd.py --soundfont "MuseScore_General.sf2" -it notessimo_v2 -i song.note -ot flp -o out.flp

    python3 dawvert_cmd.py --samplefolder "a diffrent folder" -i "song.s3m" -ot lmms -o out.mmp

    python3 dawvert_cmd.py --songnum 3 -it famistudio_txt -i "song.txt" -ot lmms -o out.mmp

Required Libraries

varint
numpy
mido
lxml
chardet
av
beautifulsoup4
blackboxprotobuf
git+https://github.com/Perlence/rpp
tinydb

Optional Libraries

xmodits_py - for extracting Impulse Tracker and FastTracker2 Samples

(Some) Supported Outputs

Full List...

DataType Short Name Name
M-I flp FL Studio
R lmms LMMS
R ableton Ableton Live 11
R midi MIDI
R muse MusE Sequencer
R reaper Reaper

(Some) Supported Inputs

Full List...

DataType Short Name Name Ext Autodetect
R-M midi MIDI .mid ✔️
M-I flp FL Studio .flp ✔️
R ableton Ableton Live 11 .als ✔️
R lmms LMMS .mmp/.mmpz ✔️
M mod ProTracker .mod
M xm FastTracker 2 .xm ✔️
M s3m Scream Tracker 3 .s3m ✔️
M it Impulse Tracker .it ✔️
M umx Unreal Music Package .umx ✔️
R orgyana Orgyana/OrgMaker .org ✔️
M ptcop PxTone .ptcop ✔️
M-I jummbox Beepbox/Jummbox .json
M-I famistudio_txt FamiStudio Text .txt

VST Plugins

Full List...

dawvert's People

Contributors

b0ney avatar satyrdiamond avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar

dawvert's Issues

Add looping data to AudioFileProcessor when converting it, xm, s3m & mod files to mmp

Hi!

I'm quite close to finishing xmodits_py v0.2.0.

The release will have your requested features:

  • Add looping data to exported wav files using the "smpl" chunk
  • More platform support

As well as some bug fixes, optimizations, improved stability, etc.

I am currently using Polyphone Soundfont Editor to verify the looping data is correct, but I would like so see how DawVert does it.

I am incredibly impressed to see how well it converts xm files! Right now the only thing that's missing are the loop points.

Keep up the awesome work! looking forward to hear from you!

How to use with pipx

With the introduction of PEP 668 installing libraries on Ubuntu 23.04 is now done using tools like pipx. However, several of the libraries cannot be found with pipx.

Are there instructions on how to install the libraries needed for this software with pipx?

Incorrect AFP playback when end point is zero

I found a bug in daw_lmms.py where AFP will not play the sample properly if the end loop point is 0. (It'll just click)

This can be fixed by setting the end point to 1.0 if it's 0.0.

This is fine, but it's also possible for both the start and end points to be equal, so you can check for that as well.

if 'loop' in plugJ:
  trkJ_loop = plugJ['loop']
    if 'points' in trkJ_loop:
      trkJ_loop_points = trkJ_loop['points']
        start_point = trkJ_loop_points[0] / trkJ_length
        end_point = trkJ_loop_points[1] / trkJ_length

        if end_point == 0 or start_point == end_point:
           end_point = 1.0

        xml_sampler.set('lframe', str(start_point))
        xml_sampler.set('eframe', str(end_point))

Crash when importing. UnboundLocalError

Crash when trying to convert flp to mmp

Commandline:
python dawvert_cmd.py -i WarZone-20.flp --samplefolder . -ot lmms -o warzone.mmp

[plug-conv] Converting Slicer to Ninjas 2: plugin1005 Traceback (most recent call last): File "/home/user/src/DawVert/dawvert_cmd.py", line 101, in <module> core.convert_plugins(extra_json) File "/home/user/src/DawVert/functions/core.py", line 177, in convert_plugins CVPJ_C = plug_conv.convproj(convproj_j[0], platform_id, convproj_j[1], currentplug_output[3], currentplug_input[1], currentplug_output[1], currentplug_output[5], currentplug_output[6], extra_json) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/src/DawVert/functions/plug_conv.py", line 147, in convproj is_converted, plugintype = convertpluginconvproj(sep_pl_pc_out__plugins[out_getsupportedplugformat], cvpj_l, pluginid, plugintype, extra_json) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/src/DawVert/functions/plug_conv.py", line 93, in convertpluginconvproj isconverted = plugclassinfo[0].convert(cvpj_l, pluginid, plugintype, extra_json) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/src/DawVert/plugin_plugconv/vst2__i_sampler_slicer.py", line 19, in convert plugin_vst2.replace_data(cvpj_l, pluginid, 'name','any', 'Ninjas 2', 'chunk', data_nullbytegroup.make(ninjas2out), None) File "/home/user/src/DawVert/functions/plugin_vst2.py", line 90, in replace_data vst_cpuarch, vst_path, vst_name = find_path(in_name, platformtxt, bycat) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/user/DawVert/functions/plugin_vst2.py", line 75, in find_path vst_cpuarch, vst_path = find_locpath(out_paths) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/src/DawVert/functions/plugin_vst2.py", line 55, in find_locpath return vst_cpuarch, vst_path ^^^^^^^^^^^ UnboundLocalError: cannot access local variable 'vst_cpuarch' where it is not associated with a value

Issue converting ableton project to midi

Hi,
Thanks for a very interesting tool.

I tried to convert an ableton project (als) file to midi and it failed in "functions_compat\trackfx_to_numdata.py" in the groups_inside loop.

The only fix I could think of was to enclose the code in a try except, which fixed my problem.
The issue is that the groups_inside object does include a id that the idnum_group does not.

try:
    for groupidnum in groups_inside:
        output_ids[groupidnum][3] = [idnum_group[groups_inside[groupidnum]], 1, None]
except Exception as error:
    # handle the exception
    print('[error] An exception occurred:', error) 

Cheers

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.