Crystal clean PCM 8bit samples on the poor PSG

Pagina 7/14
1 | 2 | 3 | 4 | 5 | 6 | | 8 | 9 | 10 | 11 | 12

Van NYYRIKKI

Enlighted (6033)

afbeelding van NYYRIKKI

19-02-2007, 11:24

Van viejo_archivero

Paragon (1395)

afbeelding van viejo_archivero

19-02-2007, 11:30

I assume that playing those quality samples will cost LOTS of CPU time... but it will be possible to make "little" things while the player is running? (quick reads to joystick/cursor, tiny gfx transfers to vram...). And another question, this program just launches a sample or you can set a list of consicutive samples to be played? (that would be interesting, as you can build little sampled "songs" or loops...). Thnx!

Van Pac

Scribe (6971)

afbeelding van Pac

19-02-2007, 11:48

Thanks NYYRIKKISmile

Van pitpan

Prophet (3155)

afbeelding van pitpan

19-02-2007, 12:20

Viejo: I'm afraid that PSG samples requiere loads of CPU time. You can sync some code, but it is a painfull task. Ask Dioniso to know more, because his BEEPERTRON uses synched code for differents tasks while playing PSG samples.

Regarding SCC samples, I do think that something could be done, because the SCC replay feature works as a simple DMA. But again, all code should be accurately synched to replay functions.

Van ARTRAG

Enlighted (6932)

afbeelding van ARTRAG

19-02-2007, 12:40

Vejo:

it is hard, but all you ask for can be done.
Having more samples in ram/rom and playing them as in a sequencer is very easy.
More difficult is to modify th ereplayer to add interaction.
The pcm replayer has some spare time had can be used for other purposed (VRAM transfer, I/O etc)
but the code must keep its cycle accurate syncronization.
Look at the asm files and put your code where now there are dummy instructions.
keep the timing corrcet and everithing will work.
Lower is the frequency, higher the spare time you can use for your code.
Good luck

Van NYYRIKKI

Enlighted (6033)

afbeelding van NYYRIKKI

19-02-2007, 13:07

If you don't care about some little noice, you can play samples with interrupts enabled and put your other tasks in interrupt routine. I used this method on Alternative party demo's end animation (look picture) and it worked out quite well.

www.msx.fi/nyyrikki/shots/tha.gif

( Download: http://msx.fi/nyyrikki )

Van ARTRAG

Enlighted (6932)

afbeelding van ARTRAG

19-02-2007, 16:37

Nice idea!
In this case it is mandatory to avoid the bios overhead in the INT routine.
All those push/pop usually are not required and waste a lot of time.
Try using IM2 or putting RAM in page 0 (if you have 64Kram)

Van chrisborn

Supporter (15)

afbeelding van chrisborn

16-04-2018, 06:09

Hi,
i am Chris. I made a ZX Spectrum version off the 4bit RLE player.
its still just 1 speed, but it can do 3bit and 4 bit rle.
www.cborn.nl/zxfiles/wav2ay/zxv4P4_014.asm

Van ARTRAG

Enlighted (6932)

afbeelding van ARTRAG

16-04-2018, 07:59

Hi Chris, have you tested your replayer with the data from the encoder?
Which parameters for delays do you need to tune the weights in the Viterbi search?
They should be equal to the time in your replayer between two updates of psg channels

Van Grauw

Ascended (10707)

afbeelding van Grauw

16-04-2018, 13:54

viejo_archivero wrote:

I assume that playing those quality samples will cost LOTS of CPU time... but it will be possible to make "little" things while the player is running?

When playing Mega Drive music, VGMPlay plays samples on the turboR PCM in-between reading and processing the rest of the VGM data. While the speed of the turboR definitely helps, it still causes jitter in the PCM playback, but generally I would say it sounds pretty ok. Though I do sync on a timer, so if I miss a sample it doesn’t slow down the playback but rather causes a little jitter / catch-up, which may be perceived differently by the human ear (which is quite sensitive) than an actual delay would.

Pagina 7/14
1 | 2 | 3 | 4 | 5 | 6 | | 8 | 9 | 10 | 11 | 12