so I want to code a ddream replacement since its website died

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Patashu
    FFR Simfile Author
    FFR Simfile Author
    • Apr 2006
    • 8609

    #1

    so I want to code a ddream replacement since its website died

    RIP www.ddreamstudio.com . If you need DDReam download it here: http://www.mediafire.com/?82al94e5ot6sfy2

    Aside from the site for it being down, there are some core flaws with the program that don't prevent me from stepping with it but introduce unnecessary barriers and irritants.
    Major problems:
    -No mac or linux build
    -No downscroll
    -(at least on my laptop) when not focused on DDReam consumes as many cpu cycles as it can
    -Can't say B, other unwanted capturing of input, etc
    Minor problems:
    -Support of stops incomplete
    -(at least on my laptop) changing the resolution crashes DDReam
    -The keybinding for changing music rate is ctrl+shift+left/right: at least on my laptop this rotates the screen then crashes DDReam
    -You can't erase notes you pass over by creating a hold, and other oddities of using holds
    -Working with bpms instead of beats is difficult
    -Miscellaneous parsing errors

    That said, my reasons for wanting to code a replacement are multifold:
    1) I really, really need some practice with an actual program - yes, this will be my first serious programming project, and that's really sad
    2) I want something that works like ddream but is crossplatform, open source and will have constant development possible on it
    3) I'd love to be able to port it as a webpage embedded java applet and/or as an android app

    I am intending on writing it in java so I can do 3), using the swing library for window management.
    -Does anyone know good java libraries for music file manipulation, e.g. for ddream's waveform display, waveform filtering and ability to change the music rate while playing? How would I do all this?
    -Anyone interested in helping out? I could set up a repository for it or something.
    -(from Silvuh) growing with subbeats between beats, finding the average/min/max/other stats? bpm of a range of beats

    Features I want:
    -To be able to step with beats or with bpms and mix the two models on the go depending on what's more appropriate, and to have stops at the same time.
    -To be able to look at the chart through cmod or xmod goggles
    -Automatic offset and BPM detection using the waveform - this would be sooo useful if I could make it work. Worst case have a sync wizard that'll guide you through doing it by hand.
    -Customizable snaps - e.g. if I want to step a file with 64th swing, I'd change to 16th swing, open 'customize snap', untick the yellows and tick the greens immediately after them, then hitting up/down or scrolling the mousewheel would move only to those locations. because moving down to 64ths destroys your mobility
    -Swingifier/unswingifier - select a part of the chart, and enter in how much I want to force down each offbeat (or each second beat) and it'll expand/contract every section to compensate. Or I can go the other way, and say how far down I want to reach and pick that up and make it the new midpoint.
    -Maybe make the song-long scrollbar have a waveform mimicing the one under the chart and a tiny scale preview of the chart? (might show note densities and clusters instead of the patterns b/c it'd be so shrunken)

    Less important features:
    -Some kind of hold management techniques - e.g. when laying down taps I want each one to be a hold that lasts to the next tap, or to the tap after that, or half way between the two, or X distance after the first, and if it's going to collide with another note leave a gap of X... things like that could eliminate a lot of tedium
    -Automatic shuffling or lateral rearranging techniques, aka what I do automatically to keep stuff from being boring. also pattern suggesters, but this is really low priority because I'd only put this kind of thing to allow me to be really lazy lmao, plus it'd probably be more effort to code than to actually do normally
    -A doublestep detector, but this is kind of meh because there are lots of patterns that can be hit using footswitches or doublesteps fine and when jumps are added to the mix it gets ambiguous fast
    -Dumping your chart to multimedia formats like: png (aka bemanistyle's simfile preview), animated gif, avi, mp3 with assist tick and beat tick on top of it (maybe separate sounds for chords, holds, mines passing and so on? could be kinda interesting lmao). maybe putting it on ftp/imgur/sendspace?
    -Being able to view someone else's chart and comment on it (chat room?) in real time. This would be super cool but I have no idea how to do this and don't want to think 'I HAVE to do this'. It could be very basic, e.g. you attach the program to a port, and when someone else connects with their program to that ip and port it sends the sm and mp3 as it was when they connected, and you can chat back and forth and request a resend.
    Last edited by Patashu; 04-28-2011, 06:18 PM.
    Patashu makes Chiptunes in Famitracker:
    http://soundcloud.com/patashu/8bit-progressive-metal-fading-world
    http://img.photobucket.com/albums/v216/Mechadragon/smallpackbanner.png
    Best non-AAAs: ERx8 v2 (14-1-0-4), Hajnal (3-0-0-0), RunnyMorning (8-0-0-4), Xeno-Flow (1-0-0-3), Blue Rose (35-2-0-20), Ketsarku (14-0-0-0), Silence (1-0-0-0), Lolo (14-1-0-1)
    http://i231.photobucket.com/albums/ee301/xiaoven/solorulzsig.png
  • m0de
    Marble Eater
    • Jan 2006
    • 1437

    #2
    Re: so I want to code a ddream replacement since its website died

    This sounds like a great idea. I really hope that people can help out as much as possible to make this happen.. Also, the cpu usage problem happens to me while minimized. Good luck with this project Patashu~

    Comment

    • Phlegmatism
      FFR Player
      • Apr 2011
      • 128

      #3
      Re: so I want to code a ddream replacement since its website died

      Holy crap, if you can do this halfway successfully, props. Make noteskin support too.

      Comment

      • ddrxero64
        FFR Player
        • Nov 2008
        • 790

        #4
        Re: so I want to code a ddream replacement since its website died

        Good luck with this Patashu, I'll help however I can (which probably isn't much). I really shouldn't bring it up, but I don't mean to in a bad way. But this would be great because people are still using the in game editor which just doesn't do as much ore isn't as flexible. If you make it something that's easy to pick up yet awesome enough for advanced features you have yourself an awesome program.

        Support here. Let me know if you need testing or anything.

        Comment

        • Patashu
          FFR Simfile Author
          FFR Simfile Author
          • Apr 2006
          • 8609

          #5
          Re: so I want to code a ddream replacement since its website died

          Added a bunch of features I personally want to the first post. Can't get too far ahead of myself though, first thing's first:
          1. sm parser to a convenient format in-program, and then an sm writer to spit it back out
          2. calculating positions of beats, bpms, stops and notes in a way that is robust to change, rounding errors and quick to access for display
          3. defining methods by which I can alter 2. in all the ways I'll want to
          4. making the chart displayable, playable on x-mod and c-mod and scroll-through able, displaying beat lines, bpms and stops
          5. figuring out how to get music playing, synced to the chart and assist tick/beat tick working, as well as displaying the waveform. this is probably where I'll get stuck lmao so if you know good libraries and idioms for this in java lemme know
          6. gui and interaction stuff
          7. more of the same
          Patashu makes Chiptunes in Famitracker:
          http://soundcloud.com/patashu/8bit-progressive-metal-fading-world
          http://img.photobucket.com/albums/v216/Mechadragon/smallpackbanner.png
          Best non-AAAs: ERx8 v2 (14-1-0-4), Hajnal (3-0-0-0), RunnyMorning (8-0-0-4), Xeno-Flow (1-0-0-3), Blue Rose (35-2-0-20), Ketsarku (14-0-0-0), Silence (1-0-0-0), Lolo (14-1-0-1)
          http://i231.photobucket.com/albums/ee301/xiaoven/solorulzsig.png

          Comment

          • leonid
            I am leonid
            FFR Simfile Author
            FFR Music Producer
            • Oct 2008
            • 8080

            #6
            Re: so I want to code a ddream replacement since its website died

            You don't really need to make the program cross-platform. Just ensure that it runs fine on Wine.



            Proud member of Team No

            Comment

            • Patashu
              FFR Simfile Author
              FFR Simfile Author
              • Apr 2006
              • 8609

              #7
              Re: so I want to code a ddream replacement since its website died

              Originally posted by leonid
              You don't really need to make the program cross-platform. Just ensure that it runs fine on Wine.
              This is a good point (assuming I don't mind not being able to port to android ez). How can I 'ensure it runs fine on Wine'? Why doesn't DDReam?
              Patashu makes Chiptunes in Famitracker:
              http://soundcloud.com/patashu/8bit-progressive-metal-fading-world
              http://img.photobucket.com/albums/v216/Mechadragon/smallpackbanner.png
              Best non-AAAs: ERx8 v2 (14-1-0-4), Hajnal (3-0-0-0), RunnyMorning (8-0-0-4), Xeno-Flow (1-0-0-3), Blue Rose (35-2-0-20), Ketsarku (14-0-0-0), Silence (1-0-0-0), Lolo (14-1-0-1)
              http://i231.photobucket.com/albums/ee301/xiaoven/solorulzsig.png

              Comment

              • iironiic
                D6 FFR Legacy Player
                FFR Simfile Author
                • Jan 2009
                • 4342

                #8
                Re: so I want to code a ddream replacement since its website died

                I would love to help but I don't have much programming experience and I will probably not contribute much to the project. It would be really neat to see this though and I wish you the best of luck. Let me know if I can do anything for you.

                Comment

                • TC_Halogen
                  Rhythm game specialist.
                  FFR Simfile Author
                  FFR Music Producer
                  • Feb 2008
                  • 19376

                  #9
                  Re: so I want to code a ddream replacement since its website died

                  One thing that has always irritated me about DDream is that the BPMs go in and out from two different numbers when you use a solid BPM (for example: 154 BPM uses 153.998 and 154.007), which can clutter up the .sm file. It's alleviated when you use the "single BPM" save option, but if a song has a slight change in speed, there's not much that can be done about it.

                  I really hope you can get this moving, it was somewhat sad to see DDream just disappear the way that it did.

                  EDIT: Oh hey, this is my 8,500th visible post, haha.

                  Comment

                  • Jousway
                    FFR Player
                    • Jun 2009
                    • 867

                    #10
                    Re: so I want to code a ddream replacement since its website died

                    best is to make an separate windows and mac installer, and an makefile for linux so people can compile it them-selfs for any linux version
                    Its not a bug its a FEATURE!



                    Comment

                    • Patashu
                      FFR Simfile Author
                      FFR Simfile Author
                      • Apr 2006
                      • 8609

                      #11
                      Re: so I want to code a ddream replacement since its website died

                      Originally posted by TC_Halogen
                      One thing that has always irritated me about DDream is that the BPMs go in and out from two different numbers when you use a solid BPM (for example: 154 BPM uses 153.998 and 154.007), which can clutter up the .sm file. It's alleviated when you use the "single BPM" save option, but if a song has a slight change in speed, there's not much that can be done about it.
                      my plan is that if two bpms are identical to within an epsilon (e.g. less than 0.001) then they'll be considered identical and written out as such
                      that should fix any problem with unnecessary bpm change (flipside: unnecessary beat placement) information
                      Patashu makes Chiptunes in Famitracker:
                      http://soundcloud.com/patashu/8bit-progressive-metal-fading-world
                      http://img.photobucket.com/albums/v216/Mechadragon/smallpackbanner.png
                      Best non-AAAs: ERx8 v2 (14-1-0-4), Hajnal (3-0-0-0), RunnyMorning (8-0-0-4), Xeno-Flow (1-0-0-3), Blue Rose (35-2-0-20), Ketsarku (14-0-0-0), Silence (1-0-0-0), Lolo (14-1-0-1)
                      http://i231.photobucket.com/albums/ee301/xiaoven/solorulzsig.png

                      Comment

                      • leonid
                        I am leonid
                        FFR Simfile Author
                        FFR Music Producer
                        • Oct 2008
                        • 8080

                        #12
                        Re: so I want to code a ddream replacement since its website died

                        Originally posted by Patashu
                        This is a good point (assuming I don't mind not being able to port to android ez). How can I 'ensure it runs fine on Wine'? Why doesn't DDReam?
                        DDream runs fine on Wine. I can test whether your program runs well on mac



                        Proud member of Team No

                        Comment

                        • TC_Halogen
                          Rhythm game specialist.
                          FFR Simfile Author
                          FFR Music Producer
                          • Feb 2008
                          • 19376

                          #13
                          Re: so I want to code a ddream replacement since its website died

                          Originally posted by Patashu
                          my plan is that if two bpms are identical to within an epsilon (e.g. less than 0.001) then they'll be considered identical and written out as such
                          that should fix any problem with unnecessary bpm change (flipside: unnecessary beat placement) information
                          very good plan; enough to mask out seemingly irrelevant changes, but allows for a fair amount of detail when fine-tuning sync.

                          Comment

                          • Silvuh
                            quit
                            FFR Simfile Author
                            FFR Music Producer
                            • Apr 2005
                            • 938

                            #14
                            Re: so I want to code a ddream replacement since its website died

                            ddreamstudio will divide BPMs unevenly, though. Like if you grow a region to 139.942, you'll get different numbers of beats of 139.941 with one beat of 139.948 to average it out. The difference between BPMs is usually 0.007–0.009.

                            Need have some kind of script that searches for repeating chunks like AAAABAAAABAABAAA with BPM changes of less than a hundredth, which is what four measures of 139.942 grows to. (It averages to 139.9423125)

                            You can also look at how a .dsx file stores beats, but I couldn't decipher it just by looking at it.


                            Also yeah, best of luck with this, Patashu. This is going to be great.

                            The bug about changing resolution making ddreamstudio crash ... I think that has to do with, like, taking up the whole screen. sm-ssc, on load, takes over the screen before switching to a window, which makes ddreamstudio fail. I think it would be the same for any other full-screen computer games, but I don't know.

                            Really looking forward to seeing more interactivity in the program, like being able to drag notes along the snap or between directions.

                            Know you said you don't want to get too far ahead of yourself, but you have a good list of features there, so ... I've found it obnoxious that the program won't grow beats with sub-beats between them. Sometimes I just want to select major areas and hit G so it will show me the average BPM of the section. What would be great would be if the program had a script to calculate an approximate range of significant BPMs (though it would still be nice if it was at least easier to find it manually, in case the calculator doesn't always work.)

                            Would be thrilled if I could find a good BPM range for tracks like Rain, Snow, and Sleet and Serenade of Storms with just a few clicks of the mouse. (Given that the beats are already placed, of course. I don't expect a script to sync live piano recordings for me, haha.)

                            Comment

                            • TheLaughingSpaz
                              FFR Player
                              • Apr 2006
                              • 7

                              #15
                              Re: so I want to code a ddream replacement since its website died

                              This is quite an undertaking. I suggest you check with the SM devs for advice and to see if anyone has actually started working on something like this. I lurk in the #stepmania-devs IRC channel and remember this conversation from 12-18-2010:

                              [17:12:51] <wolfman2000> StepMania has gotten too complicated. I don't want my limited programming skills to atrophy away. I need to find a new programming project to join...hopefully I'll be more useful there
                              [17:13:18] <shakesoda> http://github.com/shakesoda/Rhythm-Station
                              [17:13:20] <shakesoda>
                              [17:13:36] <wolfman2000> Very funny. I'm still inimidated by your project
                              [17:13:50] <shakesoda> me too
                              [17:13:53] <shakesoda> that's what makes it fun
                              [17:14:00] <wolfman2000> I may just need to find something outside of music games...I don't know
                              [17:14:12] <wolfman2000> It's a little hard to find it fun when I've gotten frustrated most of the time
                              [17:14:23] <shakesoda> plug aside, why not work on some kind of tool or demo
                              [17:15:00] <wolfman2000> shakesoda: Already have a tool/demo. My Edit Creator, remember?
                              [17:15:10] <shakesoda> then make more!
                              [17:15:17] <shakesoda>
                              [17:15:28] <wolfman2000> shakesoda: That requires me to figure out what to make.
                              [17:15:50] <wolfman2000> There is no need for a DDR/ITG style creator
                              [17:16:03] <shakesoda> there is need for a better simfile editor period
                              [17:16:45] <wolfman2000> ...then perhaps we should work on that
                              [17:16:49] <wolfman2000> In small pieces of course
                              No downscroll
                              Why is that a major problem for an editor?

                              -Maybe make the song-long scrollbar have a waveform mimicing the one under the chart and a tiny scale preview of the chart? (might show note densities and clusters instead of the patterns b/c it'd be so shrunken)

                              -Dumping your chart to multimedia formats like: png (aka bemanistyle's simfile preview), animated gif, avi, mp3 with assist tick and beat tick on top of it (maybe separate sounds for chords, holds, mines passing and so on? could be kinda interesting lmao). maybe putting it on ftp/imgur/sendspace?
                              Nice ideas.

                              -Being able to view someone else's chart and comment on it (chat room?) in real time. This would be super cool but I have no idea how to do this and don't want to think 'I HAVE to do this'. It could be very basic, e.g. you attach the program to a port, and when someone else connects with their program to that ip and port it sends the sm and mp3 as it was when they connected, and you can chat back and forth and request a resend.
                              Better served by actual chat clients imo.

                              -Anyone interested in helping out? I could set up a repository for it or something.
                              I might have been interested if I didn't have a 2 hour commute and it wasn't in Java. If you just want someone to look over your code or something, I could probably do that.

                              1) I really, really need some practice with an actual program - yes, this will be my first serious programming project, and that's really sad
                              Good luck! Creating a real application that is used by real people would be a nice thing to have on a resume.

                              Comment

                              Working...