I'm putting together some documentation on the MP3 file format for my own use, and I was just curious if anyone would be interested in me creating a wiki entry for it or not. Or is that too far outside of the OSDev realm?

Thanks.

_________________Project: OZoneSource: GitHubCurrent Task: LIB/OBJ file support"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott

I'd say it's definitely not worth it. It's unrelated to operating systems, there's already lots of info on this all over the Web, and people here playing MP3's on their operating systems are likely to port existing MP3 players or libraries rather than be distracted by this sort of stuff.

_________________"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)[ Project UDI ]

I think it would be useful. Although file formats aren't technically OS-related, people developing operating systems and who want to develop a lot of their own userspace applications need good documentation on common file formats.

I'm thinking perhaps we should even add a category for explanations of different file formats. We could cover common image, audio, and video formats. Maybe also include things like RTF.

_________________When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

I'm putting together some documentation on the MP3 file format for my own use, and I was just curious if anyone would be interested in me creating a wiki entry for it or not. Or is that too far outside of the OSDev realm?

Thanks.

Please do it.

Operating systems is the proper scope to reach everything about computing.

What good is an OS project if you cannot play your multimedia files and read your document files there?

Without that, any OS project just gets stuck to die and disappear, as has been since these OS development sites started.

What good is it if somebody pretends to just port a tool chain of third-party code, libraries and applications to see what others achieved instead of understanding it to hack, extend and make a true personal achievement in an OS with advanced features like MP3?

Since I wanted to implement it in some weeks this would be really really awesome.If you dont do it its fine too, there is some documentation already out there but its defenitely not great.Also I might release my code for TTF parsing sooner or later on the wiki

Someone should write some articles on accounting and geology because someone might want to develop specialized applications to run on their operating system. What good is an OS if it can't do those things?

</sarcasm>

Sometimes, less is more.

And operating systems don't cover the whole field of computing. They just enable resources to be used in a convenient manner by applications that actually do stuff. If this wiki were about hardware development, would you still think MP3 should be covered as people might want to play MP3's on their hardware? It seems like almost the exact same situation to me.

_________________"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)[ Project UDI ]

I can listen to any song using it and a Sound Blaster under pure DOS, but I need to convert those files to WAVs, typically to 8 KHz, 22 KHz or 44 KHz and always mono, 8-bit samples.

So it's needed to play MP3 files, even in a 386 with DOS.We need clearer information and a sample program to play them, at least with a Sound Blaster.

So it would probably be a good idea to search a DOS sample program for that.

The only reason for which programs like this are rare is because of drivers (sound, video, etc.).

But Sound Blasters have drivers and are easy to enable even under DOS (the best one is probably the Creative Sound Blaster AWE64).

Once with those drivers, which are standard and which should come with new ISA or PCI cards, it's now possible and necessary to create sample programs to play, WAV, MP3, AAC, MIDI and other audio files.

Love4Boobies wrote:

Someone should write some articles on accounting and geology because someone might want to develop specialized applications to run on their operating system. What good is an OS if it can't do those things?

</sarcasm>

Sometimes, less is more.

It would be like a port of Google Earth, Google Maps and Street View. Even Palm OS 5 has that sort of applications so it would well be necessary nowadays. This is what makes OSes actually usable, as long as it's also possible to port that sort of applications ourselves. We're in OS development after all, so it's convenient.

Love4Boobies wrote:

And operating systems don't cover the whole field of computing. They just enable resources to be used in a convenient manner by applications that actually do stuff. If this wiki were about hardware development, would you still think MP3 should be covered as people might want to play MP3's on their hardware? It seems like almost the exact same situation to me.

It does cover all. Think about how it has full control of the machine and that even drivers are tiny pieces of code in comparison.

You can make a tiny OS out of a self-bootable program, even if it's a plain text editor with syntax highlighting that boots itself and that uses directly things like kernel-level functions of drivers for maximum efficiency and standardization.

An OS is just the counterpart of the machine we are using, so it indeed covers everything about computing. The matter is being able to understand and handle increasingly more with code made 100% by ourselves to then document and improve existing libraries and code platforms.

It doesn't cover everything, it just enables things through its flexibility. Imagine taking a course on computability and after teaching you about Turing machines, they started telling you how to parse MP3 files with one---because that's one possible use.

Why don't we also cover the IRC protocol? People might want to write IRC clients after implementing NIC drivers and a TCP/IP stack. And maybe we should also explain the A* because people might want to write games that do pathfinding once they have graphics and input. What about covering the Smalltalk language? Maybe someone will want to write a compiler for it to run under their OS. What about EEG, neurofeedback, visual evoked potentials, and crash course on machine learning for people who want to use their OS for brain-computer interfacing?

Answer: Because none of these things are relevant, nor necessary to an OS. They are specific applications that may be useful to users under some of the operating systems but that's what we have application development for. The point of the wiki is OS development not "a sea of information on everything where you get lost and where we value quantity of information over its quality".

_________________"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)[ Project UDI ]

I think that it would be better to start looking for an initial application that plays MP3 from the command line. We could even try to implement the driver layer and the WinAPI functions to run such type of program for Windows. It could be possible to run it with a subsystem launched from DOS, intended to use and run PE EXEs from DOS with Protected Mode and the rest of usual configurations.

____________________________________________________________________________________________________________________________________________________________________________________________________________________One of the more important functions of the system library layer (also named OS) is allowing the end users to use and at least view and listen their real-world files.

We can really improve the possibility to use our files under our OSes (many of which we found in the wild from Internet) if we first reconvert them to the most standard and stable versions of each format (for example PDF 3 for Archiving for our PDF files), using UTF-8 and binary ASCII as default character sets, using BMPs and WAVs as the minimum standards for audio and image, using standard ZIP algorithms, and so on, instead of using exotic or extended versions for those file format extensions.

It will also leave us with a much saner set of files that are more feasible to use under a minimalistic and newly-made OS.

Without a high quality example program, source code, and wiki/forum/documentation pages about MP3, it will be a very very long time before we see a formal usage of newer audio formats, and will be limited only to uncompressed WAV files.

In the other hand, the more protocols, file formats and compression/encding algorithms we include in OS development websites (and those of programming in general, even for HTML5/JavaScript), the more of those topics we include in our documentation, the more likely it will be that we will produce systems that others will use, and the higher the likelihood that we will be able to use our own OSes for a lot of our daily tasks... it's a very important thing to do if we really want to use our own OSes every day and make them advance.

I suspect that this sort of posts just try to convince people to not publish what they know even if it will advance the state of small OSes to an actually useful scope (i.e., having lots of tiny open-source OSes with multimedia capabilities is what we're dealing with here... so why not?).

It looks and feels like profound egoism to me, and it just sabotages the end of websites like this at making experts from newcomers.____________________________________________________________________________________________________________________________________________________________________________________________________________________Looking at computing from a mathematical point of view, and working in the OS and HTML5/JavaScript extremes, makes for an optimal way to approach the implementation of any kind of project. From the OS point of view everything else looks clear because it's logically at a higher place, and has more precedence.

Everything else can be contained in an OS. It's easier to learn it from the start with clean layers, without the clutter of existing OSes and programs, with small example programs that can be compiled and run, we have the ideal environment to learn. And we are at the core for the definition of an OS.

An OS is practically a commercial illusion. It's actually just a set of libraries in massive amount and a mechanism to launch code.

Everyone has different needs, so we always end up covering it all and needing a full explanation for all, from the OS perspective.

Why don't we also cover the IRC protocol? People might want to write IRC clients after implementing NIC drivers and a TCP/IP stack.

If you want to write an IRC client, research the IRC protocol.

Love4Boobies wrote:

And maybe we should also explain the A* because people might want to write games that do pathfinding once they have graphics and input.

Read a game development tutorial, there are plenty of those around.

Love4Boobies wrote:

What about covering the Smalltalk language? Maybe someone will want to write a compiler for it to run under their OS.

Read the Smalltalk specification.

I agree that it's hard to draw a line, but ask yourself "is this something that an OS developer is very likely to want to do before they consider their OS ready for release or use?". Viewing images and playing media files would fall into that category, just as being able to organise files (with a file manager application or a set of file management commands) does. You might want to include solitaire or minesweeper games with your OS, but you're probably not going to need to know how to write pathfinding AI. Another way you could reason it is "is this something that's specific to my OS?" or "is this something that I might want to or be able to use with a different OS?". So for example, you need to write your own media applications because you need them to go with your OS, and depending on the design of your OS you'll probably need to do a lot of work to port an existing application. Whereas if you're writing a game, you don't want to write it specifically for your OS so you'd rather write it in a cross-platform way and then compile it for your OS (or port the supporting framework libraries to your OS). Similarly, if you're writing a Smalltalk compiler, that isn't something that's particularly specific to your OS because you could probably port an existing compiler to your OS and/or target a different OS with your own compiler.

Personally, I think that having pages covering common and simple file formats (i.e. not office documents like ODT and DOCX or image editor documents like PST and XCF which are complicated and specific to particular applications) would be useful, and links to resources covering other file formats (e.g. "List of office file formats" with links to specifications or documentation where possible).

_________________When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Exactly, although I do appreciate the effort you put into answering my rethorical questions. Plenty of resources for application development can be found elsewhere on the Web. No need to burden this place with them using false arguments like "operating systems can be used to run X therefore X is related to operating systems". The truth is that operating systems are a tiny, specialized area of engineering---no more, no less.

_________________"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)[ Project UDI ]

An operating system might be used to play MP3 files, therefore we need to describe it in the wiki.

This argument is no different to:

An operating system might be used to do complicated mathematical/physical calculations, therefore we need to describe that in the wiki.

This would mean starting by describing both simple and complex mathematics, the different mathematical laws that exist, the different algorithms to calculate different numbers, like a sine of an angle... Then we should describe physics. First kinetics, then dynamics, etc, and at the end nuclear physics or even further. If this makes sense to you, then describe it on the wiki too.

Who is online

Users browsing this forum: No registered users and 2 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum