ENIGMA Forums

General fluff => Off-Topic => Topic started by: edsquare on June 21, 2014, 02:43:02 PM

Title: Sound Editor (MIDI)
Post by: edsquare on June 21, 2014, 02:43:02 PM
How useful do you think it would be to have such option in a game making environment?

I ask because I'm stuck with my IDE (Code name: ENYGMA), trying to include such functionality in it, and can't make it work.
Title: Re: Sound Editor (MIDI)
Post by: Josh @ Dreamland on June 21, 2014, 03:56:41 PM
Not that important. Ism and I started writing a sequencer earlier; it was an early failure. If you do go through with it, I recommend XM as opposed to MIDI.
Title: Re: Sound Editor (MIDI)
Post by: edsquare on June 21, 2014, 06:43:02 PM
Not that important. Ism and I started writing a sequencer earlier; it was an early failure. If you do go through with it, I recommend XM as opposed to MIDI.

It's almost working now, I think in 2 or 3 months I'll be able to release a prealpha version, any reason to use xm over midi?

I was thinking on using only OGGVorbis, since I have decided to forget about GM compatibility, and will only support OGL, GLES and/or SDL

Next problem will be the parser, I want nothing to do with Java, although would compromise for javascript (Still thinking about it though).

Anyway I'm going to do it as modular as possible so modifications can be made.
Title: Re: Sound Editor (MIDI)
Post by: Josh @ Dreamland on June 21, 2014, 07:11:54 PM
From the name, I assume you're tailoring it to ENIGMA, so one key advantage is that ENIGMA can play XM files. :P

A better (and more permanent) reason is that XM is more portable. The files are a little larger on average, because the sound samples are stored inside the file. This means they sound the same between Windows and Linux. Moreover, I've never used a Linux program with good MIDI support; as far as I can tell, the Microsoft soundfont that encapsulates everything people think of when they hear "MIDI" is (A) proprietary and (B) not actually a sound font, but a DLL.

tl;dr: Portability

OGG/Vorbis is an extremely portable alternative. Everything can play Vorbis, anymore.

I am... extremely curious as to how successful a JavaScript sequencer would be. We used JavaScript to allow writing custom waveforms for instruments... it was awfully slow.
Title: Re: Sound Editor (MIDI)
Post by: edsquare on June 21, 2014, 07:37:56 PM
From the name, I assume you're tailoring it to ENIGMA, so one key advantage is that ENIGMA can play XM files. :P

A better (and more permanent) reason is that XM is more portable. The files are a little larger on average, because the sound samples are stored inside the file. This means they sound the same between Windows and Linux. Moreover, I've never used a Linux program with good MIDI support; as far as I can tell, the Microsoft soundfont that encapsulates everything people think of when they hear "MIDI" is (A) proprietary and (B) not actually a sound font, but a DLL.

tl;dr: Portability

OGG/Vorbis is an extremely portable alternative. Everything can play Vorbis, anymore.

I am... extremely curious as to how successful a JavaScript sequencer would be. We used JavaScript to allow writing custom waveforms for instruments... it was awfully slow.

That's the plan, to make an IDE for enigma, the sound editor is but a small part of it, since enigma can use ogg/vorbis and since it is free and opensource that's the only format it will produce (IT will be easy to extend if you wish to add another format), because it is easier for me to open/save in this format.

The javascript part i was thinking was only for the D&D of actions but... I would rather not, better to stick to native/compiled code.

Also since I'm developing in a modular way it will allow you to switch engines if you want, only problem is: I need the plugin in C or C++ since I'm not gona touch a single line of Java code.

So far (without engine) what is finished compiles and it loads in much less time than LGM, same PC with only 2Gb ram and internal video.

Of course the real test will be to make the calls to enigma, I will need to learn and understand the API.

Once the IDE is finished or at least considered stable (RC at the least), I'll start re-writting enigma in a different language, ditching all GM compatibility and probably (Unless I find someone that can write a compiler) EDL in favour of Pascal, I know it has less libraries than C++ but it has OGL, OpenAl, SDL, and even better the FP Compiler can compile for any (or almost) operating system.
Title: Re: Sound Editor (MIDI)
Post by: daz on June 21, 2014, 08:32:29 PM
Yes Java is slow. I'm all in favor of a new IDE project compatible with ENIGMA but so far there have been 3 or 4 attempts that went vastly unfinished.

Using Free Pascal Compiler and making a cross-platform IDE? You must be using Lazarus. If so, you can just use SynEdit. Trying to ditch EDL in favor of Pascal though I think would vastly lower your user-base, if you were trying to make it ENIGMA compatible. It uses EDL plain and simple. Of course that would require you to create a custom highlighter for EDL with SynEdit (or whatever text box component), as well as figuring out a way to check for EDL syntax errors.

And there is not much to figuring out how to use C libraries in Pascal. Just make sure they're not compiled with .NET...
Title: Re: Sound Editor (MIDI)
Post by: Goombert on June 21, 2014, 08:41:02 PM
daz, I'm going to have to go ahead and disagree with you, RadialGM redid all of LGM's interface, and it's still there waiting for functionality to be added.
http://enigma-dev.org/docs/Wiki/RadialGM
(http://enigma-dev.org/docs/wiki/images/6/6b/Rgm_ide.png)
Title: Re: Sound Editor (MIDI)
Post by: Darkstar2 on June 21, 2014, 10:08:06 PM
Pascal ????? You want to ditch c++ and rewrite ENIGMA in PASCAL ?

I agree, you will lower your user base that's for sure.  In my opinion that's regression right there.   Some people came here barely to start learning C++.  As far as breaking GM compatibility I agree 100%, provide new functions, unique functions so long as you don't offer less features but equal ( better ) and more.  Personally I build everything from scratch in ENIGMA, however there are many who might still want to use both and port things, so I think ENIGMA should still continue evolving and at the same time having another project rather than one project that will replace ENIGMA.

But I don't get it, how is it that you will be ENIGMA compatible when you mention you will use a totally different language and the engine will not be GM compatible.......Did I miss something ???  You mentioned a new IDE for ENIGMA, but then you mentioning re-writing ENIGMA.


Title: Re: Sound Editor (MIDI)
Post by: daz on June 21, 2014, 10:41:22 PM
daz, I'm going to have to go ahead and disagree with you, RadialGM redid all of LGM's interface, and it's still there waiting for functionality to be added.
http://enigma-dev.org/docs/Wiki/RadialGM
(http://enigma-dev.org/docs/wiki/images/6/6b/Rgm_ide.png)
Yes honestly if I had to pick an IDE that of those that had been made and abandoned to want to have finished, this one would be at the top of the list. It's cross-platform C++. Pretty damn good idea. But it's useless as an IDE if it can load and save files or send them to ENIGMA. In my spare time I might be able to work on some file handling, but I don't know near enough about enigma to connect the two.
Title: Re: Sound Editor (MIDI)
Post by: Darkstar2 on June 21, 2014, 10:49:48 PM
I guess with the upcoming CLI it will be easier to build IDEs, you will just pass the saved file directly to the CLI for handling as opposed to handling all that shite yourself in the IDE as now done in LGM.

Title: Re: Sound Editor (MIDI)
Post by: edsquare on June 21, 2014, 11:40:56 PM
Yes Java is slow. I'm all in favor of a new IDE project compatible with ENIGMA but so far there have been 3 or 4 attempts that went vastly unfinished.

Using Free Pascal Compiler and making a cross-platform IDE? You must be using Lazarus. If so, you can just use SynEdit. Trying to ditch EDL in favor of Pascal though I think would vastly lower your user-base, if you were trying to make it ENIGMA compatible. It uses EDL plain and simple. Of course that would require you to create a custom highlighter for EDL with SynEdit (or whatever text box component), as well as figuring out a way to check for EDL syntax errors.

And there is not much to figuring out how to use C libraries in Pascal. Just make sure they're not compiled with .NET...

Creating the custom highlighter is the easy part, the hard part is cheking for syntax errors, the harder part would be making a parser from EDL to FPC. Since It already compiles for so many platforms that would be nice.

Pascal ????? You want to ditch c++ and rewrite ENIGMA in PASCAL ?

No, I'm planing to create a clone of enigma built around the FPC compiler.

I agree, you will lower your user base that's for sure.  In my opinion that's regression right there.   Some people came here barely to start learning C++.  As far as breaking GM compatibility I agree 100%, provide new functions, unique functions so long as you don't offer less features but equal ( better ) and more.  Personally I build everything from scratch in ENIGMA, however there are many who might still want to use both and port things, so I think ENIGMA should still continue evolving and at the same time having another project rather than one project that will replace ENIGMA.

Not planning to replace ENIGMA, if anything I'm planning on replacing LGM, that's the immediate future (6 months, a year tops), the other part is me thinking way into the future and projecting my love for Pascal into my plans.

But I don't get it, how is it that you will be ENIGMA compatible when you mention you will use a totally different language and the engine will not be GM compatible.......Did I miss something ???  You mentioned a new IDE for ENIGMA, but then you mentioning re-writing ENIGMA.

Apparently yes you did miss something:

If I can find someone to write the parser I will keep being EDL compatible in my re-write, but the ide is going to be opensourced under whatever license the team agrees upon, so Enigma will be free to keep on using it even if I pull a disapearing act.

The main point is this:

I love FreePascal and Lazarus, I love ENIGMA and would like for us to have a menage a trois  :D

No really I love this project and even all you guys with your quirks, trolls and all, so I want to give something back, and if that something ends up making ENIGMA more usable then I also get to share the benefits of my work, so I am developing the IDE (Any name sugestions?), so far I know of at least 5 IDES for ENIGMA: LGM, NaturalGM, RadialGM, SharpGM and GameEditor, of which only LGM is usable and yet everybody complains of crashes and what not (only natural since it's made in java), so I will donate another one; in pascal because that's what I know.

The other project might or might not ever be started, it's more a dream than anything else, the point is that I also Love FPC and Lazarus and would love to make something unique that showcases the power, versatility and maturity of the projects, ATM there's a 2D/3D game engine already usable for FPC but it needs Lazarus as it's IDE, I think it has even a Room editor (can't use it because it needs a FPC version higher than mine); but it is not as friendly as you would like, you have to install it and if in linux you have to know that the most recent Lazarus is not the most stable. So maybe I end up using the same IDE for both ENIGMA and Castle Engine.

If you use windows you can easily try it only need the most recent Lazarus EXE and download and install Castle Engine, it's really mature for something made in a "dead" "for learning only" language  ;)

Yet I would like in some point in time to build my own engine with my own IDE but I DO NOT believe in reinventing the weel.  :smileycat:
Title: Re: Sound Editor (MIDI)
Post by: edsquare on June 23, 2014, 10:29:09 PM
Did I say 6 months to a year? fuck that, it'll be more like two years, the room (level) editor is something really hard to do.

Will see if I can't find examples in other languages and try and port one of them.
Title: Re: Sound Editor (MIDI)
Post by: Darkstar2 on June 23, 2014, 10:46:16 PM
Did I say 6 months to a year? fuck that, it'll be more like two years, the room (level) editor is something really hard to do.

Will see if I can't find examples in other languages and try and port one of them.

Good thing you wrote that I was going to say you are really optimistic unless you have mad skills and alien like traits, maybe, mind you not impossible, but doubt you'd be putting full time hours, I've always said 1 year best case scenario, 2+ years realistic, could be more.  But don't worry mate, by that time PCs will be discontinued, there will be a totally different CPU architecture, and your code will probably not be compatible.
Unfortunately people are moving towards gay consoles and hand held shite and mobiles ditching PCs gradually.  I think this is one of the reason why a certain company I know that makes a game development engine is focusing more on mobile and consoles and slowly disregarding windows.
In fact a roumour from a trusted source says that they are moving slowly away from windows and support only consoles and mobile.

So if in 2 years your engine does not support a plethora of export options you basically will have wasted time.

Title: Re: Sound Editor (MIDI)
Post by: edsquare on June 23, 2014, 11:47:47 PM
Did I say 6 months to a year? fuck that, it'll be more like two years, the room (level) editor is something really hard to do.

Will see if I can't find examples in other languages and try and port one of them.

Good thing you wrote that I was going to say you are really optimistic unless you have mad skills and alien like traits, maybe, mind you not impossible, but doubt you'd be putting full time hours, I've always said 1 year best case scenario, 2+ years realistic, could be more.  But don't worry mate, by that time PCs will be discontinued, there will be a totally different CPU architecture, and your code will probably not be compatible.
Unfortunately people are moving towards gay consoles and hand held shite and mobiles ditching PCs gradually.  I think this is one of the reason why a certain company I know that makes a game development engine is focusing more on mobile and consoles and slowly disregarding windows.
In fact a roumour from a trusted source says that they are moving slowly away from windows and support only consoles and mobile.

So if in 2 years your engine does not support a plethora of export options you basically will have wasted time.

As far as LGM stability, I think Robert is on the money with his CLI project, that alone might make LGM more stable and quicker.
I keep getting fucked in the arse with crashing under LGM, not only from Joshedit, but from every other orifice, cannot  create thread, memory error, EGMlib errors and other shite.
A new IDE is long overdue. :D

Never mind the mobile devices and consoles, the pc/laptop wont be replaced any time soon, reasons:

Memory .- PC/LapTop 2Gb minimum up to? I've seen PCs with 32 Gb ram
Disk size .- pc/laptop Tbs mobile 64 Gb? WTF?
mobile devices are great for conectivity/playing casual games, even some light work (Text files mainly) while traditionalcomputers can do everything.

Also I was speaking of the IDE for ENIGMA, not my possible? future engine.

Have you tried the Python IDE?

Just install Python, PyQT, Qscintilla and from CMD or terminal go to the folder where the ide is and then: python ide.py

It compiles and starts in a flash, only problem I didn't have the plugin (Something else I need?) in the same folder so I couldn't test anything else.

In two weeks I finish the course I'm taking and will have a little more time, we'll see if I can understand enough C++/QT to help with RadialGM, it's a shame they droped the one in wxWidgets, and an even greater shame they started doing it in Code::Blocks/wxSmith and not in wxDev-C++;
this IDE/RAD Tool is much better for working with wxWidgets than anyother I have seen, except wxGlade and it has only a few widgets, I wonder what widgets are needed for RadialGM, a shame they used QTCreator only and not QTDesigner too, that way one could see the ide without compiling it.
Title: Re: Sound Editor (MIDI)
Post by: egofree on June 24, 2014, 02:18:27 AM
Did I say 6 months to a year? fuck that, it'll be more like two years, the room (level) editor is something really hard to do.

Will see if I can't find examples in other languages and try and port one of them.

For example, gmare is a rooms editor for GM written in C# : http://gmare.codeplex.com/

Well, we have seen already a few people wanting to remake from scratch Game maker or ENIGMA, but in the end this is really hard. That's why from my point of view it's better to improve ENIGMA or remake only some parts of it. I started to work on the rooms editor, and i hope to improve it. But anyway i wish all the best to the people who want make new projects.