openrhythm / openrhythm Goto Github PK
View Code? Open in Web Editor NEWRhythm game similar to FoF, GH, or RB. (no longer in development)
License: ISC License
Rhythm game similar to FoF, GH, or RB. (no longer in development)
License: ISC License
I'm really interrested in learning Rust. I'm currently reading on how integrate Rust code in a C++ application.
How do you feel about putting some of this next-gen awesome language in Openrhythm ? Ofc if you're okay I'll document and comment my code as necessary.
The SoundTouch-C library is built shared and is not found by default at runtime. My workaround was to include the lib path on LD_LIBRARY_PATH, but a more automatic method would be prefered.
There's a great lib here : http://optionparser.sourceforge.net
It's not gonna be a huge bit of code though ;)
I don't like MIDI. It's old (thus _too much_ optimized), a pain to parse, and not so adapted to our needs. I'm sure it's even worse to generate MIDI. And it's not even using seconds for a unit…
If we want to extend to more than guitar, we probably should define a new format (or use an existing format, idk what OSU or RB are using). And if we want to add metadatas like scenes, effects,… too.
So currently we are using the yaml config file, but after thinking about it more there might be better options for reducing code complexity.
Songs are pretty much forced to use ini style config files for backwards compatibility reasons, so we need an ini parser anyways.
Curious what your throughts are on this though.
Currently there is a partially complete VFS, however there is still some missing features like merged mounts.
Basically to integrate with the rest of the code all file IO needs to go through the VFS. To make the name VFS make sense we will also want to have it able to perform basic filesystem operations in a cross platform way.
Well there are basically 2 implementations :
The main question is : where do we implement the threads ?
Currently there is nothing implemented to load, store or make available any sort of configuration options.
There needs to be some kind of central config class that allows you to get and set global configuration keys/values which will get automatically saved to the config file once changed.
The config file will probably be either JSON or YAML.
I meant to ask you to understand, why Png++ is an optional library ? Why activate/deactivate it and how is it handled in the source code ?
I've been trying to be a bit better about this but things are not in overall great shape docs wise.
I've never actually tried getting CLdoc running on windows, so this should be a good thing to get working.
This could be done along side #7 then each backend could have its own dll.
Something that could be interesting after these things are finished, is to try and implement a mantle rendering back end for example. I would probably use this to access the mantle api:
https://github.com/jmegaffin/magma
This could technically also allow us to support an old opengl 1.0 direct rendering style backend as well. For the most ancient of hardware...
DirectX might be interesting to dive into as well haha.
So many options so little time :P
Having trouble building on OSX:
/usr/local/include/fmt/format.h:2228:20: error: ambiguous conversion for functional-style cast from 'const ORCore::MidiChannelMessage' to 'MakeValue<fmt::BasicFormatter<char, fmt::ArgFormatter > >'
Value result = MakeValue(value);
I'm interested in helping develop (possibly, sporadically), and beta-test.
libintl.h is apparently a part of either glibc or gettext cant quite figure out which.
Which means it breaks msvc, i'm also not finding hardly any info on using gettext in windows period...
This will be...interesting to get working cross, since there can be issues dynamically linking C++ code.
Sorry to spam…
Which licenses do you think of ? I hope you think about open source… ;)
Let's Rock!
I just write down here an idea I don't want to forget.
If the plan is to use a centralized database for scoring, and not anymore in the .song file, the database could refer to the path of the file. But what if the music dir is moved/renamed ?
Then the best could be to refer to the SHAsum of the midi file. When the library is rescanned, we simply check the SHA to be sure the music is the same, or to relink some moved music with its score.
Of course I don't say it'd be a good idea to remove the filepath from the database, but at least the SHAsum is another info to check library changes.
Gettext is usually used on UNIX systems with .po files, seems to be supported on Windows/OsX too, dunno.
I mentioned this before you merged the branch but you seem to have missed it.
auto *anotherResamplerstream =
new ORCore::ResamplerStream(anotherOgg, SRC_SINC_MEDIUM_QUALITY);
auto soundOutput = new ORCore::SoundIoOutput();
You call new a couple times but don't delete the allocated memory.
I went searching for a unit testing framework a while back and decided that I wanted to wait until C++17 was closer to release and more supported. Because macros 👎 and C++17 adds a couple features that i think should allow unit testing frameworks to nolonger use macros...
I'll have to take another look though the various frameworks since its been probably a year since i last took a look at the options.
Probably just some note in the documentation for any new developers at this point, but a good idea to keep in mind how that's handled longer term for users.
Hi there !
I've been told about SFML. This other media API is way faster and, some say, easier to use.
It supports all systems.
What do you think about it ?
I wanted to get on Master to add translations, and I get 👍
/home/salamandar/tmp/OpenRhythm/src/game/parser.cpp:125:63: erreur : ‘struct ORCore::MetaEvent’ has no member named ‘absTime’
m_tempoTrack.add_event(tempo.qnLength, tempo.info.absTime);
^~~~~~~
/home/salamandar/tmp/OpenRhythm/src/game/parser.cpp:126:76: erreur : ‘struct ORCore::MetaEvent’ has no member named ‘absTime’
m_logger->trace("Tempo change recieved at time {}", tempo.info.absTime);
I updated the submodules but no changes. Smthg missing ?
Currently the audio code merged in pr #11 is very incomplete. So this work needs to be expanded upon.
Overall my current plan for the audio engine is to have audio inputs, streams, dsp/fx, and outputs.
Not all of this needs to be implemented immediately, but I just needed to get my thoughts on everything down somewhere.
Hi!
I've been getting started with making a rhythm game lately, and came up with OpenRhythm. I Googled it to see if it was already taken, and I found this project. I'd like to get your opinions on what I should do next. Here are some possible courses of action I've thought of, feel free to tell me which you would prefer.
I'm fine with either option, but please let me know. I'd love to keep good FOSS rhythm games going.
Well I want the scores to be saved in a "centralized" user database, and I think we all agreed on this.
That means several things :
1> soundio.cpp
1>C:\Users\Matthew\development\musicgame\src\core\audio\output\soundio.cpp(98): error C2131: expression did not evaluate to a constant
1> C:\Users\Matthew\development\musicgame\src\core\audio\output\soundio.cpp(98): note: failure was caused by non-constant arguments or reference to a non-constant symbol
1> C:\Users\Matthew\development\musicgame\src\core\audio\output\soundio.cpp(98): note: see usage of 'byte_count_max'
1>C:\Users\Matthew\development\musicgame\src\core\audio\output\soundio.cpp(110): error C2440: 'initializing': cannot convert from 'int16_t [byte_count_max]' to 'int16_t'
1> C:\Users\Matthew\development\musicgame\src\core\audio\output\soundio.cpp(110): note: There is no context in which this conversion is possible
Basically the audio code is using some non-constant at compile time variable in a c style array and VS is complaining.
Well I've already tried CLdoc and it works pretty good, renders great web pages, with a search engine. The parsing is slow and monothread though.
My core/audio code already implements its (very simple) syntax, and I'll push the cmake changes in the docs branch. Did you have another doc engine in mind ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.