Just a curiosity of mixing synth with samples
This is really a proof of concept, I made for the idea of playing simultaneously two ZX Spectrum computers, where one is playing chiptune music and the second one is playing digital music (6 channels in total).
http://chipmusic.org/yerzmyey/music/proof-of-concept-2-x-zx-spectrum-chiptune-digi
I was wondering if it keeps tempo properly - and it appeared it works OK.
I don't know if it sounds very well, but at least sounds kind of interesting, I'd say.
One Spectrum is playing a chiptune part from ZX SoundTracker 1.1.
The second Spectrum is playing a 3-channels 4-bit digi-music from SampleTracker 2.1.
http://chipmusic.org/yerzmyey/music/proof-of-concept-2-x-zx-spectrum-chiptune-digi
I was wondering if it keeps tempo properly - and it appeared it works OK.
I don't know if it sounds very well, but at least sounds kind of interesting, I'd say.
One Spectrum is playing a chiptune part from ZX SoundTracker 1.1.
The second Spectrum is playing a 3-channels 4-bit digi-music from SampleTracker 2.1.
Post edited by Yerzmyey on
ZX81/ZX Spectrum/Amiga/Atari music: http://yerzmyey.i-demo.pl/
Comments
Funnily enough this reminded me of the hypersonic 2 preview which uses digital and AY mixed on the same chip at the same time. And sounds Great! It's the last part of the demo:-
http://nugget.no-ip.biz/spectrum/hypers2p.zip
Hardware, Software, Magazines and more for the SAM Coupé
Website: www.samcoupe.com
Twitter: QuazarSamCoupe
Next step is do that on just one Spectrum as close as possible.
http://media.chipmusic.org/music/2013/03/yerzmyey_proof-of-concept-2-x-zx-spectrum-chiptune-digi.mp3
is a direct link.. that work ?
do you even get the web page up ? might be a problem with your file associations / browser.
you could start both tunes with the exact same note/instrument / pattern (e.g. sine/square) , then go into the main pattern.. leave a gap at the start.. then clip the silent bit.. and they should be the exact same start time.. do you use wavsaur or audacity? wavsaur has auto trim.. then load all of them into audacity, and you should be able to edit the lot hopefully so they edit as 1.
would be interesting to get as single channels to muck around with :)
would be good to make something to auto play both machines ? .. maybe via joystick.. so it sends a signal to both machines at the same time to start, or something that would "play/record" or visa versa ?
That link works, thank you. I can see the page in my browser (IE 10).
Great stuff, by the way...
I wish I could actually make use of a tracker; they seem to be made for people who already did that on the Amiga/ST, which is definitely not my case. I tried to program some tracks on Vortex Tracker but was even unable to make the notes actually play. An idiot's guide to Spectrum trackers would be quite welcome :-)
amiga / st trackers are probably easier to start off with..the very basics are...
patterns.. = think of these like subroutines in basic..
pattern length.. how many lines of code you have for each sub routine.. you can expand or decrease that.. when the pattern ends, it goes back to the pattern list.. and gets the next one off that list.
tune = pattern list. just "gosub" to the patterns
instruments (this is the tricky bit on 8 bit) . .you make the sound / sample.. each one has an assignment.... and these are called in the pattens.. so as it scrolls thru it knows the sound to play..but you have the note beside it normally or an effect.
the best way most learned is load up a demo tune.. suss out the pattern side first.. then the instruments.
do you know the basics regarding synths ? square / sine wave / triangle
also things like ADSR (attack delay sustain release) .. things like say a synth drum with have a very fast attack ... where a string type sound would be a slower attack.
do you go on HSVC for sid tunes ? go on there.. get the sid player.. download a few.. by maniacs of noise.. mute all but channel 1.. you'll notice the kick drum and bass notes share the same channel.. there are loads of tricks like that to make it a far bigger sound
gasman did a talk about them at the barbican, dunno if thats online
thanks a lot guys. :)
TK90XFan:
> Is that song being really played by a duet of Spectrum? :o I could not doubt you, if you had said that it was Amiga. Really it sounds great! :-)
Really they are two Spectrum. Actually there is no problem to check out both halves on real Spectrum 48K machine(s) -
http://yerzmyey.republika.pl/1yerz_SYNTH.TAP
http://yerzmyey.republika.pl/2yerz_DIGI.TAP
but the problem is, if You don't have an AY-interface, then You would be forced to use some Spectrums 128K instead.
But remember, separately they sound like CR*P!!!! ;) ;) It's just as a curiosity. ;)
Nuggetreggae:
> fancy giving me a few choonzs for the menu and being part of a legend. AY @ 49152 init / 49155 int would be smashing.
You know Your work saves my life everyday, as a divIDE and British Spectrums' user, so if You need anything just drop me a line to
yerzmyey AT interia.pl to settle any required details.
Stefan:
> I was a bit worried after your Atari adventure - which was not my taste - but this tune completely makes up for it!
Well, You're right: although Atari ST has the same soundchip, but still its CPU is over 2 times faster: hence the music-making technique there is very different. From this fact the compositions are also different than on Spectrum. :)
But my intention was never to abandon Speccy nor ZX81.
Just from time to time I explore other platforms. ;)
Sadako:
> Do some more, please.
Next step is do that on just one Spectrum as close as possible.
Yes, that would be something, but it wouldn't work even on Spectrum with two AYs (Turbo-Sound interface). The sample-track required probably almost all CPU's power.
Although I've seen demos with 3-channels sampletrack and scroll but I don't know how about 3-channels sampletrack + 3-channels synthetic song.
maybe it would require a Spectrum with 7Mhz Z80? I don't know.
Fog:
> do you use wavsaur or audacity?
I use always CoolEdit Pro and Sony SoundForge, the best software in my humble opinion.
> would be good to make something to auto play both machines ? .. maybe via joystick..
Such a cable and some clever soft would be a really good thing indeed.
Someting similar, if I recall, has been made by Gasman some time ago. However that one was intended to two synthetic parts of song.
Hence my idea of trying a different approach, since we have 3ch sample music possibilities on ZX, since 90s.
Theoretically it should work. :)
Alessandro Grussu:
> I tried to program some tracks on Vortex Tracker but was even unable to make the notes actually play.
Hahaha, the same here, man. :) I use only original old Spectrum software (SoundTracker and SampleTracker).
Best regards to all,
Yerz
Ex-Ocean Software graphic artist -
Download my FREE PDF 'LOAD DIJ DIJ' (180,000+ words): https://ko-fi.com/i/IG2G3BEJZP
ZX Art page: https://zxart.ee/eng/authors/m/mark-r-jones/
https://twitter.com/MarkRJones1970
https://www.facebook.com/OceanSoftwareLtd/
https://www.facebook.com/ultimateptg/
Other ideas:
-One Spectrum playing regular AY music, and another playing voice samples!
-Two Spectrums playing samples. One just for drums, the other one for the melody
-Three Spectrums playing samples. One for drums, one for the arrangement, one for the melody
Gasman had two +2s playing side by side once but it was just a tune from AY Riders. A good one, but I love stuff with samples. I also remember Gasman had an AY tune where one of the channels was used for voice, so one Spectrum would play the AY tune and the voice at the same time. Still, this was nice to hear (and see).
Thank you.
I reckon it would be just about possible with a Turbo-Sound interface and a regular Spectrum, if you had the synth track running in interrupts and the sample track in the main execution loop. (The SampleTracker player has its own interrupt routine, so that would have to be hacked.)
It's true that the sample track requires almost all CPU time... if the interrupt routine takes too long, it will create 'gaps' in the sample playback that can be heard as a 50Hz 'buzz'. The standard Soundtracker routine is possibly a bit too long - we'd have to try it to be sure - so a better plan might be to use the trick from Stellar Contour and Nyantro, storing the raw AY data stream for the entire track. It's a really inefficient use of memory (it would have to be 128K only, and even then it would need some light compression to make it fit), but it's FAST. :-)
...gah. I need to try this now, but I have too many projects already!
Ah, you mean the Synchronizatron 3000 :-) That was a slightly different situation, because it wasn't just starting the two tracks together - it was also providing a time signal so that the two Spectrums (different models with slightly different clock speeds) wouldn't drift out of sync. The code on the Spectrums has to spend most of its time waiting for the next clock tick, so it would probably be quite messy to get that working with a sample player.
I'd say this is even better than Amiga. Paula can't make such beautiful clean square waves.
thanks again, mates.
If the idea will cause that one day we will be able to play such stuff from one Spectrum with TurboSound (impossible for now) - it would be even better. :)
Gasman:
> Impressive work! The idea of composing something like this, and only being able to hear one half of it while you're working on it, makes my head hurt. ;-)
Hehe, thx. ;) Of course the problems might be avoided by opening two windows of emulator, however in this case it wouldn't give anything actually, because the samples were tuned differently, so "re-typing" would give nothing, as they were technically different notes than the synths. ;) (Which is my fault obviously, as I prepared the set of samples :) ).
> I reckon it would be just about possible with a Turbo-Sound interface and a regular Spectrum, if you had the synth track running in interrupts and the sample track in the main execution loop. (The SampleTracker player has its own interrupt routine, so that would have to be hacked.)
Now THAT would be something!! :)
POWER!
> It's true that the sample track requires almost all CPU time... if the interrupt routine takes too long, it will create 'gaps' in the sample playback that can be heard as a 50Hz 'buzz'. The standard Soundtracker routine is possibly a bit too long - we'd have to try it to be sure
Hmmm. Maybe ProTracker 3.x has faster procedure?
Converting STC to PT3 is actually veeeery easy. However I didn't test this format is the tempo and tune/key still is the same as SampleTracker's one is.
> so a better plan might be to use the trick from Stellar Contour and Nyantro, storing the raw AY data stream for the entire track. It's a really inefficient use of memory (it would have to be 128K only, and even then it would need some light compression to make it fit), but it's FAST. :-)
This one would be outside of the regular musician's reach. ;)
> ...gah. I need to try this now, but I have too many projects already!
Yupp. I'm just thinking aloud.
> Ah, you mean the Synchronizatron 3000 :-) That was a slightly different situation, because it wasn't just starting the two tracks together - it was also providing a time signal so that the two Spectrums (different models with slightly different clock speeds) wouldn't drift out of sync. The code on the Spectrums has to spend most of its time waiting for the next clock tick, so it would probably be quite messy to get that working with a sample player.
So this one is even more complicated than required - if one has two the same models, like ZX48+AY and if we're talking about starting two trackers, not two compiled modules (this one I didn't test).
I played the trackers once and there was no drifting (that's what I was actually exploring).
So maybe a simple "play together" would be enough, hehe. ;)
Utz:
It all is actually YOUR fault as it was YOU who asked many questions about SampleTracker lately. ;) So I decided to turn it on. ;)
But here's another one to keep you working on that magic...
Amazing! :)