Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure TVIC.GenerateSound;
- var x,y,sc:integer;
- Src:pbyte;
- c:int64;
- LastPixel,NewPixel:byte;
- s:single;
- begin
- AudioRingBuffer.Position:=0;
- AudioRingBuffer.OutputPosition:=0;
- c:=0;
- LastPixel:=0;
- s:=0;
- sc:=0;
- for y:=0 to VICHeight-1 do begin
- Src:=@BufferBitmap[y,0];
- for x:=1 to VICWidth do begin
- NewPixel:=Src^;
- s:=s+PCMTable[LastPixel,NewPixel];
- inc(sc);
- LastPixel:=NewPixel;
- inc(c,VICSoundPixelsPerSampleStep);
- if longword(c shr 32)<>0 then begin
- c:=c and $ffffffff;
- AudioRingBuffer.Samples[AudioRingBuffer.Position]:=s/sc;
- inc(AudioRingBuffer.Position);
- if AudioRingBuffer.Position>=length(AudioRingBuffer.Samples) then begin
- AudioRingBuffer.Position:=0;
- end;
- s:=0;
- sc:=0;
- end;
- end;
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment