Topic: new engine: povver

povver is an experimental 3-channel beeper engine for the ZX Spectrum. It 
features a simple volume control mechanism which is achieved through dual 
oscillators running with a phase offset. The results are perhaps not as
impressive as what can be achieved through digital multi-core synthesis, but
it consumes much less RAM.

Aside from volume control, povver also features

- simple volume envelopes
- noise mode for channel 1
- customizable click drums
- per step tempo control
- compact music data format

Source is on my github as usual.

Wrote this thing mainly to finally use the phase offset volume trick in an actual engine. I feel I still haven't quite mastered it, but this is as good as it gets for now. Aside from that, I'm also testing a new, more flexible click drum system here. The click kick has a variable starting pitch, and the noise has variable volume (and two pitch setting to chose from, though they don't sound that different after all).

I'll need to add some stuff in MDAL in order to support this engine (which I probably won't get around to this year anymore), so for the time being it's pretty much for study purposes only.

Post's attachments

povver-demo.tap 2.01 kb, 17 downloads since 2016-11-21 

You don't have the permssions to download the attachments of this post.

Re: new engine: povver

Another cool engine!

I'll probably use one of those new engines for the next BoTB battle.

Re: new engine: povver

I was thinking exactly the same thing Garvalf !

Roll on Winterchip, time for some fresh sounding Beeper tunes smile

Re: new engine: povver

Cheers guys! All that digi stuff aside, my favourite engine from this year is probably Squeeker Plus. I do hope the other engines will get some love, too, though wink

Re: new engine: povver

A guy reported a very weird issue with this engine. It is completely messed up on the ZX Spectrum +3. Not too sure what causes it, but the result looks like it runs in the slow memory. Booting in 48K mode does not help, I suppose it should have a fast RAM page at 8000 in the default configuration anyways?

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

6 (edited by yottatsa 2021-09-16 13:52:01)

Re: new engine: povver

Here is how it sounds on +3 and on 48k Issue 2

There are a tap file, a recording, and screenshots from scope.

if you see the attached image (+3 on top and in yellow), it seems like +3 sends extra pulse every time.


P.S.

Shiru wrote:

A guy

A girl ;_;

Post's attachments

pulse.png 6.42 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

Re: new engine: povver

I see. Very strange indeed. Yes, sounds like it's running in contended RAM, but then it seems to run at pretty much the same speed as the 48K version!?! Well, let's first rule out contention issues. Could you export an .asm file from 1tracker, and post it here? (Or, if you want, assemble it yourself at 0xc000 and try it out. 1tracker's asm output works with sjasmplus.)

Also, have you tried with any other engines?

8 (edited by yottatsa 2021-09-16 19:14:30)

Re: new engine: povver

Sounds exactly the same :< Here's .asm. It still produces extra pulses every 20us like on the pulse.png from the drive.

Post's attachments

sobs.asm 8.52 kb, 1 downloads since 2021-09-16 

You don't have the permssions to download the attachments of this post.

Re: new engine: povver

Damn. Could you try the attached .tap and post an image of the screen? Probably won't tell us much either, though.
You don't happen to know any other +3 user who could test this on their machine?

10 (edited by yottatsa 2021-09-16 20:18:28)

Re: new engine: povver

@utz you've missed the attach.

I'll try to involve @noelsretrolab as he probably has plenty of it.

11

Re: new engine: povver

Ah, crap. Here you go.

Post's attachments

test.tap 114 b, 2 downloads since 2021-09-16 

You don't have the permssions to download the attachments of this post.

Re: new engine: povver

Here the results: a screen capture and a scope.

13

Re: new engine: povver

Very odd. This should toggle the border color every scanline, but seems it's actually running much slower?
Admittedly I'm pretty much out of ideas, so let's wait and see if Noel will be kind enought to run some tests.

14 (edited by yottatsa 2021-09-16 22:49:12)

Re: new engine: povver

Could it be the other way around (twice faster), because 48K plays the tone ~480Hz tone, while +3 plays ~970Hz?

(updated the attach so the pulses are aligned, wonder why there is the step on the 48K one on the bottom in the middle of the pulse)

Post's attachments

test_b2b.png 4.46 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

15

Re: new engine: povver

It's totally unclear to me what's going on here. Let's wait for Noel.

16 (edited by yottatsa 2021-09-18 19:42:04)

Re: new engine: povver

It feels like I have an idea what is happening with 1bit trackers on +3

The ULA chip uses the same pin (28) for all of the MIC socket, EAR socket and the internal speaker, so bits 3 and 4 of an OUT to Port 0xfe will affect bit 6 as read by an IN from Port 0xfe.

tl;dr on a classic speccy different values on bits 3 and 4 produces 4 different distinct levels. However, 1) MIC and EAR are separate lines on the +3 Amstrad Gate Array.

Bit 6 of Port 0xfe of the +2A/+3 does not show the same dependence on what was written to Port 0xfe as it does on the other machines, and always returns 0 if there is no signal.

2) there is no logic for +3 in fuse, that's why it works there.

17 (edited by yottatsa 2021-09-18 20:59:26)

Re: new engine: povver

So yeah, I added

    and #f7 ;11110111b MIC output makes weird noise on +3 

before every time it writes to the port and it now sounds pretty normal (but slow, as I obvs messed up with timings).

Post's attachments

sobs_plus3.asm 8.67 kb, 1 downloads since 2021-09-18 

You don't have the permssions to download the attachments of this post.

18

Re: new engine: povver

Meh, that's pretty bad news. But great you figured it out, thanks a lot for your efforts!

So basically any engine that doesn't mask bit 3 will be incompatible with the +3. Which is like, most of my engines yikes So I guess you better stick to Shiru's engines for now.

Re: new engine: povver

Wow, that's unexpected. Some of my engines guilty with the same thing, though. Squat, for one. Easy to fix, though, but it'll reduce the internal sample rate a bit.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

20 (edited by Shiru 2021-09-19 22:22:19)

Re: new engine: povver

A note on this issue regarding to 1tracker. Most engines will survive a quick and dirty fix. You can open a *.1te file with a text editor, find there 'out (#fe),a' line, and add a 'and 16' line just before it. It will work in most cases, although a couple of engines may break. The downside of this fix will be a bit reduced pitch and play speed.

Some engines can have pitch issue corrected, although not all of them - find a definition of 'cpuTime', and subtract 7 from the value. If there was a few 'out (#fe),a' lines, add 'and 16' to each of them, and subtract 7 for each one as well.

This is a temporary solution, as it is uncertain if/when we will be fixing the issue. At least I'll add a note for each engine that is currently not compatible with +3, I guess.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)