Topic: The tools/engine hacks I've been using

Just thought I'd share the stuff I've been using on my two ZX Spectrums for my Performances, (as it stands). … sp=sharing

The .tap file Ugli1BitLauncher.tap is the thing I had on both Speccys, enabling me to start various modified versions of different engines (with some patterns in I'd pre-prepared in there) to use during the pieces I've played.

CAPS always exits back to the menu, (sometimes needs to be held down, depending on when the engine is reading key presses)

1 = A little arpeggiator synth I've made that plays small notes based upon 1,2 or 3 held keys.  I only bothered tuning the bottom octave.  As it was all I needed for the performance.  The note assigned to the key '1' is tunable during playback.  The 'grain size' of the arpggios is adjustable on the fly too, so it can be fast trills, or slower arpeggios.  I used slow, but slightly different grain sizes across the two spectrums holding slowly changing chords that came in and out of phase (reminding me of Steve Reich).

2 and 3 = hacks for the Music Box and Music Studio engines, to make very unsatisfying synths.  Two note polyphony, but the fixed note length is audibly annoying.

4 = A hack of Shiru's Tritone engine, this one reading keys all the time, and then chaining the next pattern.  I used the fact that the notes 'hang' from one pattren to the next (in each of the three voices) to play this.  (Just on one Spectrum).

5 = A hack of the Savage Engine, this only reading keypresses between patterns, but reading keys for 'channel 1' (left hand side of keyboard) and channel 2 (right hand side).  The nature of Savage, and it's skew and ornaments carrying forward meant I needed a cheat sheet of which patterns turned those things on an off.  (e.g. pattern 'H' will affect things very dramatically until pattern 'J' is played.  (Again this was on one spectrum)

6,7,8,9 = The ones I used in the video link I posted ( ), across two Spectrums.

6 = Keys trigger 'One shot' patterns, using Shiru's QChan Engine.

7 = Plip Plop, keys read between patterns, so need to be held down, to change pattern.  Used as the main 'time keeper' with it's patterns.  Patterns A-H are in 3/4 for a bit or variety.  Each 'group' of three keys basically conforms to the same three implied chords, to make it slightly playable.

8 = My attempt at something low and bassy with a changing width of pulse wave.  It's not mapped to may keys, and was a bugger to get in tune with the Plip Plop engine.

9 = A different hack of the tritone engine, this time playing patterns only when held down. (keys 1-0).  Modifier key Y holds the start of the pattern, whereas O does something similar, but can also be used with P to move through the pattern (O holding where you're up to, P progressing).  I used this for some slow pitchbends between chords (seen at the start of my video).

Q = Tritone again (as 4) but loaded with some fuller patterns I could chain together.  The very stable timing of Tritone like this (if not using ornaments) meant I could have this running on both Spectrums and there was no discernible drift between the two.  (Meaning pattern 1,2,3 could be played against pattern W, then pattern 5 against pattern Y).

W = Another chromatic synth I've written from scratch, and added a comprehensive tuning tool.  I swapped one of the spectrums to this synth, to play a leadline against engine Q.  (Which was quite Jarre-like, I thought).  Again I play with changing the width of the pulse, for something quite attractive sounding on this synth, I thought.

('0' just plays some 'non interactive pieces' I put together when experimenting with Beepola, typically me trying no to write in 4/4).

Anyway, hope it's of some interest, to someone.

There's also a .tap of a standalone version of my UgliSynth2, and the .asm for that in the folder if anyone wants to wince at my code.

Post's attachments

Ugli1bitLauncher.tap 32.72 kb, 3 downloads since 2018-07-23 

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

Re: The tools/engine hacks I've been using

Thanks for posting these, uglifruit. That's quite a massive collection of tools!
Would you be willing to share the sources of the hacks/patches as well? I might be interested in creating some scripts for these, so one can easily include new patterns for the tritone/qchan tweaks.

Re: The tools/engine hacks I've been using

I'll definitely do that at some point.  I might feel obliged to tidy some of the slightly (very) ugly labels up first.
The recompiling with new data for each of the engines I ended up making fairly straight forward for myself actually.  (Well, ish).  I got to a stage where I took the .asm output from beepola, copied and pasted the pattern defb bits, (and search 'n' replaced to make the labels in the format I'd chosen for each engine).
The memory locations for each one engine plus data were just 'as they fell' by having each engine+data in its own file, and coming a "menu" with Include statements for each one. (If that makes sense).
That's why each of the different tools shows how much memory it takes up.

(The "non interactive" ones were all compiled directly to the "spare" memory at the end.)

Re: The tools/engine hacks I've been using

Thanks for sharing these, fun stuff! Had been looking for interesting realtime-playable ZX stuff and here is a lot of it smile

Re: The tools/engine hacks I've been using

cementimental wrote:

Thanks for sharing these, fun stuff! Had been looking for interesting realtime-playable ZX stuff and here is a lot of it smile

Ooh, good luck!
I'm (very slowly) chipping away at more things, and pieces.  Hopefully I'll get something more to share soon.