AZSlow

General => CWP2Song => Topic started by: azslow3 on August 09, 2024, 11:30:31 AM

Title: About/Installation/Features
Post by: azslow3 on August 09, 2024, 11:30:31 AM
About
CWP2Song is a command line utility (Windows/Linux) to convert "Cakewalk Sonar" (v6+, X, Platinum) and "Cakewalk by Bandlab" DAW projects (.cwp extension) into Presonus Studio One Pro (v6+) DAW projects (.song extension). Please note there is no plans to support "Bandlab Sonar" (new commercial version) nor "Bandlab Next" created projects.

The program is developed for Sonar X2 - CbB generated files, but theoretically can work with older versions. For the list of currently converted parts of the project, see "Features" post later.

The utility is closed source but free to use (see included into package License file for details).

You can donate (https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VD3J8M7MFBAG4) to support CWP2x project(s). Please note that you do not buy a license nor any special service doing that. The software is provided "as is", without any promises.


Intention
Primary purpose for this utility is to continue mixing Cakewalk projects in Presonus Studio One (you have changed the DAW you use but you have many projects done in Cakewalk, you prefer mixing in Studio One, you want give your project to someone who use Studio One, etc.).

The resulting sound can not "null", except when the project is specially prepared for that. If you don't use Cakewalk specific plug-ins and unsupported features, the sound should be "reasonably similar". The difference may vary from project to project and comes from different processing algorithms and inaccurate parameter conversion (values for the same parameters, even when shown the same to the user, are rarely mathematically the same in different DAWs). That is expected and can't be avoided.


Far from everything is converted, some parts are converted partially on not precise. That is not a bug, but feel free to make Future Request, except when the feature is already mentioned as "not implementable" (f.e. when Studio One is not supporting something, there is no sufficient information in .cwp, etc.)

Credits
Bapu has asked to develop, sponsored required software and tested the project.

Changelog
16.10.2024 - 0.1r0b32, the first public beta

Disclaimer, copyrights, etc.: ShowHide


From my best knowledge, I have not violated any part of Cakewalk / Presonus EULA during the development. In particular, I have NOT debugged, reverse engineered, etc. anything from licensed packages. The program was written solely based on the CWP and SONG (my own and provided by users projects) files content observation. These files are not encrypted (at least in parts which I parse), use well known primitive binary or text data representations and aggregated construction from these primitives. I have not found any evidence of innovative technologies for data persistency in these files. I extract the information which user can provide manually in both DAWs, the converter is just an accelerated method to transfer user's owned data out of particular format into different format.
What I do is from my knowledge legal, at least in EU (where I am).
Since by using this program the user just accelerates the procedure he/she is (legally) allowed to perform, I do not think using the program can violate EULA in any country



Cakewalk and Sonar are registered trademarks of BandLab Singapore Pte. Ltd.
Studio One is a registered trademarks of PreSonus Software, Ltd.
VST and VST3 are registered trademark of Steinberg Media Technologies GmbH

Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 12:16:43 PM
[glow=blue,2,300]Installation[/glow]

[glow=blue,2,300]How to use[/glow]
For Windows. Open command line (cma), run:
<path to executable>\cwp2song.exe  <path to the project>\<project name.cwp>
If cwp2song.exe is in system path list and you "cd" into directory with the project in question, you can run
cwp2song <project name.cwp>

Note in case the project name has spaces, you need to quote it.

The converter will try to create the file <project name.song> in the same directory as original project file. So it should be writable for current user.

It is not required to have related audio files available, but in some cases the resulting .song may be incorrect. The utility will warn when it can't find audio files or they have unsupported (by utility) format.

Note the output from the utility, if you see any line prefixed with "B:" (bug) or "E:" (error), the result is at least incomplete, broken or will not be created at all.
Please report such cases to the developer (if the reason is not obvious, f.e. you don't have write permission to the directory, you have specified not existing file name,
there is no space on the disk, etc.). Prefixed with "W:" (warning) or "U:" (not implemented or unknown) lines report something (not critical) is not or can't be converted.
 
WARNING: Do NOT convert CWP projects in place where you used them in Cakewalk. Make a separate copy of the whole project, including ALL ASSOCIATED AUDIO FILES. The converter will not modify CWP file itself, but all related audio files are accessed directly. Studio One is free to modify/delete audio files related to the project.

In some projects, for which "Always copy imported audio files" and/or "Use per-project audio folder" was not set, the project can reference original locations. Please be extremely careful in this case.

After you open .song in Studio One and BEFORE you modify it, all files are safe. To be on safe side, open "Song"/"Copy external files..." dialog and confirm the operation (it will say it has nothing to do if there is no external files in use).

If you ignore this warning, it can happened you WILL BE UNABLE TO OPEN ORIGINAL PROJECT IN CAKEWALK.

Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 12:52:58 PM
Abbreviations
To make the text shorter, I use several abbreviations:

Terms
Most DAWs I know call the same (or similar) objects and operations differently. To simplify reading and avoid misinterpretation, I mark such terms. F.e.:
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:13:40 PM
Project:
Projects structure in S1 is similar to CW.

Can not be converted (not exist in S1 or I do not know how to convert):


Metadata:
Converted:

Not converted yet:

No plans to convert:
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:20:25 PM
Timeline:


Converted:

No plans to convert:

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:21:00 PM
All Strips (AZ):
Converted:

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:21:58 PM
Audio Strips (AZ) / Channels (S1):
For Audio Tracks, Buses, Synth Output Tracks (CW) / Instrument Output Channels (S1)

Converted:

Not converted (yet):

Can not be converted (or I do not know how, or difficult):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:22:26 PM
All Tracks:
Audio, AUX(CW) / Audio (S1) and MIDI (CW) / Instrument (CW) Tracks.

Converted:

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:22:43 PM
Buses:

Converted:

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:23:31 PM
Audio Tracks:

Converted:


Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:24:01 PM
MIDI (CW) / Instrument (S1) Tracks:
Unlike CW and R, S1 is not using MIDI format for Instrument Tracks content. So they are technically not MIDI tracks, even so they are used for the same purpose.

Converted:

No plans to convert:

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:25:53 PM
Synth Output Tracks (CW) / Instrument Output Channels (S1):

Converted:

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:26:15 PM
AUX Tracks (CW):

Aux tracks - in CW Patch Points don't have "output", so an input from Patch Point is not leaking to somewhere. In S1 strips always have output. So if we use strip (including dedicated) as a Patch Point it will leak. How to proceed? F.e. add "Silent" Audio bus and set output of all (including implicit) Patch Points to it.
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:26:49 PM
Synth Rack (CW) / Instrument Rack (S1):


Converted:

Not converted (yet):

No plans to convert:

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:27:21 PM
FX:

Converted:

Not converted (yet):

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:28:05 PM
Audio Clips (CW) / (Audio) Events (S1):

Converted:

No plans to convert:

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:29:55 PM
MIDI Clips (CW) / (Instrument) Parts - Music Events (S1):

Converted:

Partially converted:

No plans to convert:

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 03:30:41 PM
Automations (CW) / Envelopes (S1):

Converted:

Partially converted:

Not converted (yet):

Can not be converted (or I do not know how):

Comments (difference in behavior and conversion decisions):
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 09, 2024, 10:49:28 PM
.
Title: Re: CWP2Song: About/Installation/Features
Post by: azslow3 on August 11, 2024, 06:35:02 PM
.
Title: Re: About/Installation/Features
Post by: azslow3 on August 21, 2024, 05:57:52 PM
.
Title: Re: About/Installation/Features
Post by: azslow3 on August 21, 2024, 05:58:04 PM
.
Title: Re: About/Installation/Features
Post by: azslow3 on August 21, 2024, 07:05:41 PM
MIDI and Studio One:
In the following I will use M for MIDI,  P for Presonus, S for Steinberg and V(3) for VST(3). These 4 names are trademarks of corresponding companies... Single characters are not  ;)

The whole problem is that someone in S at some point has decided "M is OLD, let's try to kill it". With such idea you need something "new". And that "new" was presented as V3 which should replace V1-V2.

But they "forgot" one simple thing... To declare "new" is a replacement for "old", normally "new" should be able to do the same thing as "old". Unfortunately even 16 (!) years later, S has not managed to give V3 capability to do everything possible in 42 years old M. And what is possible is defined most ugly way someone can imagine. And by "defined" I mean "in practice", since the documentation is so tricky and incomplete that everyone has to guess what it tries to "define".

Some people in P has decided "lets follow NEW rules as far as we can". And so:

And as the consequence:

P has made yet another nasty decision, they don't use per point step type for envelopes. The whole envelope can be declared as "step based", but it is normally immediately overwritten from "continuous" parameter specification. So "natural" M control sequences has to be mapped by linear type, effectively doubling the number of points to reproduce steps (with unclear effect on plug-ins).