Well, well, well, well…. well. Time continues to flow and our spaceship continues to… enhance. We bet you thought we were gonna rhyme just there didn’t you? Well, jokes on you – we did (we just didn’t write it down). Since we’ve last talked, our spaceship enhancements have accrued a significant milestone. Yes… things we’ve been talking about for months have finally come together and earth djs everywhere are on the run.
Before we continue, or while you read, perhaps you should see the results for yourself:
Did we reach our goal? Do you think our spaceship is finally ready to take on the djs of earth?
What we think is – yep. If you disagree we’d just like to remind you that we only care about your responses when they’re formally alien. Goal achieved, though we’re gonna continue enhancing the spaceship anyways.
Read on to see the recap of the journey here.
Sequencer Chains: The Saga that was.
Okay, we wrote this blog a billion months ago: Sequencer Chains – Basically it talked about how we were gonna make the smoothest synth set ON THE PLANET, by making integrated sequencers submissive to the Squarp Pyramid (motherbrain).
In order to do this, we would need a control modulation unit. We wrote about that too in vt100 vs the modulation control unit. This part of the project took a while to sort out, just about as long as all the bugs we found in SpaceShipOS v3.23. What, did you really thing hyperspace technology would be simple? We assure you, it’s complicated stuff.
What you don’t know, yet, is that the BomeBox we talked about in that last link up there worked out. Yep, our control modulation unit is installed, configured, and doing it’s thing. And yes, it could do more things, but once spaceship thing at a time – right now we’re enjoying our efforts after such an arduous quest; we hope you are too.
Given that, and SpaceShip OS v4.01 which we beta tested forever our spaceship is smooth, as eggshells.
Tech Time – Song Blending with the Pyramid and BomeBox
Enough with the alien buzzwords, let’s get to some of that terrestrial substance we’re known for. For those of you who want to know, really know, what it all means. We’re going to tell you, right now; go get some coffee.
Our goal: To have interesting ways to blend between songs and establish sonic continuity. Or basically, to mix between two vt100 songs in the dawless rig with the smoothness of a dj mixing between two pre-recorded songs on a device designed for blending songs.
We have a few synths that have integrated sequencers in them. We’re not using them all, just two for this little upgrade (but maybe we’ll add more some day):
A digital synth, and and some analog dream cream and they both have sequencers inside them. Honestly, we prefer programming the System 8 sequencer over the prophet. Also, the Prophet is really sensitive like really sensitive (did we ever tell the story of how many bugs we got fixed in SpaceShipOS to make this happen? No… we didn’t… okay that will be the next section now.)
With our BomeBox we built ourselves a way to turn the sequencers on or off from the main sequencer, the Pyramid. Remember – there’s no way for the Pyramid to be able to do what we want to do, and so our BomeBox re-programs control signals in real time for us (neat right?).
The BomeBox mechanism works like this – first we pick a control signal id from 0 to 127 and we need to pick a control signal we don’t intend to use (you know, to manipulate the synth with that controls intended purposei). We chose control signal 42 (because it’s the meaning man…). Then, control signal 42 has a value, and that value can be between…. 0 and 127 (it’s an 8-bit message, get how this works?). We need one value for stop and one value for start, easy, 0 is stop and 1 is start. Then, for each of these values on control signal 42, when we see them we have to convert them to PLAY or STOP the sequencer on one of the synths. This is what the BomeBox is doing.
In addition, the BomeBox has to make sure other PLAY signals don’t start the synths when we don’t want them too, though BomeBox doesn’t care about stop at all. It’s a very interesting thing you program using earth’s ether-connectors. Isn’t the BomeBox amazing? it does all this really useful stuff. It sure was worth the 6 month effort and bug hunting to find it.
That’s the mechanism, but how do we use it? Easy – we make buttons. One button sends CC42 value 1, and one button sends CC42 value 0. We literally write ‘PLAY’ and ‘STOP’ on them, and then to us they’re just that, play and stop. Err, well, one PLAY for the System 8, and one play for the Prophet so really, there’s a few play buttons though only ever a one STOP button per synth.
Then we put these buttons in the SAME place on all of our hyperspace travel maps. You know, so we always know where to find them. If the controls of your spaceship change every time you leave for the weekend, you waste a lot of time re-learning your spaceship.
To mix into a song, the sequencer must know these things:
- Starting the sequencer on the currently loaded song must start using the sound you want when you load the next song
- The next song has to make sure it presses PLAY as soon as you start it or it will send a STOP
- The next song can’t load any sounds when it starts up for the synths running their chained sequencer
This means that you’ve gotta setup in advance of your set, destinations for each song. That is, since whenever you load a song it just presses PLAY and loads no sound, that means each song can load the sounds for the next song. This creates kind of an odd relationship between spaceship files but it works. And yes, it really requires a lot of work to set everything up.
Similarly, each song can only have one entry point. This is the contract that’s necessary to allow the destination trick above. Any song can land anywhere, but each song must know how it starts.
Then the process is like this to transition between songs:
- Ramp down whatever you’re playing
- press PLAY buttons for the System 8 and Prophet as appropriate
- You must remember to press the PLAY button that loads the right sound for the song you want to go to (so you have to memorize all this to drive your spaceship)
- With your sequencers going, make sure you fade out anything that doesn’t have it’s own sequencer. These things will all do a hard STOP when you press the load button. This means you can have drums, the System 8, or the Prophet – transitions to any song can be a blend of those three elements (and only them, setting up another synth is, as we said, complicated).
- Load the song (finally) and hope everything doesn’t just stop. It’s really important to do the hoping part, because let us tell you (we will, in a moment)
- Have you been counting? You need to count to the start of the 4th bar of a 4 bar chunk, then you can press the play button. It will sync to one bar. If you do this wrong, the whole spaceship experiences turbulence.
- In addition, you have to hold a special button when you press load to make sure the tempo doesn’t change. If the tempo changes on load, the spaceship will experience turbulence.
- If all of this goes well, you can start loading other synths and eventually stop or fade out the chained sequencers.
That’s it. Easy right? When all of that stuff happens, within the magic of your hyperspace knob management song transitions are fluid af. Though, it is very limited. Each sound can only have one pattern that you’ve gotta setup in advance within the context of your set. Yep, any given sound can do one and only one thing when the butt of a sequencer chain. This makes all kinds of stuff complicated, like what if the pattern is in a different musical key than the song you want to load? Yea, shit gets weird. You get worse than just a little turbulence, let us tell you.
Bugs, bugs, bugs
We hinted above that there was some bugs. Yep, there were about 3 or 4 of them, in SpaceShipOS. These bugs masked bugs I was having in the control modulation unit. Only after we worked with SpaceShipOS_soft to fix the bugs could we even see that the control modulator was broken.
We estimate 40 hours in the evenings hunting down those bugs. Ooof, the things we’ll do for our SpaceShip.
Dawless from Hyperspace
And there you have it – now with a little alien-elbow grease long smooth and improvised sets are coming. As live as it gets hyperspace techno, all you have to do is get all the bugs fixed; easy peasy.
Up next we’re going to develop dragon 32 and online dating. And we’ll give them their smoothness all the time. Stay tuned, it’s going to get…. experimental.