Olav Sørensen har i mange år brukt mye av sin tid på å gjenskape den gode 90-talls lyden som strømmet ut på høyttalerne på gutterommet.
Det var ett spesielt program som stjal mye av min ungdomsskjermtid. Tid som egentlig skulle bli brukt til Transport Tycoon forsvant nemlig i lange sesjoner med musikkprogrammet Fast Tracker. Det tok helt av når jeg etter hvert fikk oppgradert til Fast Tracker 2 med opptil 32 kanaler og herlig vertikal sekvensiering av samples. Drømmen om å lage musikk på internatrommet ble skapt.
Plutselig ble det mulig for en kar som aldri fikk tilgang til avansert MIDI-utstyr å sette sammen lyder slik at det, med mange bøtter godvilje, kunne tolkes som musikk. Det var noe tiltalende for nerden med hexadesimal nummerering og en databaseaktig måte å sette sammen lydene på.
Men det ble aldri noen platekontrakt på meg, og hobbyen ble stort sett lagt på hylla da hele samples-biblioteket og arkivet over uferdige xm-filer forsvant på grunn av et mislykket forsøk på å fjerne et bootsektor-virus.

Fast Tracker 2-klone for moderne operativsystem
Det var derfor mange minner som strømmet på da jeg fikk installert en versjon av Fast Tracker 2 som faktisk kjører på moderne hardware og operativsystemer. Her er det endelig en spiller som gir en autentisk avspilling av de få filene som ble berget. Det ble også avslørt etter kort tid at flere av hurtigtastene fortsatt sitter i muskelminnet.
Vi har tatt en prat med mannen bak denne oppdaterte Fast Tracker 2-klonen. Olav Sørensen er en 36 år gammel kar fra Sandefjord som har brukt store deler av livet sitt på å ta vare på arven fra de gamle trackerne.
Storhetstiden til tracker-musikk var vel gjerne på 90-tallet, så du er jo relativt ung i dette miljøet, kan du fortelle hvordan interessen din for trackere ble skapt?
Jeg trenger bare å si ett ord: «keygens». Husker du disse små programmene som genererte ulovlige installasjonsnøkler til spill og programmer? Det er i alle fall helt sikkert at jeg kanskje lastet ned slike selv. Men uansett, de kom jo som regel med innebygd tracker-musikk.
Enten du umiddelbart ble blæst’a med høye lyder eller ble møtt med rolige låter så var det unektelig kult! Det minnet meg om spillmusikk. Mye av det var jo bra komponert òg, og jeg hadde aldri hørt disse låtene før.
Nysgjerrigheten ble stor, og jeg måtte til slutt finne ut hvor låtene kom fra. Det førte til at jeg lastet ned MilkyTracker og etterhvert MadTracker 2. Det var kjempestas at låtene jeg hadde hørt i keygens kunne lastes inn i en tracker så jeg kunne se hvordan de var laget.
Denne nye interessen din førte til at du etter hvert fikk lyst til å lage en tracker selv?
Ja, det startet med at jeg i år 2009-2010 ville programmere min egen avspiller for mod-formatet som var på Amiga. Jeg hadde sånn cirka null kunnskap om hvordan det fungerte, men jeg gikk i gang med å kode en avspiller i C – linje for linje.
Via det gode gamle IRC-nettverket kom jeg i kontakt med en god hjelper kalt mukunda, og etter mange teskjeer begynte jeg etterhvert å forstå konseptet.

Det neste jeg ville ha var et veldig grunnleggende grafisk brukergrensesnitt for å gjøre avspillingen mer autentisk og spennende. Jeg endte opp med å ta en skjermdump av ProTracker i en Amiga-emulator, hente ut bitmap-fonten, og kode inn de klassiske VU-meterene.
Litt etter litt la jeg inn flere funksjoner, som for eksempel «Disk Op»-skjermen for å liste opp modulfiler på disken. På et eller annet tidspunkt innså jeg at jeg var på vei til å lage en ProTracker-klone, så følte meg nærmest forpliktet til å implementere mer og mer over de neste årene.
Men du stoppet ikke da ProTracker-klonen var ferdig, etter hvert gikk du i gang med en klone av Fast Tracker 2 (FT2) også?
Ja, jeg fikk tak i epostadressen til Magnus «Vogue» Högdahl, som programmerte mesteparten av FT2, og sendte han en epost. Magnus nølte fælt med å dele koden han skrev for flere tiår siden, men jeg fikk etter litt barnslig masing lov til å få den så lenge jeg holdt den for meg selv.
Riktignok var det kun deler av koden til en tidligere versjon, men det var nok til å komme i gang med å lage en klone av FT2. Men jeg skjønte etterhvert at jeg trengte tilgang til nyere versjoner av koden og derfor startet startet «Operasjon Finn Fredrik».
Fredrik «Mr.H» Huss var den andre svensken som sto bak FT2. Han laget det meste av avspillingkode og spesielt koden som satte MS-DOS over i «extended protected mode» – noe som er overraskende komplisert…
Jeg tenkte at han var min siste sjanse til å finne den tapte FT2-kildekoden, og heldigvis(?) har vi noe som heter Facebook. Jeg lette etter forskjellige Fredrik Huss og sendte hver av dem en kort melding. Til slutt svarte den riktige mannen, og jeg spurte ham om kildekoden og den slags … men fikk aldri svar!
Kanskje han var lite aktiv på Facebook? Kanskje han bare fikk én epost-påminnelse om meldingene mine? Da måtte jeg tenke litt utenfor boksen, og kom frem til idéen om å sende ham en venneforespørsel, sånn at han skulle få en ny påminnelse, og forhåpentligvis se meldingene mine.
Det fungerte, og en jul for mange år siden fant han hele kildekoden til FT2.07 på en gammel brent CD-ROM. Dette var heller ikke kildekoden til aller siste versjon, men den var i alle fall fullstendig. Koden viste seg å være grei å lese, og godt kommentert på både svensk og engelsk.
Kildekoden til de aller nyeste versjonene var tapt, men siden det ikke var store endringer fra FT2.07 til FT2.08, klarte jeg gjennom reverse engineering å implementere de manglende endringene i koden, på en måte der .EXE-binærfila ble 100% identisk med FT2.08.

Så gjorde jeg det samme fra FT2.08 til FT2.09, og endte opp med hele kildekoden til siste versjon av FT2.
Det var en gøy utfordring å skrive om dette fra Turbo Pascal med inline assembly til C.
Hva har vært de største utfordringene med å få disse klonene til å fungere på moderne maskinvare?
Takket være et programmeringsrammeverk kalt SDL, som gir deg enkel tilgang til lyd, video og tastatur/mus på en rekke plattformer, har det stort sett vært ukomplisert å realisere dette prosjektet.
Den største utfordringen har vel kanskje vært å finne motivasjonen til å fullføre de mer «kjedelige» programmeringsoppgavene.
Kun deler av FT2-klonen er basert på den originale koden. Jeg vil si at jobben med å porte koden er mer tidkrevende enn komplisert, og ja, det ble mye googling på assembly-instruksjoner og hvilke CPU-flagg de påvirker.
Da jeg fikk FT2-koden til å kompilere føltes det nesten galt å ikke fikse bugs. Jeg brukte derfor kildekoden til å lansere noen oppdateringer med bugfikser for den original versjonen av FT2 også. Det var forholdsvis enkelt å fikse feilene når jeg slapp å gjøre det gjennom reverse engineering.
Min erfaring er at det ikke er lett å lage en helt nøyaktig emulering av de gamle trackerne. Jeg har i hvert fall ikke helt kjent igjen de få xm-filene jeg har liggende. Men FT2-klonen virker til å ha veldig riktig sound. Hvordan har du greid å gjenskape helt korrekt avspilling?
Det stemmer at det er er en utfordring å få avspillingen til å bli autentisk og riktig, men det hjelper veldig å basere koden på de originale kildekodene.
Det vanskeligste var nok å få ProTracker-klonen til lage riktig lyd. Det innebar komplisert lydkode. «BLEP synthesis» for å gjengi Amiga sin autentiske «rå» lyd, low-pass/high-pass filters og ikke minst emulering av Amigas Paula-chip. Her har jeg fått mye hjelp av andre smarte folk for å få til dette.
Lager du noe musikk selv, eller går all tid med på å programmeringen?
Jeg har aldri lagd musikk i FT2 selv, bortsett fra at jeg jo har brukt programmet en god del for å verifisere at klonen fungerer riktig. Det er helst Open ModPlug Tracker (OpenMPT) jeg starter i dag om jeg ønsker å lage egne låter. Jeg synes det er en knallbra tracker, bare synd at den er hardkodet for Windows! Låtene mine blir stort sett forlatt som ufullstendige låter. Jeg anser ikke meg selv som en musiker.
Her er Jeroen Tels Nine One One i Olavs FT2-klone:
Har du som utvikler av trackere noen tips til hvordan vi hobby-trackere kan heve kvaliteten på modulene?
- Bruk helst samples i 16-biters oppløsning. Spesielt for stortromme- og basslyder, siden disse er veldig sensitive på bit-oppløsning.
- Prøv å unngå samples med en lav samplingfrekvens (< 33..48kHz). Jeg anbefaler å sample lyder selv, enten det er fra en VST-plugin, et DAW-program eller fra fysiske instrumenter.
- Stortromme- og basslyder krangler ofte med hverandre når de spilles av samtidig. Prøv å legge inn et tomrom med nuller/stillhet i starten av stortromme-samplen. Det kan faktisk hjelpe litt! Men ikke legg inn for mye, for da vil man begynne å høre en forsinkelse i trommelyden.
- Benytt deg av stereo panning for å desuppifisere (et ord jeg fant på nå) lyden. Hvis alt mikses i mono, har det en tendens til å bli «suppete» hvis mange lyder brukes samtidig.
Har du noen favoritter fra demoscenen som du har lyttet til og som du ønsker å trekke fram?
Det er alt for mange, men jeg kan vel nevne noen jeg synes er spesielt flinke (i alfabetisk rekkefølge): Dune (også kalt «Dune/Orange»), Heatbeat, Jogeir Liljedahl, Laxity (C64), Necros, Purple Motion, Radix, Skaven, Tim Follin (ikke fra demoscenen, men denne fyrens spillmusikk må høres!) og Virt
Her får du Mechanism 8 av Necros (rendret med OpenMPT)
Hva er planen din for framtiden? Er det andre trackere du å ønsker å lage kloner av?
Jeg har tidligere hatt planer om å porte AHX (Abyss’ Highest eXperience), men det ble skrotlagt. Jeg har jo også tenkt på Impulse Tracker 2, spesielt fordi jeg allerede har portet den originale avspillingskoden til C. Men Schism Tracker eksisterer allerede i dag og det er en bra klone. Det kan jo hende at jeg likevel starter på det en vakker dag, tiden vil vise…
Hvilke funksjoner ville du lagt inn i Fast Tracker 3 om du skulle ha startet på et slikt prosjekt i dag?
Jeg har ingen intensjoner om å starte et FT3-prosjekt. Det synes jeg bør være opp til de originale skaperne av FT2 i så fall (veldig usannsynlig at det skjer). Men personlig synes jeg FT3 kunne trengt:
- Innebygd echo/reverb som kan aktiveres i hver enkelt tracker-kanal
- Mer enn 32 spor/kanaler
- Støtte for stereo-samples
- Bedre samplinginterpolering (windowed-sinc, eller i det minste cubic spline)
- NNA eller «New Note Action», som i Impulse Tracker 2 og dens .IT-filer. Dette er en funksjon som gjør at instrumenter kan fortsette å fade inn/ut i bakgrunnen mens et nytt instrument starter på samme kanal. Sparer deg massevis av tid og kanaler.
- Høyere oppløsning for tone-/frekvensjustering av samples. FT2 har finjustering i skalaen -128..127 (8 biters), men denne verdien blir delt på 8 i FT2 sin interne avspiller, så den faktiske skalaen ender opp med å være kun -16..15 (5 biters). Dette høres kanskje ikke viktig ut, men la oss si du laster inn en lengre 44100Hz-sample og ønsker spille den av i presist 44100Hz for at rytmen skal være riktig. På grunn av lav oppløsning blir den nærmeste notefrekvensen i FT2 44172Hz.
- Angrefunksjon ;)
Spillhistorie handler jo først og fremst om spill som vi husker fra tidligere tider (selv om veldig mange av oss også har et forhold til demoscenen). Hvilke av de gamle spillene har skapt de største minnene hos deg? Er det noen spill du tar fram den dag i dag?
Jeg har gode spillminner fra eldre spill som Zelda, Mario- og Wario-serien, James Pond II – Codename: RoboCod (MS-DOS-versjonen var en storfavoritt da jeg var barn), Chrono Trigger, Monkey Island-serien, Day of the Tentacle, Den Lengste Reisen, The Elder Scrolls IV: Oblivion (snart 20 år gammelt, så kan vel regnes som gammelt), Grand Theft Auto III og Grand Theft Auto: Vice City, Worms, Worms 2 og Worms Armageddon.
Noen av disse spillene spilte jeg først mange år etter de kom ut, men jeg har allerede utviklet en form for nostalgi og kjærlighet for dem. Jeg synes de stort sett holder seg bra. :)
Vi takker Olav Sørensen for at han ville stille opp på intervju. Om du ønsker å diskutere eller mimre mer om trackere så har han en hjemmeside på https://16-bits.org hvor du også finner en invitasjon til en Discord server. Du kan også finne han på spillhistorie.no sin egen Discord server hvor han går under navnet 8bitbubsy
Til slutt tar vi et gjenhør med en gammel klassiker – Feats of valor av Elwood (Rendret med Fast Tracker 2-klonen)