Hi there,

I thinks this is great to dig into mixxx code to contribute, go ahead !

To find the relationship between actual timing (here 1:00:00) and
sample position you have to involve the "sampling rate".
For example in the most common case of a sampling rate of 44100 Hz
(means sample per second) of a stereo song (left and rigth channel)
your have :

numberOfChannel x samplingRate x oneMinuteInSeconde = numberOfSampleInOneMinute
2 × 44100 × 60 = 5292000

Witch is roughly what you "found".
I hoping it makes sense ... :)

vrince


2012/2/9 Akash Shetye <[email protected]>:
> Hey,
>
> Thank you Albert for that one or I would have still been going in circles.
> College has been keeping me busy off late.I have managed to get the patch
> working fine and it looks great. But I still have these questions.
>
> It seems that the track is converted into frames and these frames then are
> processed, so there seems to be no way for me (so far) to know at which
> frame number will the minute 1:00:00 lie on.
>
> However by some simple qDebugs I have figured out that it lies on the
> position apprx 5292846. Its isn't exactly at 1:00:00 but it gives a
> tolerable performance deviating in the worst cases by 00:59:30-88. Even if
> it seems to work exactly like we intend it to, I do not want to base the
> patch entirely on an approximate observation. Can anyone tell me about a way
> to actually relate the 1:00:00th moment in a track with its position. Well
> it is also true that the markers will be approximate representation and will
> never be used as exact references by any DJ.
>
> The code done so far works good and is optimized to save long calculations.
> Following is the code that find out the minute markers. Its done in setData
> of WOverview,  so it is calculated only once for each song. m_minuteArray is
> a float array of size 50 and stores the paint.drawLine(fPos, 0, fPos,
> height()); ----- fPos values directly instead of calculating them in paint()
> again and again.
>
>
> long oneMinute = 5292846;
>     for(int i = 0; i < 50; i++){
>         if(oneMinute < m_liSampleDuration && oneMinute >= 5292846){     //
> Addition may cross long limit, such must be detected too
>                                   m_minuteArray[i] = float(oneMinute) *
> (width()-2)/m_liSampleDuration;
>                 oneMinute = (long)(oneMinute + 5292846);
>         }
>         else{
>                 m_minuteArray[i] = 0;
>         }
>    }
>
>
> If you are reading this, thank you for your time ;)
>
> Akash. Shetye
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Mixxx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to