#bbsprint-log
Explore tagged Tumblr posts
Text
DEV02 - Icon update and solidifying of desired icon language
truthfully i began growing weary of the original button icon set for bbsprint. they were kind of persona inspired and my branding was kind of like that around the time i made the icons.
i haven't gotten tired of the difficulty icons and they'll likely stay as-is or have minor changes even throughout lite (especially Deathwish, that icon is amazing)
the button icons however have been redone to match the more solid visual design direction I'm taking for the game.
a bit of uneveness, but retaining the same original style and removing major perspective changes to improve readability and to match more the angular vectorheart-ish style i'm going for with this. it's kind of metro inspired if you ask me, but with some variety especially on the outline width department. gives it some character I'd say
oh, i did not mention the GUI font was updated slightly! it has, some letters got chamfers and some numbers did too. as much as i love full square numbers they could've been hard to read from outer silhouettes, but with these new diagonals within them they remain angular but more readable
haven't updated the score roller font yet, but i'll probably do soon after i feel i have competed a sizeable chunk of the main font
6 notes
·
View notes
Text
DEV01: New Music Track System
i'm not very good at audio. i can't make music and my sound design is mid-ish at best (maybe). this also applies to the low level portions of working with audio: me and waveforms don't get along so well
so could you imagine the face i had when the moment came where i wanted to add proper introlooping to the tracks in the game?
i'm using unity's audio system, which means the most i can do is limited by its boundaries. i could have used fmod as it is amazing from all the things i've read and heard. fmod studio looks awesome. but there are chances that i would need to rework how absolutely everything worked in the audio side and i didn't want to spend too much time doing that (remember: my current next milestone is nano plus! it's meant to be quicker!). as a matter of fact, i probably wouldn't later in development because i am content with a solution i came up while digging how some people looped their tracks seamlessly.
there's this Unity addon called IntroLoop. i originally was going to use it for the game, but the way it stored metadata and how it worked with its player could pose a problem and, again, i did not want to rewrite too much to implement this particular bit, as well as some opinionated ways-of-working a friend had warned me about from using it. not that it's bad, it just probably would've been kind of a pain
IntroLoop uses somewhat low-level components of the Unity audio engine to make sure the audio loops properly, such as directly reading from dsptime and scheduling sound plays. it works very well from prior experience. however they do say webgl has issues with it because of course, webgl is very unstable of a platform for unity and precision anything after all. (partially a joke. but there's so many unsupported things in webgl that it's crazy)
my approach uses something different based on how i've seen other people handle seamless loops. one person in unity answers had come up with the solution of using two tracks with a little bit of overlap between them so when changing the audioclip and the position of the sound the loop would sound seamless.
i thought that using two tracks was kind of wasteful, so i went and added 3-4 seconds of the loop's start to the tracks of the game that had an introless loop. below is an approximate of where the loop ends and the trailing bit for the next loop to start
i then take the desired loop end's samples (original end length), store them in notepad, paste the loop's tail, and put it in a new track metadata class that incorporates all metadata i want for the track in one place, like name, album cover, description, attributable link, and now loop start and end samples
no spoilers! this is a new track. the metadata still needs some polish.
with this approach, when the playhead's sample position exceeds the sample end, i just subtract its position by the length of the looping section and with the little bit of leeway given by the extra seconds any delay will be compensated for with the builtin overlap, and sounds very good (as in, PERFECT) for my purposes.
you probably noticed i'm saying samples instead of seconds of time. i wanted the loop to have zero cracks or pops when using this overlap mechanism, and i am afraid of floating points for many reasons. it just so happens the song time variable from the AudioSource in Unity has its timer in seconds, stored as a floating point value. these fears got me scared enough to instead choose what i consider a more reliable way of counting time in audio: samples.
all songs in bbsprint, ingame at least, are locked at a 44.1k Hz sample rate. if any song happens to be higher Hz than that, i will override it. it saves space and for the game it doesn't have to be that high quality; leave that for the OST release, but more importantly it allows this system to work with all tracks
it is also worth mentioning that this method probably disallows an OUTROloop (as in, letting the audio play, no loop, and having it end gracefully!) depending on how some tracks are structured, maybe you'd have to make the looping tail a section way too long so it's still structurally sound to achieve the effect.
i also have not tried testing whether the audio actually works well with this compensation in webgl, which is the most finnicky of all the build targets i have available.
however, this works for me and i am glad it does as well as it does, at least in desktop being profiled thru the unity editor, which... yeah, let's say that it adds quite the overhead compared to a standalone build (which gives me strong hope).
2 notes
·
View notes