Hi Owen,

>Like I said, we do playback based on pitch, not position.

I assume you mean pitch adjustments, not an 11-bit MIDI pitch message.

>Is there a problem you're trying to solve?

Yes; the specific problem I'm trying to solve is interfacing my "homegrown" CDJ 
timecode program with Mixxx, "xwax-style". If I could pass a high resolution 
time position to Mixxx's internals then tempo, pitch bend, FF/REW, cue recall, 
etc, are all implicitly handled with one single message and the driver will be 
simple. I'd just need to loopback from my app to Javascript using a MIDI SysEx 
or HID message (or a MIDI "bundle").

However, if I cannot send an absolute time position, I'll need a slew of 
different messages for tempo, pitch bend, FF/REW, etc., synthesized on my end, 
which is likely to be much less precise, then pass those individual messages to 
Javascript. This would be much more complex, less reliable and because the CDJ 
track position will drift from Mixxx's track position could even hit a CD track 
boundaries at which point it's stuck.

Btw I did look at xwax but due to its focus it's lacking some features that 
Mixxx has, so I'm between a rock and a hard place.

>Is there something wrong with how
>absolute position playback is working?

AFAIK there currently is no absolute position playback. The closest is the 
"playPosition" message but the position is normalized over the track's length, 
i.e. I'd have to retrieve the track length from Mixxx and "unscale" my absolute 
position but that doesn't tell me how much resolution comes through, i.e. if a 
pitch bend on the CDJ would even be registered by Mixxx.

If you can help me with the above, say by adding such an absolute 
"playMsPosition" message or showing me how to hook an alternative communication 
path to Mixxx (Unix pipe, shared lib/DLL, OSC, etc.) then please contact me 
offline so we talk code instead of semantics :)

I'm guessing a shared lib "binary plug-in" model would be most efficient since 
it'd bypass Javascript at runtime (could still have a JS load-time hook). I'd 
be willing to implement an OSC server in this first shared lib so it's for the 
benefit of all.

thx & cheers,

-- p

>On Sat, 2013-07-06 at 19:08 +0200, petah wrote:
>> On Sat, 06 Jul 2013 11:14:13 -0400
>> Owen Williams <owilliams-opwvymzfgylytjvyw6y...@public.gmane.org> wrote:
>> > I'm confused, what are you trying to do? For vinylcontrol absolute
>> > mode, we mostly use the pitch value and then nudge the speed up or down
>> > if it drifts too far from the reported timecode position.For CDs, if
>> > it's more than .1 seconds off then we just seek to that position.  I
>> > don't really see the point of having 22 bit resolution.
>> 
>> 22-bits is the maximum resolution the CDJ timecode returns for a
>> single-track CD. On a 4-track CD a timestamp is 2.38ms or a worst-case
>> latency of ~5ms. OTOH nudging +/- 0.1 second is 100ms or 20x worse.
>> 
>> Dropping seek commands based on acceptable drift is fine on
>> full-resolution incoming timecode at the receiver end, but doing
>> roundtrips and diffs to reach an absolute position makes no sense if
>> the timecode is absolute to begin with. I'd turn the comment around: I
>> don't see the point of truncating bits in the protocol to later try
>> recovering them by chasing the needle :)
>> 
>> -- p
>> 
>> > On Sat, 2013-07-06 at 11:56 +0200, petah wrote:
>> > > What message should be used to set the absolute position of the virtual 
>> > > needle of a loaded track given an absolute time position, f.ex. 2mins 
>> > > 34secs 567millisecs?
>> > > 
>> > > I went through all the relevant docs (I think), incl. controls and HID 
>> > > mappings and didn't find a clear solution.
>> > > 
>> > > I need to match an analog CDJ's time display with Mixxx's via a timecode 
>> > > CD using absolute timestamps (4 tracks x 15min), i.e. time scale between 
>> > > CDJ/Mixxx needs to be 1:1 and clamp, not stretch.
>> > > 
>> > > F.ex. "vinylcontrol_mode" is a 3-way switch, one being absolute, but I 
>> > > don't see the "set absolute time" message. "playPosition" is scaled over 
>> > > the length of the track loaded in mixxx, which won't match a timecode 
>> > > CD's track. "scratch2" affects the "absolute speed", hence the relative 
>> > > position.
>> > > 
>> > > The absolute time position needs to have at least 22-bit resolution so a 
>> > > gentle pitch bend can go through the engine via that cursor position and 
>> > > behave as expected, i.e. if any scaling/compression is applied along the 
>> > > way it wouldn't chop off the lower bits. 
>> > > 
>> > > It's just to control track position. Precision is critical but right now 
>> > > latency isn't.
>> > > 
>> > > thx,
>> > > 
>> > > -- p
>> > > 
>> > > ------------------------------------------------------------------------------
>> > > This SF.net email is sponsored by Windows:
>> > > 
>> > > Build for Windows Store.
>> > > 
>> > > http://p.sf.net/sfu/windows-dev2dev
>> > > _______________________________________________
>> > > Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>> > > http://mixxx.org
>> > > 
>> > > 
>> > > Mixxx-devel mailing list
>> > > mixxx-devel-5nwgofrqmnerv+lv9mx5uipxlwaov...@public.gmane.org
>> > > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>> > > 
>> > 
>> > 
>> > 
>> > ------------------------------------------------------------------------------
>> > This SF.net email is sponsored by Windows:
>> > 
>> > Build for Windows Store.
>> > 
>> > http://p.sf.net/sfu/windows-dev2dev
>> > _______________________________________________
>> > Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>> > http://mixxx.org
>> > 
>> > 
>> > Mixxx-devel mailing list
>> > mixxx-devel-5nwgofrqmnerv+lv9mx5uipxlwaov...@public.gmane.org
>> > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>> > 
>> 
>> 
>> ------------------------------------------------------------------------------
>> This SF.net email is sponsored by Windows:
>> 
>> Build for Windows Store.
>> 
>> http://p.sf.net/sfu/windows-dev2dev
>> _______________________________________________
>> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>> http://mixxx.org
>> 
>> 
>> Mixxx-devel mailing list
>> Mixxx-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>> 
>
>

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to