1

(5 replies, posted in Sinclair)

Thanks for the encouragement.
A few tweaks later, and it starts an octave lower and has a much larger useful range before the tuning (and aliasing) render it crap.

I've also introduced a "rests", which will help.

Making an Excel spreadsheet, with lots of use of Concatenate to generate copy and pastable "equ" statements for my assembler has improved things no end... And should make any music I make with it much more portable down the line, so thanks for that tip.

I'll post source code, etc, when I've reached a v1 that I'm happy with.

2

(5 replies, posted in Sinclair)

I'll give that a go, that may well be quicker than my brutal approach (play ALL the notes from 255 - 1), then record the output, and note down the values that are closest to pitches I wanted.

I have now equ'd my pitch values in my assembler, which at least means I can do that bit slightly quicker now - I can't believe I didn't think of that!

3

(5 replies, posted in Sinclair)

A pretty simple, and not quite complete 1-bit engine.

I know I've been re-inventing-the-wheel here, but I'm still quite proud of doing it from scratch.

It is a monophonic, square-wave monophonic thing - but the duty-cycle varies back and forth as it plays each note from '0-100%' quite pleasingly I think.

It's based on 8-bit 'pitch' values, and I've spent *way* too long hand-tuning it, and then working out values to get a 'lengths' for each of the different pitches of notes that are consistent.

It plays reliably just under 2 octaves (From C#).  I think ultimately I'll make a look up table of pitch values, and length multipliers so it's a bit easier to compose for without an excel spreadsheet to hand!

4

(4 replies, posted in Sinclair)

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.

5

(4 replies, posted in Sinclair)

Great stuff.
Cassette ordered!  (And Mp3 downloaded).
Have you got details of which track is which engine?

6

(6 replies, posted in Sinclair)

Oh, that's amazing.  That's exactly what I need.  In my kitchen.

7

(6 replies, posted in Sinclair)

...using my ZX Spectrums.

The first half uses modified Tritone engines on both machines, then later on I swap to my own synth on one of the Spectrums for the lead-line.

https://youtu.be/KfNXTjF3KP4

I'm pleased by how musical it sounds, I think.  And the lead-line reminds me of Jean-Michel Jarre, hence the title.

8

(4 replies, posted in Sinclair)

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.)

9

(4 replies, posted in Sinclair)

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

https://drive.google.com/drive/folders/ … 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)

Specifically
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 ( https://www.youtube.com/watch?v=cQcWz4JG-yk ), 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.

10

(7 replies, posted in Sinclair)

I've been plugging away at this, and am quite pleased by how I'm making it sound.  Anyway, my performance (in a sort of art gallery space) is in Leicester, UK this Friday (20/07).  It's a complete long shot, but if anyone happens to be in the area and fancies coming along, let me know and I'll get you in (it's pretty much invite only).

11

(7 replies, posted in Sinclair)

Thank you.

AtariTufty wrote:

So was it a completely new 'live performance' engine or pre made sections/chords played on certain key presses ?

Here is (far too much) detail on that:

It depends on which bit of my software I'm playing with.  The most musically satisfying bits are the ones I've preprepared.  In that video, the first section (Tritone) I've set up one key selecting which of the patterns (each of which are single chords that pitchbend to other chords), and another couple of keys which I'll use simultaneously to modify this - whether I want just the first frame of the pattern looping (keeping the original chord), whether I want to return to the start of the pattern, or to step through the pattern.

The next bit, (spectrum on my left), is a set of preprepared PlipPlop patterns, that are chained by holding different keys though the transitions (no key press and the pattern loops).

Then some 'one shot' QChan patterns (spectrum on my right), that wait for a keypress than play them to completions (generally I've got these set up as chords or quick arpeggios of various lengths and types).

Then I use my 'uglisynth' (right hand spectrum again) which is a (nearly chromatic) set of notes I can play like a incredibly un-intuitively laid out piano - I use both hands for this.  (This engine was *horrible* to tune the notes, but I do like the sound of it).  On the video I continue to play this synth (very conservatively) with might right hand, whilst I change Plip Plop patterns with my left hand on the other spectrum.  My left/right hand independence needs work, it turns out!

Then right at the end of the piece (the Manic Miner descending boot type sound) is where I switch to a little beep synth I've made. This is actually a chromatic piano style synth with up to three keys at once that it quickly arpeggiates through, however here I'm just using it here because it has an extra keypress that changes the pitch of one of the otherwise unused keys on the fly.  I was using this to 'hand tune' notes, but realised it was quite good fun as an effect.

I've not really 'got' the way of performing with all of the synths/engines yet (there are a few others I've been hacking at too).  I'm hoping my muscle memory will catch up before I perform with an audience!

12

(7 replies, posted in Sinclair)

So, as I mentioned elsewhere, I've been working on trying to do a 'performance' in some meaningful way using my ZX Spectrums.  I've been working on the software and music along side one another, which has now got to a stage where I can do various things.  I've been modifying Beepola's engines (in different ways; to give me pattern selection on keys, to play through a pattern until the key is released, to trigger one-shot patterns).

Once I've done a 'gig' I've been asked to do next month (it's quite an arty art-music venue, rather than a nightclub), I'll post my [horribly dirty] code here, and people can do something better with it.  At the moment it's evolving on a day by day basis, as I'm writing more music.

Anyway, I filmed a quick snippet yesterday:  https://youtu.be/cQcWz4JG-yk

Thought y'all might be interested.

Thank you Shiru, and thanks AtariTufty.
Re 'Paperboy' and 'In Space'.  Both of those make more sense when the images are there.

I rather enjoyed doing the projections behind the actors for Paperboy ( https://youtu.be/NfaNG0s9NtA ).
And "In Space" used a program I'd written on the Spectrum to animate the invaders (which were projected).  ( https://youtu.be/yA1YsavxTCU ) this video was me practicing with my program - tapping '1' in time to move the invaders, and 'O and P' to make them 'speak'.  (plus '2' to turn on the third invader, and 'I' to make him speak, then '3' to finish).  https://1drv.ms/u/s!AmvYCHV8PMQkgwmkzVk8HSC5Yr9A  (My .z80 file here)

14

(5 replies, posted in Sinclair)

Annoyingly the tape out audio does appear distorted - though it isn't as apparent as the SCART out (which might be exacerbated by my telly speakers).

I've dug out my DivIDE.  That's a much nicer way to be getting things loaded.  I'm considering a divMMC now.  (For a second Speccy).

utz, thanks - that looks fascinating.

Re. Musical, the first track (Next Week When I'm 15) is a really obvious use - Beepola was very handy there! 
It's streamable here. 
https://highscoremusical.bandcamp.com/a … usical-ost

I'll share my experiments with 'performance' type things at some stage.  I'm finding the preparation of patterns that can be chained (and things like the effect of different ongoing parameters, such as duty cycle) quite fascinating.  I'm building a suite of tools/music for a demo that work in different ways.  From a simple beep arpeggiator to things like the Tritone engine, that pleasingly 'hangs' notes, so swapping to a pattern can replace just one of the three audible voices.

16

(5 replies, posted in Sinclair)

Ah thank you.  So the distortion isn't a 'feature' of the tape out on the +3?  That could be really helpful actually.
I set up a rubber key one today, and it sounds great.  I'm really happy with that.  The distorted +3 scart audio really made me worried.

I think I like the rubber keyed one anyway - ideally I'd need two for the gig I'm planning (I'd feel safe that tunings between the two were likely to be the closest if it was the same model).  I've should dig out the DivIDE I've got somewhere.  That'd sort some of the 'loading' issues I'm likely to face. (I've been playing with a great loader app, that does .tap to turbo loaded accelerated wav).

Hi there.

Leicester, UK based person here.

Had a Speccy in the 80s, did a little z80, have tinkered with it since - and have been sharpening my skills.  Though they still aren't very sharp.  Have written a few things - and have various things in 'nearly finished' states.

Work in music tech education, and have a good working knowledge of music.  Played with Beepola, and in fact used it for making parts of some music I've licensed to a library music company.  And used it for generating some of the music I made in a Musical I wrote, performed at Edinburgh Fringe Festival (it was about old computers).

Currently engaged in a project trying to use a spectrum as far as possible as a music performance tool (I know, a daft idea).
I've been playing around with various different 1bit engines, and seeing how I can add some degree of keyboard control to pattern choice, or various things like that.

I also make Teletext art.

So that's me.

18

(5 replies, posted in Sinclair)

Hi there.

I'm working on some 1bit ZX spectrum things, with the intention of playing them (amplified) to an audience and wondered what the optimal hardware setup might be.

I have a plus 3, and can probably get a rubber keyed 48K machine, and a 128K model.

I don't know revision numbers of hardware, but the +3 appears to be running the 48K stuff at a slightly different speed (certainly to the Spectaculator emulator I've been using for development).  The +3 also sounds very distorted and lacking high end through the scart (I understand this is a known problem) - but does the 'tape out' suffer from the same problem on the +3?

How about the audio out on 128 or 48K models.  Any words of wisdom for those?

I'd prefer to use the read hardware, rather than emulation for the performance, but I don't want the sound to be compromised too much if I can help it.

Thanks in advance.