Propellerhead Forum

Propellerhead Forum (https://www.propellerheads.se/forum/index.php)
-   General Forum (read only) (https://www.propellerheads.se/forum/forumdisplay.php?f=3)
-   -   Neptune Latency - 19-23ms (https://www.propellerheads.se/forum/showthread.php?t=129682)

Kronsteen 2010-09-04 17:25

Neptune Latency - 19-23ms
 
2 Attachment(s)
This is my preliminary test of Neptune's latency.

I made a sample of a 10ms pulse at 880Hz, repeating every second with silence between repeats. It was mono, 44.1 kHz, 16 bit.

I put the sample in two Record audio tracks, one with Neptune as an insert effect, and bounced the result to disk as a loop, three times for each Nepune setting, then compared the delay between the two pulses.

With Neptune performing no pitch changes, the delays were 844, 964 and 964 samples, giving an average of 942.

With Neptune performing chromatic correction but with no corrections actually done because the source was in tune already, the delays were all 964, obviously giving an average of 964.

With Neptune pitching the sample up by 12 semitones, the delays were 818, 818 and 715, averaging to 783.6. There was some distortion of the delayed sound - see picture 1.

With Neptune pitching the sample down by 12 semitones, the delays were 1019, 1019 and 1036, averaging to 1024.6. In one of the three, there was a significant distortion - see picture 2.

In conclusion, Neptune has a delay of between 19 and 23 milliseconds, and can unpredictably distort the waveform when repitching.

The delay is too long for live vocal use - I tried it - but with some mathematical juggling of tempo and an assumed average delay, samples can be shifted back on the timeling by a number of ticks to compensate.

Kronsteen 2010-09-04 19:43

So you've got a track length sample in Record - maybe the vocal track or the guitar - and you want to change or correct the pitch in Neptune...and you want to compensate for Neptune's latency.

Record doesn't have a way of shifting the placement of a sample on the timeline forwards or backwards in milliseconds, but it can shift it by bars, beats, sixteenths and ticks. There are 240 ticks to each sixteenth.

So we need a way of translating milliseconds into ticks.

There are 60,000 milliseconds in 1 minute. Divide that by your BPM - so if your BPM is 125, 60000/125=480. That means there are 480 milliseconds to each beat. Divide that by 4 to get the number of milliseconds to each sixteenth - 480/4=120.

Now, don't ask me why, but there are 240 ticks to each sixteenth, so divide the result of the last calculation by 240, to get the number of milliseconds to the tick at your tempo - 120/240=0.5.

Half a millisecond to a tick, or two ticks to one millisecond.

By my rough testing, on my laptop Neptune has a latency varying between 19 and 23 milliseconds, so I'm going to assume a latency of 21.

Divide 21 by the result you just got - 0.5/21=42. So if your tempo is 125, your latency compensation is 42 ticks.

If, like me, you're hopeless at maths but your soul dies a little when your vocals are just slightly mistimed, here's Kronsteen's Neptune Chart. The first column is your BPM, the second the number of ticks to move your samples back to (hopefully) resynchronise them.

BPM Compensation
30 ----- 10
31 ----- 10
32 ----- 11
33 ----- 11
34 ----- 11
35 ----- 12
36 ----- 12
37 ----- 12
38 ----- 13
39 ----- 13
40 ----- 13
41 ----- 14
42 ----- 14
43 ----- 14
44 ----- 15
45 ----- 15
46 ----- 15
47 ----- 16
48 ----- 16
49 ----- 16
50 ----- 17
51 ----- 17
52 ----- 17
53 ----- 18
54 ----- 18
55 ----- 18
56 ----- 19
57 ----- 19
58 ----- 19
59 ----- 20
60 ----- 20
61 ----- 20
62 ----- 21
63 ----- 21
64 ----- 22
65 ----- 22
66 ----- 22
67 ----- 23
68 ----- 23
69 ----- 23
70 ----- 24
71 ----- 24
72 ----- 24
73 ----- 25
74 ----- 25
75 ----- 25
76 ----- 26
77 ----- 26
78 ----- 26
79 ----- 27
80 ----- 27
81 ----- 27
82 ----- 28
83 ----- 28
84 ----- 28
85 ----- 29
86 ----- 29
87 ----- 29
88 ----- 30
89 ----- 30
90 ----- 30
91 ----- 31
92 ----- 31
93 ----- 31
94 ----- 32
95 ----- 32
96 ----- 32
97 ----- 33
98 ----- 33
99 ----- 33
100 ----- 34
101 ----- 34
102 ----- 34
103 ----- 35
104 ----- 35
105 ----- 35
106 ----- 36
107 ----- 36
108 ----- 36
109 ----- 37
110 ----- 37
111 ----- 37
112 ----- 38
113 ----- 38
114 ----- 38
115 ----- 39
116 ----- 39
117 ----- 39
118 ----- 40
119 ----- 40
120 ----- 40
121 ----- 41
122 ----- 41
123 ----- 41
124 ----- 42
125 ----- 42
126 ----- 42
127 ----- 43
128 ----- 43
129 ----- 43
130 ----- 44
131 ----- 44
132 ----- 44
133 ----- 45
134 ----- 45
135 ----- 45
136 ----- 46
137 ----- 46
138 ----- 46
139 ----- 47
140 ----- 47
141 ----- 47
142 ----- 48
143 ----- 48
144 ----- 48
145 ----- 49
146 ----- 49
147 ----- 49
148 ----- 50
149 ----- 50
150 ----- 50
151 ----- 51
152 ----- 51
153 ----- 51
154 ----- 52
155 ----- 52
156 ----- 52
157 ----- 53
158 ----- 53
159 ----- 53
160 ----- 54
161 ----- 54
162 ----- 54
163 ----- 55
164 ----- 55
165 ----- 55
166 ----- 56
167 ----- 56
168 ----- 56
169 ----- 57
170 ----- 57
171 ----- 57
172 ----- 58
173 ----- 58
174 ----- 58
175 ----- 59
176 ----- 59
177 ----- 59
178 ----- 60
179 ----- 60
180 ----- 60
181 ----- 61
182 ----- 61
183 ----- 61
184 ----- 62
185 ----- 62
186 ----- 62
187 ----- 63
188 ----- 63
189 ----- 64
190 ----- 64
191 ----- 64
192 ----- 65
193 ----- 65
194 ----- 65
195 ----- 66
196 ----- 66
197 ----- 66
198 ----- 67
199 ----- 67
200 ----- 67
201 ----- 68
202 ----- 68
203 ----- 68
204 ----- 69
205 ----- 69
206 ----- 69
207 ----- 70
208 ----- 70
209 ----- 70
210 ----- 71
211 ----- 71
212 ----- 71
213 ----- 72
214 ----- 72
215 ----- 72
216 ----- 73
217 ----- 73
218 ----- 73
219 ----- 74
220 ----- 74
221 ----- 74
222 ----- 75
223 ----- 75
224 ----- 75
225 ----- 76
226 ----- 76
227 ----- 76
228 ----- 77
229 ----- 77
230 ----- 77
231 ----- 78
232 ----- 78
233 ----- 78
234 ----- 79
235 ----- 79
236 ----- 79
237 ----- 80
238 ----- 80
239 ----- 80
240 ----- 81
241 ----- 81
242 ----- 81
243 ----- 82
244 ----- 82
245 ----- 82
246 ----- 83
247 ----- 83
248 ----- 83
249 ----- 84
250 ----- 84

Of course, there wouldn't be a need for kludges like this is Record's audio tracks had a 'Latency Compensation' button to do it automatically.

privteer 2010-09-04 20:38

Nice post and topic... :)

I just want to add a detil : Record is more precise than you think.

Each Tick has 16 subticks... when you press "S" or remove with the mouse the "snap" function, you can access to those subticks.
This important, because we are speaking of resync some wav datas... the more precise your tool is, the more precisely you can work ;)
the value is announced in page 121 of the Operation manual (and other pages also)

Kronsteen 2010-09-04 23:18

Thank you.

So that's what the asterisk means in the Position and Length indicators - placement or length at subtick levels. Though there doesn't seem to be a way to move clips by subticks except by grabbing them with the pointer. A nice bit of additional information.

Soon, if I've got the strength, tests for the BV512 latency :-).

nicesniper2 2010-09-30 04:34

PH must read this..
 
Quote:

Originally Posted by Kronsteen (Post 783667)
This is my preliminary test of Neptune's latency.

I made a sample of a 10ms pulse at 880Hz, repeating every second with silence between repeats. It was mono, 44.1 kHz, 16 bit.

I put the sample in two Record audio tracks, one with Neptune as an insert effect, and bounced the result to disk as a loop, three times for each Nepune setting, then compared the delay between the two pulses.

With Neptune performing no pitch changes, the delays were 844, 964 and 964 samples, giving an average of 942.

With Neptune performing chromatic correction but with no corrections actually done because the source was in tune already, the delays were all 964, obviously giving an average of 964.

With Neptune pitching the sample up by 12 semitones, the delays were 818, 818 and 715, averaging to 783.6. There was some distortion of the delayed sound - see picture 1.

With Neptune pitching the sample down by 12 semitones, the delays were 1019, 1019 and 1036, averaging to 1024.6. In one of the three, there was a significant distortion - see picture 2.

In conclusion, Neptune has a delay of between 19 and 23 milliseconds, and can unpredictably distort the waveform when repitching.

The delay is too long for live vocal use - I tried it - but with some mathematical juggling of tempo and an assumed average delay, samples can be shifted back on the timeling by a number of ticks to compensate.



i have latency too, so i cant use neptune well

themensch 2010-09-30 05:41

Nice work, Kronsteen. It's good to see a well-spoken and detailed analysis with data to back it up.

selig 2010-11-06 17:03

Quote:

Originally Posted by Kronsteen (Post 783735)
So you've got a track length sample in Record - maybe the vocal track or the guitar - and you want to change or correct the pitch in Neptune...and you want to compensate for Neptune's latency.

Record doesn't have a way of shifting the placement of a sample on the timeline forwards or backwards in milliseconds, but it can shift it by bars, beats, sixteenths and ticks. There are 240 ticks to each sixteenth.

So we need a way of translating milliseconds into ticks.

OR there's a quicker way (still a kludge). Assuming you have recorded a single clip from the top of the track: (use workarounds for multiple clips, either join them first or select all clips on the track before you move them)

Zoom in on the track at the beginning, WAY in, and move the playback curser while watching the 'time' display (which shows milliseconds). Just move the play curser until you see 20ms (or whatever delay amount you're looking for). When the playback curser is in the correct location, use the razor tool to make a cut where the curser is located. Delete the clip to the 'left' of the cut, and then just drag the 'right' clip to the start of the track! Instant 20ms 'pre-delay'. Works at any tempo so you only need to know the delay in ms - no need for the fancy charts (although I'm partial to fancy charts!).

Other tips - even if the clip doesn't go to the top of the song, you can just drag the front of the clip so it starts at 0:00. Of course you can do this anywhere in the timeline - just use a little math!

higherpurpose 2010-11-06 21:32

big ups to Kronsteen, one of the most helpful users on here.

thanks.

jlgrimes 2010-11-07 17:28

Other tips I found out,

1. Record at 88200. This doesn't get rid of the latency but reduces it. Latencies that are now 20 ms, becomes 10 ms which might be forgivable in some situations.

2. From my ears the Low frequency mode produces the most latency. I typically use Live mode, I thought from my calculations I got the latency to about 5 ms, which is still a problem but more managable and harder to detect.

3. Have your vocalist record live with the Neptune device. That way they would have to compensate for the latency themselves and if they can do so, that would eliminate the latency problem.


But bottom line Reason (and most definitely Record) needs to fix this. Just about every other DAW has full plug-in delay compensation, so in programs like Sonar, Live, and Reaper these are non-issues. And I would think Record should have perfect latency since all of their plug-ins are designed in the house (as opposed to Sonar who has to support a wide range of 3rd party plug-ins).

pushedbutton 2010-11-07 19:09

Quote:

Originally Posted by Kronsteen (Post 783735)
....
Of course, there wouldn't be a need for kludges like this is Record's audio tracks had a 'Latency Compensation' button to do it automatically.

The perfect sales pitch, I didn't realise I had that problem untill you pointed it out and remedied it in one fell swoop... what the f*ck is a 'fell swoop' anyhow?


All times are GMT +2. The time now is 11:42.