Making 8-bit Music From Scratch at the Commodore 64 BASIC Prompt

Поділитися
Вставка
  • Опубліковано 5 лют 2025

КОМЕНТАРІ • 660

  • @afogh2
    @afogh2 4 місяці тому +165

    I never expected that live code demo to inspire you to do such a massive job :)
    Well done (as usual :)) - Very lovely concept :)
    /Walt

    • @madyogi6164
      @madyogi6164 3 місяці тому

      Yea, but poking and peeking is a pure torture. not to mention, result was bloody damn slow back then, (when no emulators were available).

  • @bozimmerman
    @bozimmerman 4 місяці тому +339

    C64 coding should be an olympic event. There are not enough Like buttons for this video.

    • @danieldutch8621
      @danieldutch8621 4 місяці тому +11

      That would actually make me watch the Olympics. Mind you. LFT here would likely pick up all the gold medals.

    • @SlaserX
      @SlaserX 4 місяці тому +4

      Seriously, I've done some c64 asm back in the day, and looking at the masters code is like looking at something that makes no sense, but works better than anything should. I learned a lot from reading Hubbards music player

    • @LetsDoThePhilippines
      @LetsDoThePhilippines 3 місяці тому +1

      I also did asm back in the 80s and was in some groups at that time. I focused on programming intros. Fun times as a teen.

    • @rcl5555
      @rcl5555 3 місяці тому

      @@LetsDoThePhilippines demoscene is still alive and well! (search for 'pouet')

    • @coskuarsiray
      @coskuarsiray 3 місяці тому

      Load "*",8,1... instead

  • @AxelWerner
    @AxelWerner 4 місяці тому +262

    Assembling machine language using C64 basic only AND developing a music editor AND player from it using every trick in the box, blows my mind. #GURU

    • @Isaac_Garcia_Peveri
      @Isaac_Garcia_Peveri 4 місяці тому +1

      New subscriber amazed of your programming skills!!! It's really impressive what you did with only basic code!!!!

    • @joe--cool
      @joe--cool 4 місяці тому +5

      That's why I always liked the monitor in the Apple ][. Woz made entering Assembly without any extra software easy (for the early 80s).
      F666G to start the mini assembler. You could even add a custom subroutine and call it with CTRL-Y.
      The C64 could do a lot more but it's ROM wasn't as ingenious. At least not for programmers.

    • @nigeladams8321
      @nigeladams8321 4 місяці тому +1

      Bard

    • @douglashudson4706
      @douglashudson4706 4 місяці тому +1

      ​@@joe--coolYes, mini-assembler for the win!

    • @Kingcobra6699
      @Kingcobra6699 3 місяці тому

      It's really impressive but I don't understand a thing. I learned to code on one of these. Never using assembler, though. I was just 13 back then 😊

  • @lftkryo
    @lftkryo  3 місяці тому +190

    Personal milestone: Today this channel reached 32768 subscribers, a number that won't fit in a signed 16-bit integer. I find it amusing and appropriate that the event was triggered by this video, in which the same thing happens to the variable F. =)

    • @ajsnz
      @ajsnz 3 місяці тому +6

      I really enjoyed this video, and was able to follow it pretty well with your explanations. I actually found the live coding technique quite exciting!

    • @NickTaylor-Phantom-Works2
      @NickTaylor-Phantom-Works2 3 місяці тому

      As a c64 owner in the mid 80s to early 90s, and someone that loves creating music, I just wanna say thank you for this upload mate! Brilliant!

    • @karolpadiasek5461
      @karolpadiasek5461 3 місяці тому +1

      @@NickTaylor-Phantom-Works2 same here :D awesome vid!

    • @dannycolverson6944
      @dannycolverson6944 3 місяці тому

      32,768 is also the number of colours in a SNES!

  • @nicolasfleury6232
    @nicolasfleury6232 4 місяці тому +139

    Changing the line number while coding to duplicate the code fast, writing assembly directly through opcodes, using screen buffer as real time input, using color buffer to visualise notes parsing,… So much elegance in all this! And man, what an ear you have when tweaking the melody. I call it “”Art” 🙏

    • @thiesenf
      @thiesenf Місяць тому

      Well... he is an musician... and a coder... and the creator of the 256 byte intro "A Mind Is Born"...

  • @VitorMartinsAugusto
    @VitorMartinsAugusto 4 місяці тому +106

    No way... This guy is either making fun of us and reading the code from a paper or he is programming directly in DECIMAL opcodes!
    Using the REM lines as a live tracker with memory storage is bordeline genius and mad.
    Being able to play the music by inserting the letters, representing notes, in realtime on the screen is amazing.
    All in all, I feed mentally diminished after watching such a briliant mind.
    Thank you!

    • @bobgomez9481
      @bobgomez9481 4 місяці тому

      You speak some strange tongue...

    • @thiesenf
      @thiesenf 3 місяці тому +2

      @@bobgomez9481 IRQ, PC, SP, ALU, CPU, ASM, C++, ADA, LISP, Comal, LDA, STA...
      Then I am possessed... :-)

    • @doublex85
      @doublex85 2 місяці тому +1

      Well yeah it's obviously scripted but I don't understand why that would mean he is "making fun of us." I do agree that the sound routine reading notes from screen memory is super creative, love it. Edit: also gotta give props to the pedagogy here. I'm sure the actual development process was a lot messier, but he's put the scripted program development in a wonderfully one-step-at-a-time order here. I'm sure that also took a lot of work.

    • @VitorMartinsAugusto
      @VitorMartinsAugusto Місяць тому +1

      @@doublex85 It was a figure of speech attempt on my part to show appreciation and admiration for the way he presented the video and how cool the video is.

    • @VitorMartinsAugusto
      @VitorMartinsAugusto Місяць тому +3

      Like you do something amazing and I say: "are you f*** kidding me?"

  • @rolfedrengen
    @rolfedrengen Місяць тому +3

    OMG! Within the first minutes I understand more about programming the C64 than I did in years back then (doing little games, music and other stuff in BASIC). Machine code was a kind of forbidden land. The *256 blew my mind - of course, that's what pages stand for! Mothe the pointer, so that's what that means! Now I want to timetravel back to 1988 and become an awesome programmer and C64 musician 😀

  • @ideegeniali
    @ideegeniali 26 днів тому +4

    The compactness and meaningfulness of negative data for page numbers alone blew my mind. When i saw a interactive sequencer on screen my brain was already so melted that i got joy as the more powerful of drugs or lucid dreams experience.
    The experience of watching this video is so memorable and linked to so many knowledge of C64 i had scattered all around my mind, that this video constitutes a new core where everything belongs to.
    I'm in owe. Your construction is a permanent part of my brain, memories, immortal soul. alpha and omega
    Screen memory, color RAM, sequencer, raster interrupt, SID registers, opcodes from heart, cpu registers, page zero register, basic screen editor and storage in basic listing, undo/revert, live jamming, noise waveform trick. ONE use of EACH, all comeing together for this compact marvel. Unbelievable.
    Telling you're a genius is understatement

  • @RaveyTeamLarge
    @RaveyTeamLarge 3 місяці тому +6

    This is SO cool. The guy is not programming a computer he has become one with the computer. Really awesome video.

  • @lis6502
    @lis6502 4 місяці тому +26

    Old computers can be fun and all but it's your creativity i am here for.

  • @DazDaz105
    @DazDaz105 4 місяці тому +31

    This video is ace.
    I have still got my C64 from when I was 15 years old.
    41 years later that keyboard clunking takes me back to a better time. .

  • @tappel0
    @tappel0 4 місяці тому +77

    The LIST trick and saving the melody to the program listing is really neat, never thought of using BASIC for that.

    • @daren42
      @daren42 4 місяці тому +1

      This

    • @talideon
      @talideon 4 місяці тому +1

      That's pretty much what you had to do back in the day! Or are you talking about the REM hack?

    • @tappel0
      @tappel0 4 місяці тому +12

      @@talideon I'm referring to the REM thing and using the BASIC program listing as "editing software" while doing playback from screen memory with interrupts. That's really cool way to use the system facilities to do the tedious stuff. You can even save the resulting file with the melody clip in the comments.

  • @TheRealShedLife
    @TheRealShedLife 4 місяці тому +21

    Having grown up programming music, graphics, and animation in C64 BASIC, this blew me away. The comments below concur. What a brilliant C64 MASTER CLASS

  • @papamaxx4977
    @papamaxx4977 3 місяці тому +4

    I have known and programmed on the C64 for 50 years. But this video is the coolest thing I have ever seen. Thank you!!!

  • @8_Bit
    @8_Bit 4 місяці тому +63

    I love how open and flexible the C64 is, right out of the box, and you've demonstrated that fact amazingly well here. The POKE and SYS of Commodore BASIC allows anything to be done with the right know-how.

    • @captainboing
      @captainboing 4 місяці тому +2

      You are making excuses for an astonishing lack of native support. Far from being a powerhouse, POKEs were often the only way to get it to do much beyond "hello world". Ghastly

    • @8_Bit
      @8_Bit 4 місяці тому +2

      ​@@captainboing And ultimately what did we miss out on the Commodore 64? Name some great Commodore 128 or Plus/4 programs written in the more feature-rich BASIC on those machines. I'll take the C64's flexibility any day over something like the TI-99/4a which provided absolutely NO way for the user to use the sprite hardware or execute machine language without additional purchases.

    • @captainboing
      @captainboing 4 місяці тому

      @@8_Bit you kind of prove my point - you'll die on this hill "wah POKEs are really good coz they're powerful" completely missing my point that you need them coz the rest of the basic is weak af. Your "whataboutism" of one basic that didn't support the hardware with another is hardly apt... Staying on the subject of sound creation, go and research the BBC or Amstrad 464's sound subsystem (even the dreadful speccy had some support) - all contemporaries. The CPC had an amazing sound subsystem - All the sound generation and even the interrupting was handled natively in the basic, which resulted in amazingly smooth flowing sound output from 100% Basic code which showed you what you were doing without little notebooks full of pokes (seen it)- please note, I am not going to defend the 464 sound chip, which despite being an industry staple (and used in many arcade machines), was clearly inferior to SID. Don't let your misty-eyed reminiscing blind you to the fact and that this amazing video is a tribute to the programmer and not the machine - showing what can be done DESPITE the Basic and far from a showroom example of how great commodore Basic is because it supports PEEK, POKE and SYS (or similar) - big plop - so did tinyBasic from the 70s, ZX80/81 and just about every other. Just about every active element of this code could be done using WOZMON or DEBUG. All the clever stuff is done by his machine code with Basic being little more than a loader... Even to the point that it self-terminates and does nothing about actually playing the tune. So in that respect it's even worse

    • @captainboing
      @captainboing 4 місяці тому +2

      @@8_Bit youtube deleteing replies I see.
      anyway... why compare to the 99/4? that was just as bad. Go and research the Amtrad CPC sound capabilities - even the sound channel interrupts were controlled natively by the Basic (not defending the chip - SID was way ahead of everything until Paula)... can't remember what else I originally typed

  • @mswcap
    @mswcap 4 місяці тому +12

    Totally awesome! When I was a kid I had a C64 for the whole family. I programmed a lot in BASIC but never ever got to this level! And indeed, it's HIGHLY entertaining. Thank you!

  • @CommodoreGreg
    @CommodoreGreg 4 місяці тому +13

    This video will never get the likes it deserves but this is INCREDIBLE! The research, planning, editing, tech factor, and entertainment value are fantastic. Well done sir!

  • @HiskoArt
    @HiskoArt 4 місяці тому +34

    Kudos LFT, you bloody genius. It's so inspiring, I'm blown away

  • @Anth369
    @Anth369 3 місяці тому +3

    I'm blown away with what you've presented here! Knowing opcodes by heart, the way you present pages in memory, and being able to code via pokes in basic is inspirational.

  • @MichaelSievers
    @MichaelSievers 4 місяці тому +23

    I stumbled over this in my recommendations and was planning on having a short look. Instead you made it impossible to not keep watching, by playfully showing how to abstract away from the system's restrictions and use the language most appropriate to achieve the goal. Thank you for sharing this!

    • @Charleshawn66
      @Charleshawn66 4 місяці тому +2

      Well said. Same!

    • @marcofixit
      @marcofixit 4 місяці тому +2

      I loved it how he just pre rendered page tables

  • @Verlet1
    @Verlet1 4 місяці тому +3

    My mind was blown exactly 4 minutes in, and then again multiple times after. This is the most mindblowingly creative coding I have ever seen. Several tricks combined beautifully!

  • @64jcl
    @64jcl 4 місяці тому +30

    The fact that you remember the instructions set in decimal numbers blows my mind.

    • @atdzsny
      @atdzsny 4 місяці тому +18

      He only knows them in binary and converts them to decimal. :)

    • @SyldabiaHacks
      @SyldabiaHacks 4 місяці тому +2

      I remember in hex from Z80 CPU

    • @olivierrichard5067
      @olivierrichard5067 3 місяці тому

      And I remember me some hex from Sharp PC-1403 Calculator (time of human's assembler)

  • @jussipal
    @jussipal 4 місяці тому +7

    Just mesmerizing to watch how well your mind works!
    Thank you!

  • @saulcross9690
    @saulcross9690 4 місяці тому +9

    I am absolutely gobsmacked (in awe) by this - never seen coding music approached in this way. Genius.

  • @TheOnlyToblin
    @TheOnlyToblin 4 місяці тому +3

    This was the nerdiest video I think I have ever watched, and I think I only grasped like 10% of it, but it was still a highly enjoyable experience :D

  • @doktor6495
    @doktor6495 4 місяці тому +7

    The look of your video is like "school TV" in the 80's. It's simly COOL! Thanks for that interesting and entertaining lesson!
    Best regards, Doc64! Keeps C64 alive! 😉

  • @AsteroidKiller
    @AsteroidKiller 2 місяці тому +2

    You have programming skills and music skills as no other! 🎶 Thanks for an awesome video! ❤️

  • @carminone
    @carminone 4 місяці тому +69

    This fellow is 1 in a billion.

    • @AffidavidDonda
      @AffidavidDonda 3 місяці тому +4

      so you say there are 7 more like him???

  • @StinkingKevin
    @StinkingKevin 2 місяці тому +1

    I wish I'd stuck with this as a teenager. So much of this makes sense now. Much of it doesn't yet. Thank you for doing this.

  • @paszTube
    @paszTube 4 місяці тому +6

    I'm thoroughly entertained and impressed by this! Basically (no pun) using basic to write machine code, and a genius way to create a UI. Hats off!

  • @princequestly2218
    @princequestly2218 3 місяці тому +2

    I know almost nothing about coding but realize just how incredibly difficult what you just did was, bravo. 👏

  • @andrewweller5119
    @andrewweller5119 3 місяці тому +1

    i miss the days of this kind of coding soooo much. thank you.
    I have been working with Gamemaker Studio 2, coding with GML. which is fun and modern but your video has taken me back to my roots.

  • @miloszobloza
    @miloszobloza 4 місяці тому +5

    Wow... Your channel just popped out of nowhere on my YT and it's a real gem! The whole concept, execution and editing quality are somewhat soothing. Thank You!

  • @zirahvi
    @zirahvi 4 місяці тому +8

    Pure black magic on a blue screen. Amazing!

  • @shambien
    @shambien 4 місяці тому +1

    I am now 48 and this brings memories of when I was 12 (in 1988) and I coded some music by Bach (starting from the scores I was using in my piano lessons) all with PEEKs and POKEs in the C64 BASIC 😅 Very crude but, at the time, I did not grasp the lower level assembly and direct memory management in order to make something more advanced like you are showing here. Nonetheless I had fun 😊

  • @ASHdemoREEL
    @ASHdemoREEL 4 місяці тому +9

    wow. wow. wow. wow. wow.
    5 wow review for impressive and mindblowing unparalleled skillz!!! That was insanely awesome, thank you for sharing with the rest of us mere mortals. Much respect and admiration! 💥💯💥🤯

  • @antivanti
    @antivanti 4 місяці тому +26

    I know some of the old legends, like Hubbard I think, composed their music straight in code because they didn't have the time to actually produce tools for composing. That's crazy

    • @talideon
      @talideon 4 місяці тому +11

      It was more because Rib Hubbard and some of the earlier SID composers were just used to that workflow. Plenty of the greats used tools, and Chris Hülsbeck invented the first true tracker on the C64.

    • @NoMan-zw5wb
      @NoMan-zw5wb 4 місяці тому +1

      Making a tracker is my first goal in my programming journey.
      And I suddenly wish I knew more than nothing.
      Inspired though!

    • @jhna314
      @jhna314 4 місяці тому

      If you know how to code the playroutine its a small step to use it directly for composing

  • @tdumnxy
    @tdumnxy 3 місяці тому +3

    I now have a working recreation of this program. So much fun! All thanks to Linus and his debug help.

  • @andreasdavour9973
    @andreasdavour9973 4 місяці тому +2

    I can't imagine how you developed this video. Managing to keep the line numbers spaced well apart beats me, and the rest of the design is so beautiful it hurts. This is the definition of a moby hack.

  • @gabemorales7814
    @gabemorales7814 4 місяці тому +3

    Legitimately one of the best videos I've ever seen, anywhere. Instantly subscribed, this is killer content!

  • @AndyGraceMedia
    @AndyGraceMedia 4 місяці тому +55

    As a 12-13 year old kid on a VIC20 and C64 that is exactly how I learned how to code machine language. Initially no money for a ML monitor cart; I had to write my own. Scary thing is I remember it all 40 years later. Very impressive LFT!

    • @KC9UDX
      @KC9UDX 4 місяці тому +12

      Same here. I ended up writing a full featured macro assembler, in BASIC. Around ten years ago I did it all over again from nothing. It's a work in progress to this day.

    • @skmgeek
      @skmgeek 4 місяці тому +3

      ​@@KC9UDXwow, you must be really good at procrastination! lol

    • @KC9UDX
      @KC9UDX 4 місяці тому +5

      @@skmgeek no, I just only work on it when I get time, which I don't. But still I don't think you appreciate what was involved in writing a rich featured assembler from bare metal.

    • @skmgeek
      @skmgeek 4 місяці тому +3

      @@KC9UDX 'twas but a mere joke, I know how much work goes into that stuff

    • @StCreed
      @StCreed 4 місяці тому +5

      Ha, yeah. When I saw the numbers on the screen I immediately translated them into assembly :) Doesn't work for almost anything except LDA, STA and RTS :)

  • @ulob
    @ulob 4 місяці тому +26

    All of that without accepting a single cookie consent dialog? Without a group chat notification? Without a sidebar full of breaking news? Without an LLM? What a time to be alive ... it was

  • @_suptype_8255
    @_suptype_8255 Місяць тому +1

    Probably most amazing programming show I watched in my long life so far.

  • @borismatesin
    @borismatesin 4 місяці тому +10

    This is metaprogramming and runtime-modding the code on a whole new level. And the jam you wrote sounds amazing!

  • @gabrielek2690
    @gabrielek2690 6 днів тому

    I got a C64 back in 1991 when I was 7 years old. I've always been wondering how the music was made and after watching this video I to some degree understand it. So this was how Daglish and Hubbard made the music back then? Cool tune Linus!

  • @Halfdar
    @Halfdar 2 місяці тому

    I am no coder, but i have great respect for people whon can do this. you come very close to a dream of coding, that i have since the day of c64/amiga 500: taking a computer out of the box, coding the needed software out of nowhere, making literally everything possible. you are the proof, it's possible! thx very much

  • @julivessi
    @julivessi 4 місяці тому +2

    It’s hard to describe how happy this video makes me. What a craftman and an artist you are!

  • @maikkk
    @maikkk Місяць тому

    Impressive video. This is my first time watching someone programming like you, using a loop of pokes with datas.
    Smart and easy. Thank you!!!

  • @TimwiTerby
    @TimwiTerby 4 місяці тому +8

    The lesser-known successor model, the C128, had a BASIC command called “PLAY” that let you play music by specifying the notes. “PLAY "CDEFG"” would play a simple scale. There are letter/number codes to change octave, instruments, note lengths, insert rests, etc.etc.

    • @ideegeniali
      @ideegeniali 26 днів тому

      But no visual sequencer with real time punching notes in!
      This approach is superior to compose on the flight!
      I'm in owe at so many levels!
      I own a CBM128 since 1987 and inputted countless melodies from score in the PLAY command.
      I couldn't get creative with the play command, only input ready made scores. I could get creative with a tracker software or hardware sequencer with physical buttons, not with the C128 play command. This guy realized a graphical sequencer with a bunch of basic lines. I think one can get creative on it. This achievement is unbelievable.

  • @ErnoPakarinen
    @ErnoPakarinen 4 місяці тому +1

    OMG. As a programmer with over 40 years of experience I say that you are a genuine wizard! Awesome

  • @lbairy
    @lbairy 3 місяці тому +1

    This is really huge! A musician who can translates assembly to opcodes by the top of his head... Excellent video btw.

  • @CognosSquare
    @CognosSquare 4 місяці тому +59

    33:06 the quiet satisfaction of making your own DAW in half an hour.

    •  4 місяці тому

      Which you conveniently saved into the only available storage you have for easy retrieval: your brain :)

    • @Trancelistic
      @Trancelistic 4 місяці тому

      Hah, I was thinking the same:D Amazing really.

  • @LazloNQ
    @LazloNQ 4 місяці тому +48

    “The definition of genius is taking the complex and making it simple.” Albert Einstein

    • @maxmuster7003
      @maxmuster7003 4 місяці тому +2

      So no genius exist, nothing is simple.😂

  • @andrehogbom
    @andrehogbom 4 місяці тому +4

    This is so beautiful! It’s a bit too advanced (and way too fast) for me, but your pedagogic way lets even a guy like me understand enough to be fully entertained. I love how precis you type things in too! I doubt there’s a single unnecessary keystroke in the whole video 😮
    Thanks for a very cozy half an hour Linus ❤️

  • @PhiTheProducer
    @PhiTheProducer Місяць тому

    I have a C64 sitting right across the room from me … I’m a musician who makes electronic music … I should have been focusing a whole lot more to what you were doing … I did not. Now I have to go back and watch it again. Great job mate!!!

  • @RubiCubix
    @RubiCubix 4 місяці тому +3

    Brilliant work Linus. So inspiring! I have to go and dig out my old C64 right away and try it out. Keep up your amazing work. 💪

  • @d-h4ck401
    @d-h4ck401 8 днів тому

    I told my music producer friends that we used to make music with just basic codes on commodore 64. Now this video is amazing ❤❤❤

  • @MarcusEDM
    @MarcusEDM 3 місяці тому +1

    Absolutely Amazing, Linus. You are a total legend. Will never forget these videos.

  • @PhilippeFerrucci
    @PhilippeFerrucci 2 місяці тому

    Impressive! 35 years ago I wrote some Basic but I was so far from such ideas and skills. Well done!

  • @AndreasMeyer-k5i
    @AndreasMeyer-k5i 4 місяці тому +11

    Amazing! This is real art.

  • @CandidDate
    @CandidDate 4 місяці тому +2

    The commodore 64 was the ultimate fun computer. It will never be matched. Just watch some demos here on UA-cam. It is endless what is possible.

  • @desertfish74
    @desertfish74 4 місяці тому +6

    new LFT video!!!
    edit: love the way you move the cursor out of the way of the pattern scanner when it comes near your editing position ^_^

  • @olafpieters
    @olafpieters 2 місяці тому

    I programmed a lot for the C64 back in the day, and I have to say this is very inventive. Hats off to you, sir!

  • @volvo480
    @volvo480 3 місяці тому +1

    This reminds me of assembly coding my Commodore CBM 8032 over 40 years ago. I still have the book on 6502 programming on my bookshelf. The 8032 had a built in hex editor and machine code monitor (register contents and stack pointer were shown) which could be invoked from a BRK interrupt
    What I really like from this video is that all machine works without crashing the C64 and he never saves the code to tape or disk, so if it goes wrong he had to start again from scratch. And the trick to make an editor with the REM lines is brilliant. Anyway, it all brought back great memories from my first attempts into computer programming and hacking 😅

    • @makipri
      @makipri 2 місяці тому

      Cheers! I have made several demos for CBM 8032 under the duo OOBC. We found the monitor a little tedious for working fast and because we needed to work simultaneously we ended up cross compiling and the makefile could either run it on an emulator or upload it to the computer over a tape adapter. The sound possibilities seemed to be a lot wider than I had heard anyone else do before that, playing tones below 242 Hz, oscillator sync or sample playback. These days so many other people have done cooler tricks on the PET platform.

  • @TyphinHoofbun
    @TyphinHoofbun 4 місяці тому +1

    Holy moly, man! My jaw consistently drops with these videos, just the way you can keep all this stuff in mind and simply know it. Like, the decimal representation of opcodes and high/low bytes of important addresses? "Okay, we need to do this, this, this." and you just DO it, don't have to translate it into DATA statements or anything. And being incredibly skilled at the music side on top of that? I'm glad you use your superpowers for good, I'd hate to see what you'd do as a villain. ^_^

  • @ideegeniali
    @ideegeniali 25 днів тому

    SID is truly a special chip when it comes to music. I understood this at a deeper level with this video. The thing is, when i used chip directly with pokes, never i could get astonishing results. For the results i needed a tracker software. I had the belief that it was more the tracker software that did the magic, overcomeing limitations of chip, than the chip itself. I changed my mind with this video of yours. Your intimacy with the bare bone chip. The trick for drums with noise. The enlonged notes that changed everything musically by just changing one control register. That's features of the chip exploited by a genius hacker with a few pokes. So the magic is in the SID itself. However it needs genius programming to be unleashed.

  • @phoboslabsreviews
    @phoboslabsreviews 3 місяці тому +1

    I remember peeking and poking to perform certain operations without really understanding what was doing at the time. This makes more sense of what I used to do.

  • @aleks0id
    @aleks0id 3 місяці тому

    This interactive table-like interface for editing melodies in real time is an absolutely genius invention!

  • @sonicstate
    @sonicstate 4 місяці тому +1

    Amazing video!! Who even knew this was possible?! Shared in the Sonicstate news today 👏

  • @aeschynanthus_sp
    @aeschynanthus_sp 4 місяці тому +14

    One of my programming peaks on C64 was creating a way of entering music somewhat easily into DATA lines. I comment at the start of the video, let's see how close your approach is! ... Ok, I used only BASIC.
    a) First, I learned somehow that the difference between semitones is the twelfth root of 2. I calculated that with a handheld calculator.
    b) Then I knew that an A note has a frequency of 440 Hz. Dividing and multiplying that with the twelfth root of 2 gave me the frequencies of the notes up and down from there.
    c) I read in the C64 manual (or was it in a magazine?) how the frequencies are set using POKE commands, and calculated the upper and lower POKEs for each frequency.
    d) I stored the values in arrays and wrote down which array value corresponds to which note.
    e) I made the program read DATA lines that included three numbers, one note for each voice, and zero meant silence. There was also a duration, I think a crotchet was 64. The delay was a simple for loop. This program was based on one in a magazine that had those upper and lower poke values listed, so my approach was much more straightforward.
    f) Then I had a way in the DATA lines that could stop the sound momentarily so that the same note could be played several times in succession; otherwise it would have been one continuous sound. But I can't remember how I did that.

    • @simonebernacchia5724
      @simonebernacchia5724 4 місяці тому +2

      Sound like you made proto-instruments there (if we assume that setting all stuff for a note made play in a way and not another is an instrument) - that give the idea of how light years away Rob Hubbard was from your average BASIC programmer

  • @TubeAtilla
    @TubeAtilla 3 місяці тому

    I just look at the iconic blue screen and listen to the sound of the keyboard. Fantastic time travel. Thanks!

  • @Rufnic
    @Rufnic 3 місяці тому

    You sir, are one excellent individual. You made it very easy for me to dig up some fond memories of my time as a child playing the C64. It was very inspiring and relaxing watching you doing some great 8-bit magic there 😊. Keep it up!!

  • @spiffywoahitsspiffy
    @spiffywoahitsspiffy 4 місяці тому +11

    absolute wizardry, there's no other word for it

  • @trs4387
    @trs4387 4 місяці тому +1

    wow, just WOW.
    I already knew before, that your brain must be working differently (in a positive way of course), and this video is just another proof of that. We will never forget your C64 sprite-crunch tables and also making use of it in a great demo!
    I'm a c64 basic & assembler hacker too, and I know some hex values of certain opcodes too, but also knowing the decimal values of every opcode (and especially the corresponding adressing modes!!!) blows my mind.
    I don't know, how you prepared yourself for making this video, but I would not be able to do this only using BASIC. Hats off, Master LFT!
    Best, TRS

  • @gieselats
    @gieselats 2 місяці тому

    Wow. I wish you could have been my teacher back in the 80s. The sound is still unique. And quite goos what you programmed sounds great. Keep up the good work.

  • @jeremyjohnson7676
    @jeremyjohnson7676 3 місяці тому

    I was part of a C64 hacker group in the 90s. My job was to program the very popular loader themes. I used the same stuff shown in the video xD Getting goosebumps seeing someone doing that after such a long time... thanks for the memories!

  • @Przemeknoname
    @Przemeknoname 4 місяці тому +5

    amazing. machine code direktly without mistakes

  • @iknownothing495
    @iknownothing495 4 місяці тому +3

    I remember the days when I walked past this shop that had a Commodore 64 for sale with the sign "Just arrived!"... I was about 12 years old... Oh my... I'm old..

  • @OfficialRainsynth
    @OfficialRainsynth 3 місяці тому

    That's a cute melody you programmed, C64 was indeed a sound powerhouse for its price and capabilities.

  • @harvanputra8374
    @harvanputra8374 Місяць тому

    i never thought making chiptune music in commodore 64 so damn complicated like this, the music game engineer in that era was absolutely great!

  • @djdano2k
    @djdano2k 4 місяці тому

    I've never ever programmed anything nor do i know anything about it, but this was a joy to watch. Well done and super interesting! I've grown up with a C64 and the special sounds of this machine always remind me of good childhood days.

  • @Mario-bo5hk
    @Mario-bo5hk 4 місяці тому

    I had my first coding experiences at a C64 when I was like 12 years old. I remember playing around with PEEK and POKE to get some simple sounds and graphics and trying to build a simple text adventure with basic decision trees.
    Seeing your video now almost 30 years later as a developer myself, just made me so nostalgic of this time. I really love the simplicity, elegance and skill of your coding. Well done! Thanks for this video

  • @snowgods2195
    @snowgods2195 4 місяці тому +7

    This brings back memories. I remember doing something similar, had a mini language for the note data, and a similar interrupt driven generator for the music. Pretty sure I just inputted the pitch values from the user manual as I didn't understand the math back then (I WAS 10 at the time).
    Don't remember writing anything too complicated though, just transcribing a few songs from the scores.

    • @shambien
      @shambien 4 місяці тому

      Me too: similar age and similar process I was following in the 80s.... I had a hard time understanding vectors with multiple dimensions (which is something that gets taught in middle/high school and I was still in elementary 😅) and I also came up with more crude and less advanced ways, but it was fun 😊

  • @boostmixmusicgames
    @boostmixmusicgames 3 місяці тому

    My first experience writing code was on a VIC 20 and making birds flap their wings, wish I had figured out how to do beep scales like this when I later was messing with BASIC on DOS. awesome job with this vid

  • @MagnusWissler
    @MagnusWissler 4 місяці тому +1

    I never knew that's how the parser worked! I was always very careful with whitespace and all the other things you ran over like a freight train. Awesome!

  • @joeloperez
    @joeloperez 3 місяці тому

    Awesome! You can write machine code so easily using decimal opcodes! It reminds me of a high school teacher who taught us how to program in Motorola 6800 assembler. We wrote down the mnemonics for each instruction with its operands and then looked up the hexadecimal value for each one in the datasheet.

  • @smashrulezzz6446
    @smashrulezzz6446 3 місяці тому

    Thank you very much for your amazing video! I really enjoyed it!
    That kicked me back in time to most beautiful age when i got my first computer C=64. And yes. Games were first but i could not keep my curiosity how can be done all these fantastic things...
    I opened that book supplied with this amazing machine soon and started to experiment with BASIC, change colours, print text on the screen, move sprites, generate sounds, make primitive games and more and more... I will never forget these times. These completely changed my mind and my life 🙂
    And i will never foget so many nice and inspirating songs from C=64 games and demos.
    Really nice video! All these SID sounds, colours, font and typical C=64 keyclicks..
    Thank you for this video! It made my evening a lot better ;-)
    You are true C=64 masterclass and great musician!

    • @smashrulezzz6446
      @smashrulezzz6446 3 місяці тому

      And yes of course... your approach to create this got me so much!

  • @KayDawgx
    @KayDawgx 7 днів тому

    There's always something to learn from your videos. An animation of what is going on at a machinecode level would be really interesting alongside looking at the code.

  • @TrainGeek
    @TrainGeek 2 місяці тому

    Very impressive programming! Back when I did machine language programming on the C64, I might have known 10% of this.
    The video was well done as well. Thank you!

  • @thierrykurt3867
    @thierrykurt3867 4 місяці тому

    Something I've been looking for for years is to see how music was made without having anything, impressive video

  • @fernandobuelna8699
    @fernandobuelna8699 4 місяці тому

    Amazing how you show some of the c64 capabilities and made them to work from bare BASIC, and how you made us all feel by seeing our good old friend in action this day!

  • @tinotrivino
    @tinotrivino 2 місяці тому +1

    You are a genious, I really mean it. I play piano and use to program with the commodore 64 a lot but never to your level especially without any programs or extra cartridge. I sub.
    hugs from Spain ♥

  • @progszem
    @progszem 4 місяці тому

    OMG WTF and other 3letter words.... You are a genious, I've no idea how to hold such a big amount of info in your head, and work without any bugs or typos. My favorite: "[...] ah, and of course you don't need this divison by 70 any more." Of course. I also saw it! (No.) What is this knowledge?! Combined with music skills.... You are my role model

  • @Valam72A
    @Valam72A 3 місяці тому

    Amazing the way you program the C64!!! Only using Basic and all the ML opcodes and memory map in your head, without any special cartridge or modification..only from Basic.... again... Amazing !!

  • @surfinbirdzx
    @surfinbirdzx 4 місяці тому +2

    WOW. I've never thought that you can make so complex sequencer in pure basic o_O! C64 is a true wonder. Liked, subscribed.

    • @mobluse
      @mobluse 4 місяці тому

      But it also uses 6502 machine code.

    • @surfinbirdzx
      @surfinbirdzx 4 місяці тому

      @@mobluse I know... But still it's very impressive for noob like me)

  • @danehenry895
    @danehenry895 4 місяці тому +1

    Absolutely amazing 👏🏾. To be able to visualise assembly with byte code is mind blowing 🤯

  • @tkbettas1890
    @tkbettas1890 3 місяці тому

    I don't have the words... My first computer was a zx81c. I really like the Speccy, and know MSX, C64, Amiga, Atari, TRS 80... And what you did in this video is INSANE 😲

  • @cll1out
    @cll1out 4 місяці тому +1

    Amazing. And to add technically the basic interpreter runs the program only for a moment to copy the “real” program into RAM and hooking into an interrupt. The basic interpreter has absolutely no idea the screen is being read by a “background process” for the purposes of music. I love it and never saw this coming on a C64

  • @tobiaskarlsson3298
    @tobiaskarlsson3298 4 місяці тому +4

    This is what makes the internet great. Thank you, and can we please have some more! :)

  • @xard64
    @xard64 4 місяці тому +68

    So what I'm seeing here is that you use the screen letter buffer as runtime memory and the basic provided movement and text input functionality as real time memory editor where the data also doubles as code which can be also serialized to storage memory with a press of an enter key?
    I mean... WHAT?!

    • @andreasdavour9973
      @andreasdavour9973 4 місяці тому +6

      Yeah, that was just something else, I agree.