Shop OBEX P1 Docs P2 Docs Learn Events
Let there be Music! Hydra Dense Music Format (HDMF) demo. - Page 2 — Parallax Forums

Let there be Music! Hydra Dense Music Format (HDMF) demo.

2»

Comments

  • epmoyerepmoyer Posts: 314
    edited 2007-05-21 07:38
    Of course, if you're not using EEPROM it's a piece of cake to modify the driver to not load/use the EEPROM cog. I really really wish the SPIN compiler would support even the most rudimentary of conditional compile controls. A couple flags at the top of a file being able to include/exclude blocks of code would be super handy.
  • epmoyerepmoyer Posts: 314
    edited 2007-05-22 07:43
    The RAM and the EEPROM playback demos are done. I jam packed the EEPROM demo with 7 full length songs (plus an 8th in RAM), there must be something like 20 minutes of music in there! I'll have to time it tomorrow just for kicks. Some blues, some Bach, some ragtime piano, some classic video game music. What fun!

    Now just need to make the HDMF Light demo, finish the docs, close a couple of lingering action items and kick it out the door.

    Night.
  • CardboardGuruCardboardGuru Posts: 443
    edited 2007-05-22 10:37
    epmoyer said...
    Now just need to make the HDMF Light demo

    Looking forward to this big time!
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2007-05-23 02:21
    Then there's those prop guys who are hanging out in the HYDRA forums.. <smirk> is there a chance this can be made to work with the Proto?

    Thanks
    Oldbitcollector

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    The comments and code above are proof that a million monkeys with a million propeller chips *could* write Shakespeare!
  • epmoyerepmoyer Posts: 314
    edited 2007-05-23 05:24
    Oldbitcollector said...
    is there a chance this can be made to work with the Proto?

    The trick is that this version of HDMF uses Nick's sound driver, which is not public domain (i.e. It ships with the Hydra and you have to purchase a Hydra to get it; the HDMF release does not include Nick's driver and HDMF user's have to supply it themselves).

    Once this version is out the door I'm going to start experimenting with a version which uses the HSS driver, and that one should be accessible to both Hydra and non-Hydra propeller users (though I don't know my way around the Prop Proto board, so I'm not sure how many things(output pints etc.) would need tweaking.)


    The HDMF Lite player is about half coded now, but I've had too many late nights in a row now (hacking Prop code) so I'm turning in. smile.gif
  • AndreLAndreL Posts: 1,004
    edited 2007-05-23 05:53
    epmoyer,

    What are you using for your tools C#, builder, VB, Delphi? I really like builder C++ with RAD suits my taste.

    Andre'
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2007-05-23 14:25
    No worries, I bought a copy of the Hydra Book.. It's a good way to obtain a copy of Nick's driver. [noparse]:)[/noparse]
    (At least for us proto users.)

    Oldbit

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    The comments and code above are proof that a million monkeys with a million propeller chips *could* write Shakespeare!
  • epmoyerepmoyer Posts: 314
    edited 2007-05-23 15:33
    Andre' said...
    What are you using for your tools

    The HDMF Converter is in VB .NET. For stuff that is not compute intensive / performance critical (i.e. GUI utility apps like this one) it's a very fast development environment, and Visual Studio makes it pretty easy to glue it to C++ if you need to write some fast bits. The other nice thing is that the Express editions of Microsoft's software tools are free now, so anyone who wants to play with the source for the HDMF Converter can just download VB .NET Express and have at it. I've not used builder C++/RAD before. For Windows C++ I've been using Visual Studio.
    Somebody said...
    No worries, I bought a copy of the Hydra Book.. It's a good way to obtain a copy of Nick's driver. [noparse]:)[/noparse]
    <burns_voice> Excellent </burns_voice>

    I don't have a Prop Proto board but I think the necessary changes would be minimal.

    One of the things on my ever increasing list of tangential side-projects is now a thing called "SCuM" (Spin Configuration Management) which would allow people to use a kind of preprocessor syntax for different configuration builds of .SPIN source code (http://forums.parallax.com/showthread.php?p=651668). If I do indeed write SCuM (I'm thinking its both a piece of cake and much needed, so I probably will) and somebody does indeed port HDMF to the Prop Proto (like, to pick a name at random, you) then I'll be happy to fold the changes into the main HDMF source using the SCuM syntax so that future builds can be easily run on the Proto.

    Post Edited (epmoyer) : 5/23/2007 3:39:09 PM GMT
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2007-05-23 19:50
    Oooooo! Now I'm really looking forward to this!

    Got a bunch of guys over here that want a make the Prop into a portable SID player.
    This HDMF looks like a leap into that direction.

    Oldbitcollector

    /me refreshes the HYDRA forum looking for a release.. <HOMER>DOH!</HOMER>

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    The comments and code above are proof that a million monkeys with a million propeller chips *could* write Shakespeare!
  • Ym2413aYm2413a Posts: 630
    edited 2007-05-23 19:56
    Epmoyer let me know when your ready for (Hss). Because I'll help you out with that.
    As you all know (Hss) is open source!

    Thanks!
    --Andrew Arsenault.
  • AndreLAndreL Posts: 1,004
    edited 2007-05-24 00:45
    Cool, I have made hundreds of guis for games and some people just dont have a knack for it. But, I am really impressed by yours, as simple as they are, you give someone VS and they just turn the empty canvas into a bloodbath of controls, fonts, colors. And the thing that kills me is its like they have been using windows/mac for 15 years and they never saw a windows app [noparse]:)[/noparse] So they just completely change every gui rule there is. Anyway, looks good, very nice.

    You guys are definitely #1 one my list for any sound programming in the future!

    Andre'
  • epmoyerepmoyer Posts: 314
    edited 2007-05-24 02:07
    Thank you very much; I'm honored.

    Douglas Adams said "We are stuck with technology when what we really want is just stuff that works. How do you recognize something that is still technology? A good clue is if it comes with a manual." I try to make stuff that works, but sometimes I accidentally end up making technology smile.gif

    From reading your bio I'm guessing we had some of the same programming heroes growing up; Wayne Westmoreland and Terry Gilman, Scott Adams, Leo Christopherson, and the guys over at Big 5. The graphics were terribly crude back then but there were still people who programmed with amazing artistry (and lots of people who didn't).
  • epmoyerepmoyer Posts: 314
    edited 2007-05-24 02:18
    I just finished timing the HDMF EEPROM demo; 21 minutes and 10 seconds of music (2:30 of it is stored in RAM, and the rest in EEPROM).
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2007-05-24 02:41
    TEASE!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    The comments and code above are proof that a million monkeys with a million propeller chips *could* write Shakespeare!
  • epmoyerepmoyer Posts: 314
    edited 2007-05-24 06:56
    The HDMF Lite player code is finished! Hurray! The HDMF Lite demo still needs some polish, but instead of finishing it decided to have some real fun and merged the player into CardboardGuru's latest 013 Donkey Kong build, adding in game music for the Intro song, How High song, Background music, and Hammer song. The original source MIDIs were downloads from the web and some of the performances were a little rough. I'll have to make clean ones myself.

    Anyway, it was a piece of cake to jam the player into CardboardGuru's code (which was a good test of its utility), and merging the code together helped identify a couple bugs as well as forcing me to add a song loop feature. All in all a very useful diversion.

    I'll leave posting the code in CardboardGuru's hands since its his project; I'm sure he's working on other bits right now and like I said the source MIDI performances were a little rough.

    All I need to do now is finish the HDMF Lite demo, finish the remaining documentation, and I'll post the whole shebang (RAM playback demo, EEPROM playback demo, Lite player demo, HDFM Convert app, HDMF driver, and User's manual).
  • epmoyerepmoyer Posts: 314
    edited 2007-05-25 07:32
    Got a good chunk of the manual written. Probably about half way there. Would be surprised if I don't manage to release before the weekend is out.
  • BaggersBaggers Posts: 3,019
    edited 2007-05-25 08:16
    that would be cool, I'm sure there's lots of us waiting to see this one [noparse]:)[/noparse]
  • epmoyerepmoyer Posts: 314
    edited 2007-05-27 08:26
    Wow; it's hard to go to bed when I'm so close to finished.

    The manual is done (23 pages; whew) and just needs a final proofreading.
    The demos (Live Player, Ram playback, EEPROM playback) are all done. I regenerated all their song assets because the current version of the HDMF Converter has some fixes I wanted to make sure got into all the demo song data.
    The live player is done.
    The HDMF Converter is all polished up and is pretty crash-proof these days.

    I have only 3 open issues on my to do list:
    1) Fix timeout issue in the Live player (I need to put some data handshaking in; right now I just blast it all and sometimes I drop some)
    2) Fix counter wrap bug (Known potential bug. Not too hard to fix; just have to pencil out the math)
    3) Final code review, manual review

    I guess I have to build an installer for the HDMF Converter too, but that should be very quick.

    By the way, the version of HDMF Lite that I gave to CardboardGuru was kind of "pasted" into his code because I had kind of forgot that SPIN objects don't necessarily have to run in a new cog. I know it seems silly, but in every piece of reference code I've worked with over the past few weeks included objects always start up pieces that run in their own cogs so I'd gotten into the habit of thinking of them that way. Once I realized my mistake I coded the HDMF Lite player into an object and now its much more portable and an absolute piece of cake to glue into existing applications. Its API is almost identical to the standard HDMF driver now, with the exception that you have to call do_playback() each time through your main code loop.

    I finished up the HDMF Lite demo today and put a slider inside it to simulate the "FPS" rate of a game loop, so you can use the HDMF Lite demo to preview what a song asset will sound like at different game FPS rates.

    Time for bed. Release coming soon soon soon tongue.gif

    Post Edited (epmoyer) : 5/27/2007 1:58:17 PM GMT
Sign In or Register to comment.