SakeTami
inversephase

inversephase

patreon


inversephase posts

CTM 0.0.0: What a version number

Failed at getting my recap in over the weekend, because I was working hard on a new feature for the tracker: Load! And it's got a co-conspirator as well: Save! That means I'm officially at a non-negative version number, because I don't want to deal with storing negative values where I store the version of CTM that wrote the file in the tracker file. As a side bonus, I cleaned up the way songs were initialized some as a direct result of the load/save routines. Shift-Ctrl-Alt Left+Right move between songs that are open and you can have multiple files open at once.

To be able to load and save, you gotta have file dialogs. For the time being, I'm just calling out to Tk, but eventually I hope to put a file selector in the tracker itself. You also have to be able to click buttons. I realised I don't have any, so I tore up some UI code I wrote ten years ago and put the beginnings of a button cluster in. It's pretty lonely up there, but I'm sure it'll get better with time. Other button clusters look like these:

FT2, my main inspiration

Noisetracker, quite possibly FT2's inspiration

Milkytracker, an FT2 clone by demogroup TiTAN

There are a lot of things I care about and a lot of things I plan to relocate. FT2 and Milky relocated Noisetracker's channel mute to just clicking on the scopes. I probably won't have scopes but you'll be able to mute the channels using the channel header, near where you reassign things. I do like how most trackers let you click on a position in the order to jump to editing/playing it, so I implemented that. I haven't decided whether I want to relocate Disk Operations into a Disk op or leave Load/Save outside. I'll definitely have an import feature at one point or another to pull in projects. Milky has a weird hybrid of these. I'll figure it out. Definitely need zap, config, instrument and board subscreens. 

Anyway, let's cull the changelog from last week:

Octave selection is implemented. Hitting 0-8 on the keypad selects one. I fixed the Atari 2600 initialization and also detect both SID revisions (6581/8580) as the same kind of board for now. It looks like I might actually be able to implement detection of which revision the chip is using some adapted code from the Commodore 64. We'll see if it works using the stuff I've got. Cosmetically I dimmed the LEDs so you get less noise from boards while working. It's interesting how visible they are, even at 1%. 

Lots of bugs and debug was cleaned up. Some of that debug isn't necessary to display anymore, others needed to be more descriptive than just setting the value of "derp" to "1".

While checking on some of that SID stuff, I realised I didn't have a good LUT for the frequencies, so I fixed that up. I also spent a fair bit of time trying to work around a well-known ADSR "bug" in the chip where if you trigger a note while it's releasing another note, your note might take up to 40ms to sound. So now I backup the state of the chip and compare volume values, tell the chip to halt all sound, change volume VERY quickly, and retrigger a note. When checking with my esteemed colleagues, it seems pretty much everyone else was opting to do roughly the same thing, and it was working out for at least one of them (as well as my own tests succeeding, hooray)!

So hey, now that the boards get "tuned", why not keep track of frequency variance? I decided to make a list of the difference between a note as played in the scale you choose and the notes the board can make. Then I measure how much that is in cents and turn notes red if they're going to be off-tune more than the amount you specify. It feels good. Eventually I can tell the tracker to avoid sending notes if they're out of tolerance. I also realised that maybe I shouldn't be sending "no note" values to boards. Fixed that.

I tried writing a driver for the YM2149F and it seems pretty solid, but I only get noise. I think my 2149 is either dead, fake, or both. I need to source one from known good hardware. In the frustration of this, I also put out a call for sound chips on twitter. If you are able to like and retweet this tweet, you could help me get more chips to support on the synthesizer!

Ask questions! I like knowing what you're thinking.

View Post

CTM hits -0.2

Quick video today...

It seems like just yesterday I was musing about matching frequencies so that the sound/synth boards are tuned. Oh wait, it was yesterday! Anyway, I got it working late last night and fixed a few bugs. This doesn't really demonstrate the tuning insanely well, but at least you can see how my timing code is working out, and you can hear two boards at the same time (I've always wanted to do that, man)!

View Post

CTM development log recap

It's been six days since the tracker video (please watch it if you haven't) and I've made some reasonable progress on the tracker. Let's take a look at some of my commits, which I'll paraphrase:

While making the video, I noticed DEL didn't work right. It's because I moved some code around and that included moving the cursor according to the ADD value before the delete occurred. Now it will delete the current area and then move the cursor. Embarassing, but worth mentioning.

Next I attempted to make the mouse cursor suck less, removed some rather unnecessary semicolons (this is python, how could I miss those?), made a really basic instrument preview section, and added bitstreams and waveform drawing stuff so instruments could be "previewed". I added a little background for it too, so it's easy to see.

One thing I've spent some time on is optimization. It seems dumb to be doing this already, but wow, how much of a difference it makes! My text renderer isn't slow, but it's still slower than just plopping an image onscreen. So now I render out all the names of notes and other values like FX and volume ahead of time into a "shortcut" buffer. I also split up the screen updates a little, though I do need to take a suggestion to just use sprites. Anyway, I've nearly doubled the framerate just fixing what I've mentioned so far.

With the speed on point, it's time to clean up the tick timer! What the hell does that mean? Well, an old system like an NES or Commodore 64 won't have a real-time clock built into the machine. So what can we track (ha. ha. ha.) time with? Turns out old systems update the sound chip with data (and read input, and check if player 2 died, etc) every time they finish with a video update. In this (rather short) VBLANK period of time between ending one frame and starting the next, we have a convenient place to know that either 1/60th (NTSC) or 1/50th (PAL) of a second has passed. A lot of trackers refer to a VBLANK as a "tick" and base their speed parameter around it.

So, now it came time to make those controls work. I cleaned up the GUI a tad and enabled the "SPD" arrows, tying them to the internal value... and the result was anticlimactic; SPD didn't actually work yet, as I suspected from all my timing fluctuations and because the playback was WAY FAST in the video I made. Turns out the way I implemented ticks was incomplete and I committed like 3 lines of code to remind me to fix them. Then it turned out that code I wrote works after all and fixed the bug.

With all that working, it's been time to move the sound board channel reassignment into the GUI. No more ugly prompts in the console! When I tested it with a YM2149, I realised I didn't detect it properly, so I just added it into my sound drivers and made it use the same settings as the AY-3-8910 (but change the name, naturally). Also, reassignment can occur while a track is playing, no more issues with an input prompt blocking that from happening!

Hope you've enjoyed this little recap. Hopefully by the next time you hear from me I'll have either proper frequency matching (so that all boards will have meaningful tunings) or file I/O (because loading and saving is nice, I hear)!

If your Patreon account is tied to Discord (in Patreon, go to Settings, Account, and then look about halfway down) you can watch commit messages to CTM in #tech. Catch the updates as they happen!

Feel free to ask questions!

View Post

Synth / CTM update: We've got boops!

I've got a lot to say, and I say most of it in the video. 

First off, thank you to all my Patrons supporting me while I develop this. It's been a lot of work, and there's still a long ways to go. Balancing life and composition with development isn't easy, and this is a milestone that I think we can all celebrate!

Definitely more to come. 

This is a public post, so a quick FAQ for non-Patrons that might just be joining us:

I've always wanted to do creative, new things with chiptunes, game music, and old computers and consoles. This is it: a synthesizer and music package that lets me write music but also do sound chip research at the same time! I'm often asked when the next follow-up to Pretty Eight Machine or another favorite album will be, and, well, this what will enable me to do that. This isn't a commercial product, just a musical instrument that will allow me to make sounds exactly the way I want to. And when I don't have a feature that I need in my music software, the code is right there in front of me, ready to be modified.

I hope if you're not on board, you'll support this synth and my journey to learn everything there is to know about these sound chips. I plan to share what I learn with everyone here!

View Post

SlowTracker becomes CTM, synth update

After a whole lot of behind-the-scenes background under-the-hood nonsense, not to mention the year known as 2017, ice is back with my brand new invention.

Okay, clearly this is the same old invention, but progress has been made. Back in my "tale of two chippies" post I showed off that I had worked on more synthesizer boards, namely an Atari 2600 board (pictured here in Ghostbusters Green) and a YM2149 board. And prior to that you could see my kiddie keyboard test app that I wrote to test the SID.

I guess the most important thing is that the tracker has been renamed. It's called CTM, named for one of my other comfort foods that isn't pizza: Chicken Tikka Masala. I'm thinking Chippin' Tracker Masala? Something like that. Anyway, boards now light green when initialized so that you know the tracker has detected them and placed them in the equipment list. They also go dark when the tracker exits. These are honestly just niceties; the real news is that hotplug was just a tad broken when I implemented it last year. Not only is hotplug more robust, the channel assignment thing and some other updates went in. Slightly related: Here's a new screenshot:

New additions are the pattern editor is a basic picture of most things I want from a pattern editor, and you can see the "pattern matrix" type thing which is now much cleaner, has scrolling, clearly-defined edit buttons, and the most important part: all of that works!

There have been a reasonable pile of updates to the UI, more hotkeys, almost everything is clickable, it's starting to feel like a usable app. I'm pushing updates to a private git repository to keep offsite backups and track all of the new features. 

Even though I still need to get sound coming out of the boards, a sizable framework (including bare register writes to the boards) now exists to define what boards are capable of so that the tracker can push data to the board. There are functions to set the volume, and in theory they work. I'm getting preeeeeetttttttty close to that "glue it all together" stage where I can be like "oh, there is some data, let's hear what that sounds like".

Of course, then I'll need a file format....well, we'll get there.

Anyway, this is a very exciting time for the synth. Patrons can watch commits and ask questions about it in #tech on my discord!

View Post

Patreon changes charge structure, then backpedals

Hey everyone, 

If you didn't catch the news, I had a once-in-a-lifetime opportunity after Thanksgiving where I could go to Japan, travel and room covered. There are some awesome pictures on my twitter, facebook, and instagram.

While I was away, Patreon announced they were going to roll out a fee change structure, and I really wanted to say something about it. Then, they *just now* decided not to make that change. It's entirely possible your trust level has gone down with them (I know mine has). I've seen some changes in pledges. They say they'll do whatever they can to earn our trust back... I hope that means they're also scrapping their idea that creator-to-creator payments will be outside of Patreon rather than inside, because I want to support some folks once I have the money. The true test I guess is whether they implement download code distribution. 😆

You probably already know I'm in a difficult position here... I want to be open and transparent about things that are going on but I don't want to bring everyone down. I'm not crazy big and I don't think I can afford to move to another service, but I am willing to consider doing another service alongside Patreon if there is enough demand. Someone has already reached out to me about an alternate service with a similar structure. I'll be watching it closely.

No matter what happens? Even though I'm not making it with my music, I'm super glad you're here, supporting me. You are helping me make it happen, bit by bit (pun?). You have no idea how grateful I am to be able to breathe, even a little bit, while I produce commissions for others. I've enjoyed connecting with people, meeting and chatting with fans. We've built a cool, small little community. I don't want to lose you, and I won't do anything with the intention of making supporting me difficult. Really, I wish all of this were easier; it's weird to think that if I could pull a nickel a month from all of the people following me on social media I could actually make a living wage and go totally full time with my own endeavors. Not that I'm not trying to do that anyway, but it's damn risky.

If you ever want to talk about this with me, please reach out. Comment on posts. Chat on the IP Discord (if you're not already linked, tie your Patreon to Discord and you'll get an automatic invite!), Message me here on Patreon, or even send me a good old fashioned E-mail. I won't be upset. I promise to listen and talk to you about it, take any opinions you have under consideration, and help you understand where I'm at.

Thanks for reading this. I'm sorry this wasn't a more exciting music update, but there will be more of those soon! =]

View Post

Atari Cover of Mental Abrasions by Jane in Space

Here's a little something that has been under wraps for a short while... One of the guys in Jane in Space contacted me as a fan of Pretty Eight Machine (and came to a show in NYC) to meet up awhile back, and we've kept in loose contact since. A few months ago, he mentioned he was working on a single for his band's track Mental Abrasions (done on Korg DS-10), and asked if I could do a remix. 

Mental Abrasions kind of drilled itself into my head and stuck itself in the back right corner, so I thought I would try and match the way it did that with my Atari 800 setup. After a few iterations of bugfixing and trying to use the right clock rate for the POKEY at a few spots, I arrived at what you'll hear in the link above. We like the end result quite a bit, and I hope you will too.

Download codes coming shortly for Patrons!

View Post

New material in Spicy Meatball

Hey!

I've been working with a guy named Cheese on various music and sound effects for a game called Spicy Meatball. This is a "first person text adventure", which is to say you use your mouse/keyboard/gamepad around to look and interact with an environment that is described to you with text and a little splash of color for good measure. It runs on Windows, Mac, and Linux, and I think you can even use a VR headset supported by OpenHMD!

Originally done for a game jam, I was contacted at the last minute for a soundtrack (really an intro song and two jingles) which I was able to slap together right before the buzzer. After awhile, we thought it might be cool if there were some sound effects. The whole ambiance of the game kind of reminded me of the heyday of point and click adventures with Adlib and Sound Blaster soundtracks, so I decided I'd go for doing everything in FM. I'm on a Sega kick so I did it with that, and I think I captured the essence of the era.

Spicy Meatball is totally free and was done to demo "icicle", a game engine that, well, does this sort of game. If this sort of thing interests you, there are some other prototype demos on the page, as well as an in-development game called Winter's Wake.

I'll probably toss the tunes up on bandcamp in a little bit, perhaps with a Cheesy (pun?) SFX reel... but for now I would encourage everyone to check out the game!

View Post

Wanna watch some Sega composing live?

Click that link there and let's do a chiptune!

View Post

A Tale of Two Chippies

Here's another glam shot of some sound chips and boards!

If you read my SlowTracker update, well, I'm not quite doing audio output yet, and I decided I would make use of some spare time by getting better at surface mount soldering. To that end, you can see a new board on the left sporting a YM2149 I got from Shazz/TRSi (greets!) while I was at @party.

Originally I snapped this picture "just because", but then I realised it's rather significant as both the first and last sound chips used by Atari are present (Okay, except for the Jaguar, but that's a different beast). The YM2149 was in every Atari ST/TT/Falcon made, and of course the TIA was in the good ol' 2600 VCS (and even went on to do video and keyclick in Atari computers in modified form).

The YM2149 is a clone of the General Instrument AY-3-8910 which was invented in the mid-to-late 70s. It went in so many different devices of my childhood and retro collecting obsession: The Intellivision, Vectrex, MSX, later ZX Spectrums, Amstrad, and a pile of arcade machines all included it in one form or another. It got made into soundcards for PC and Apple. It is cloned in the highly-sought-after Sunsoft Famicom title, Gimmick! It was even available as an off-the-shelf Radio Shack part.

I figured with the crazy number of things this chip has been in that the designer would be well known. Hell, the SID was only in the Commodore 64 (well, and 128/MAX, but I digress), and everyone knows Bob Yannes designed the SID, but I just couldn't find anything on the 8910. The datasheets I have are eerily clean and comprehensive with no mention of names. So, while I was wiring everything up, I got a little too curious.

General Instrument broke up in the 80s and its microchip division got spun off into the aptly named Microchip Technologies. Although Microchip has completely forgotten that they used to be another company, I was able to finally reach someone after maybe a dozen calls and transfers that had some good suggestions, and a few emails later I had the name of the designer of the 8910. My contact information was handed off and I received an email that gave me the impression Microchip wanted to wash their hands of ever communicating with me.

I figured I would wait a few days to hear from the engineer. Surprisingly, I heard back very quickly and even got a short history of the chip in the email! It must be the future or something! Reading the history though, I realised that I had many questions to ask this guy, and his introduction even generated a few more that I hadn't thought of. I couldn't find any interviews with this guy and I don't know why nobody has looked him up (spoiler alert: Japanese chiptune expert and scene friend Hally wrote a book and interviewed him) so I took to social media yesterday to see if anyone else had questions for the guy. Likewise, if you have a question, please ask in the comments!

While getting feedback from my posts and tweets, I scheduled a phonecall with the guy. I'll be talking to him in roughly 12 hours. 

I'll report back here with the story!

View Post

SlowTracker is Slowly Improving

With the recent progress on synthesizer boards, it's time to resume software development. I've honestly meant to do this for awhile... In the past I did do co-working jams with some of my creative friends, but one of them has been dealing with personal issues recently and the other moved away. 

Anyway, today's post is about the quest to actually get sound out of this tracker. That requires a lot of work... but with the driver work done on the soundboards I decided I would get hotplug into the tracker. It detects new boards and creates a thing to control the board from the tracker now. Still no beeps or boops or note-to-board virtualization but that will come. Unplugging of boards is not properly detected but failure is graceful and the tracker does not crash.

If you like "screenshot-watching" for features, you'll see that I have channel numbering and next to each channel number is which board the channel is assigned to. This will allow me to redirect a channel to a different soundchip or channel, possibly even in realtime (once I write the code, that is. Right now they just say NONE but soon picture something like "2>6581:3" to designate tracker channel 2 is getting sent to channel 3 on the SID.

You'll also notice I've implemented some lines between channels for readability and added coloring into the font rendering with a dash of it in the interface. The order list now has a highlight block to show you which channel you're in. No editing there yet but I'm slowly getting ideas. 

Speaking of pattern order, I decided to go with the "channel-ordering" style of order similar to famitracker and deflemask, rather than the "pattern-ordering" style which might be familiar to MOD/S3M/XM/IT crowd. I recently shouted out looking for other ideas to extend or improve upon this (thanks if you participated in the discussion!) and several people also pointed out the "piano roll" and "drum machine" styles of order representation. I'm not really interested in those, but if you have any thoughts on how pattern order is not intuitive, I'm eager to hear you out!

Once this tracker can make some noise, I'll be sure to post an update with the tracker playing some tunes through a new chip I got working...the TIA!

View Post

Connect Discord to Patreon for extra rewards

Hey all! 

I finally broke down and created an inversephase Discord "server". Right now it hasn't been advertised much, but I've gone ahead and connected Patreon to it. There's a supporters-only channel, a tech channel, and of course a general channel.

So if you're a Patron and you'd like to join up, just tie your Discord account to Patreon and you'll automatically receive an invite to a place where you can have a direct line to me and chat with other like-minded supporters. 

Also I'm thinking we might do monthly chat things in the Discord voice channel at a specified time where everybody can join in and we can catch up.

Hope to see you there!

View Post

Custom Synthesizer Adventures with the 6581 SID

Hey Patrons, it's been awhile!

How've you been doing? I've been quiet (sorry about the lack of posts), but busy. I'm preparing a sort of mega-update; I'd like to post an update every day or two with everything that's been going on, if possible. With travel coming up, I'm certain I'll have some free time... Oh! Speaking of which, I'll be up in Boston for @party in a little over a week, and I would love to see you there! Come out, hang out, support the US demoscene, and let's watch some spinning cubes kick ass. (I'll also be giving a presentation)

Anyway, let's talk about that video you see up top. It's only a minute long, but what a glorious minute it is!

You see, it's been at least a few months since I've talked about the synthesizer, though I did get to show it off at VCF East, which was a lot of fun. The progress has been slow for a variety of reasons, one of them being jobs have popped up here and there, but to jog your memory, we last left the synthesizer adventure with some hangups:

  • The boards all booted, but only one board worked.
  • Even then, only one board could be plugged in at once without hax.
  • Even then, only one board could be used at once without hax.

There's actually a hint in how I solved the middle issue in my first synthesizer post, but the problem was that the driver would have to be hardcoded to a specific vendor:device ID, and it would only talk to that board. And furthermore, one of each type of board was all I'd get, so no dual-POKEY / dual-SID type setups. I am interested in something more flexible than this, so after a bit of conversation with Charles (who this would not even be possible without) we coded up some new functions that would search for all boards connected with a specific vendor ID, and then hold onto the device ID string so you can see which boards are plugged in, in which order, and send commands to specific boards.

With the new code, I should be able to support hotplug/unplug in my tracker without crashes (famous last words) and even implement A/B board testing so I can hear differences between two different boards with the same chip. 

Another thing that has been worked on is the I/O glue logic, which is to say, the part that shuffles all of the data I send to the board over to the sound chip itself. Even though this code was written and in theory worked out of the box, I never had a proof-of-concept keyboard + driver to diddle the SID's bits, only the POKEY. And I wasn't quite sure everything was right with my SID, either. Even once I got it working, it was not very stable.

I sat down about 30 hours ago with a goal of making the SID board happy before leaving to travel north. I'm happy to say I cleaned up some wiring, discovered a few mistakes, and generally overhauled everything I did. So here we are! You (and my youtube subscribers, but don't worry, my stats seem to think none of them have woken up yet) are the first to see the SID board beep with all the kinks worked out.

The video does not display multiple voice control which works fine nor that both POKEY and SID can coexist and notes can sound from both simultaneously. Sometime soon I'll get a video up of that for you. For now, I'm going to get my tracker supporting the boards better, and maybe I can write something for POKEY+SID.

Any requests? =]

View Post

My Piece of the Pi Day

   Hello, my lovely Patrons,

As I sit here working on a mastering commission, I've been reflecting on this past week and just wanted to let you know how grateful I am that you're here. 

Why the slightly weird, cryptic title to this post? Well, two things, I started on this on the 14th (Pi Day) so the pun was funnier then... but yeah, let me share some indie/freelance musician braindump weirdness with you all... It's the ever-exciting storytime everyone looks forward to!

Before we do that, let's get everyone on the same page regarding my, uh, "business plan", if you can call it that. I've established a number of revenue streams, and I want to be able to support myself solely off of them, if at all possible. I play shows. I've got in-person and online music sales. I've got streaming royalties. I get commissions for both game titles and podcast/twitch/youtube intros. And of course, I have you. ♥

The success of any of these given streams can vary quite a bit. One downside is that stability is an issue and there are a lot of places where something can go wrong. The upshot is that usually, one thing getting screwed up doesn't affect the other things. Stability is also one of the reasons I switched to monthly. I've got to say, it's been one hell of a blessing! Before that, there were several months where I literally reported zero...and when you're applying for things like reduced cost medical care, that breakdown can matter. 

So what's today's story about? Lately, I've had a lot of adventures in chasing down royalties. I'm not big enough to be signed to a label, and even if I were, I don't know that I would want to be. I am getting big enough that things are getting busy, yet I'm too small to bring on management help. 

The fun(ny) thing about being in this middle-zone is that you become to get extremely intimate with the particulars of where you're getting plays, sales, etc. I even made a cool google map of where I've sent physical orders, which is really inspiring and motivating! Check it out:

http://i.imgur.com/Ovtlj1P.png

Once you're this close to the data, you begin to compare it to where you've spent effort and see if that is paying off. One of the things I've seen suggested often is getting your music on not just Spotify for streaming, but also Pandora, even though their platform is a bit different.

I can dig it. I signed up and it took what felt like a year to get my tracks approved. You see, the listener interface is all automated and tells you what you like to listen by figuring out which of their "musical fingerprint" items you like and don't, but that fingerprint is applied to tracks by a human, who manually listens to everything, and if I had to guess I got someone that liked chiptunes but didn't exactly understand what they were listening to.

Finally in 2015 I had an approved album live on Pandora. I also signed up for a SoundExchange account, because Pandora doesn't pay musicians directly, they hand a lump sum to SoundExchange and then report plays and let SoundExchange figure it out later. To make that task easier, you send in a list of tracks that you control the rights to (your "repertoire") and they play a matching game. This tidbit will be important in a minute. There are other things SoundExchange pays on, like general radio play, and really anything that is non-seekable or not controlled by the listener. Turntable.fm (remember that site?) even pays a blanket royalty and reports plays from MP3s if they're tagged correctly.

Fast forward to the end of 2016 — or rewind, if you're stuck in today's date — and SoundExchange (who will not send you your first payment until you're past a certain time or money threshold) has my first statement ready! Hooray! Three cheers for............wait a minute..........How come only three of my tracks out of the repertoire of over 150 I sent in on this statement? Maybe this is just a mistake, because a track I contributed to is on here, and it got a measly three plays, but it's on the report.

So I give SoundExchange a call, and they're on a holiday that lasts from before Christmas to after the New Year. Leave a message. Send an email just in case someone checks that but nobody's in the office. Call back after the recording says they're open again. The recording hasn't changed. Leave another message. After no call back, send an email. After no response, try calling again. Finally I get customer support. 

Now, a word on customer support really fast. Maybe it's just that I've worked customer support for quite possibly my entire life since I could speak, but these days calls to customer support must be even worse than when I had to tell people where to find the power button on their computers. I often get someone super friendly and ready to help me with my issue, I explain my issue thoroughly including the steps I've already been through, just to get led through those steps for the third or fourth time. There are some people that might need this and I am not one of them.

I am finally forwarded to my new research department buddy (did I mention we're into February now?) who wants to make sure my repertoire is up-to-date. Reasonable, except the stuff I'm asking about was on the first repertoire I ever sent, and I have a confirmation email that it was received. I re-send the link to the original google doc I submitted (which now has updated releases from 2016). Oh, apparently they don't take google docs (wonder how they got it in the first place) due to security concerns . But you know what isn't a security concern? An excel spreadsheet. Please excuse me for a moment while I go sob in the corner.

The repertoire is finally received, checked over, and we cross all of our T's and dot all of our I's. The Pandora track titles match what I submitted to SoundExchange. I begin a waiting process while I assume that All The Things are checked. Nothing. I am told to contact Pandora and ask if they reported the plays.

Now a word on Pandora support. There is NO phone support, not even a number you can call, just an email address. I email the address and it takes a cool week to get a response. The email says that they confirm they've reported my plays (and for some reason Pandora insists on the language "spins"), and by the way:

"For more information on Sound Exchange’s payment schedule and minimum threshold for payments, check out their FAQ here: http://www.soundexchange.com/generalfaq/"

DDDDDddddddddderp. I already mentioned in my introductory question that I received my first statement, and SoundExchange says they include all your royalties to date in that first payment. You didn't need to tell me I didn't have enough plays to earn a report because I'm staring at the report. Also, the link to the FAQ you sent me doesn't work, thanks for the outdated information. =[

I calmly collect myself and explain again that yes, I know what I'm asking and I know what I'm doing. The number of plays of what I am asking about exceeds single-digit plays. I see a single-digit track in my report, but I am asking about that thing that received (tens of) thousands of plays. Time passes. We're into March now.

I am asked if I use a distributor. Yes, I respond, but not for the purposes of getting my music to Pandora, it was all uploaded independently. Also, aren't the people at Pandora able to see how the track was uploaded? I'm asked if SoundExchange gave me a date range. Now we're going in circles again: The beginning of time to now; there was only one statement. Paraphrasing Pandora's response: "we're doing everything right; you should really talk to SoundExchange about all this"

At this point I'm worried I'm at an impasse with both Pandora and SoundExchange. Both of them insist they're doing the Right Thing and pass the buck to the other one, neither of them will talk to eachother (and Pandora uses a helpdesk system so CC'ing both of them on emails doesn't do any good). Yet, my plays are sitting there in limbo, waiting for a payout. I'm small peanuts, so I can't just yell at them (and that's not really conducive to getting helpful assistance, because it's not the fault of customer support).

In conclusion, I'm so incredibly thankful you're here.

Someday, if I get the motivation, I'll type up a fun (please tell me this sarcasm is making it through) adventure about how I signed up for Loudr to avoid putting my music on CDbaby, only to watch Loudr distribution get sucked up by CDbaby. We were told nothing would change. You can imagine how that went.

New music, videos, and stories coming soon. I'm playing a show with analog synthesizer folks in Pittsburgh this upcoming Saturday!

View Post

Welcome, new patrons!

Hey, there's been an influx of support recently. Whether you're a long-time supporter or a new one, I really just want to shout out and let you know you're appreciated, each and every one of you.

So, everyone please give a warm welcome to Matt, JT, Kieran, René, Nikola, and Stephen, now you're in the chip zone baby!

View Post

Bad Apple video ported to BBC Micro

If you're not familiar with Bad Apple, it's a a song from ZUN's Touhou game series. It was remixed and featured in a promotional silhouette video and quickly became a meme in the demoscene as a bar for video compression and streaming. Demo groups have been actively "porting" the PV to various computers and consoles, and the results have just been insane. There are Commodore 64, Atari  2600, even TI84 calculator versions of the demo, each with its own set  of technical achievements. There's also a version for the original IBM PC, written by Trixter, who may or may not have something to say in the comments... (hi Jim)!

Anyway, there was no port of the video to the BBC Micro (colloquially,  "Beeb"), a popular UK computer, until now. UK demogroup Bitshifters took it upon themselves to produce a version of the Bad Apple video that would not only replay on a BBC Micro but also do so smoothly in a Teletext mode exclusive to the machine and fit on a single floppy disk. They also needed someone to port the audio to the Beeb, which is where I came in. 

To properly understand the capabilities of the machine, it has a 6502  running at 2mhz with 32KB of RAM, perhaps roughly comparable to an Apple II+. The Beeb also has an SN76489 for sound which provides three channels of 50% square wave and rudimentary whitenoise that sounds like banging on trashcan lids. This chip first appeared in the TI99/4 (as the TMS9919 or SN94624), and also in several other systems like the  Colecovision, Sega Master System/Game Gear, IBM PCjr, and Tandy 1000.  There were various revisions. 

To properly get a song over to the BBC Micro, I first wrote an SMS song in Deflemask's PAL mode to get things as closely to our target as possible, and then we used additional scripts to convert the output to  the Beeb, mainly because the oscillator clock runs at different speeds between the two machines. Then we fine-tuned the errors out as best we  could. 

You can watch the final result here:  
bitshifters.github.io/posts/prods/bs-badapple.html 

One thing I found while working with this is that the diffferent variants of SN76489 — while the changes between revisions were extremely minor — might contribute to a lot of interesting bugs and errors. I'm already researching this more.

As soon as I have a good recording from a BBC Micro, I'll also release that, but in the meantime, I've released the Sega Master System version (which is slightly more bug-free) on my bandcamp, and thanks to your support, I have made it free:

http://inversephase.bandcamp.com/track/bad-apple-sms-sn76489

Grab yourself a free copy (Patrons, please enter 0 for the price) and let me know what you think! If you'd like, there are social media posts on twitter, facebook, and google+  that you can share with your friends and family.

Thanks for supporting!

View Post

Seminar Sunday returns! The Demoscene: US vs Poland

Today I'll be joining Polish #demoscene organizers. We'll be talking about the differences between the US and European scenes on their video livestream in about one hour.  Sorry about the late notice!  

That's 4pm eastern US time, or 10pm if you're in Poland =]    

Direct link to the channel is:  

https://www.youtube.com/channel/UCO6fMhzSqgR6BmdJxaXPSlA

View Post

Is it okay to shout you out? Vote!

Hey there!

I recently livestreamed a chiptune seminar. Some of you were there for it, and some of you are here because of it. Thanks to everyone that did or could participate, seriously. It was a huge success!

I want to chop the seminar up into digestible bits and put it up on YouTube, and I'd like to shout you out at the end of the video. This entails me listing your name (as it is listed here on Patreon) in some sort of footer/tail/end card. Although I imagine the majority of people being okay with this, some might not want their name appearing I want to respect your privacy. 

So, please hit the appropriate poll option that properly depicts your innermost feels:

View Post

New Game Audio: Slime Boss

Hey Patrons! 

(update, for some reason the link to the song does not work, it is: https://inversephase.bandcamp.com/track/slime-boss)

Last year, around the time I was working on Sega Things and testing it at shows, I was also working on this cool POKEY piece for Fabraz. I'm on a big, solid list of chiptune talent for their upcoming game, Slime-San. It's not out yet, but I'm sure they'd appreciate your interest on Steam if you're able!

The two big themes that I tried to portray (other than the obvious "this is a boss theme") were a "gotta move" tension-feel as well as a little bit of a whimsical goofy undertone. That proggy stuff in the middle just kind of came out while I was working on it in tension-mode, but I think it really worked for the track so I kept it in. =]

This track is marked "subscribers only" on Bandcamp because the game and soundtrack are not yet out. Download codes will be distributed shortly, however, to all Patrons pledging $2 and up. When the game/soundtrack drops, I'll send out download codes to $1 Patrons as well.

Thanks for your support, everyone!

View Post

Public sneak peek: Beatdown City Stage 2 (NES)

Welp, if it's good enough for Shawn, it's good enough for me!

Just in case the video embed isn't working, http://pic.twitter.com/IPEb4PxdlH - likes and RTs appreciated!

One of the things I've been working on in the background of all of the tracker and synthesizer madness (updates on that soon!) is, of course, commissions!

Probably one of the longest-running projects I've contributed to, Beatdown City is (to be really brief) a beat-em-up with a tactics menu that I've been writing music for since roughly 2011. Shawn kickstarted the game a few years back and the whole team has been working really hard to get an alpha out, through all sorts of adversity. I think every one of us on the team have moved at least once during the development of the game so far.

Beatdown City is heavily influenced by games like Double Dragon, River City Ransom, Final Fight, and more, and I am drawing from some of the same influences (as well as my own pool) to write some great, driving NES music. 

Of course, if you haven't heard it already, you can hear the stuff I've already released for the game here: https://inversephase.bandcamp.com/album/treachery-in-beatdown-city-episode-1-ep 

I know this is really short, but patrons in sneak preview tiers will be getting more audio after I get back from MAGFest.

Speaking of, if you're going to MAGFest this weekend, let's hang out!

Catch you again soon, my pretties!

View Post

Chiptune 2: The Trackening

 

So, here we have a rather sparse image that is a source of excitement. If you remember the synthesizer post from earlier this year, well, I need a way to control it...so I'm writing a tracker from scratch. Sure, I could hack up an existing tracker, but I've kinda been-there-done-that with the one I use now that I hacked emulators into the back end of it. Plus, I'm ready to try some cool chiptune things that haven't really been done before, so I want to be in control of the way that happens.

This tracker isn't even in alpha, but one neat thing you can already see is quartertone support about halfway down the rows. I don't honestly see myself writing a lot of music using quartertones, but I still find them interesting, and it's rather rare to see in a tracker so why not?

A lot of the things that DO work are under the hood. There's no load or save because the file format is still developing, and there's no input or output subsystem. I do have code that beeps my boards with selectable amplitude, frequency, and instrument. So, once an output system comes together, things will get rewarding very fast. Other things that are already written in are a flexible channel system, multiple FX handling, alternate tunings, and some other cool things.

Why the name SlowTracker? Well, it's written in Python, so it's no demoscene code beauty, and the name FastTracker was taken (though I did borrow the font). Maybe the name will change once it takes shape.

Until then, feel free to ask questions!

View Post

Sega Things video in progress

Hey everybody,

I just wanted to let you know that if you haven't gotten your Sega Things download, well, you should! I'm working on a music video for the song, and once that goes live, the track will probably change from free to $1. I can of course give Patrons a download code at any time, but right now anyone can download the track for free, and all you have to do is pop over to my Bandcamp and enter 0 for the price. That link is:

https://inversephase.bandcamp.com/track/sega-things

Feel free to spread the word! I have posts that are easy to retweet or reshare on Twitter here and on Facebook over here.

View Post

If you like Stranger Things, you're gonna want to listen to this

It looks like bandcamp links posted to Patreon are still broken, so I'm just going to drop the link to the link to my latest, which is a rework of the Stranger Things theme on a Sega Genesis / MegaDrive.

https://inversephase.bandcamp.com/track/sega-things

This song is an interesting case. Last year I wrote Another Dark Place, which I released early this year during MAGFest on my album Genesis of Consequence. Then, recently I finished watching Stranger Things. I quickly noticed that if you reversed the chord progression in ADP and dropped it a key, it lined up with ST.  I've played out a few times and ADP really doesn't fit the rest of my Sega fodder from my set, but a lot of people do know me for my covers and tributes. With BRKfest quickly approaching, I decided I'd try and adapt ADP into something more show-worthy. I had also been listening to a lot of synthwave and retrowave lately, so that factored into the mix.

Tested at BRK and MAGFest Labs, the track was a hit, and I just finished cleaning it up. So, please give it a listen!

Also, yesterday, I announced the track to Patrons, and said download codes were coming soon. Well, I decided I would make the track free for a limited time, so just go on over and grab it!

Here's that link one more time: https://inversephase.bandcamp.com/track/sega-things

View Post

Sega Things

Here's that Sega synthwave thing I've been teasing about on social media. I've got to run out for a few, but keep your eyes on your Patreon messagebox things. Download codes are coming in the next 8 hours. In the meantime, you can listen on bandcamp!


Please help me spread the word on social media:

bookface: https://www.facebook.com/inversephase/posts/10154664424007360

twitbox: https://twitter.com/inversephase/status/788160808790392832

tehgoogles: https://plus.google.com/111317259136418339999/posts/7Sd7HrRXaYf

View Post

I'm moving to Monthly

Hey! I'm gonna keep this one short and sweet - I've gone back and forth on this a whole bunch and even posted and asked about it here and on social media.

Long story short: One of the things I've found out from asking around is that the "monthly maximum" system is too complicated for a lot of people, and they prefer to know exactly how much they're going to be spending each month on patronage, and for that to not be a fluctuating amount.

Also, while I think a per-creation Patreon makes more sense as far as
releasing my work, I think a monthly Patreon makes more sense with the
amount of work I eventually want to produce. 

I think both of these things are a roadblock for people to join. I want to reach more people and right now that isn't happening. I might switch back to per-creation if it doesn't work out, but I want to see how this goes.

I want to be completely transparent with you, as you are all my current patrons and supporters. I intend to keep rewards the same. Please don't hesitate to ask if you have any questions.

Thanks so much!

View Post

Pretty Eight Machine shirt reprint

Hey Patrons! I'm doing a limited reprint of the Pretty Eight Machine shirts, and I'd like to do a cool offer for all of you that are supporting me. I appreciate you so much.

These shirts are being printed to order so if you want one, please comment or send me a Patreon message with whether you prefer the brushed "dark heather" (left) or the solid "charcoal grey (right), and what your shirt size is. I will reserve one specifically for you.

The only hitch is I need to know immediately. The cost will be $20 (usd) for the shirts, but you do not need to pay now. I just need to know now. I am placing the order TONIGHT  so please do not delay in telling me.

If you are not a Patron, you can still order a shirt. COMMENT (or message) NOW.

If you ARE a Patron, you will receive free shipping on your shirt, and also a free download of the album if you don't already have it.

View Post

Live, raw, uncut, uncensored, SYNTHESIZER ACTION

Hey! Sorry it's been so quiet, there's so much going on and I've been working on catching up with gigs so I can get you all MORE CONTENT. Here's a livestream from just under two weeks ago of me populating one of my synthesizer boards, in preparation for the Muff Wiggler DC synth meet that was held at Rhizome DC.

In all honesty, this video could be edited down to about 10 minutes, so maybe it's better watched at low volume in the corner of your screen while you're doing something else. The point of leaving it as-is, is you get to see my "process" of setting up hardware and trying to lead you through the process. Also, I'd rather spend time on producing that OTHER video I should be working on. =]

Related, however, is an update on the synthesizer! The timer/oscillation code was repaired and the boards are working. Some (expected) addressing issues have cropped up and are being....ahem....addressed. I beefed up the dumb "organ" app that I wrote (I demo it towards the end of the video). It now gives you octave and instrument selection. It will get overhauled and implemented into my tracker as a "keyjazz" mode.

Now I am hunting for more chips. If you, or anyone you know, has any of the following, this is my official call for hardware:

  • Commodore 64C (newer model, not breadbin) for a SID 8580
  • MADARA or Esper Dream 2 cartridge for a VRC6
  • TI SN76477, usually found on rather old arcade or pinball boards
  • TI SN76489 and variants (SN76496, NCR 8496)
  • General Instrument AY-3-891x variants
    (especially a non-fake AY-3-8930)

I prefer hardware that is non-working with an intact soundchip so I am not destroying a working machine; I plan to use whatever else might still be salvageable on the hardware to repair other gear (a few of my commodore keyboards are shot, etc). Plus I am not mass-producing or selling this hardware. I do not want to contribute to the historical demise of anything uncommon or rare.

As always, feel free to leave comments or questions, I hope to hear from you!

View Post

New track coming up: "4:40am"

I've spent a lot of time on FM lately, and I've felt a strong urge to get back to my PSG roots. Granted, once it is operational, my synthesizer will enable me to do that a great deal, but right now I just need to churn out a ditty in my native composing environment.

Coming shortly is a PSG track that I've been working on for awhile. I've spent time on it primarily in the wee hours of the morning, in fact, hence the title. In an interesting twist, it's somewhat inspired BY my FM work, where I'm trying to take what I've learned while working on, say, Genesis of Consequence (that is, the Where's My Mommy? soundtrack) and apply it to music on older systems. I really hope you'll enjoy it, and I'll talk more about it when it goes live.


Taking a quick moment to talk about previous works that should be out by now...


"What does the DOS say?" has turned into an absolutely crazy new thing. What began as simply a DOS/PC Speaker tune is now a PC Speaker, Tandy/PCjr 3-voice, and Adlib love letter to old PCs. I am absolutely positive you will love it, and I am just spending a lot of time getting everything together in one video. I want this to be perfect, and I want the video and audio to drop at the same time. 


The song before that is something I still have to keep hush about while I figure out what I'm allowed to say, if anything. I take it very seriously so I just don't want to misstep during the process.


Stay tuned also for synthesizer updates, and talk to you soon!

View Post

What does the DOS say?

Image credit: Chris McDonald,

http://www.sigcis.org/user/256


First of all, a huge thank you to everyone that read, liked, and shared my synthesizer post on Friday! Before I go full-bore on the synth, I have a few "loose ends" to tie up. =]


The original way I got my hands dirty with computers and music was with old PC/XT and AT machines running DOS. First I had a Compaq Portable with CGA, two floppy drives, and no harddisk...! It only had a PC speaker/beeper, but that was enough to mess with the PLAY command in GWBASIC, dig around and learn about a hacked version of SAM (Software Automatic Mouth) I had, and be completely wowed by the synthesis from Music Construction Set, which I would later learn used PWM to simulate multiple channels on my crappy beeper. Also, I believe I learned that the resonance frequency of my computer case was aligned to the note of G, and the entire case of the computer would rattle when it hit that note.


This is a track I started awhile ago using Trixter's Monotone to honor and remember those days. Trixter worked on all of those 8088 demos (Corruption, Domination, MPH) and Monotone is the tracker that the music for 8088 MPH is written in. It supports multiple channels on the PC speaker by doing blippy arps when you have multiple notes going at once, and loosely follows a tracker format (which I much prefer) rather than sheet music or something like BASIC's PLAY command. Here's a screenshot:



So, what does it sound like? Well, I've included a very preliminary version of the track since the one I'm working on is getting cleaned up, that should give you a pretty good idea!


Thanks for supporting me this round, eager to get you more music! =]

View Post

We're going on an adventure... Please read!

 Hello friends, family, and patrons!

This picture embodies something I've wanted to do for awhile now. I've been daydreaming about this for at least the last eight years in various incarnations. One of my Patreon creator milestones, though intentionally ambiguous, has been "design a new instrument". Now all of this is slowly coming to fruition thanks to my friend and housemate Charles Lohr, who is the embedded systems guy behind projects like ColorChord and Voxeltastic.

I am building a synthesizer from scratch.

Upon providing some specifications to Charles, we've come up with a board that is my "dream" sound controller. It has a DIP48 socket in the middle to accommodate almost any sound chip I can get my hands on, which will be driven by an ATmega AVR. It has a socketed (or soldered-in) crystal for oscillation and timing, which can also provide alternate clocks via an ATtiny85. There's a spot for a DE9/DB9 port so I can connect joysticks or paddles. Then there are tons of breakout pins that can connect everything together in almost any way I can imagine. It will be connected via USB to a PC and each board has its own sound output. Here's a closeup of the board:


What's that? People have made boards to control sound chips before? TRUE! Nobody has done it quite like this, though. Everyone is hyperfocused on getting their favorite sound chip accessible via MIDI, which, well, I'm just not interested in. If you don't know already, chiptunes aren't MIDI and don't have anything to do with it. I'm more interested in direct hardware access, so I can do cool tricks with the chips. Plus, with the way we're interfacing with these, I could (in theory) write sound drivers for emulators to push all sound out using real hardware. That would be especially neat!

My "original" dream — if you can call it that — was to have this box with a parallel port that would act as a sort of "breakout box" to three or so retrocomputers. I was going to come up with a simple protocol to talk to code running on each of the computers, which would then in turn bang on registers and memory addresses to play music on each. Then I'd run the audio output from each of the machines and the parallel cable to, say, a 386/486 laptop that would be controlling anything. Technically the idea was sound (ha. ha. ha.) but let's be honest, one thing I've really been trying to nip in the bud is the amount of gear I travel with and have on stage.

In the first picture you can see a nice compact suitcase, it's one of those metal cases that will just barely fit a large laptop, a compact 4-channel stereo mixer (which can operate in mono mode for 8 channels, bonus!), an isolated power brick, a 13-port USB hub, and a few storage compartments. Up top there was a thing so you could store screwdrivers and wrenches. I ripped that out, and with the help of my friend Adam we milled a piece of acrylic to fit in the space above and spaced out some holes for mounts so I can support up to eight of the sound boards on one sheet. Four boards are mounted and three have chips in them, I am definitely looking for old/dead consoles that cannot be repaired to repurpose other chips onto these boards... let me know if you have one!

So where are we at now? Well, I have access to the complete code to the AVR controller code and can add features to / re-flash the firmware. The boards boot and communicate with the PC, so that part is done. We actually lost the oscillator code, but that's a really quick rewrite that will happen soon. The one board that has working oscillator code I can get sound out of, and the other boards are at various stages. Here's a "screenshot" of lsusb in Linux with the boards plugged in. See if you can guess which chips I have in them!


At this point, the todo list is pretty large, but a summary includes getting the chips that don't already work to do so, and then I will probably have to write my own tracker from scratch. One thing that will make that speedier (than usual) is that I won't have to write any sound generation code — one of the bonuses of using hardware — though that will certainly have to undergo testing and bugfixing, which is another item on the list.

Most of all, one of my todo list items is to actually produce music with this thing and give it to you! To that end, some Patreon rewards will be business as usual (that is, things that I have been working on and want to share with you as they release)...but some Patreon rewards will be extra-special: I want to share music produced on the synthesizer as it is produced. Part of me is a perfectionist and that part of me says I should wait to share music with you until it is up to par with my usual standards. Another part of me says this is an exciting journey that I want you all to join me in, and that I should share even the buggy experimental stuff so we can share in all the moments together. I'm now leaning towards that latter bit, because you are all my awesome support team and I want you to see how your support is encouraging me to accomplish things I haven't attempted before.

I'm guessing around half of my synthesizer updates will be Patron-only. Video-worthy stuff will probably be publicly posted on YouTube in hopes that it will garner support for the project. If you know anyone that would be interested in this adventure, please suggest my Patreon by sharing this post with them (or even just to the general public)! If you're reading this and want to join, now's the time! I encourage you to do so!

Last minute addition! Charles also has a Patreon for his electronic gadgets here.

UPDATE: This is a pretty old post, and there's been some progress. If you want to read more about that, I have a post about the tracker you should check out.

As always, please feel free to communicate with me and ask questions. =]

View Post