Lütt un’ Lütt
In 2013 I dusted off the old Amiga 1200 and set out to program something in assembly language again, after an Amiga coding hiatus of 16 years. This time, thanks to the plethora of Amiga tutorials, references, source code collections, and especially online communities (most notably the English Amiga Board and the Amiga Demoscene Archive’s forum) things progressed rather quickly.
This led to my first serious Amiga demo (serious as in serious programming attempt, not the content), and it won the combined low-end demo competition at the Ultimate Meeting 2013. Cheap sauflied adaptation for the win!
Note: Currently (Aug 2023), the “fixed” version linked below is missing a lot of graphics under OCS. Somebody should fix that, some time. Runs fine under AGA, though. Sorry!
Fun fact: The singing is not done via narrator.device
,
at least not directly. I let AmigaBASIC sing in all the single notes in the right pitches, sampled
the sound output from WinUAE and stitched everything together in Audacity.
Here’s the BASIC code, complete with the special phoneme syntax required for more-or-less intelligible speech output:
aisl= 65 c = 65.4 cis = 69.3 d = 73.4 dis = 77.8 e = 82.4 f = 87.3 fis = 92.5 g = 98 gis = 103.8 a = 110 ais = 116.5 h = 123.5 c2 = 130.8 cis2= 138.6 d2 = 146.8 FOR i=0 TO 8: READ how%(i): NEXT i DATA 87.3,1,120,0,22200,64,10,0,0 ad& = 65536& * &HBF + &HE001 p = PEEK(ad&) POKE ad&, (p AND 253) + 2 PRINT "l-u-l, go" GOTO hier REM F DD D F D D D REM In HH nen man L und L n=f: s$="IHIHNNN": GOSUB sach n=d: s$="/HAHAHAHMMMMMMBUWRG NAEAENNT": GOSUB sach n=f: s$="MAHAHN": GOSUB sach n=d: s$="LLERERT, UHUHNN LLERERT": GOSUB sach REM D FF D# D C D D# REM n Kuml und n kln B n=d: s$="NEHNN": GOSUB sach n=f: s$="KERERMMMMMMEHL": GOSUB sach n=dis:s$="UHUHNND": GOSUB sach n=d: s$="AYNN": GOSUB sach n=c: s$="KLAYNNN": GOSUB sach n=d: s$="NNNEHS": GOSUB sach n=dis:s$="BIYIHAER": GOSUB sach REM G E E E REM da schm so gu n=g: s$="DAAS": GOSUB sach n=e: s$="SHMMAEKT, ZOWOWOW GUWUWT": GOSUB sach REM G E E E REM u i fü mi n=g: s$="UHUHND": GOSUB sach n=e: s$="IHIHSST, FERER MIHIH/C/C": GOSUB sach REM E G F# F E F REM n le be e li xir n=e: s$="MAYIHN": GOSUB sach n=g: s$="LLEHEHEH": GOSUB sach n=fis:s$="BEHEHNS": GOSUB sach n=f: s$="AELLL": GOSUB sach n=e: s$="LLLIHIHK": GOSUB sach n=f: s$="SSIYIHAH": GOSUB sach REM F D D D F D D D D REM da gi i ei nes ta spazieren n=f: s$="DAAAA": GOSUB sach n=d: s$="GIHIHNXNX. IHIH/C AYIHIHNNN": GOSUB sach n=f: s$="NNNAES": GOSUB sach n=d: s$="TAAAAGS, SHPAATSIYIYIY, REHEHN": GOSUB sach REM F F D# D D# F G REM in dem schönen grünen wald n=f: s$="IHIHNNNN, DEHEHM": GOSUB sach n=dis:s$="SHERERERERNN": GOSUB sach n=d: s$="NNNAEAEN": GOSUB sach n=dis:s$="GRERERERIH": GOSUB sach n=f: s$="NEHEHNN": GOSUB sach n=g: s$="VAALLD": GOSUB sach REM G A# A# A G A# F F REM und plötzlich von dem höchsten zweig n=g: s$="UHUHND": GOSUB sach n=ais:s$="PLERERERT, SLIHIH/C": GOSUB sach n=a: s$="FOHOHNN": GOSUB sach n=g: s$="DEHEHM": GOSUB sach n=ais:s$="/HER/CS": GOSUB sach n=f: s$="STEHN TSVAYG": GOSUB sach REM D# D D C C A# REM ein kleines lied erschallt n=dis:s$="AYNN": GOSUB sach n=d: s$="KLAYIHIHNN,NNEHEHS": GOSUB sach n=c: s$="LIYIYIYD, AEAERSH": GOSUB sach n=c:s$="SHAHAHAHLLT": GOSUB sach n=ais:s$="SHAHAHAHLLT": GOSUB sach REM G D# G REM lütt und lütt n=g: s$="LERT": GOSUB sach n=dis:s$="UHN": GOSUB sach n=g: s$="LERT": GOSUB sach REM A# A F D# C A# D F REM so kli ver traut es an mein ohr n=ais:s$="ZOWOW": GOSUB sach n=a: s$="KLIHNXNXGT": GOSUB sach n=f: s$="FAER": GOSUB sach n=dis:s$="TRAWUWT": GOSUB sach n=c: s$="EHEHSS": GOSUB sach n=c:s$="AHAHNN": GOSUB sach n=ais:s$="AHAHNN": GOSUB sach n=d: s$="MAYIHNN": GOSUB sach n=f: s$="OWOWR": GOSUB sach REM A# A F D2 C2 A# REM singt mir ein vöglein vor n=ais:s$="ZIHNXNXGT": GOSUB sach n=a: s$="MIHIHR": GOSUB sach : REM <---- MIR? MIIIEEEEE-JAsR!!!! n=f: s$="AYIHN": GOSUB sach n=d2: s$="FERERG": GOSUB sach n=c2: s$="LAYN": GOSUB sach n=ais:s$="FOWOWR": GOSUB sach REM ----------------------------------- REM F D D D F D D D REM un wäre ich in kairo o n=f: s$="UWUWND": GOSUB sach n=d: s$="VAEAEAE, REHEH, IH/C": GOSUB sach n=f: s$="IHN": GOSUB sach n=d: s$="KAYIHIHIHIHIHR, ROW, OWOHOHD": GOSUB sach REM D F F D# D C D D# REM der irgendwo auf dieser welt n=d: s$="DAHAH": GOSUB sach n=f: s$="IHIHIHR, GEHNNND": GOSUB sach n=dis:s$="VOWOHOH": GOSUB sach n=d: s$="AWUWF": GOSUB sach n=c: s$="DIYIYIYZ": GOSUB sach n=d: s$="ZEHEHR": GOSUB sach n=dis:s$="VEHEHLLT": GOSUB sach REM G E E E REM und wär ich reich n=g: s$="UWUWND": GOSUB sach n=e: s$="VAEAER, IHIH/C RAYIY/C": GOSUB sach REM G E E E REM wie rot schild o- n=g: s$="VIYIH": GOSUB sach n=e: s$="ROWUWUHT, SHIHLD, OWOWOH": GOSUB sach REM E G F# F E F REM der hätt ich gar kein geld n=e: s$="DAHAHAH": GOSUB sach n=g: s$="/HAEAET": GOSUB sach n=fis:s$="IH/C": GOSUB sach n=f: s$="GAAAAR": GOSUB sach n=e: s$="KAYIHN": GOSUB sach n=f: s$="GEHLD": GOSUB sach REM F D D D F D D D D REM ob früh ling som mer herbst und win ter n=f: s$="OHOHB": GOSUB sach n=d: s$="FRERER, LIHNXNXG, ZOHOHMMM": GOSUB sach n=f: s$="MMAHAH": GOSUB sach n=d: s$="/HEHRBST, UWND VIHNNN, TEHR": GOSUB sach REM F F D# D D# F G REM überall in freud und schmerz n=f: s$="ERERER, BAAAH": GOSUB sach n=dis:s$="AHLLL": GOSUB sach n=d: s$="IHIHNNN": GOSUB sach n=dis:s$="FROYIHD": GOSUB sach n=f: s$="UWND": GOSUB sach n=g: s$="SHMEHAHTS": GOSUB sach hier: REM G A# A# A G A# F F REM ich hab ein klei nes vö gel lein n=g: s$="IHIH/C/C": GOSUB sach rem n=ais:s$="/HAAB AYIHNN": GOSUB sach : REM aiin... n=d2:s$="/HAAB": GOSUB sach : REM aiin... n=ais:s$="AYIHNN": GOSUB sach : REM aiin... n=a: s$="KLAYIHIHNN": GOSUB sach n=g: s$="NNEHS": GOSUB sach n=ais:s$="FERER": GOSUB sach n=f: s$="GEHLL LAYN": GOSUB sach REM A# A F D2 C2 A# REM und das sing mir ins herz n=ais:s$="UWND": GOSUB sach n=a: s$="DAAAAS": GOSUB sach n=f: s$="ZZIHNXNXT": GOSUB sach n=d2: s$="MIHIHYAH": GOSUB sach n=c2: s$="IHNS": GOSUB sach REM n=ais:s$="/HEHEHAHAHTS": GOSUB sach n=ais:s$="/HEHEHEHEHAHAHAHTS": GOSUB sach print "------ dun goofed" END sach: how%(0)=n PRINT s$, "..." SAY s$,how% RETURN
Demo Scene
- 1k is no limit
- The Life and Times of Eimi
- eierschaukel
- ministorm
- Lütt un’ Lütt
- doppelhirn
- The A-Word
- Tiny Speech Synth in JavaScript
- C64 Fast Intro
- More…
Blog
- VC³ results are in!
- A capital sharp S for Topaz
- Synthwave Xmas
- Keming war gestern
- Worms DeCoded
- VC³ 2024, an early present
- Fun with Worms DC custom levels
- Modding the Windows boot hand
- Unit Arrr
- I just favican’t
- More…