Developing Open DJ Software -
2005/08/25 19:55
After years of efforts I finally have an audience... Woha!
8O 8O 8O
Ehm... I ask sorry for my english.. But I posted quickly in a breath!
ppires: cool work in threading here! :wink:
[quote:cb6c993ab2="LSD"]Hi guys,
This is a small list of things that in my honest opinion I think that are needed to write a very good "open source" dj program:
- Multiplatform support: Linux, Mac and Windows. If all the platforms are supported then more people will be interested in the project. Also it would be nice to write the software to be platform independent.
- The programming language need to be a standard one. I think that c or c++ are the rigth choices due to the fact that normally all the programmers out there knows they (...again this means more people interested in the project).
- The source must to be divided in different "independent" objects. Mainly the streaming kernel, the gui, the playlist manager and the input control. I will open new topics to comment this in detail.
- All the code must to be well documented. This is one of the bigger problems
with a open source project. If the project is bad documented then new developers won't support the project in the future.
- This is evident but a good plannig and project timeline is needed and also more than one developer to share the hard work (...at least two source code developers and a graphic designer).[/quote:cb6c993ab2]
I agree in all your considerations. After lot of experience in this kind of software (I analyzed lot of projects), I experienced that the most widespread failure reasons for an OSS software are breaking points that you expressed.
Especially I think that: planning a big project alone is very often a *suicide* and that coding from scratch everything requires lot of energies and time
[quote:cb6c993ab2="LSD"]About me: I have been writing dj software for years and I have a lot of info and source code to share. Like most of yours I have not released it due to the lack of time and that there is a lot of hard work to do it and also support it in the future. Now I'm focused in hardware development for dj's. I have been visiting this website from the beginning and it's the only one that I know with people interested in build open dj software. I really think that it's the time to do it well .

[/quote:cb6c993ab2]
Really welcome to our community! :wink: :wink:
[quote:cb6c993ab2="ppires"]I agree in all points but that one stating that the project should get along in a "standard programming language", such as C/C++. IMHO, there's no such thing as standard programming language. But I guess LSD meant that most OpenSource projects, which aim multi-platform, are developed in C/C++.[/quote:cb6c993ab2]
Not only. A reson for C/C++ is also performances: audio programs need low latency and special performances and languages as Java / Ruby / perl probably cannot guarantee them. Another one: lot of programs has been developed in C/C++, so a lot of code to be reused and adapted. And more: the most spread language is C/C++ (for educational reasons too) and this means a lot of developers which could be involved in the project.
[quote:cb6c993ab2="ppires"]It's interesting to know that there some other guys that want to work in OS dj'ing software, and as I've said before, it would be really nice to have those same guys working in existant projects, such as Mixxx and D-Scratch (my personal choices), instead of starting a new project and let it die because of the lack of support/time/patience, whatever...[/quote:cb6c993ab2]
Quite correct. It is always better to join an existing project. But the reason because I think that joining Mixxx is not simple is that Mixxx breaks LSD's points 2 and 3 at least. Mixxx is quite a large project and as a developer is difficult to me understanding the code, what Tue wants in his code and how to do that. Although you should also think that the OpenJay community has enlarged a lot in the years: so there are enough developers to support more than a project.
I suppose that there are some things to think about before starting a project:
- are you happy with what there is now?
- nowadays projects will satisfy your needs?
- it is simple for you to contribute to a project? Projects are accessible to new developers?
- are there big projects with a large development team?
and more...
If answers are "no"... probably a new project can change the panorama!
After that I think that it will be better to think in little steps and subprojects:
- an audio core (decoder, encoder, playback, pitch, effect)
- GUI elements (skin system, GUI objects as playlist)
- multimedia systems (playlist formats etc...)
- ....
The first one could be divided more.Coding in subprojects is nice because subprojects can be reused by everyone in the future, also for other purpouses. This is good also because enlarges the possibilities for contributors.
Mmmm.. For now I stop myself... But I forget something... sure!
The administrator has disabled public write access.