Launchpad Advanced Mapping for Traktor 2 (.tsi w/ instructions)
Since I originally made my Launchpad mapping, I've done some work on it. I'd like to make that work available, but it comes with a warning... it is MUCH more complicated. If you are a beginner, or don't need advanced functionality like cue type hotswapping.. just stick with the original one.
I'll document it in basically the same way, but there will be some tricky parts. Just experiment and you'll figure it out.
Note: This is meant for Traktor 2!
Gigabyte GA-X58A-UD3R (Rev 2.0) Audio Glitching Due to DPC Latency

Getting intermittent audio glitches while playing games with your GA-X58A-UD3R?
Hopefully I can help. I've spent the last few months trying to track down why exactly this is happening. It's been virtually impossible to find the source of the audio glitches because Windows doesn't offer any sort of system performance profiler to tell you where your issues are stemming from. What I was able to determine is that these audio glitches are due to "Deferred Procedure Call Latency" or "DPC Lag" for short. DPC allows higher priority tasks to take precedence over non-crucial ones. The problem is, a lot of drivers use this, and some seem to abuse/handle it poorly.
The recommended steps for finding the cause of DPU Latency is as follows:
- Download a DPC Latency Checker.
- Disable your devices one by one in the Windows Device Manager (focusing on things like NICs, USB controllers, Audio devices, etc..)
- When the latency goes away, you've found your problem.
The problem with this for me is... I have half a million devices in there! I spent an entire day going through and disabling literally every device that could be disabled and... NO DICE.
Well, you may be in luck.
After all that searching I finally found the reason why it was impossible to track down the problem. It appears that it was my motherboard! There's no way around that! Luckily, after updating to the latest beta BIOS it seems the problem is fixed! (Updating your BIOS is dangerous, and using a beta BIOS is especially dangerous.. but if you're anything like me this is a risk you'll be happy to take considering how damn annoying the audio glitching is)
Shipping Tracking – UPS and USPS Violate Best Practice PRG Pattern
This is probably just me shaking my fist at the sky, but maybe someone from one of these companies will look at this and fix their code!
Both USPS and UPS use POST requests when you enter a tracking number which means that if you refresh the tracking page your browser will most likely ask you if you really want to resubmit the form. There are many problems with this, chief among them being the fact that you can't bookmark the page. Also, from a developer viewpoint this way of doing it violates the PRG pattern that is commonly thought of as a best practices technique. PRG can be summarized as follows: (excerpt taken from this page)
Never show pages in response to POST
Always load pages using GET
Navigate from POST to GET using REDIRECT
Fedex on the other hand, stores the form information (tracking numbers and preferences) in the URL - you can bookmark this url, you can refresh, and it follows best practice guidelines.
Little things like this surprise me because we are talking about companies worth tens of billions of dollars. They have a very robust web-infrastructures built, and yet they have small problems like this that affect a large portion of their user-base - which could be fixed in an hour or two.
Stanton SCS.1m Mapping Diagram for GEN Passthru DaRouter Preset
Let me clarify...
If you're looking at this, you're probably one of two people.
1. You want to map your SCS.1m and you already know how, you're just here for the chart. If this is the case then click the image to the left and leave me a comment to say thanks if it's helpful!
2. You want to make a custom mapping of your SCS.1m for some software.. but can't figure out where to even start. Don't worry, I was in your boat about 10 hours ago! Read on and I'll show you everything you need to know.
I thought I knew how to map MIDI devices, but I'm so confused.. where do I even start?
Mapping the SCS.1m isn't quite as straight-forward as most other MIDI devices. Here's the bad news: the SCS.1m isn't even a MIDI device at all. The messages it sends to your computer are in some other format, I have no idea what it is, but it's very unlikely you're going to get anything out of them. This means that you must use Stanton's "DaRouter" software. DaRouter takes the signals from the SCS.1m and converts them to MIDI using one of the presets that come with it. The unfortunate thing about these presets is that they come with a lot of built in behavior. Why is that bad? If you want to program your own behavior, these presets will fight you every step of the way. At least most of them will.
Passthru Presets - the savior
Thankfully, Stanton didn't leave us high and dry. They (only recently) give us "Passthru" presets, which just take the signals from the SCS.1m and make them available as raw MIDI which is exactly what we want for mapping! So what do we need to start custom mapping?
- SCS.1 Firmware Flasher for Windows OR Mac - I'm not sure this is necessary, but it's probably a good idea to be up to date
- SCS.1 DaRouter Installer for Windows OR Mac - You absolutely need this, and the most recent version.
Install DaRouter and select the "SCS1m GEN Passthru" preset.
That's it! You're ready to start mapping your SCS.1m using the chart above!
How to remove visual ads from Slacker Radio
I've been really enjoying Slacker Radio recently as an alternative to Pandora. The thing I don't like is their distracting website layout. For free-users it's awful.. but even for premium users it still has an excessive amount of crap that just takes up space.
Lets clean that up a bit.
- First you will need a Firefox/Chrome plugin called "Stylish" - You can download it here for Firefox, or here for Chrome.
- Open up the options for Stylish and click "Add Style"
- Name it "Clean Slacker" or whatever you want.
- Specify that it "Applies to URLs on the domain slacker.com"
- Enter the following for the "Code"
body { overflow: hidden; background: black; }
#sitenav { background: none; }
#sitecontent { height: 400px !important; background: none; -webkit-box-shadow: none; }
#highlights { display:none; }
#sitefooter { display:none; }
#sitecopyright { display:none; }
#basicnav { height: 40px; overflow: hidden; }
#basicnav > div:first-child { display: none; }
#webplayer { margin-top: 25px; margin-left:150px; }
#tower { display:none; }
#upgradebanner { display:none !important; }Check "Enabled" and "Save" and voila! Nice clean Slacker.
Plus, check out this page to snag a free month of their Slacker Premium Radio service
AutoIt – Write functions that know what line they were called from
Kind of a random and ultra-specific thing to write about, but like the other posts on this blog.. I'm writing this so some day when someone else is trying to figure out how to do this, they'll find this post in five minutes instead of smashing their head against a wall for an hour.
The problem
You want to write a logging function for your application for debugging/development purposes. It would be helpful if the messages from that function included the line number that they were called from.. but how?
The solution
The @ScriptLineNumber macro will get you the current line, but how do we get the line number of where the function was called from? As it turns out, default values for functions are set at the time of the function call; this means that you can use @ScriptLineNumber as the default value for a $Line parameter and voila!
The example
Func DebugLog($Message, $Line = @ScriptLineNumber)
If Not @Compiled Then
ConsoleWrite("(" & $Line & "): " & $Message & @CRLF)
EndIf
EndFunc ;==>DebugLogThat's it!
Microsoft… I Want My Money Back
I got an email today, stating that due to the offensive language used in my XBox Live profile's "bio", my account had been suspended for an unspecified amount of time. The text in question was a quote from an Elliott Smith song I like, which contained the word "Fucked". In order to find out how much time the suspension was for, I had to try to log in on my XBox.
-Tries to log in to XBox-
You have been suspended from XBox LIVE.
You will not be able to sign in to XBox
LIVE until 3/1/2011
It's February 28th. I have been suspended for A WHOLE DAY. I want my money back.
Here's what I'm confused about. If Microsoft had a problem with foul language being used in profiles, why not just disallow any profile text that had those words in te first place? It's not like I somehow slipped it past them, and I didn't try to obscure the letters by adding "Leet" or anything (it wasn't "Fu(k3d"). Plus, if they have a problem with language, why do they allow voice chat? Live is notorious for being full of horribly racist and lingually insensitive people, and yet as far as I know, those people do not get their accounts suspended.
Jokes on you Microsoft.. I've had that offensive language in my profile for a year and a half!
It’s shit like this M-Audio…

For the last couple days I've been battling through the process of getting my mixer set up as a MIDI controller using an M-Audio MIDISport 2X2 Anniversary Edition. The problem is somewhat complex, you can read about it here. I was rather annoyed at the complete lack of any way to phone/email/contact M-Audio. Fed up with trying to troubleshoot the problem on my own I decided to post on their forum. I wrote out as descriptive post as I could, and submitted it. Annoyingly enough, new threads have to be confirmed to get posted on that forum!
Ten hours later the thread is posted. Less than 24 hours later, there is a post from their "Audio QA Test Manager" stating that they've released an update which may help.
Nope, didn't fix anything - I reply.
Almost immediately, he writes back saying that he's going to forward the information over to the dev team that works on those drivers, and says "Thanks for the feedback. It is very helpful."
So what's the point of this post? Well, say what you will about M-Audio. Say they're overpriced, poorly constructed, buggy... whatever. At least they took my problem seriously and are dealing with it in a timely manor, and that's really all it takes.
UPDATE 1
He had me do some testing to see if I could help nail down the problem. The results were inconclusive so in order to fix it, he said that they ordered a Behringer DDM 4000 so they could do in-house testing. M-Audio just blew $400 to fix a minor bug!
Korg nanoKONTROL Traktor 4-Deck 4-Effect Mapping
The Korg nanoKONTROL is a great little MIDI controller. It's got loads of buttons and knobs, but if you want to use it with Traktor you're going to need a mapping that lets you do everything you want with it. For me, since I already have my Launchpad running track control (play/loops/cues/monitor/sync), I wanted to use my nanoKONTROL to run effects. Specifically four effect panels. Also, normally I would have a mixer for controlling things like track volume, etc... but it's in the shop, so I also need the nanoKONTROL to do all of that.
Many hours of mapping later, here we are. When done you'll have two mappings.
The first: Control any two effects panels at a time
The second: Four track mixing control, and one effect panel at a time
Dynamically Self-Calling PHP Functions/Methods (For Recursion)
Okay, I know this is silly, and I doubt anyone will even get into the situation where they'd need to do this. (And if they do find themselves needing it.. I'm guessing they could figure it out on their own) ANYWAYS..
I have a function that calls itself recursively, I was going to rename the function which of course meant I would also have to change all self-calls. This caused me to wonder.. Can this be done dynamically?
Ten minutes of googling later, nothing found. Time to cobble some random ideas together!
$self_caller = __FUNCTION__; $self_caller($args); //For functions $this->$self_caller($args); //For methods
That's it! I'm not sure I would recommend doing this at all, seems hackish... but all concepts used here are documented on the php.net site: Variable functions, Magic constants



Last
Twitter
Myspace
Facebook