In part 2 of yesterday’s interview, We discussed the PSPSEQ developer, Ethan Bordeaux, background. Today we get more into the meat of the program, how its varied methods of synthesis works, and where the project is heading.
LB: Moving on a little then, were there any specific interesting parts of the port to a hand-held device?
ECB: Not really. The development environment on the PSP is pretty good so I can have a version that runs on my PC and one that runs on my PSP that share 95%+ of the same code. Made debugging a whole lot easier. The one thing I had to figure out early on was whether or not the C compiler would be good enough to allow for the level of polyphony required to make music. I wish the PSP had enough power that it could run any 16 generator and effect tracks and not have to worry about overloading the system, but I think the level of polyphony and complexity of music you can make on the PSP is pretty impressive. Generally speaking you can get between 12-16 tracks going at the same time, which is definitely good enough to make some cool tunes.
LB: I agree, I was really surprised at how complex PSPseq is, could you give us a quick run-down of the available synths?
[kml_flashembed movie="http://www.youtube.com/v/LzJxcXHCR64" width="425" height="344" allowfullscreen="true" fvars="fs=1" /]
ECB: Sure. First off every track is broken into a generator part, an effect part, and and envelope part. As for the list of generators, you’ve got a typical 2 oscillator “virtual-analog” style generator with ring modulation and sample and hold distortion. Then you’ve got two FM options. Both are the basic 2-operator modulator/carrier topology but one uses a single oscillator for the modulator and a single oscillator for the carrier, while the other uses 2 oscillators for both the modulator and carrier. Next is the Karplus Strong generator which has some novel controls for manipulating how the filtering works. Then there’s a basic noise generator with sample and hold. A square wave generator with configurable pulse width. I also came up with something called a “rotational synthesizer” which generates periodic waveforms by doing a binary rotation of random numbers. That’s something I came up with long ago when working on the low power DSP platform because it was very cheap computationally and had an interesting timbre to it. And lastly is the WAV generator which has some nice controls for setting start/end points for drum and bass and pseudo granular synthesis type sounds.
LB: And the FX?
ECB: OK so for FX you first have a clamper, which is used to force the output to either be below a specified maximum value or above a set minimum value. Then there’s a really flexible bit depth decimator & sample and hold function. Next there’s a binary bitmasker which applies a binary operation (AND, OR, XOR) to the input. Then there’s something called PCF which stands for “previous and current filter”. This takes the current and previous sample and, well, does something weird to it. The algorithms are pretty nonsensical but you can get some very cool and noisy sounds out of it. It’s the sort of thing that you wouldn’t find in professional tools but is fun to write because it all comes down to what sounds interesting to you. Then there’s a function called RD for “reverse dynamics”. This makes small input values large and large input values small. Sort of turns the sound inside-out. Next is a waveshaper which also serves as a rudimentary compressor. Lastly there’s a standard audio filter with lowpass/highpass/bandpass/notch filter settings and some screaming resonance if you want it.
LB: I haven’t heard the term PCF before, is it a standard effect or something you created?
ECB: Not standard at all. It’s just a way of classifying a bunch of effects that follow the same basic concept. Most of the effects in PSPSeq don’t have any feedback in them. In a general sense feedback allows for all sorts of crazy sounds that aren’t possible if you’re doing a simple input/output translation such as what happens with a decimator or a waveshaper. From what I’ve seen in other’s people’s music made with PSPSeq, not a lot of people use the PCF effects which is a shame because I think it’s one of the more interesting options available in the program.
LB: It’s a mind boggling array of combinations. Is the PSP able to handle the load ok or are there particular combinations of synths and effects which will cause problems?
ECB: The module that takes the most processing power is the FM with 2 oscillators for the carrier and modulator. That takes about 10% of the processor to run. The other generators take around 6% or less. The FX generally take around 2-3%. So it’s possible with some combinations to get 16 tracks of audio going, but generally in practice you only end up with about 12-14 if you’re using a lot of effects.
LB: Is there also sample playback capability?
ECB: Yeah that’s the WAV generator. You get about 7 megabytes for samples on a first generation PSP. You might be able to load more samples on a newer one, but I have not been able to test that out.
LB: What were your goals for the 3 major version milestones thus far?
ECB: Hah, no specific goals. I think for version 1.00 it had to be the first one I felt was good enough to write actual music on. I released 3 versions before reaching 1.00 (0.00, 0.10, 0.20) that added features like save/load, song sequencing, etc etc. Basic stuff. I think 2.00 added in the FM generators. 3.00 had a ton of workflow improvements and was a much more professional program. The way that I think of release numbers is that a change in the number before the decimal point (ie 1.00 to 2.00) requires adding multiple significant pieces of functionality. Also, I’m willing though not happy to break saved file compatibility at that time if it’s necessary to push the program forward. A change from say 2.00 to 2.10 adds a couple minor but interesting/useful features, like new shortcuts to improve workflow. A change to the lowest number is a bugfix release and might include improvements but they’re usually secondary to taking care of something that doesn’t work.
LB: I was really interested in the interface, when did that solidify?
ECB: Most of it solidified pretty early on, probably around version 1.00. I’ve made a number of changes to the interface to try and make it easier and faster to make music with by adding in more and more shortcuts. Is there some specific part of the interface you’re interested in? This was my first attempt at a GUI of any kind, let alone an audio app GUI, so it mostly came down to trial and error.
LB: Well more in that is seems to be a little different to anything I have seen before, I wondered where the idea came from.
ECB: Well the basic idea of the interface was that I wanted to have access to any synth parameter at any step. Besides the unique set of generators and FX, I think that’s what makes PSPSeq so powerful. Once I had that idea in mind, everything else just fell into place. Also, I had a fair bit of experience with Fruityloops, so I guess parts of the interface came from that whether intentional or not.
LB: Where would you like to take PSPSeq from here?
ECB: Hmm, in a general sense, I’d like to continue to develop interest in the program. Whenever I’d had the opportunity to show the program off to musicians they’ve been very impressed that you can accomplish that much real time audio synthesis on a hand-held. While an audio application is never complete, it’s capable of a lot. It just comes down to developing mindshare and awareness. From a technical standpoint, I have some short term and long term plans. Short term I want to improve workflow a bit more. Playing around with programs like LGPT and talking to some musicians have pointed out areas where this could be improved. Longer term, I’d like to add features like a mixer bus where additional FX could be added on. I’d also like to add some new FX like multitap delay. I’d also love to add LFOs, but that’s going to be a tricky one.
LB: Also, I think PSPSeq has a hell of a learning curve, when you first pick it up it looks so simple, but I had not idea there was so much under the hood.
ECB: That’s something that’s easy to lose track of when you’re the one writing the program. You know how everything works so it feels simple and obvious to you. I really did design the program with serious musicians in mind. I do wish it were easier to use and that some features weren’t so buried, but also hope that the demo songs are good enough to convince people that it’s worth the effort to learn the program. I also wasn’t willing to sacrifice features for ease of use, but I never tried to intentionally make it difficult either.
LB: I think your tutorials are a big help with that.
ECB: Yeah, been meaning to that for a while. It felt redundant at first since all that info is in the user’s guide, but not everyone is willing to slog through 60 pages on a homebrew app.
LB: It certainly has a bit of a steep learning curve, but its well worth the effort. Are there any PSPSeq Experts out there to give us an idea of how far the software can go?
ECB: Well I think the best guy with the program is this musician that goes by the name of HS. He’s a real FM wiz. And because FM is so flexible and you can get a lot of FM channels running simultaneously it’s possible to make some very complex music just with a bunch of tracks with that generator. He made a lot of the demo songs and also started up a netlabel called Running Jump Records dedicated to music made on the PSP . He put out a release made with PSPSeq and the quality is incredible. I didn’t know my program could sound that good.
LB: Did you talk to the soundshock guys?
ECB: Nope. Don’t know who you’re referring to. Who are they?
LB: Its a Swedish based fm synthesis forum. https://web.archive.org/web/20181030160606/http://soundshock.se:80/phpBB2/.
ECB: Interesting. I think that people who are into FM would probably dig PSPSeq, though the fact that I only have a basic 2-operator synthesizer might feel confining to the real FM nerds. On the upside I do allow for 35 different waveforms for the carrier and modulator, which allows for all sorts of cool timbres. Still, the thought of having this much FM in their hand might appeal to them. I’ll see if I can win a few more converts.
LB: I have a good feeling you will be able to. So I have talked about most of the things I wanted to ask you about, did you have anything you wanted to mention which I missed?
ECB: Hmmm. I think now’s a really interesting time for using the PSP to make music. PSPSeq is mature and is capable of making some great music. There’s another popular music application called PSPRhythm which looks great and has a very active user base. Also, Marc/n0s has ported LGPT to the PSP which is another interesting audio application. Now that Sony is on the 3rd generation of PSPs you can find used first generation models for pretty cheap. For less than $100 you can have a PSP modded with custom firmware running PSPSeq, LGPT, plus a whole host of other homebrew apps. Sony might have lost some credibility over the past few years, but it’s hard to deny their ability to make great hardware.
LB: I totally agree, I am kind of surprised that the PSP never really took of as an audio production tool, interest seems to be picking up though. Were you in contact with Marc about the LGPT port at all?
ECB: Yeah we talked a fair bit when he was doing the port. He did all the actual work but I pointed a few things out to him on the specifics of writing on the PSP and did some beta testing as well.
LB: I think a lot of people are really excited about the LGPT port so thanks very much for any contributions to that. How do you think the two apps compliment each other?
ECB: Well I think we both have novel takes on synthesis and sequencing that are quite different from each other. However, in a general sense I think the level of nerdiness required to really enjoy LGPT and PSPSeq are pretty equal so I feel like a lot of Hexawe crew will get a kick out of PSPSeq and people already using PSPSeq will feel the same way about LGPT. Also, LGPT is sample based while PSPSeq is mostly synthesis based, so there isn’t a lot of overlap of features between the two programs. However LGPT uses samples in a unique way so it really doesn’t feel like other sample-based audio apps I’ve used in the past.
LB: I agree, I have used LGPT before but the GP2X didnt seem ideal for it where as the PSP seems like the perfect platform. Activity on the LGPT mailing list seems to have jumped alot since the port. To tie things together, there is a PSPseq/LGPT compilation in the works, are you going to try and contribute?
ECB: Yes I’m going to try and contribute. The plan is for everyone to write one LGPT track and one PSPSeq track. Honestly I think I’m a better coder than composer but I’ll give it a go. I’m sure I can scratch something together with PSPSeq. As for LGPT, I played around with it for a few hours and think that in a general sense I get what most of the features do, but whether or not that translates into me being able to write music with it remains to be seen. I’m very excited about the project. One of my favorite things about working on PSPSeq is hearing what people make with it. It’s cool to see how a number of people approach a new application, plus I just like being able to help people express themselves creatively. Also it’s cool to see how different programs influence the sort of music made. I know that I was making much different music when I was working on the DSP hardware than I make with PSPSeq, and I’m sure it will also be the case when comparing PSPSeq and lgpt.
LB: I am looking forward to Marc’s PSPSeq track and your LGPT Track a great deal. But for now, I will continue to follow the development of PSPSeq and await news on the “secret project” with great anticipation. Thanks very much for the time and the wealth of information!
ECB: No problem!
PSPSeq homepage – http://www.dspmusic.org/psp/
PSPSeq tutorials – http://youtube.com/pspseq
PSPeq/LGPT compo –
Lazerbeat is the working name of Tokyo based retro tech musican David Adams. More info on his music can be found on his website.