Dev - Sort these by name
Posted on November 05, 2015 at 17:56
Posted on October 29, 2015 at 09:32
Because "Solemn Piece No. 1" is just too much for SoundCloud, apparently.
64Digits FTB Minecraft Creative Server
Posted on May 13, 2015 at 03:03
We have set up an FTB Minecraft Creative server! To access it, all you need to do is download the FTB Launcher
, set your modpack to FTB Infinity
, and join 64digits.com.
What is FTB?
Feed The Beast is an easy-to-install modpack manager for Minecraft. The modpack we're using (Infinity) includes things like:
- Microblocks which allow you to build everything to very minute details
- Added decoration/construction blocks which allow for very diverse creations. Everything from lanterns to chairs to sinks to pillars to statues to pink trees.
- Vastly expanded redstone and minecart features.
You can find a full list of what's included in the Infinity modpack here
Is it a new map?
Wait!! What about all my stuff on the old map?!
We still have it!
What can I build?
Anything you want!
Is there a city to build in?
We are just starting it. The rough plan is to create a set of stylistically consistent districts. One district could have neoclassical architecture, another could be a slum, another could be filled with skyscrapers etc.
You can feel free to build whatever building you like near the spawn point. We will figure it out as we go along and try to organize things around the first few buildings.
A few guidelines I propose:
- Stick to a structure of city blocks
to make street-building more manageable. 90% of the time, streets should only contain the fronts of buildings.
- Leave enough room for the streets and for pipes coming out of your building.
- Don't build anything that looks stylistically inconsistent with the surrounding buildings. If the buildings around you are medieval, don't build a big modern skyscraper right beside them (build it a distance away from them).
- Build with the existing terrain as much as possible. We don't want the entire city to be completely flat.
- Make an effort to make streets varied in shape and size (bonus points for making it fit with the style of the buildings that are on that street). Try to form naturally diagonal streets by building some building further forward than others.
Is there WorldEdit?
Nope. It doesn't work with FTB, apparently.
Are there any survival aspects to this server?
We can set you to survival or adventure mode if you really want to play that way, but the default is creative.
Why haven't you installed X mod?
Making a custom modpack and getting it set up on the server and all of the clients is a little tedious, but if you have a really interesting mod, it might be worth considering.
Setting up Foobar2000 for classical music
Posted on May 06, 2015 at 15:19
(This will probably only be of interest to those of you who have a large collection of classical music and have issues sorting it properly. Everyone else can ignore this.)
This is how I have my Foobar2000 set up. The listings are automatically generated based on the metadata of the albums/tracks you have in your library.
and SimPlaylist Manager
Open up Foobar2000. Go to File > Preferences. Click Components on the left pane and click the "Install..." Button. Browse to your downloads folder and select the SimPlaylist zip. Repeat the process for the SimPlaylist Manager zip. Click Apply and restart Foobar2000 when prompted.
(I'm assuming from this point that you already have an Album/Composer/Date list along the side of the window which displays its contents in the main window, similar to this. If not, you'll either have to modify the instructions accordingly or go to View > Layout > Quick Setup and select "Album List + Visualization".)
Go to View > Layout > Enable layout editing mode
Right click the main playlist where all the tracks are listed and select "Replace UI Element". In the window that pops up, select "SimPlaylist" and click OK.
Go back to View > Layout > Enable layout editing mode to disable it.
(If you want to get rid of this playlist setup, all you have to do is repeat steps 3 to 5 and select "Playlist View" instead of "SimPlaylist" in Step 4.)
Go to File > Preferences and click SimPlaylist in the left pane. Add three new custom columns and set them up like so:
Next, go to Groups in the left pane, which should be just under SimPlaylist. Set it up like so:
Right Click in the Presets pane and click "Add New". Name the new preset "Classical works", ensure that it's selected, and set everything up as it appears in the image.
%DATE% - %ARTIST% - $ifgreater($strstr(%title%,:),0,$left(%title%,$sub($strstr(%title%,:),1)),'('Single pieces')'),ZZZZZZZZZZZZZ - $iflonger(%performer%,1,%performer%,%album artist%) - %ALBUM% - %DISCNUMBER% - %TRACKNUMBER%
$ifgreater($strstr(%title%,': '),0,$left(%title%,$sub($strstr(%title%,': '),1)),'Misc.')
Go to the "Album List" option, and add a new View (you can call this whatever you want)
%<DATE>%|%ARTIST%|[$if( $strstr(%TITLE%,', K. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', K. '),$len(', K. ')),$add($strstr(%TITLE%,', K. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', D. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', D. '),$len(', D. ')),$add($strstr(%TITLE%,', D. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', B. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', B. '),$len(', B. ')),$add($strstr(%TITLE%,', B. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', R. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', R. '),$len(', R. ')),$add($strstr(%TITLE%,', R. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', S. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', S. '),$len(', S. ')),$add($strstr(%TITLE%,', S. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', W. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', W. '),$len(', W. ')),$add($strstr(%TITLE%,', W. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', Op. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', Op. '),$len(', Op. ')),$add($strstr(%TITLE%,', Op. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', Hob. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', Hob. '),$len(', Hob. ')),$add($strstr(%TITLE%,', Hob. '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', BWV ') , $substr(%TITLE%,$add($strstr(%TITLE%,', BWV '),$len(', BWV ')),$add($strstr(%TITLE%,', BWV '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', HWV ') , $substr(%TITLE%,$add($strstr(%TITLE%,', HWV '),$len(', HWV ')),$add($strstr(%TITLE%,', HWV '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', WWV ') , $substr(%TITLE%,$add($strstr(%TITLE%,', WWV '),$len(', WWV ')),$add($strstr(%TITLE%,', WWV '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', WoO ') , $substr(%TITLE%,$add($strstr(%TITLE%,', WoO '),$len(', WoO ')),$add($strstr(%TITLE%,', WoO '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', RV ') , $substr(%TITLE%,$add($strstr(%TITLE%,', RV '),$len(', RV ')),$add($strstr(%TITLE%,', RV '),9)) , ' ' )]|[$if( $strstr(%TITLE%,', Perger ') , $substr(%TITLE%,$add($strstr(%TITLE%,', Perger '),$len(', Perger ')),$add($strstr(%TITLE%,', Perger '),9)) , ' ' )]|$iflonger(%performer%,1,%performer%,%album artist%)|%ALBUM%|%DISCNUMBER%|%TRACKNUMBER%
This will automatically display all of your music in the order: Year of composition, composer, opus/catalogue number, performer, album, disc number, track number. To add a type of cataloguing that isn't already listed in the code, you just need to add this to the code, directly after "%ARTIST%|", replacing the "X." with whatever catalouge letter/name you want:
[$if( $strstr(%TITLE%,', X. ') , $substr(%TITLE%,$add($strstr(%TITLE%,', X. '),$len(', X. ')),$add($strstr(%TITLE%,', X. '),9)) , ' ' )]|
Go to "Display" and enter the directory where you want to store images of composers/artists:
Press OK. Go to the album list on the left of the window and select the view you set up in step 8. Select a year from the list that shows up.
Right click the Playlist header (a menu which contains Columns and Groups should show up), and set everything up how you like it.
If all went well, your library should be displaying similarly to the first image. All of the codes I've posted are assuming that your tracks are formatted in a certain way (which is meant to be standard for formatting classical music, but very few publishers seem to actually adhere to it in reality):
The Title should be "X No. X in X mxxor, X. xx 'Title': I. xxxx" (this includes all of the spaces, commas, etc.). So for instance "Piano Sonata No. 14 in C minor, K. 457: I. Molto allegro", "Don Giovanni, K. 527: La ci darem la mano", "Symphony No. 6 in F major, Op. 68 'Pastoral': IV. Allegro: 'Thunderstorm'" etc.
The artist should be the name of the composer, the album artist (or performer tag, if the file format supports it) should be the name of the performer(s), the date should be the year of composition.
If your library is formatted differently, or if you want works to display in a different manner, you'll have to modify the above codes accordingly.
It's not the easiest thing to get set up, so hopefully I've made everything clear. Let me know if you have any questions/problems.
This method is based on a smajnr.net post
On Music Streaming
Posted on February 23, 2015 at 17:27
There is a disturbing amount of misinformation being spread about streaming services like Spotify and Pandora screwing over artists with menial payments. I just wanted to make a short blog about my own experiences with these services to set the record straight.
"A songwriter has to be played 1.000.000 times on Pandora to earn $90. The production team that wrote the most streamed song of all time (Wake Me Up) received a total of $12.000 from Spotify after being streamed over 168 millon times." - http://www.wired.com/2014/11/aloe-blacc-pay-songwriters/
This does not add up in the slightest for me. I self-publish my music through CDBaby, and here is a snippet of my own accounting numbers:
As you can see, on average this works out to just about $0.01 per play. Using this math, the song that received 168 million plays on Spotify should have received $1.68 million in revenue. I don't have my music on Pandora, so I can't give you numbers for them, but if it's anything like Spotify, it seems as if the $90 for a million plays is way off.
My numbers add up with what Spotify is reporting, and do not add up with what major artists are reporting.
So what's going on here? Are record labels being forced into a bad revenue-sharing deal by the streaming services? Does the amount of pay go down exponentially as the number of plays increase? Are we really to believe that a major record label with an army of lawyers standing behind them would agree to something like that, while I, Mr. self-published small time composer with 2,000 followers can get 1,000x more than they do without even talking to the streaming company once? I really don't see how this can be the case.
The only other explanation I can come up with is that record labels are deliberately taking a much larger cut out of streaming revenues than they are out of digital/physical sales. Whether the purpose of that is to make as much profit as possible at the expense of artists, or to turn artists (and therefore customers) against streaming services is open for interpretation. If they believe it would drive more physical/digital sales, it's easy to see why they feel it's in their interests to justify taking themselves off of streaming services. Perhaps they want to maximize revenue by starting their own "fair" service (I haven't heard of any artists complaining about Vevo!). Who knows.
Regardless of why this is happening, I think the ultimate point is that it's the record labels who customers and artists should be suspicious of, not streaming services. I cannot stress enough that we know from past experience that if streaming services fall or become excessively balkanized, piracy will take their place, not digital/physical sales
. As musicians and music-lovers, we must not allow this to happen.
Posted on February 06, 2015 at 11:55
I just hit 2,000 followers on SoundCloud! To celebrate this arbitrary milestone, I've just uploaded 35 minutes of music from projects I've worked on in the past year (mostly) that I didn't get around to releasing at the time for whatever reason.
I hope you enjoy it!
The 64Digits Drunken Teamspeak Every-so-often-when-we-can-be-bothered-to-do-it Gaming Night
Posted on December 31, 2014 at 18:26
Saturday, 11th April 2015
Posted on November 09, 2014 at 19:46
The following questions should be considered:
- What file format? (.wav? .flac? .ogg? .mp3?)
- What sample rate? (44.1KHz? 48KHz?)
- What bit depth? (16-bit? 24-bit? 32-bit?)
- Mono or Stereo?
- How do you want the audio to be normalized? (i.e. The volume of the loudest point in the file in terms of %)
- How much compression should be added to the audio? (i.e. How quiet is the audio allowed to get compared to its loudest point?)
- Do you want the audio to fade in/out at the beginning/end? How long should the fades be?
: Audio, like images and videos, has different types of formats. We have lossless formats (where no quality is lost, but filesize is higher), and lossy formats (where quality is lost, but the filesize is smaller). If you're familiar with the differences between image formats, you can compare .wav to .bmp (the raw data), .flac to .png (the audio is compressed like a zip, but nothing is lost), and .ogg/.mp3 to .jpg (barely perceivable information is removed to make the filesize smaller).
As the filesize is reduced, the audio begins to sound fuzzier and will start to artifact. Beyond ~256kbps encoding, however, (compared to ~2mbps for lossless), most people are unable to tell the difference between lossy and lossless. One other downside to lossy formats is that in some cases there is a slight lag before the file can be played back due to the decoding process. For this reason, lossless files are usually used for short sound effects which need to be instantly played back, while lossy files are used for music.
The main difference between .ogg and .mp3 is that .ogg is an open source format, whereas .mp3 is a proprietary format (which means it may be difficult to use in a game under certain circumstances).
Regardless of the format, the longer the sound, the larger the file. To compare filesizes, a 3 minute music file might be ~60MB as a .wav, ~20MB as a .flac, ~8MB as a 320kbps MP3, ~5MB as a 256kbps MP3, ~3MB as a 128kbps MP3, ~1MB for a 64kbps MP3 etc.
is like framerate. As you might know if you've ever seen a waveform on an oscilloscope
, sound can be visually represented as very fast moving graph, and incredibly, this graph actually contains all of the information necessary to play the sound back again! An audio file, at its most basic level, is a representation of this graph in a digital form.
Similar to how a film camera will take a picture 24 times a second, when audio is digitally recorded, the position of the vibrating diaphragm in the microphone will be recorded at something like 44,100 times per second (44.1KHz).
Similar to video, the higher the framerate (sample rate), the higher quality will be, and the more detail captured. The two main sample rates used today are 44.1KHz (Historically used for CDs, and generally agreed to contain just enough information to perfectly reproduce audio), and 48KHz (Historically used for DVDs). There is also 88.2KHz and 96KHz, which are just multiples of the aforementioned sample rates, but most people agree that the difference is too imperceptible to justify the doubled filesize, especially for use in games. There are also a few smaller sample rates such as 32KHz and 22.05KHz, which some mobile developers use for SFX to retain the quick loading times of lossless files, while keeping the filesize small.
Phones and walkie talkies operate at a sample rate of 8KHz, which is why they tend to sound so muffled.
Keeping the sample rate consistent across all files is important. A sound device can only operate in one sample rate at a time, so if you begin mixing 44.1KHz and 48KHz files (I can't think of any justifiable reason to be doing this), more processing power will have to be spent on converting the mismatched files to the proper sample rate in real-time, and the audio quality will suffer as audio information is dropped or interpolated.
As far as I'm aware, most computer sound devices are set to 44.1KHz by default for compatibility with CD audio, but I may be wrong on this (it would be interesting to do a survey on this). I would imagine most consoles are set at 48KHz for compatibility with DVD/Blu-ray playback.
: Similar to how the sample rate defines how often data is captured and stored horizontally, the bit depth defines the resolution in which the point can be placed on the vertical axis. This image does a great job of explaining how Bit depth and Sample rate work together.
32-bit is considered to be of the highest possible quality. 24-bit is very high quality and is used for DVDs. 16-bit audio is considered high quality, and is the quality used on CDs (and is the most common bit depth. Most people are unable to tell the difference at this point.). 8-bit is considered lower quality, but similar to low sample rates, might be used by developers interested in keeping filesizes very small. 4-bit is abyssmal.
Mono or Stereo
defines how many channels the audio is coming out of. Mono audio will come out of both of your speakers (or your single speaker) exactly the same. Stereo audio will have slight differences between each speaker, which allows you to give the listener the illusion of audio coming from different places (i.e. for some music, you might have the bass guitar playing on the left, while the piano is playing on the right, while the drums are in the center). Obviously, mono audio will be half the filesize of stereo audio.
If you're using the sound for 3D positional audio, you'd generally want the audio to be in mono (though it's worth discussing this with your sound man beforehand for certain circumstances), as the game engine will automatically be moving the audio across the speakers for the positional effect.
If there's no issue with filesize, you'd generally want music and soundscapes to be in stereo (unless you want the music coming from a radio in the game world, for instance).
: Volume level in the digital world can be thought of in terms of percent (%). 100% is the loudest sound which can be stored, and 0% is complete silence. Nothing can be stored above 100%, meaning if you try to push the volume up too high, the top of the waveform gets cut off (which is known as clipping and starts to look like this
, your volume meter will go into the red, the audio will sound horrible and distorted, and your players will comment "RIP headphone users".
Unfortunately, even if you keep all of your individual audio files below 100%, adding two or three loud sounds together might push things over the threshold. To prevent this, you can work with your sound man to normalize different audio files to certain levels, so that your life is made easier when balancing all of the audio in-game.
Proper, standardized normalization is also useful for music or soundscapes, so that you don't have to waste time balancing things in-game when one piece of music peaks at 40% while the next peaks at 90% (though you also have to take into consideration the volume difference between quiet and loud music/soundscapes).
(not to be confused with encoding, i.e., making an mp3 or ogg file) is another way of combating issues with volume. "Compressing" a waveform reduces the distance between the loudest part of a sound and the quietest part of a sound, reducing the overall dynamic range. For instance, uncompressed music may have a maximum loudness of 100%, and a minimum loudness of 10%, whereas the same music when compressed may have a maximum loudness of 100% and a minimum loudness of 50%. Have you ever had to turn up some music during a very quiet part, only to have a loud part come in, forcing you to turn it down again? At its most basic level, compression does this automatically to make the audio more consistent and manageable.
There are different levels at which you can compress sound. For instance, you could even have the maximum and minimum loudness both at 100%, but nobody in their right mind would want to do that, right
? Too much compression will make the audio sound blaring and squashed. It's important to get the balance right.
To get a better understanding of what all of this means, I'd recommend listening through these examples and observing the filesize differences.
Posted on September 27, 2014 at 02:23
On Thursday morning, I attempted to update bash on the server so that we would no longer be vulnerable to the recently discovered shellshock
exploit. Unfortunately, our old host iWeb apparently uses a "special" version of bash, so when I updated the server and rebooted it, it didn't want to boot up again. :(
aeron filed a ticket with our host iWeb almost immediately, but unfortunately they didn't respond for over 24 hours until after we began to harrass them
(after which they responded within 5 minutes).
We decided to use this opportunity to (finally) migrate 64digits over to our new server (which is on a host who doesn't take over 24 hours to respond to a support ticket!). The new server is faster, more secure, and far more powerful (we could run 8 minecraft servers concurrently if we wanted to!), so the at least the downtime wasn't for nothing in the end. All credit goes to aeron and Jeremy for getting the server back up and running!
Our new server is on a new IP address, of course, so if anyone is having problems, get them to make sure they're being pointed to 18.104.22.168 instead of 22.214.171.124 (there may be a rouge entry in their hosts file from a previous downtime).
If you're experiencing any strange problems, let us know. Apologies again for the inconvenience.
Posted on September 18, 2014 at 06:57
Yes, it's a Minecraft rip-off.
Ever since I first played Minecraft, I've had this idea for a Minecraft/Garry's Mod-like game which would work out something like this:
- Instead of all blocks in the game belonging to a giant world grid (like Minecraft), when a single block is placed, it becomes an independent object (like Garry's Mod). Blocks can be added to that object, and the object as a whole can then be moved around the world independent of any grid.
- Objects you make out of blocks can have physics applied to them, and independent objects can be constrained to each other in various ways (via an axis, weld, ropes etc. Think Garry's Mod).
- Instead of being limited to a single block size, using the scroll wheel, you'd be able to shift between a standard Minecraft-sized block, and several smaller levels of "detail blocks", which would hopefully allow you to construct far more detailed and intricate objects, while still retaining the simplicity of the Minecraft system:
- Objects can be damaged and destroyed block by block. For instance, if an explosion occurs near an object, it will be torn apart in a realistic manner at a block-by-block resolution.
- Different blocks can have different materials, and therefore different levels of damage resistance and constraint force limits. For instance, two brick blocks attached to each other will be less likely to come apart than two wood blocks attached to each other, or a wood block attached to a brick block. Putting the weight of a ton of steel blocks onto a flimsy frame made out of wooden blocks should cause it to collapse. etc.
I've always figured that this idea was a relatively obvious evolution from Minecraft, so I was expecting it to have been developed by now. It's a game I really want to play, so, after years of waiting, and years of nagging marbs to develop the idea for me, I opened up Unity tonight and gave it a shot, and this is the result:
Right click blocks to add (Note: You can do this while the physics is running, but it's very buggy at the moment)
Left click blocks to destroy (Note: Don't destroy the first block, or you'll have to restart the game!)
"~" to toggle physics
Tab to toggle water/buoyancy
Needless to say, the implementation of my idea is VERY
basic, buggy and incomplete at the moment, but I thought some people would find it fun to play with. I've only implemented the basic versions of the first two points. There's no scrolly detail block system implemented yet, but that's coming up next. Please let me know what you think, and if you have any ideas.
Just a non-descript test object
And it falls over! It's kind of fun to experiment with balancing objects in weird ways
I then started making some boats, and wanted to test them out on actual water, so...
I added a basic buoyancy calculation thing to the object
D:. Eventually, I'd like to add in some sort of system which causes the buoyancy to decrease as more damage is done to the boat. That combined with the structural stress thing I'd like to implement (if it's feasible), and we could have some really cool ship sinking simulations! :3