News:

CWP2Song, public beta.
My  DAW is Reaper
YouTube channel

Main Menu

About/Installation/Features

Started by azslow3, August 09, 2024, 11:30:31 AM

Previous topic - Next topic

azslow3

#15
Audio Clips (CW) / (Audio) Events (S1):

Converted:

  • "Audio Clip" (CW) as "Audio Event" (S1)
  • Position is defined in Beats, the length is in Seconds (not looped Clips (CW)) or Beats (looped Clips (CW). See 'Can't be converted' in 'All Tracks' section.
  • Mute, Time Lock, Edit Lock
  • "Snap offset" (CW) as "Sync point" (S1)
  • "Stretch Amount" (CW) as "Speed" (S1) only. Slices (AudioSnap edits) are ignored. See the Comment (1) for Audio Tracks
  • "Loop" Grooved Clips (see 'Can't be converted'). They will be time-stretched and pitch-shifted according to the looping settings, including "Follow pitch"/"Pitch"/"Fine Pitch" (CW). "Follow pitch" (CW) is not converted as such, it is just added to "Transpose"/"Tune" (S1). See Comment 2.
  • "Fade In/Out". When curved, "Slow"/"Fast" (CW) as "Logarithmic"/"Exponential" (S1).  Not precise, see 'Can't be converted'.
  • Gain envelope. Converted for not looped Clips only.
  • Clip FX (CW) as Event Effects (S1).

No plans to convert:

  • "Stretch to tempo" is not supported (that is the second automatic stretching mode, apart from loop, I have never used it)
  • Gain envelope for looped Clips. In S1 Gain envelope is technically for file reference, not Event (S1). Technically it is possible to split original envelope and apply parts to duplicates.
  • Event FX (S1) on duplicates after looped Clip (CW) conversion. Doing so can catapult the number of FX instances.

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

  • S1 doesn't support looping. In all sourced I could find, it is recommended to duplicate instead. Normally followed by "Merge". Let me know if "auto-merging" unrolled events is a good idea.
  • When Fade-In/Out cross looping point in the original Clip (CW), that can't be represented exactly in S1. Fade length will be "cut".
  • There is no "Clip trimming" in S1. See Comment (1).
  • In CW Fades are quadratic, in S1 they are parametric exponential. So they can't match exactly, I have selected some value which looks "ok" for me. Let me know if you think that can be improved.
  • Follow Pitch (CW) for Grooved clips, when Groove-Clip Pitch change happens inside clip. I apply it as Transpose (S1), which has no Envelopes.
  • In S1 only Gain envelope is possible on Event (S1) level. So Clip Pan and Clip FX parameters Automation (CW) can't be converted.

Comments (difference in behavior and conversion decisions):

  • Clip trimming is not the same as trimming during editing, so non-destructive change of clip boundaries. In CW that means the clip size is "bounced" (audio file stay the same), so future boundary changes do not "see" audio outside trimmed slice. When trimmed Clip parts are for some reason exist in the project, they are silent in CW but will have usual content in S1. I had to decide to move clip boundaries to trimmed section or keep the same boundary and allow trimmed parts re-appear. For the moment I use the second approach.
  • Groove-Clip (CW) is duplicated at loop points, but the behavior is the same (tempo changes are applied as in CW). Note the Track should stay in "Timestretch" Tempo mode (S1). Unlike other content (including manually stretched), when Tempo mode is changed, the Event length will be reverted to original (not stretched) audio length.

azslow3

#16
MIDI Clips (CW) / (Instrument) Parts - Music Events (S1):

Converted:

  • Time-base and length are always in Beats (S1), with "Follow" Tempo mode (S1) set for the Track. See 'Can't be converted' in 'All Tracks' section.
  • Unrolled versions of looped Clips (CW). See Comment (1)
  • Notes. CW and S1 are using "Time + Duration" to specify notes (MIDI specify them by On/Off). When previous note ends exactly at the same time as the next note start (rarely the case in recording, but usual for editing with mouse), the order of Off/On may influence some Synths (CW) / Instruments (S1) which use the order to detect "Legato". I have not tested yet if S1 produce the same order as CW is that case.
  • CCs. That includes "specially named", like "Modulation wheel" (CC1), "Sustain pedal" (CC64), etc.
  • Pitch wheel
  • Lyrics. I have not intensively tested the logic is the same.
  • Key After Touch (CW) / Pressure (S1) and  Channel After Touch.
  • Program Changes. Without setting the bank, and with "duplicated" old value. See "Can't be converted".

Partially converted:

  • Step Sequencer Clips (CW) are converted as Parts (S1), with original length but not unrolled. The intention is simplify (manual) replacement with Pattern (S1). Automatic conversion into Pattern (S1) is currently not planned

No plans to convert:

  • Note Pitch adjustment on Groove-Clip Pith (CW) changes for Grooved Clips with Follow Pitch set, when the change happens inside Clip. Technically possible to adjust per Note.
  • Text, MCI, Expression, Music symbols, Chords

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

  • CCs, PitchWheel, etc. MIDI events are represented by Envelopes in S1. "Step" nature of MIDI events can't be reproduced that way. The sound in most cases will be different. Technically S1 supports "step" MIDI envelopes, that can be specified and displayed as such. But S1 unconditionally use target Instrument information about parameter type, so in most cases it "reverts" to linear Envelope if step type was specified (without adding extra points, so the result is completely different).
  • SysEx messages are not supported in S1
  • "Bank change", "RPN" and "NRPN". Apart from explicitly supported MPE, any "MIDI command" which use more then one MIDI message can't be reliably represented in S1. CCs (which are used to compose these "commands") are envelopes in S1,  so strict sequence of particular values from "different" CCs is almost impossible to achieve (if there is no "old" value, S1 will "follow" non horizontal envelope, if there is "old" value it will be interpreted wrongly).

Comments (difference in behavior and conversion decisions):

  • S1 does not support looped/grooved (CW) clips. But CW store unrolled version in the project (since repeats can be edited independently).
  • Envelope (S1) parameter name is prefixed with "(CW)".  Once S1 find target parameter, it overwrites the name. That way it is easy to check if some Envelopes (originally CCs/etc.) are not doing anything.
  • With "-m" option, MIDI files for each Clip (CW) are created in addition to S1 specific Music files. These files contains original information (channels, SysEx, etc.) which can't be specified in Music files.

azslow3

#17
Automations (CW) / Envelopes (S1):

Converted:

  • Audio Channels Envelopes (S1): Volume, Pan, Mute, Send Level, Send Pan, Inserts
  • Instruments (S1)
  • MIDI Track Automation (CW) as dedicated Part with Envelopes (S1). CC and Pitch wheel (CW) only.  See Comment (4) for details.

Partially converted:

  • "Slow"/"Fast" (CW) segments are converted as "Exponential" (S1) segments. Currently semi-random Bend parameter is used (5). That probably need tuning.

Not converted (yet):

  • Audio Events (S1): Gain, Pan, Effect parameters

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

  • S1 does not support Input Gain Envelopes (S1) (Input Gain and Input Pan Automations (CW) exist in CW).
  • Curved segments of Automations (CW)/ Envelopes(S1) use different functions and so never produce exactly the same intermediate values. In CW "Slow"/"Fast" is quadratic function. S1 use parametric exponential. Theoretically it is possible "interpolate" segments with linear and exponential segments for better match. If someone provide realistic example when current approach is "no go", I can consider that.

Comments (difference in behavior and conversion decisions):

  • It seems like S1 (unlike CW) doesn't distinguish between "Parameter" and its Envelope. F.e. there is no separated "Automated Mute" (CW)
  • In S1 Envelope for Mute is strictly "On"/"Off". Switching happens once the value is "1". In CW switching happens when the value is 0.5. The Envelope is converted to produce switching at correct time.
  • S1 detects when Effect or Instrument (S1) parameter is a switch and allow only "On"/"Off" envelope (as for "Mute"). Converter can't detect if parameter is a switch, so it converts Automation (CW) as for continuous parameters. Fortunately S1 accepts that.
  • Unlike in Parts (S1), Track Envelopes originating from MIDI world (CCs, Wheel) target Instrument (S1) Parameter. So they are technically just Instrument parameter envelopes. But for VST3, which no longer support MIDI directly, parameter name can't be deducted without actually loading Instrument with preset and checking its report about parameters. Converted doesn't load plug-ins, so has no way to find the name. As a workaround, a dedicated Part (S1) with name "Track envelopes" is created on each Instrument (S1) track, in case any MIDI Track parameter (CW) has not default value or there are explicit MIDI Automation (CW). Track Automation (CW) is then converted as a Part Envelope (S1). Parameter name is prefixed with "(CW)", but it will be overwritten as soon as S1 find target parameter to use. That way it is easy to check if some Envelopes are not doing anything.

azslow3

#18
.

azslow3


azslow3


azslow3


azslow3

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:

  • M devices are still M devices. Just because there is no replacement.
  • since V3 propose absolutely nothing to make controlling at least partially "standard", for anything "transportable" (f.e. clips), the approach is still use a kind of M
  • for everything else, avoid M concepts

And as the consequence:

  • no M parameters implicit auto-(re)set, something many V1-V2 expect
  • "multi-stream" M capabilities are abandoned
  • all parameters envelopes on strip level are bound to concrete plug-in
  • all bugs in plug-in parameter definitions are "visualized"

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).