Hax0rr3d, apparently

April 1st, 2012

Someone is in my base, injecting all my SQL.

This site was hacked at some point in the last couple weeks. I was alerted this morning when I tried to moderate spam comments. My browser pleaded that I turn back, for the site had become a wretched hive of scum and villainy. I am disabling blog comments to be safe so that there is no future risk of malicious code getting in through a comment.

HostGator was great about cleaning up the malware on the site.

If you have visited any part of skrasoft.com in the past couple weeks, please do a malware scan on your computer. I have no idea what the site was trying to install. I recommend Malwarebytes for scanning, but I may not give the best advice since I also get hacked.

Early Tests of Max/MSP Controlling 2A03 (NES CPU) Audio

December 12th, 2011

My last post mentioned that I had an interface working for controlling the 2A03 at a reasonably fast rate. Last week I wrote a serial data receiver (UART in this case) into the 2A03 control logic so I could send the 2A03 commands from Max/MSP. I technically could’ve used MIDI, but at 31,250 bps it is far too slow for all the data I want to send as quickly as I want to send it. I opted for 1,000,000 bps with the option to speed it up further later.

The chain looks like this:
Max/MSP -> FTDI USB-to-UART cable -> FPGA development board -> 2A03 adapter

It works just as well as I hoped. I basically have real-time control over all the NES audio registers from Max/MSP. Here’s a screenshot of the big ol’ mess in Max:

It serves as a quick idea prototyping/test platform for the NES synth module, so it changes too frequently to bother making it tidy.

This post is boring without audio, so how about a few test recordings? These are all straight from an NES CPU into the preamps on my sound card.

Click here for clip 1 – triangle wave FM

The pitch of the triangle wave is modulated by a sine wave in Max/MSP. There is a lot of jitter in the timing not only because of the serial transmission, but also because I have to convert the sine from an audio thread in Max to control data to use with the “serial” object. Control data timing is not designed for audio. It worked decently given the circumstances.

Click here for clip 2 – pulse wave delay

One of my favorite Nintendo sounds is two pulse waves configured as an echo effect. I am just playing with a few settings (delay time, second wave volume and duty cycle). The percussive nature of the voices comes from an envelope with an attack time of zero and a short decay to silence. The envelope and all other data is being completely handled by Max and dumped out over USB. The pops in the audio are from a known control issue. They will get better and go away as I tweak the control logic.

Click here for clip 3 – noise bursts

I couldn’t post audio tests without including the noise channel. This is a steady stream of short bursts (zero attack time and fast release time) with pitch and timbre being adjusted by hand then linked to the amplitude envelope in fun ways.

Sweep of the Day

November 20th, 2011

The NES synth module pushes onward! The sound clip below is the first audio of the triangle channel successfully controlled by the newest scheme. This method gives a register update rate of the audio hardware around 200 kHz with very low timing jitter.

Click here for sweep.

200 kHz probably sounds like overkill, but realize that has to be distributed across all the registers to update. For example, the pitch of one pulse wave uses two registers. If I did nothing but update the pitch of one pulse wave, the system would update at a maximum of 100 kHz ( = 200 kHz / 2 registers). Between noise, pulse, and triangle pitch there are seven registers. On top of that there are three volume registers and one on/off flag.

200 kHz / (7 + 3 + 1) = ~18 kHz, which does not sound quite so fast anymore.

Newest 2A03 Dev Board

Processing.js Test 5

October 8th, 2011

Each of the sliders below controls one component (red, green, or blue) of the fill color across all the sliders. Click and drag.

Each slider is an “object” in the code so that I can create the coordinates once and let each slider mostly manage itself after that. The draw() and mouse functions end up being very simple.

Processing.js Test 4

October 8th, 2011

This is a quick and dirty attempt to show my interpretation of a sine wave moving through air. The dots represent air molecules as they migrate away from high pressure toward low pressure. None of the dots actually move across the screen, they merely rock back and forth.

Processing.js Test 3

June 25th, 2011

Animated sine wave rotated in two dimensions using OpenGL.

Edit: Code works in sketchpad, but not in the blog. Frowny face.

Click here for a dedicated website version. Processing.js uses WebGL for 3D, which is not supported by Internet Explorer. Try Chrome.

Processing.js Test 2

June 21st, 2011

…just a few circles and sine waves.

Processing.js Test

June 19th, 2011

DO NOT QUESTION THE ARCS.

POKEY.synth Manual Version 1.0

March 8th, 2011

Click here for the manual.

I wanted to get a manual of some sort uploaded before shipping the rest of the first batch of modules. I will be stepping through the names on waiting list soon to see who is still interested and ready to buy a tested module.

If anyone is curious, going Gnuplot -> Inkscape -> PDF had graphical problems, so I had to go Gnuplot -> Inkscape -> PNG -> PDF. That is why the file is huge and the text is unsearchable. The graphics look best in Google Chrome, and worst in Adobe Acrobat… go figure. I am trying to find a better method of making PDFs for the future.

The Magic Octave Effect

The Magic Octave Effect

Pokey Status Update #78234

January 17th, 2011

It has been difficult to contact me lately via e-mail, so I would like this post to help respond to many of the questions I receive. I am in the process of testing built modules and writing the manual.

What does it do?

Short answer: Pokey.synth takes an old Atari computer soundchip and adds voltage control to the sounds.

The POKEY chip was used in 8-bit Atari computers, some arcades, and some Atari 7800 games. It is like an Atari 2600 soundchip on steroids, with better pitch control and more channels. Pokey.synth uses a POKEY chip to make a 2-voice synthesizer with separate voltage controllable pitch, volume, and distortion waveform for each voice. There is also an audio input for simple bit-crushing-style effects. Detailed information will be available in the manual coming shortly.

How much is a module?

Short answer: $400 + shipping

Each module includes a tested and working Atari POKEY chip. It turns out that authenticity is a little expensive.

How much is a kit?

Short answer: kits are not available

It would cost more for me to kit the SMT components than it does to pay for factory assembly. My preference is to put time into service and new designs instead of making kits. I feel that is more beneficial to everyone in the long run.

Did you get my e-mail/pm?

Short answer: Most likely yes

After my blog post in mid-December, the first 25 spots on the waiting list filled up. I received a slew of requests via e-mails to this blog, e-mails to Analog Bytes, Muffwiggler PMs, and telepathic projections. I really appreciate all the enthusiasm, but I also want to be fair and add people to the waiting list in the order they contacted me. I apologize for the back-log. It takes time to decode the order of messages coming in the different formats, so I chose to sacrifice communication to finish the product.  My focus is on getting modules tested and packed, after which I will get back to correspondence. I also plan to create a mailing list for information, updates, and future waiting lists.

Can you ship to Japan/Greece/[insert non-US country here]?

Short answer: no, I cannot at this time.

I know a little about US laws but am still learning about the laws of other countries. For example, in many countries it is not legal to sell electronics that contain lead (unless they meet special exemptions). Here in the US, we are incredibly pro-lead. It is commonly found in children’s toys, from which it is extracted and concentrated into a purer form for recreational use*. Wealthy Americans often have gold jewelry lead-plated, because otherwise they risk looking cheap*. Using lead in electronics is a perfectly reasonable thing to do by US standards. Coincidentally, the solder in this first round of Pokey modules contains lead.

Why is the module not RoHS-compliant?

Short answer: it was too expensive for this first run. Later runs will be RoHS compliant.

Selling to many countries in Europe requires meeting a set of material restrictions (known as the Reduction of Hazardous Substances Directive).  Meeting the requirements means that solder used cannot contain lead. Sadly, the RoHS alternatives to leaded solder require a higher temperature to melt. That leads to two problems. First, the higher temperatures require a more expensive process than leaded soldering. Second, more expensive printed circuit board material is required to withstand the increase in temperature during soldering. SMT components are baked on, not soldered by hand, so the PCBs are put into an oven. PCBs expand as they are heated, so a specialized material is required in order to avoid over-expansion at higher temperatures. Otherwise, circuit board connections can become damaged during SMT assembly.

Here is a picture of modules that passed initial testing, but are awaiting final testing and knobs:

So... close...

So... close...

*: This is not actually true