Shop OBEX P1 Docs P2 Docs Learn Events
Audio to NTSC (A Video primer?) — Parallax Forums

Audio to NTSC (A Video primer?)

tarikhtarikh Posts: 10
edited 2007-12-30 03:53 in Propeller 1
I'm interested in creating something similar to this, Atari made a simple video synth in the 70s:

uk.youtube.com/watch?v=YyLvcFoMoBY

I have an ADC working and some simple stereo level meters working in spin, so now it's time to dip my toe into the NTSC fray. Full disclosure, I have _no_ ASM experience to speak of. But I've been blown away by what I've seen by some of the members here, for example CarboardGuru's Defender app. I've also looked over his simple NTSC primer and I've read through Rayman's site. It's a lot to digest, video is handled in a very low level way on the prop. So I'm looking for any advice you might have about how to get from the simple ntsc demo, which just displays a bitmap to real time video feedback from values between 0-255 from an ADC. I shouldn't need anything as complicated as Defender, right? Or am I just kidding myself? Would it help to buy Andre's book? Is it realistic to think I might be able to tackle a project like this (with no prior assembly experience) in a couple days?

TIA

Comments

  • ForrestForrest Posts: 1,341
    edited 2007-12-28 03:11
    Your research isn't complete until you check out Jeff Minter's VLM llamasoft.co.uk/vlm.php. Early versions were released for the Commodore Vic-20 and C64 and required about 1K of code running on a 6502.
  • CardboardGuruCardboardGuru Posts: 443
    edited 2007-12-28 11:53
    Hi Tarikh,

    Sounds like a fun project. Hard to say how long it would take you to pick up assembler. I learned 6502 assembler back in the 1980s, and it's the first assembler you learn that takes time, after that, they're all just variations on a theme.

    Simple_NTSC seems like a good place to start from to do something like the Atari display. The flag that it displays isn't a bitmap, it's generated on the fly, a line at a time. That could display a gradiated diamond instead, which varies in size depending on an input value.

    To do something like Jeff Minter's stuff though it wouldn't work. They need a frame buffer to cope with things like objects fading away, plasma and flame effects. But then you come up against the limited memory of the prop. Parallax's graphics driver only uses 4 colours. If you wanted to display hi-colour (choice of 86 colours) that would be too much memory. Unless you also went for a very low resolution. Which I suppose you could - but really that would need big changes to one of the existing drivers.

    All in all, you are probably best starting with Simple_NTSC and playing around with it, getting it to display a still image different than the existing flag, and working your way towards animating it based on your input value.

    Have fun!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Help to build the Propeller wiki - propeller.wikispaces.com
    Play Defender - Propeller version of the classic game
    Prop Room Robotics - my web store for Roomba spare parts in the UK
  • tarikhtarikh Posts: 10
    edited 2007-12-28 18:37
    OK, thanks CG. With a some work I could probably get a shrinking/growing diamond, but that still is no Jeff Minter territory. Without double buffering and no experience with assembly I think I better see what I can cook up with the included graphics lib before venturing down this path tongue.gif
  • potatoheadpotatohead Posts: 10,260
    edited 2007-12-30 03:53
    The hi-color drivers on the propeller wiki have variable resolution. If you want to do 86 colors at a lower resolution, that driver is a simple bitmap one. It's one byte / pixel. The 80 x 96, for example is under 8K of RAM, single buffered. If you want to push the NTSC standard a little, you can get closer to 125 colors... They are based on the EASY NTSC driver Cardboard wrote. Basically, they've got a simple loop and timing for bitmap graphics.

    You can find a link to it here: http://propeller.wikispaces.com/graphics+drivers

    Driver is just one COG. Edit the constants at the top, and launch it from SPIN, with a pointer to your bitmap screen display memory address. Linear addressing too.

    Watched the video, and it looks like pretty low horizontal resolution. (80, 64, maybe 40? x 192) That driver is actually pretty close in it's 40 or 80 x 192 modes. 80x192 takes 15K or RAM single buffered.

    Color match up, between the prop and the Atari thing is decent too. Really, the big difference is fewer intensities per hue. IMHO, not too significant for a project like this.

    Edit: With a coupla changes, you would have the choice of different resolutions, on the fly too.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!

    Post Edited (potatohead) : 12/30/2007 5:42:54 AM GMT
Sign In or Register to comment.