Author Topic: About/Installation/Features  (Read 535 times)

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
About/Installation/Features
« on: February 01, 2018, 01:54:42 PM »
About
ReaCWP is (Cockos) Reaper DAW extension to import (Cakewalk) Sonar DAW project files (saved in CWP format).

The program is developed for Sonar X2 - Platinum generated files, but theoretically can work with older versions. For the list of currently converted parts of the project, see "Features" post later.
Current version works in Reaper for Windows (32 and 64bit). Linux version can be made on request. I do not have Apple to compile corresponding incarnation (nor any plans to do that).

The extension is closed source but free to use.
You can donate to support the project. Please note that you do not buy a license nor any special service doing that. The software is provided "as is", without any promises.

Note:
From my best knowledge, I have not violated any Sonar EULA during the development. In particular, I have NOT debugged, reverse engineered, etc. Sonar or any part of the package in which it comes. The program was written solely based on the CWP (my own projects) files content observation. These files are not encrypted (at least in parts which I parse), use well known primitive binary data representations and aggregated construction from these primitives. I have not found any evidence of innovative technologies in these files. I extract the information which any Sonar user can extract manually, so the converter is just an accelerated method to get your own information out of particular format in which it is currently saved.
What I do is from my knowledge absolutely legal at least in EU.
Since by using this program a user just accelerates the procedure he/she is (legally) allowed to perform, I do not think that using the program can be declared as a violation in any country.

« Last Edit: February 01, 2018, 02:58:18 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #1 on: February 01, 2018, 02:18:35 PM »
Installation
  • You need working Reaper installation. If you do not have it yet, you can download Reaper from: https://www.reaper.fm/download.php and legally evaluate. You can select "Portable" option during installation, this way Reaper will not integrate into Windows and you can restless un-install it by deleting the folder. Do not install loop-back ASIO driver if you do not need it! It will not harm your system in general, but audio inputs/outputs in Sonar can be redefined by installing the driver.
  • When Reaper access any audio files, it creates .reapeaks waveform files. By default, these files are created in the same place as audio file in question. When you use ReaCWP, that can "pollute" audio folders of Sonar projects with these .reapeaks files. To prevent that, in Reaper's Preferences General/Paths set "Store all peak caches in..." and set select some folder
  • For Reaper 5.70- (fixed in 5.75). In Reaper Preferences Project, clear "when creating new projects, use the following  file as a template"
  • download ReaCWP..Many anti-viruses think that ANYTHING compiled by GCC and/or not signed is a virus. I can only guess the reason and intention. But I can do nothing against that (mis)behavior.. Alternatively, download the latest development version (can be less stables but has more features and fixes, see change-log)
  • select _win32/reaper_cwp.dll or _win64/reaper_cwp.dll depending from the Reaper you use. While Reaper is closed (!), put the file into "Plugins" folder in the Reaper installation path or into "UserPlugins" folder which you can find by Options/"Show REAPER resource path..." in Reaper itself (but do not forget to close Reaper before copying the file, especially when upgrading ReaCWP)
  • you do not need Sonar installed to use the converter. But if you do not have Cakewalk plug-ins used you your projects, they will be disabled by Reaper till you install or replace them.

How to use
When ReaCWP is in correct place, Reaper should show cwp files as "supported" projects. You should be able to "open" them as normal Reaper projects, but you can not save them back into cwp.

That is an alpha version! Far from everything is converted, some parts are converted partially on not precise. Please do not report that as bugs. But you can ask to put particular features higher in my TODO list
« Last Edit: Today at 01:42:14 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #2 on: February 01, 2018, 04:14:39 PM »
Features
Since that is pre-alpha, the list is short. Check plans to see what you can expect later.

Time line:
Converted:
- tempo map
- time signature changes
- markers (see comments)

Can not be converted (or I do not know how):
- key signature (Reaper does not have it)
- Groove-clip pitch for markers


Comments (difference in behavior and conversion decisions):
- Sonar support music base (attached to MBT) and absolute time (attached to SMPTE) markers at the same time. Reaper can lock markers to music time OR absolute time, so they can not co-exist. Converter put all markers at correct position initially, but if you modify the tempo, the behavior in Reaper will be different compare to Sonar.
« Last Edit: Today at 01:47:10 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #3 on: February 01, 2018, 04:15:12 PM »
MIDI clips:
Converted:
- not looped MIDI clips (slip edits preserved)
- timebase and mute status

Partially converted:
- grooved MIDI and step sequencer clips are converted "bounced" (by Sonar), so not as looped / sequenced
- only simple MIDI event types are converted so far. PC, SysEx, Lytics, etc... are ignored

Unclear how to convert:
- take lanes in Sonar and Reaper have different philosophy. Take lanes in Sonar are "sub-tracks" routed to the track (as track->bus relation). Takes in Reaper are parts of clips (items). Converting Sonar take lanes as item takes is not always possible, but make big sense in respect to comping. Converting take lanes as sub-tracks preserve original flexibility but loose comping.
- CC track automations in Sonar have no equivalent in Reaper. Technically speaking they are artificial and not transparent, unlike "normal" automations they just produce corresponding MIDI events. "Not transparency" comes from unclear timing when such events should be triggered. The only reasonable approach I see is to create sub-track with MIDI clip(s) and "render" such automations into these clips.

Can not be converted (or I do not know how):
- Sonar is able to use sub-tick timing for MIDI events (rarely, but happens), Reaper does not. Note that MIDI clip position is precise and converted as such. MIDI files have tick precision and MIDI hardware in practice has lower then tick accuracy (one event transfer throw MIDI cable takes ~1mSec, so longer then a tick ~0.6mSec at 100 QPM). I mean it is hard to imagine when the difference can be relevant.

Comments (difference in behavior and conversion decisions):
- Sonar use TPQ (ticks per quarter note, normally 960 but can be set smaller) Project setting for MIDI output only. Internally, Sonar always save in 960. Reaper use the setting directly. Converter save MIDI event in Reaper way, specifying TPQ from Sonar settings as TPQ for each MIDI clip. 
- When clip is extended using slip editing in Sonar, original content begin point is preserved. Reaper, while technically support that, extends the content (converter follows Reaper behavior)
- When some note starts before current clip boundary in Sonar, it is not visible/played (at least in X2), but Reaper play it starting the boundary (converted "as is", so Reaper will play what Sonar will not)
- Note end is converted after (the next) note begin, in case both have equivalent time. Sonar does that reversed, but it can not preserve original sequence.  Some synth (f.e. Yamaha) need it the way I convert for proper portamento effect.
« Last Edit: February 15, 2018, 10:21:39 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #4 on: February 01, 2018, 04:18:35 PM »
Audio clips:
Converted:
- NOT LOOPED, NOT STRETCHED, NOT OVERLAPPED  Audio clips (slip edits preserved)
- stretched audio clips
- timebase and mute status
- snap offset
- clip fades

Partially converted:
- it seems like looped audio clips are somehow shown as bounced, but please do not count on that (or correct shift, slip editing, etc.)

Unclear how to convert:
- take lanes. See for MIDI clips

Comments (difference in behavior and conversion decisions):
- even with all theoretical effort, looping/stretching is not going to sound precisely the same as in Sonar. Reaper use different algorithms/libraries for that
« Last Edit: February 15, 2018, 05:16:24 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #5 on: February 02, 2018, 10:16:31 PM »
Track envelopes:
Converted:
- strip volume and pan automation envelopes (track envelopes), can be +-1dB different from original (to be improved in the future), see comments
- read status

Comments (difference in behavior and conversion decisions):
- envelopes can not be converted exactly. While Reaper has way more bright approaches with envelopes, in addition to different curve specification, there are general differences.
- In Sonar, strip envelopes automate absolute values. For volume, the chain is "clip gain envelope" -> "track gain" -> "pre FX" -> "track volume" OR "track volume envelope". So when volume is automated, it is replacing volume (set by  fader).
In Reaper, the chain is "Take volume" -> "Take volume envelope" -> "Track pre-fx volume envelope" -> "Track volume envelope" -> "Track Trim volume envelope" -> "Track trim" (and that is without VCA). Important practical difference is that volume envelopes are not absolute but relative. They do not "overwrite" parameters, they "add/substruct" to/from parameter value.
- In Sonar it is possible to write a peace of envelop, leaving the rest of the timeline "undefined". While that looks nice (only parts which was actually created are highlighted), that is a logical design flaw. Which value should parameter have at places where the envelope is not defined? If you let "play" the track from the beginning, every time there is no envelope, the parameter will stay as it was at the last defined position. But "jump" from one hall to another hall by mouse, and the parameter will not change. So f.e. volume of the track depends from the position you start play it.
Reaper likes deterministic behavior.  If you have an envelope and it is enabled, it always cover the whole project. So it is not possible to reproduce Sonar's design flaw there (which is not so bad).
EDIT: I am corrected by John. While Reaper can not reproduce Sonar's design flaw with "unpredictable" fader position, it is possible to reproduce separate peaces of envelops.
- Since envelopes in Reaper are addictive  and in Sonar absolute, setting volume (pan, etc.) as a separate parameter to the value in Sonar can produce unexpected behavior. In Sonar, once envelope is active, it will overwrite the value. In Reaper, envelope will adjust relative to the value. I plan to keep parameters for which envelopes are defined at unity.
« Last Edit: February 11, 2018, 09:47:06 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #6 on: February 06, 2018, 04:04:27 PM »
Plug-ins (VST(i), VST3(i) and DX(i)):
Converted:
- FX bins for tracks and Synth rack. With presets.

Partially converted:
- some plug-ins have special procedure. I  do not have such plug-ins, more investigation is required to fix.

Unclear how to convert:
- FX Chain in Sonar is not a plug-in which can be loaded into another DAW. May be I can "unroll" it, but it has low priority at the moment.

Can not be converted (or I do not know how):
- ProChannel (Filter in older version) is Sonar specific extra FXBin. With special plug-ins in it. It can not be converted directly. Theoretically, I can try to convert presets for EQ and Comps into presets of some other plug-ins, f.e. into ReaEQ and ReaComp. That has low priority at the moment.
- DX plug-ins with sidechains (f.e. Sonitus Compressor) and DXi with multiple outputs (TTS-1) are not currently supported by Reaper

Comments (difference in behavior and conversion decisions):
- routing, freezing, FXBinenable/disable, etc. are NOT converted yet
« Last Edit: February 09, 2018, 06:24:33 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #7 on: February 08, 2018, 11:10:36 PM »
Project structure:
Converted:
- all planed connections are implemented, so
- strip outputs
- sends
- MIDI
- side chained plug-ins
- multi-output synth
- synth inside FXBin

Partially converted:
- no MIDI tracks parameters, so no forced channels, program changes, etc.

Unclear how to convert:
- Drum maps do not exist in Reaper. That is not so hard to implement, with EXACT conversion from Sonar drum maps. But it will take time and has very low priority.
- Sonar folders are visual feature only. I do not see a reason to convert them.

Can not be converted (or I do not know how):
- ProChannel and all related routing are ignored
- "external insert" from what I know does not exist in Reaper
- set external signals in general according to Sonar project is relatively difficult. So hardware audio and MIDI inputs and outputs are not assigned.
- MIDI tracks with input from Synth outputs are normally unintentional bug (when the input set to "All") or a dirty workaround for MIDI FXes in VST format. What is the case in not possible to auto-detect, so such routing is ignored during conversion.
- surround is not converted

Comments (difference in behavior and conversion decisions):
- if plug-in with MIDI input (Synth, Guitar amp, etc.) is inserted into FXBin, Sonar also show in inside Synth rack. Converter route corresponding MIDI tracks directly to the track with that plug-in and does not create it in the "Synth Rack" folder.
- Reaper has only one strip type, Track. But tracks can be buses, folders (by default folders are also buses for included tracks, but that is configurable), AUX tracks and MIDI tracks.
- There is no explicit separate "Output" for tracks. It is called "Master send" and always target next upper level folder. It has less options then "normal" sends. Can be disabled.
- Reaper tracks have from 2 to 64 audio channels. There is no "mono" tracks, but plug-ins can be configured to work with particular channels. So f.e. for Mono effects, it is possible to select it should work with "channel 45" and output to "channel 14". Also sends can sum or transmit individual channels.
- each reaper track also carry 17 (!) separate MIDI buses (not called "channels", since that clash with "MIDI channels"). Each bus has 16 MIDI channels. VST/VSTi capable to work with MIDI can be assigned to work with one particular bus. If VST/VSTi has MIDI output, it can be specified how it should influence used bus (replace, merge, or ignored). JS effects are (always?) working with default ("zero") MIDI bus.
- Sends can transfer audio and MIDI, they also specify explicitly which audio and MIDI from the original track should be sent to which destination in the receiving track.
- there is no explicit "Synth rack". VSTi/DXi are routed as normal MIDI capable FXes

For reference, in Sonar:
- an audio track can be mono or stereo only
- a bus is always audio, can be stereo or surround (with project configurable surround configuration)
- audio only sends and effects are fixed to use strip channels
- everything with MIDI input is a "synth"
- a MIDI track always work with one MIDI stream, the only inputs are hardware and "synth" outputs, the only outputs are hardware, synth or a combination of them wrapped as a "Drum map"
- synth with MIDI output ALWAYS have it enabled by default
- MIDI tracks ALWAYS have some MIDI input, by default "Omni" or "MIDI Omni", which erroneously also called "None".

So in general: project structure, audio routing and MIDI routing in Reaper restless (and hopeless) supersede Sonar in all directions. Any imaginable signal routing in Sonar possible to configure the same way in Reaper (but not in other direction).

To say several good words about Sonar:
- Piano roll MIDI editor in Sonar has several features not existing in Reaper.
- Sonar support aggregated MIDI messages ((N)RPN) as a separate MIDI events, while Reaper is able to work with "raw" events only.
- As I have mentioned in MIDI clips, Sonar also support subtick accurate MIDI timing.
- Sonar has automatic and manual (instrument definition) note names. Reaper has manual definition only, just note names (decoupled from program changes / instrument selection, which is done using separate plug-in there).
« Last Edit: February 13, 2018, 06:38:55 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1073
Re: About/Installation/Features
« Reply #8 on: February 13, 2018, 06:38:16 PM »
Mixing parameters:
Converted:
- strip mutes
- track phase inversion

Partially converted:
- APPROXIMATE pans and levels, for strips and sends. Not yet cooperative with envelopes.

Comments (difference in behavior and conversion decisions):
- current volumes and pans conversion is not precise. Since Pan Law is not converted yet, there can be significant differences in the sound.