As I said before I am working with some others on a software based distortion. I finaly got the base running pretty smoothly but the main obstacle is how to create that distortion electric guitars use.
We came up with about 3 different methods:
(When I got my osciloscope control working I’ll take before and after pictures, for now I ain’t sure how the formula’s effect real-world sound yet)
This works a bit like the gamma of your monitor. The input for graph for gamma correction is called the epsilon which comes in 2 forms, linear and sine. The first one creates a more distortion like sound than the latter but also makes the wave not harmonic anymore which possible means that most of the distortion like sound is caused by the speakers not handling unharmonic waves very well. The latter one only sounds near the amplitudo distorted.
This method requires some buffering of the current top (or valley) of the wave and sharpenes it by a specific amount. This works a bit like the gamma correction method although it works on every volume making it usefull too for low-volume sounds. The major problem is that it requires tracking a top or a valley, which with a high bitrate requires a really big buffer to analyze, and it has a delay of one top/valley. The big problem is that this isn’t ideal for live playing for which it was designed, a delay of a few extra hundreds of a second would be noticable and it is fairly possible that this algorithm requires too much resources.
Adjusting speed resistance
At a certain point in a wave you can derive the speed and the angle. By registering the original speed and resistance of the wave a derived one can be created which could leed to sharper or softer edges of a top/valley just as the previous method but without being required to analyze the whole top/valley. We’re hoping this method will work best but this is just a concept hoping to work out as it should.
If anyone actually knows how analog distortions work exactly we would be more than happy to learn about it, just comment.
More on this to come…
At the moment I am busy creating a software based distortion for an electric guitar.
The most challenging part is getting effects to work, to explain this in more detail you need to know how a computer handles audio.
Sound itself is nothing more than a vibration in the air. It can be represented by the amount of force the air is pushing or pulling.
A tone of a specific frequency would look like:
A computer stores sound by sampling the amplitude of the air at regular interfals.
It would be easy to write a program to increase the frequency of the sound above, but a normal sound doesn’t look that regular:
Increasing the bass or treble of that wave would require some advanced algorithms, which take time to execute which creates a larger delay. One thing that a distortion shouldn’t do is lag.
More on this when some stuff is working.
An almost realtime webcam with a monitor is always fun, espacialy when the bad quality requires the software to compensate resulting in some nice effects after several passes:
I will soon own a quite cheap virtual server (by greenT, great company) which will give me way more flexibility than the current shared server account on which w-nz.com is located.
I’ll transfer my current site to the new virtual server from the current shared server account (w-nz.com; xr12.com; intrepidsoft.net).
In the worst case this could result in domain problems, transfer problems and lack of time to get it done and therefore a lot of downtime.
So when w-nz.com is down please be patient and if you want to email me use email@example.com instead of my @w-nz.com email addresses.
R = t / C!
Electrical Resistance equals Time per Electrical Capacity.
I’ve found a rather interesting ‘hack’ for C&C generals on a forum: the Scud hack.
- Build a Scud Launcher
- Select a unit which can shoot and press Ctrl+1
- Select the Scud Launcher and press Ctrl+2
- Press 1, than press shift+2
- Now you’ve got the Scud launcher and the unit selected. Mouseclick on an area while holding Ctrl to let the unit and the Scud force fire there.
EA won’t fix the hack but when you use the Scud hack whilst playing a stat-online-game you’re probably get banned.
I have received 5 chain emails in my mailbox today claiming that when I forward it to a douzen other people putting my name in it would help the victims of the tsunami in asia.
How? How can miljons of emails help those who most of them haven’t got computers (anymore, or never had) to receive email!
Usualy people forward one email to 10 others at least, the count on most emails I received was 400. So lets assume that every forwards the email 10 times, and this continues for 400 times:
10 ** 400 == 1e400
That are actually more emails than people in the world, usualy people get the same mail back from someone else later in the chain.
Lets assume that 500 miljon people receive a certain chain mail Ã 100 KB bandwidth for the sender and receiver combined.
That makes 500 milj times 100 KB is 50 TB..
1 Gig usualy costs a provider lets say 5 cents: 5 cents times 50 TB is $2500.
If we would just don’t forward chain mails but all send a simple postcard to asia we would let them show we care and we would save $2500 for the mail providers who will lower prises, which will result in more money for users which eventually results in more money for the world economy including asia!
Never forward a chain mail
I would like to use this moment to say I am shocked by the tsunami in Asia and I do care for the miljons over there, I hope this single post will convince at least one person to stop forwarding mails, that would save an average of about $100 over some time, my donation for them.
For some undisclosed reasons I won’t be able to access the internet as often as I would like to in the next few weeks. Therefore my activity on the internet will drop, so will the amount of posts on this blog propably. I will try to find some time to post at least 3 articles per week.
If you want to reach me, try e-mail instead of MSN:
I’m keeping this blog mainly to channel some thoughts about computer science (but probably about physics and other subjects which I find interesting too). I hope people will find the stuff I’ll write about interesting, and hopefully usefull. Most stuff I’ll post will as far as I know be quite new, or a new approach to an existing issue.
It seems that so far 3 people have linked to an article on this blog (all of them to the Objects in C article) already. (Thanks! without readers a webblog is quite useless!)
This is my blog, don’t expect a lot of posts, for I just aren’t good in writing text. (had to correct this post twice :-))
I’ll just post some thoughts, I hope others will find them interesting.