You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(25) |
Jul
(288) |
Aug
(119) |
Sep
(31) |
Oct
(59) |
Nov
(458) |
Dec
(359) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(268) |
Feb
(26) |
Mar
(36) |
Apr
(48) |
May
(119) |
Jun
(37) |
Jul
(173) |
Aug
(429) |
Sep
(137) |
Oct
(156) |
Nov
(59) |
Dec
(45) |
| 2011 |
Jan
(398) |
Feb
(257) |
Mar
(49) |
Apr
(5) |
May
(34) |
Jun
(11) |
Jul
(38) |
Aug
(12) |
Sep
(1) |
Oct
(49) |
Nov
(5) |
Dec
(10) |
| 2012 |
Jan
(21) |
Feb
(32) |
Mar
(20) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(173) |
Aug
|
Sep
(25) |
Oct
(6) |
Nov
(44) |
Dec
|
|
From: Tapio V. <aa...@us...> - 2009-12-20 12:56:41
|
Module: performous Branch: master Commit: f5de2e47d7ebfade4e62dca5a3b22b4cfb866b2e Author: Tapio Vierros <tap...@gm...> Date: Sun Dec 20 14:55:19 2009 +0200 Quick mod to instrumenthelp.svg to make it show dancing keys. --- themes/default/instrumenthelp.svg | 102 +++++++++++++++++++++++++++++++++---- 1 files changed, 92 insertions(+), 10 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2009-12-20 12:36:00
|
Module: performous
Branch: master
Commit: f6c6b94b5df0ef3753be2bb05ef01c15ea0ed07a
Author: Tapio Vierros <tap...@gm...>
Date: Sun Dec 20 14:35:05 2009 +0200
Added some info texts to config screen.
---
game/screen_configuration.cc | 11 +++++++++++
game/theme.cc | 4 +++-
game/theme.hh | 4 ++++
3 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/game/screen_configuration.cc b/game/screen_configuration.cc
index 6431943..715fed7 100644
--- a/game/screen_configuration.cc
+++ b/game/screen_configuration.cc
@@ -47,6 +47,17 @@ void ScreenConfiguration::draw() {
ConfigItem const& ci = config[configuration[selected]];
theme->item.draw(ci.getShortDesc());
theme->value.draw(ci.getValue());
+ // Long description
+ theme->comment_bg.dimensions.middle().screenBottom(-0.05);
+ theme->comment_bg.draw();
+ theme->comment.dimensions.left(-0.48).screenBottom(-0.068);
+ theme->comment.draw(ci.getLongDesc());
+ // Key help
+ theme->comment_bg.dimensions.middle().screenBottom(-0.01);
+ theme->comment_bg.draw();
+ theme->comment.dimensions.left(-0.48).screenBottom(-0.028);
+ theme->comment.draw("Ctrl + S to save, Ctrl + R to reset defaults");
+
}
}
diff --git a/game/theme.cc b/game/theme.cc
index 69feb9b..88d48ec 100755
--- a/game/theme.cc
+++ b/game/theme.cc
@@ -37,7 +37,9 @@ ThemeSing::ThemeSing():
ThemeConfiguration::ThemeConfiguration():
Theme(getThemePath("configuration_bg.svg")),
item(getThemePath("configuration_item.svg"), config["graphic/text_lod"].f()),
- value(getThemePath("configuration_value.svg"), config["graphic/text_lod"].f())
+ value(getThemePath("configuration_value.svg"), config["graphic/text_lod"].f()),
+ comment(getThemePath("menu_comment.svg"), config["graphic/text_lod"].f()),
+ comment_bg(getThemePath("menu_comment_bg.svg"))
{}
ThemeIntro::ThemeIntro():
diff --git a/game/theme.hh b/game/theme.hh
index eebee88..73967de 100755
--- a/game/theme.hh
+++ b/game/theme.hh
@@ -57,6 +57,10 @@ struct ThemeConfiguration: Theme {
SvgTxtTheme item;
/// configuration value
SvgTxtTheme value;
+ /// configuration comment text
+ SvgTxtTheme comment;
+ /// configuration comment background
+ Surface comment_bg;
};
/// theme for intro screen
|
|
From: Tapio V. <aa...@us...> - 2009-12-20 12:35:57
|
Module: performous
Branch: master
Commit: a7862e88c3d63b13d42d5d8a0e37cb506b5fa93a
Author: Tapio Vierros <tap...@gm...>
Date: Sun Dec 20 14:13:50 2009 +0200
Keep player order in ScoreWindow.
(I.e. do not sort by score.)
---
game/screen_sing.cc | 29 +++++++++++++++--------------
1 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index c8f653b..aa0e027 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -371,11 +371,11 @@ ScoreWindow::ScoreWindow(Instruments& instruments, Database& database, Dancers&
for (std::list<Player>::iterator p = m_database.cur.begin(); p != m_database.cur.end();) {
ScoreItem item; item.type = ScoreItem::SINGER;
item.score = p->getScore();
- item.track = "Vocals";
- item.track_simple = "vocals";
+ if (item.score < 500) { p = m_database.cur.erase(p); continue; } // Dead
+ item.track = "Vocals"; // For database
+ item.track_simple = "vocals"; // For ScoreWindow
item.color = glutil::Color(p->m_color.r, p->m_color.g, p->m_color.b);
- if (item.score < 500) { p = m_database.cur.erase(p); continue; }
m_database.scores.push_back(item);
++p;
}
@@ -383,11 +383,10 @@ ScoreWindow::ScoreWindow(Instruments& instruments, Database& database, Dancers&
for (Instruments::iterator it = instruments.begin(); it != instruments.end();) {
ScoreItem item; item.type = ScoreItem::INSTRUMENT;
item.score = it->getScore();
+ if (item.score < 100) { it = instruments.erase(it); continue; } // Dead
item.track_simple = it->getTrack();
item.track = it->getTrack() + " - " + it->getDifficultyString();
- item.track[0] = toupper(item.track[0]);
- if (item.score < 100) { it = instruments.erase(it); continue; }
-
+ item.track[0] = toupper(item.track[0]); // Capitalize
if (item.track_simple == "drums") item.color = glutil::Color(0.1f, 0.1f, 0.1f);
else if (item.track_simple == "bass") item.color = glutil::Color(0.5f, 0.3f, 0.1f);
else item.color = glutil::Color(1.0f, 0.0f, 0.0f);
@@ -399,11 +398,10 @@ ScoreWindow::ScoreWindow(Instruments& instruments, Database& database, Dancers&
for (Dancers::iterator it = dancers.begin(); it != dancers.end();) {
ScoreItem item; item.type = ScoreItem::DANCER;
item.score = it->getScore();
+ if (item.score < 100) { it = dancers.erase(it); continue; } // Dead
item.track_simple = it->getGameMode();
item.track = it->getGameMode() + " - " + it->getDifficultyString();
- item.track[0] = toupper(item.track[0]);
- if (item.score < 100) { it = dancers.erase(it); continue; }
-
+ item.track[0] = toupper(item.track[0]); // Capitalize
item.color = glutil::Color(1.0f, 0.4f, 0.1f);
m_database.scores.push_back(item);
@@ -413,16 +411,19 @@ ScoreWindow::ScoreWindow(Instruments& instruments, Database& database, Dancers&
if (m_database.scores.empty())
m_rank = "No player!";
else {
- m_database.scores.sort();
- m_database.scores.reverse(); // top should be first
- int topScore = m_database.scores.front().score;
- if (m_database.scores.front().type == ScoreItem::SINGER) {
+ // Determine winner
+ ScoreItem winner = m_database.scores.front();
+ for (Database::cur_scores_t::const_iterator it = m_database.scores.begin(); it != m_database.scores.end(); ++it)
+ if (it->score > winner.score) winner = *it;
+ int topScore = winner.score;
+ // Determine rank
+ if (winner.type == ScoreItem::SINGER) {
if (topScore > 8000) m_rank = "Hit singer";
else if (topScore > 6000) m_rank = "Lead singer";
else if (topScore > 4000) m_rank = "Rising star";
else if (topScore > 2000) m_rank = "Amateur";
else m_rank = "Tone deaf";
- } else if (m_database.scores.front().type == ScoreItem::DANCER) {
+ } else if (winner.type == ScoreItem::DANCER) {
if (topScore > 8000) m_rank = "Maniac";
else if (topScore > 6000) m_rank = "Hoofer";
else if (topScore > 4000) m_rank = "Rising star";
|
|
From: Tapio V. <aa...@us...> - 2009-12-19 16:48:42
|
Module: performous Branch: master Commit: 7c3ea7782ecb3f10cd9b982cb8f39670cb2d40b8 Author: Tapio Vierros <tap...@gm...> Date: Sat Dec 19 18:47:01 2009 +0200 More WIP >4 panel support for dancing. Buggy and incomplete, but mostly functional now. --- game/dancegraph.cc | 52 ++++++++++++++++++++++++++++-------------------- game/dancegraph.hh | 9 +++++-- game/joystick.cc | 26 ++++++++++++------------ game/songparser-sm.cc | 26 +++++++++++++++--------- 4 files changed, 65 insertions(+), 48 deletions(-) |
|
From: Stefano A. <xa...@us...> - 2009-12-18 11:00:31
|
Module: performous
Branch: master
Commit: cb7a55a4ace2467d45c730c2fa65c2d637e34533
Author: Xaldyz <xa...@us...>
Date: Fri Dec 18 12:00:17 2009 +0100
Fixed dance screen problem under Windows
Added arrow key functionality to dance
---
game/joystick.cc | 16 ++++++++--------
game/screen_sing.cc | 6 ++++--
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 92e9005..054e112 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -320,13 +320,13 @@ bool input::SDL::pushEvent(SDL_Event _e) {
joy_id = input::Private::KEYBOARD_ID2;
switch(_e.key.keysym.sym) {
case SDLK_KP9: button = 6; break;
- case SDLK_KP8: button = 2; break;
+ case SDLK_KP8: case SDLK_UP: button = 2; break;
case SDLK_KP7: button = 7; break;
- case SDLK_KP6: button = 3; break;
+ case SDLK_KP6: case SDLK_RIGHT: button = 3; break;
case SDLK_KP5: button = 8; break;
- case SDLK_KP4: button = 0; break;
+ case SDLK_KP4: case SDLK_LEFT: button = 0; break;
case SDLK_KP3: button = 5; break;
- case SDLK_KP2: button = 1; break;
+ case SDLK_KP2: case SDLK_DOWN: button = 1; break;
case SDLK_KP1: button = 4; break;
default: return false;
}
@@ -380,13 +380,13 @@ bool input::SDL::pushEvent(SDL_Event _e) {
joy_id = input::Private::KEYBOARD_ID2;
switch(_e.key.keysym.sym) {
case SDLK_KP9: button = 6; break;
- case SDLK_KP8: button = 2; break;
+ case SDLK_KP8: case SDLK_UP: button = 2; break;
case SDLK_KP7: button = 7; break;
- case SDLK_KP6: button = 3; break;
+ case SDLK_KP6: case SDLK_RIGHT: button = 3; break;
case SDLK_KP5: button = 8; break;
- case SDLK_KP4: button = 0; break;
+ case SDLK_KP4: case SDLK_LEFT: button = 0; break;
case SDLK_KP3: button = 5; break;
- case SDLK_KP2: button = 1; break;
+ case SDLK_KP2: case SDLK_DOWN: button = 1; break;
case SDLK_KP1: button = 4; break;
default: return false;
}
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 8d1f41a..c8f653b 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -159,7 +159,9 @@ void ScreenSing::danceLayout(double time) {
}
if (time < -0.5) {
glColor4f(1.0f, 1.0f, 1.0f, clamp(-1.0 - 2.0 * time));
+ #ifndef _WIN32
m_help->draw();
+ #endif
glColor3f(1.0f, 1.0f, 1.0f);
}
}
@@ -401,9 +403,9 @@ ScoreWindow::ScoreWindow(Instruments& instruments, Database& database, Dancers&
item.track = it->getGameMode() + " - " + it->getDifficultyString();
item.track[0] = toupper(item.track[0]);
if (item.score < 100) { it = dancers.erase(it); continue; }
-
+
item.color = glutil::Color(1.0f, 0.4f, 0.1f);
-
+
m_database.scores.push_back(item);
++it;
}
|
|
From: Jaakko N. <jni...@us...> - 2009-12-18 10:06:10
|
Module: performous Branch: master Commit: 7ce5a4c2f11182d56b8cee9b2569d98ecfc71dc6 Author: Jaakko Nikkola <jni...@cc...> Date: Fri Dec 18 12:04:42 2009 +0200 Name added to authors.txt. --- docs/Authors.txt | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/docs/Authors.txt b/docs/Authors.txt index 3aae8a0..7876be1 100644 --- a/docs/Authors.txt +++ b/docs/Authors.txt @@ -46,6 +46,9 @@ Markus Raab <ich at markus-raab.org> Matti Kemppainen <mpkemppa at users.sf.net> * prototyping dance game +Jaakko Nikkola <jnikkola at users.sourceforge.net> + * Dance game developer + INACTIVE DEVELOPERS ------------------- |
|
From: Matti K. <mpk...@us...> - 2009-12-17 22:55:17
|
Module: performous Branch: master Commit: c2613b460a5986bf2a4a32dfbd27030cf1ca296c Author: Matti Kemppainen <mpk...@us...> Date: Fri Dec 18 00:53:36 2009 +0200 Added myself to authors. --- docs/Authors.txt | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/docs/Authors.txt b/docs/Authors.txt index cdb1638..3aae8a0 100644 --- a/docs/Authors.txt +++ b/docs/Authors.txt @@ -43,6 +43,8 @@ Xaldyz <xaldyz at users.sourceforge.net> Markus Raab <ich at markus-raab.org> * hiscore (xml + ultrastar format) +Matti Kemppainen <mpkemppa at users.sf.net> + * prototyping dance game INACTIVE DEVELOPERS ------------------- |
|
From: Tapio V. <aa...@us...> - 2009-12-17 13:33:29
|
Module: performous Branch: master Commit: 3f39c1f247f35add6723481c595378c6cd73631f Author: Tapio Vierros <tap...@gm...> Date: Thu Dec 17 14:39:44 2009 +0200 Refactored instrument joining a little and modified dancing for identical behaviour. Also added some comments. --- game/dancegraph.cc | 219 +++++++++++++++++++++++++++----------------------- game/dancegraph.hh | 7 +- game/guitargraph.cc | 10 ++- game/guitargraph.hh | 4 +- game/screen_sing.cc | 22 +++-- 5 files changed, 143 insertions(+), 119 deletions(-) |
|
From: Jack_MD <ja...@us...> - 2009-12-16 21:47:22
|
Module: performous
Branch: master
Commit: e6b1b3b9dde59f7c23d7116fc29d307977a35a06
Author: Daniel Lemper <da...@Ma...>
Date: Wed Dec 16 22:46:51 2009 +0100
fixed some bugs for Mac OS X
---
cmake/Modules/FindGettext.cmake | 14 ++++++++++++++
osx-utils/performous-mac_script | 5 +----
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/cmake/Modules/FindGettext.cmake b/cmake/Modules/FindGettext.cmake
index b25512c..78a62a6 100644
--- a/cmake/Modules/FindGettext.cmake
+++ b/cmake/Modules/FindGettext.cmake
@@ -21,6 +21,20 @@ if(WIN32)
set(Gettext_PROCESS_LIBS Gettext_LIBRARY)
endif()
+if(APPLE)
+ set(Gettext_LIBRARY_SEARCH_DIRS
+ /opt/local/lib
+ /sw/local/lib
+ )
+
+ find_library(Gettext_LIBRARY
+ NAMES intl
+ PATHS ${Gettext_LIBRARY_SEARCH_DIRS}
+ )
+
+ set(Gettext_PROCESS_LIBS Gettext_LIBRARY)
+endif()
+
find_path(Gettext_INCLUDE_DIR
NAMES libintl.h
PATHS ${Gettext_PKGCONF_INCLUDE_DIRS}
diff --git a/osx-utils/performous-mac_script b/osx-utils/performous-mac_script
index 087484d..348fad8 100755
--- a/osx-utils/performous-mac_script
+++ b/osx-utils/performous-mac_script
@@ -1,7 +1,4 @@
#!/bin/bash
-export PATH="$(dirname "$0")/../Resources/performous/bin":$PATH
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$(dirname "$0")/../Resources/performous/lib"
-export PERFORMOUS_DEFAULT_CONFIG_FILE="$(dirname "$0")/../Resources/performous/share/games/performous/config/performous.xml"
-export PERFORMOUS_THEME_PATH="$(dirname "$0")/../Resources/performous/share/games/performous/themes"
+export PERFORMOUS_ROOT="$(dirname "$0")/../Resources/performous"
"$(dirname "$0")/../Resources/performous/bin/performous"
|
|
From: Tapio V. <aa...@us...> - 2009-12-15 16:51:40
|
Module: performous Branch: master Commit: ebcae02eeb01fa7fa80b3b05807e3a9000a40451 Author: Tapio Vierros <tap...@gm...> Date: Tue Dec 15 18:50:06 2009 +0200 Instruments can join during song and dead can re-enter. Also added some comments. --- game/guitargraph.cc | 126 +++++++++++++++++++++++++------------ game/guitargraph.hh | 9 ++- game/screen_sing.cc | 31 +++++----- themes/default/instrumenthelp.svg | 14 ++-- 4 files changed, 114 insertions(+), 66 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2009-12-15 11:47:34
|
Module: performous
Branch: master
Commit: ea5083c2bfbf97b51dbada61559dd72ac39d3fcc
Author: Tapio Vierros <tap...@gm...>
Date: Tue Dec 15 13:45:11 2009 +0200
Two bug fixes for instruments.
* Fixed a bug in hold releasing introduced by previous 'fix'.
* Drum streak counter now resets if whole chord wasn't played.
---
game/guitargraph.cc | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 4775d21..5313784 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -174,6 +174,8 @@ void GuitarGraph::engine() {
}
// Skip missed notes
while (m_chordIt != m_chords.end() && m_chordIt->begin + maxTolerance < time) {
+ if ( (m_drums && m_chordIt->status != m_chordIt->polyphony)
+ || (!m_drums && m_chordIt->status == 0) ) endStreak();
++m_chordIt;
++m_dead;
}
@@ -246,6 +248,9 @@ void GuitarGraph::endHold(int fret, double time) {
void GuitarGraph::fail(double time, int fret) {
std::cout << "MISS" << std::endl;
if (fret == -2) return; // Tapped note
+ if (fret == -1) {
+ for (int i = 0; i < 5; ++i) endHold(i, time);
+ }
if (m_starpower.get() < 0.01) {
m_events.push_back(Event(time, 0, fret));
if (fret < 0) fret = std::rand();
@@ -302,7 +307,6 @@ void GuitarGraph::guitarPlay(double time, input::Event const& ev) {
if (picked) {
for (int fret = 0; fret < 5; ++fret) {
frets[fret] = ev.pressed[fret];
- endHold(fret);
}
} else {
if (m_correctness.get() < 0.5 && m_starpower.get() < 0.001) return; // Hammering not possible at the moment
|
|
From: Tapio V. <aa...@us...> - 2009-12-15 08:27:50
|
Module: performous Branch: master Commit: 2636b337d8455dbd56729ea71cf896191af8a710 Author: Tapio Vierros <tap...@gm...> Date: Tue Dec 15 10:25:00 2009 +0200 Several fixes * Wrong initial main menu item when no instruments * Practice and config can now be navigated with instruments * Guitar tappable holds got their releaseTime set unnecessarily --- game/guitargraph.cc | 2 +- game/joystick.cc | 22 +++++++++++----------- game/joystick.hh | 5 +++-- game/screen_configuration.cc | 28 +++++++++++----------------- game/screen_practice.cc | 36 ++++++++---------------------------- game/screen_practice.hh | 1 - 6 files changed, 34 insertions(+), 60 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2009-12-14 23:15:36
|
Module: performous Branch: master Commit: ff9df14bf781bf6b2644b869dfdd208d07647c48 Author: Tapio Vierros <tap...@gm...> Date: Tue Dec 15 01:10:33 2009 +0200 Added abstraction layer to menu navigation keys. Now all instruments and keyboard can be tested for a menu action at once. Main menu and song browser converted. --- docs/instruments.txt | 12 ++++++ game/joystick.cc | 82 ++++++++++++++++++++++++++++++++++++++--- game/joystick.hh | 5 ++- game/screen_intro.cc | 19 ++++----- game/screen_songs.cc | 100 ++++++++++++++++---------------------------------- game/screen_songs.hh | 3 +- 6 files changed, 134 insertions(+), 87 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2009-12-14 17:12:51
|
Module: performous Branch: master Commit: b9a89ab75baca58cb7c22bd96c6440ad147ec1be Author: Tapio Vierros <tap...@gm...> Date: Mon Dec 14 18:56:33 2009 +0200 Added keyboard_dancepad config var and remapped dance keys to numpad. --- data/schema.xml | 6 ++ game/joystick.cc | 201 ++++++++++++++++++++++++++++++++--------------------- game/joystick.hh | 16 +++-- 3 files changed, 137 insertions(+), 86 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2009-12-14 14:43:53
|
Module: performous
Branch: master
Commit: e536449de1310d79701fc3967e05eeeabcfe0a2e
Author: Tapio Vierros <tap...@gm...>
Date: Mon Dec 14 16:40:09 2009 +0200
Fixes to disappearing instrument notes.
* No more 'jumping' when note is played early
* Drum chords handled correctly
* Drum bass pedal disappears also
---
game/guitargraph.cc | 11 ++++++-----
game/guitargraph.hh | 5 +++--
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index d4d748a..46b62e0 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -512,10 +512,10 @@ void GuitarGraph::draw(double time) {
c.r += glow;
c.g += glow;
c.b += glow;
- if (glow > 0.5f && tEnd < 0.1f && it->hitAnim.get() == 0.0)
- it->hitAnim.setTarget(1.0);
+ if (glow > 0.5f && tEnd < 0.1f && it->hitAnim[fret].get() == 0.0)
+ it->hitAnim[fret].setTarget(1.0);
// Call the actual note drawing function
- drawNote(fret, c, tBeg, tEnd, whammy, it->tappable, glow > 0.5f, it->hitAnim.get(),
+ drawNote(fret, c, tBeg, tEnd, whammy, it->tappable, glow > 0.5f, it->hitAnim[fret].get(),
it->releaseTimes[fret] > 0.0 ? it->releaseTimes[fret] - time : 0.0);
}
}
@@ -561,11 +561,12 @@ void GuitarGraph::drawNote(int fret, glutil::Color c, float tBeg, float tEnd, fl
float x = -2.0f + fret;
if (m_drums) x -= 0.5f;
if (m_drums && fret == 0) {
+ if (hit || hitAnim > 0) return;
c.a = time2a(tBeg); glColor4fv(c);
- drawBar(tBeg, 0.01f);
+ drawBar(tBeg, 0.015f);
return;
}
- float yBeg = (hit || hitAnim > 0) ? time2y(0.0) : time2y(tBeg);
+ float yBeg = (hit || hitAnim > 0) ? std::min(time2y(0.0), time2y(tBeg)): time2y(tBeg);
float yEnd = time2y(tEnd);
if (yBeg - 2 * fretWid >= yEnd) {
if (releaseTime != 0.0 && tEnd - releaseTime > 0.1) yBeg = time2y(releaseTime);
diff --git a/game/guitargraph.hh b/game/guitargraph.hh
index b9ec155..833fc80 100644
--- a/game/guitargraph.hh
+++ b/game/guitargraph.hh
@@ -22,11 +22,12 @@ struct Chord {
bool tappable;
int status; // Guitar: 0 = not played, 10 = tapped, 20 = picked, 30 = released, drums: number of pads hit
int score;
- AnimValue hitAnim;
+ AnimValue hitAnim[5];
double releaseTimes[5];
- Chord(): begin(), end(), polyphony(), tappable(), status(), score(), hitAnim(0.0, 1.5) {
+ Chord(): begin(), end(), polyphony(), tappable(), status(), score() {
std::fill(fret, fret + 5, false);
std::fill(dur, dur + 5, static_cast<Duration const*>(NULL));
+ std::fill(hitAnim, hitAnim + 5, AnimValue(0.0, 1.5));
std::fill(releaseTimes, releaseTimes + 5, 0.0);
}
bool matches(bool const* fretPressed) {
|
|
From: Yoda-JM <yo...@us...> - 2009-12-13 21:20:53
|
Module: performous Branch: master Commit: 01c90e220f6e42dd791fe6bcf3dd90ec491c9a53 Author: Vincent Le Ligeour <yo...@us...> Date: Sun Dec 13 22:20:15 2009 +0100 Fixed performous SEE ALSO link --- docs/ss_cover_conv.1 | 2 +- docs/ss_pak_extract.1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ss_cover_conv.1 b/docs/ss_cover_conv.1 index e098f90..a2f69b6 100644 --- a/docs/ss_cover_conv.1 +++ b/docs/ss_cover_conv.1 @@ -18,4 +18,4 @@ Output image (format will be automatically detected) .SH "DESCRIPTION" Tool for converting internal Singstar song cover (TX2 format) into a standard format .SH "SEE ALSO" -\fIperformous\fR(1) +\fIperformous\fR(6) diff --git a/docs/ss_pak_extract.1 b/docs/ss_pak_extract.1 index 67e286e..fa60bfb 100644 --- a/docs/ss_pak_extract.1 +++ b/docs/ss_pak_extract.1 @@ -14,4 +14,4 @@ List files from \fBfile.pak\fR pak file to stdout. .SH "DESCRIPTION" Tool for reading general PAK files (used by Singstar) .SH "SEE ALSO" -\fIperformous\fR(1) +\fIperformous\fR(6) |
|
From: Yoda-JM <yo...@us...> - 2009-12-13 21:20:48
|
Module: performous Branch: master Commit: 4e906818228fce81b9987bae308ff80ee25578ae Author: Vincent Le Ligeour <yo...@us...> Date: Sun Dec 13 22:18:50 2009 +0100 Fixed latest tool man page --- docs/ss_pak_extract.1 | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/ss_pak_extract.1 b/docs/ss_pak_extract.1 index 5ff3ada..67e286e 100644 --- a/docs/ss_pak_extract.1 +++ b/docs/ss_pak_extract.1 @@ -1,16 +1,17 @@ -.TH "" "" "" "" "" +.TH "ss_pak_extract" "1" "" "" "" .SH "NAME" -performous\-tools \- Tools for Performous karaoke game +ss_pak_extract \- Tool for reading general PAK files (used by Singstar) .SH "SYNOPSIS" -\fBss_extract\fR [\-h|\-\-help] [\-\-dvd arg] [\-l|\-\-list] [\-\-song arg] [\-\-video arg] [\-\-audio arg] -\fBss_adpcm_decode\fR [\-h|\-\-help] [archive.pak] input.mib output.wav -\fBss_cover_conv\fR [\-h|\-\-help] [pak_file] [track_id] [output_image] -\fBss_ipu_conv\fR [\-h|\-\-help] infile.ipu outfile.m2v -\fBss_ipu_decode\fR [\-h|\-\-help] input output +.TP \fBss_pak_extract\fR [\-h|\-\-help] file.pak \-\-extract [files] +Extract \fBfiles\fR from \fBfile.pak\fR pak file. +.TP \fBss_pak_extract\fR file.pak \-\-dump file +Dump \fBfile\fR content from \fBfile.pak\fR pak file to stdout. +.TP \fBss_pak_extract\fR file.pak \-\-list +List files from \fBfile.pak\fR pak file to stdout. .SH "DESCRIPTION" -Tools for converting original Singstar DVDs to the format used by Performous. +Tool for reading general PAK files (used by Singstar) .SH "SEE ALSO" \fIperformous\fR(1) |
|
From: Yoda-JM <yo...@us...> - 2009-12-13 21:20:44
|
Module: performous
Branch: master
Commit: 6ba064352c0b55eada9ae9c66d58d0f4122a911e
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Dec 13 22:09:07 2009 +0100
Changed tools man section
---
docs/CMakeLists.txt | 9 +++++----
docs/{ss_adpcm_decode.3 => ss_adpcm_decode.1} | 0
docs/{ss_cover_conv.3 => ss_cover_conv.1} | 0
docs/{ss_extract.3 => ss_extract.1} | 0
docs/{ss_ipu_conv.3 => ss_ipu_conv.1} | 0
docs/{ss_ipu_decode.3 => ss_ipu_decode.1} | 0
docs/{ss_pak_extract.3 => ss_pak_extract.1} | 0
7 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index 4164d9f..d4f0c76 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -23,9 +23,10 @@ if(UNIX)
endif(HELP2MAN AND GZIP)
if(ENABLE_TOOLS AND GZIP)
set(TOOLS "ss_pak_extract" "ss_extract" "ss_cover_conv" "ss_adpcm_decode" "ss_ipu_decode" "ss_ipu_conv")
+ set(MAN_SECTION "1")
foreach(TOOL ${TOOLS})
- set(TOOL_MANFILE ${CMAKE_CURRENT_SOURCE_DIR}/${TOOL}.3)
- set(TOOL_MANFILE_GZ ${CMAKE_CURRENT_BINARY_DIR}/${TOOL}.3.gz)
+ set(TOOL_MANFILE ${CMAKE_CURRENT_SOURCE_DIR}/${TOOL}.${MAN_SECTION})
+ set(TOOL_MANFILE_GZ ${CMAKE_CURRENT_BINARY_DIR}/${TOOL}.${MAN_SECTION}.gz)
add_custom_command(
OUTPUT ${TOOL_MANFILE_GZ}
COMMAND ${GZIP} -c ${TOOL_MANFILE} > ${TOOL_MANFILE_GZ}
@@ -33,8 +34,8 @@ if(UNIX)
COMMENT "Building ${TOOL} man page"
VERBATIM
)
- add_custom_target(${TOOL}.3 ALL DEPENDS ${TOOL_MANFILE_GZ})
- install(FILES ${TOOL_MANFILE_GZ} DESTINATION share/man/man3)
+ add_custom_target(${TOOL}.${MAN_SECTION} ALL DEPENDS ${TOOL_MANFILE_GZ})
+ install(FILES ${TOOL_MANFILE_GZ} DESTINATION share/man/man${MAN_SECTION})
endforeach(TOOL)
endif(ENABLE_TOOLS AND GZIP)
endif(UNIX)
diff --git a/docs/ss_adpcm_decode.3 b/docs/ss_adpcm_decode.1
similarity index 100%
rename from docs/ss_adpcm_decode.3
rename to docs/ss_adpcm_decode.1
diff --git a/docs/ss_cover_conv.3 b/docs/ss_cover_conv.1
similarity index 100%
rename from docs/ss_cover_conv.3
rename to docs/ss_cover_conv.1
diff --git a/docs/ss_extract.3 b/docs/ss_extract.1
similarity index 100%
rename from docs/ss_extract.3
rename to docs/ss_extract.1
diff --git a/docs/ss_ipu_conv.3 b/docs/ss_ipu_conv.1
similarity index 100%
rename from docs/ss_ipu_conv.3
rename to docs/ss_ipu_conv.1
diff --git a/docs/ss_ipu_decode.3 b/docs/ss_ipu_decode.1
similarity index 100%
rename from docs/ss_ipu_decode.3
rename to docs/ss_ipu_decode.1
diff --git a/docs/ss_pak_extract.3 b/docs/ss_pak_extract.1
similarity index 100%
rename from docs/ss_pak_extract.3
rename to docs/ss_pak_extract.1
|
|
From: Yoda-JM <yo...@us...> - 2009-12-13 21:20:40
|
Module: performous
Branch: master
Commit: d691c8f544d77787dd6b29a35d6c1dfdf5ce795a
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Dec 13 22:04:38 2009 +0100
Added tools man pages and fixed some typos
---
docs/ss_adpcm_decode.3 | 18 ++++++++++++++++++
docs/ss_cover_conv.3 | 21 +++++++++++++++++++++
docs/ss_extract.3 | 27 +++++++++++++++++++++++++++
docs/ss_ipu_conv.3 | 15 +++++++++++++++
docs/ss_ipu_decode.3 | 15 +++++++++++++++
docs/ss_pak_extract.3 | 16 ++++++++++++++++
tools/cover_conv.cpp | 2 +-
tools/ipu_decode.cpp | 4 ++--
8 files changed, 115 insertions(+), 3 deletions(-)
diff --git a/docs/ss_adpcm_decode.3 b/docs/ss_adpcm_decode.3
index e69de29..aaf64eb 100644
--- a/docs/ss_adpcm_decode.3
+++ b/docs/ss_adpcm_decode.3
@@ -0,0 +1,18 @@
+.TH "ss_adpcm_decode" "1" "" "" ""
+.SH "NAME"
+ss_adpcm_decode \- Tool for converting ADPCM Singstar audio format to WAV
+.SH "SYNOPSIS"
+\fBss_adpcm_decode\fR [archive.pak] input.mib output.wav
+.TP
+[ \fBarchive.pak\fR ]
+Optional Singstar archive name to look in
+.TP
+\fBinput.mib\fR
+ADPCM source file
+.TP
+\fBoutput.wav\fR
+WAV destination file
+.SH "DESCRIPTION"
+Tool for converting ADPCM Singstar audio format to WAV
+.SH "SEE ALSO"
+\fIperformous\fR(6)
diff --git a/docs/ss_cover_conv.3 b/docs/ss_cover_conv.3
index e69de29..e098f90 100644
--- a/docs/ss_cover_conv.3
+++ b/docs/ss_cover_conv.3
@@ -0,0 +1,21 @@
+.TH "ss_cover_conv" "1" "" "" ""
+.SH "NAME"
+ss_cover_conv \- Tool for converting Singstar song cover
+.SH "SYNOPSIS"
+\fBss_cover_conv\fR [\-h|\-\-help] pak_file track_id output_image
+.TP
+\fB\-h\fR [ \fB\-\-help\fR ]
+you are viewing it
+.TP
+\fBpak_file\fR
+Singstar Pak file to look in
+.TP
+\fBtrack_id\fR
+Singstar track id to extract
+.TP
+\fBoutput_image\fR
+Output image (format will be automatically detected)
+.SH "DESCRIPTION"
+Tool for converting internal Singstar song cover (TX2 format) into a standard format
+.SH "SEE ALSO"
+\fIperformous\fR(1)
diff --git a/docs/ss_extract.3 b/docs/ss_extract.3
index e69de29..5395e09 100644
--- a/docs/ss_extract.3
+++ b/docs/ss_extract.3
@@ -0,0 +1,27 @@
+.TH ss_extract "1" "" "" ""
+.SH "NAME"
+ss_extract \- Tool for converting Singstar DVDs to Ultrastar format
+.SH "SYNOPSIS"
+\fBss_extract\fR [\-h|\-\-help] [\-\-dvd arg] [\-l|\-\-list] [\-\-song arg] [\-\-video arg] [\-\-audio arg]
+.TP
+\fB\-h\fR [ \fB\-\-help\fR ]
+you are viewing it
+.TP
+\fB\-\-dvd\fR arg
+path to Singstar DVD root
+.TP
+\fB\-l\fR [ \fB\-\-list\fR ]
+list tracks only
+.TP
+\fB\-\-song\fR arg
+only extract the given track (ID or partial name)
+.TP
+\fB\-\-video\fR arg (=mkv)
+specify video format (none, mkv, mpeg2)
+.TP
+\fB\-\-audio\fR arg (=ogg)
+specify audio format (none, ogg, wav)
+.SH "DESCRIPTION"
+Tool for converting original Singstar DVDs to the format used by Performous.
+.SH "SEE ALSO"
+\fIperformous\fR(6)
diff --git a/docs/ss_ipu_conv.3 b/docs/ss_ipu_conv.3
index e69de29..32eee37 100644
--- a/docs/ss_ipu_conv.3
+++ b/docs/ss_ipu_conv.3
@@ -0,0 +1,15 @@
+.TH "ss_ipu_conv" "1" "" "" ""
+.SH "NAME"
+ss_ipu_conv \- Tool for converting Singstar videos
+.SH "SYNOPSIS"
+\fBss_ipu_conv\fR infile.ipu outfile.m2v
+.TP
+\fBinfile.ipu\fR
+Singstar ipu video file
+.TP
+\fBoutfile.m2v\fR
+Video output file (MPEG2-Video)
+.SH "DESCRIPTION"
+Tool for converting Singstar videos
+.SH "SEE ALSO"
+\fIperformous\fR(6)
diff --git a/docs/ss_ipu_decode.3 b/docs/ss_ipu_decode.3
index e69de29..8517b65 100644
--- a/docs/ss_ipu_decode.3
+++ b/docs/ss_ipu_decode.3
@@ -0,0 +1,15 @@
+.TH "ss_ipu_decode" "1" "" "" ""
+.SH "NAME"
+ss_ipu_decode \- Tool for decoding Singstar videos
+.SH "SYNOPSIS"
+\fBss_ipu_decode\fR input output
+.TP
+\fBinput\fR
+Singstar ipu video file
+.TP
+\fBoutput\fR
+Video output file
+.SH "DESCRIPTION"
+Tool for decoding Singstar videos
+.SH "SEE ALSO"
+\fIperformous\fR(6)
diff --git a/docs/ss_pak_extract.3 b/docs/ss_pak_extract.3
index e69de29..5ff3ada 100644
--- a/docs/ss_pak_extract.3
+++ b/docs/ss_pak_extract.3
@@ -0,0 +1,16 @@
+.TH "" "" "" "" ""
+.SH "NAME"
+performous\-tools \- Tools for Performous karaoke game
+.SH "SYNOPSIS"
+\fBss_extract\fR [\-h|\-\-help] [\-\-dvd arg] [\-l|\-\-list] [\-\-song arg] [\-\-video arg] [\-\-audio arg]
+\fBss_adpcm_decode\fR [\-h|\-\-help] [archive.pak] input.mib output.wav
+\fBss_cover_conv\fR [\-h|\-\-help] [pak_file] [track_id] [output_image]
+\fBss_ipu_conv\fR [\-h|\-\-help] infile.ipu outfile.m2v
+\fBss_ipu_decode\fR [\-h|\-\-help] input output
+\fBss_pak_extract\fR [\-h|\-\-help] file.pak \-\-extract [files]
+\fBss_pak_extract\fR file.pak \-\-dump file
+\fBss_pak_extract\fR file.pak \-\-list
+.SH "DESCRIPTION"
+Tools for converting original Singstar DVDs to the format used by Performous.
+.SH "SEE ALSO"
+\fIperformous\fR(1)
diff --git a/tools/cover_conv.cpp b/tools/cover_conv.cpp
index a0ede50..af70268 100644
--- a/tools/cover_conv.cpp
+++ b/tools/cover_conv.cpp
@@ -9,7 +9,7 @@
int main( int argc, char **argv) {
if(argc != 4 ) {
- std::cout << "Usage: " << argv[0] << " [pak_file] [track_id] [output_image]" << std::endl;
+ std::cout << "Usage: " << argv[0] << " [-h|--help] pak_file track_id output_image" << std::endl;
return EXIT_FAILURE;
}
diff --git a/tools/ipu_decode.cpp b/tools/ipu_decode.cpp
index dec7587..90373d3 100644
--- a/tools/ipu_decode.cpp
+++ b/tools/ipu_decode.cpp
@@ -110,13 +110,13 @@ int main( int argc, char** argv) {
struct IPUFile ipu;
if( argc < 3 ) {
- std::cout << "Usage: " << argv[0] << "input output" << std::endl;
+ std::cout << "Usage: " << argv[0] << " input output" << std::endl;
return EXIT_FAILURE;
}
m_f1.open(argv[1], std::ios::binary);
m_f2.open(argv[2], std::ios::binary);
- if (!m_f1.is_open()) throw std::runtime_error("Could not open PAK file");
+ if (!m_f1.is_open()) throw std::runtime_error("Could not open IPU file");
m_f1.seekg(0x4, std::ios::cur);
m_f1.read((char*)&ipu.file_size,sizeof(int));
|
|
From: Yoda-JM <yo...@us...> - 2009-12-13 20:43:47
|
Module: performous
Branch: master
Commit: 3cde3560173c00055358466a0ad100ed4e48a83a
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Dec 13 21:10:27 2009 +0100
Fixed some compilation warnings
---
game/joystick.hh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/joystick.hh b/game/joystick.hh
index 11cc2d7..283c566 100644
--- a/game/joystick.hh
+++ b/game/joystick.hh
@@ -19,7 +19,7 @@ namespace input {
enum DevType { GUITAR, DRUMS, DANCEPAD };
static const std::size_t BUTTONS = 10;
- static const std::size_t STARPOWER_BUTTON = 5;
+ static const int STARPOWER_BUTTON = 5;
struct Event {
enum Type { PRESS, RELEASE, PICK, WHAMMY };
|
|
From: Tapio V. <aa...@us...> - 2009-12-13 16:03:59
|
Module: performous Branch: master Commit: 890d46d9684fc362af12c29b284f6fa46dd7e899 Author: Tapio Vierros <tap...@gm...> Date: Sun Dec 13 17:15:28 2009 +0200 Perhaps a better dancer icon. --- themes/default/instruments.svg | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2009-12-13 13:48:28
|
Module: performous Branch: master Commit: 921277472b36babce801373e761e2a0a3d0e1c40 Author: Tapio Vierros <tap...@gm...> Date: Sun Dec 13 15:47:17 2009 +0200 Some code for dance track selection and >4 lines support. Also some clean-up and initial inclusion of Rolls and Lifts. None of the additions are ready and game crashes if other than 'dance-single is played. --- game/dancegraph.cc | 63 ++++++++++++++++++++++++++++++------------------ game/dancegraph.hh | 4 ++- game/notes.cc | 2 +- game/notes.hh | 3 +- game/songparser-sm.cc | 60 +++++++++++++++++++++++++--------------------- 5 files changed, 77 insertions(+), 55 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-12-13 13:18:10
|
Module: performous
Branch: master
Commit: da7b10629e29051a00a0320a0b51eef9f9893a61
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Dec 13 15:16:50 2009 +0200
Fix infinite loop on sm parser (not tested)
---
game/songparser-sm.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index abbf33e..0d20e1c 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -120,7 +120,7 @@ bool SongParser::smParseField(std::string line) {
//In case the value continues to several lines, all text before the ending character ';' is read to single line.
while (value[value.size() -1] != ';') {
std::string str;
- getline (str);
+ if (!getline (str)) throw std::runtime_error("Invalid format, semicolon missing after value of " + key);
value += boost::trim_copy(str);
}
value = value.substr(0, value.size() - 1); //Here the end character(';') is eliminated
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-12-13 13:18:09
|
Module: performous
Branch: master
Commit: 5c8ea915ccc756ece96cbe5905203b940f57adad
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Dec 13 15:16:35 2009 +0200
USE_PORTMIDI fix
---
game/joystick.hh | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/joystick.hh b/game/joystick.hh
index 13035e2..11cc2d7 100644
--- a/game/joystick.hh
+++ b/game/joystick.hh
@@ -11,7 +11,7 @@
#include "xtime.hh"
#include "configuration.hh"
-#ifdef HAVE_PORTMIDI
+#ifdef USE_PORTMIDI
#include "portmidi.hh"
#endif
@@ -150,7 +150,7 @@ namespace input {
bool pushEvent(SDL_Event);
}
-#ifdef HAVE_PORTMIDI
+#ifdef USE_PORTMIDI
class MidiDrums {
public:
MidiDrums(int devId);
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-12-13 12:07:38
|
Module: web Branch: master Commit: 83c4c38d77f0e870e54099d0b6b0400c9c2e677f Author: Lasse Karkkainen <tro...@tr...> Date: Sun Dec 13 14:07:23 2009 +0200 Audio config updates to manual --- htdocs-source/manual.txt | 36 +++++++++++++++++++++++++----------- 1 files changed, 25 insertions(+), 11 deletions(-) diff --git a/htdocs-source/manual.txt b/htdocs-source/manual.txt index bd49f99..63d516b 100644 --- a/htdocs-source/manual.txt +++ b/htdocs-source/manual.txt @@ -4,16 +4,6 @@ Documentation You may put all songs to ~/.ultrastar/songs or to /usr/local/share/games/ultrastar/songs, even if they are not in UltraStar format. In future versions we will provide something Performous-specific and possibly also look for Frets on Fire song folders. -:h2:Setting up audio output - -Usually Performous can automatically figure out how to output audio, but if you have multiple sound cards or otherwise problematic setup, you may need to specify it manually. Use --pdev <device string> to set the audio API (alsa, pulse, jack, ...). Some devices also take parameters, e.g. alsa:plughw:0,2 will use driver alsa with ALSA device string "plughw:0,2" (conversion plugin + first sound card and the third subdevice of that). Use --pdevhelp to get the list of available devices and further help. - -:h2:Setting up mics - -The same as audio outputs, mics are normally detected automatically. --mics may be used for manual configuration and --michelp displays the list of devices and their usage. You may also specify the mics option multiple times to use more than one sound card, if you have many. - -If you don't specify anything, Performous defaults to two microphones and will prefer the SingStar or Rock Band ones, if available. - :h2:Singing @@ -79,6 +69,27 @@ The maximum number of points is always 10000. Hitting all the notes correctly is Picking or drumming incorrectly will reduce your points slightly, but the score cannot go below 0. +:h2:Audio configuration + +Normally Performous detects everything automatically and just works. This process may, however, fail if other applications are keeping your sound card to themselves or if you have strange audio hardware. + +One problem worth a special mention is PulseAUdio, an audio server used by modern Linux distros. If you are having any audio issues, try starting Performous with PulseAudio suspended: + + pasuspender -- performous + +The pasuspender program comes with PulseAudio utilities. + +:h3:Audio playback (if autodetection fails) + +Use --pdev <device string> to set the audio API (alsa, pulse, jack, ...). Some devices also take parameters, e.g. alsa:plughw:0,2 will use driver alsa with ALSA device string "plughw:0,2" (conversion plugin + first sound card and the third subdevice of that). Use --pdevhelp to get the list of available devices and further help. + +:h3:Microphones (if autodetection fails) + +--mics may be used for manual configuration and --michelp displays the list of devices and their usage. You may also specify the mics option multiple times to use more than one sound card, if you have many. + +If you don't specify anything, Performous defaults to two microphones and will prefer the SingStar or Rock Band ones, if available. + + :h2:Adjusting audio sync Usually it takes a fraction of a second for the sound to come out of the speakers after it has been sent out by Performous. Similarly, there's a delay on audio input. Some flat panel displays also introduce rather long delay from when the image is rendered to when it is actually displayed. Performous has to compensate for all these latencies in order to allow smooth gameplay. @@ -97,10 +108,11 @@ While in singing screen, press <strong>F4</strong> to enter synth mode, which wi :h3:Tips for reducing audio latency -In order to see your singing on screen as realtime as possible, you should try to minimize the audio input latency and the video output latency. The video output latency can be affected by frame rate and by your display, but there is little you can do about it, and also the amount of latency is usually not more than 50 milliseconds at most. The audio input latency is affected by resampling/mixing audio servers such as Pulseaudio. Preferrably you should use ALSA or JACK directly with your card, as this will provide the minimum latency. +In order to see your singing on screen as realtime as possible, you should try to minimize the audio input latency and the video output latency. The video output latency can be affected by frame rate and by your display, but there is little you can do about it, and also the amount of latency is usually not more than 50 milliseconds at most. The audio input latency is affected by resampling/mixing audio servers such as PulseAudio. Preferrably you should use ALSA or JACK directly with your card, as this will provide the minimum latency. Using analog connection to your stereo instead of S/PDIF can also often reduce the latency slightly. + :h2:Configuration menu Most settings are modifiable via the config menu but unfortunately it does not currently allow modifying any options with text in them. These may need to be specified with commandline options or input directly to the XML config file. @@ -109,10 +121,12 @@ Press Ctrl+S to save the currently active settings after changes or to store the See the keys page for more information. + :h2:Making songs Performous does not currently contain (useful) song editor. UltraStar format songs can be modified with a text editor or with one of the many available editors such as <a href="http://www.yass-along.com/home.html">YASS</a>. FoF format songs can be modified and created with a MIDI sequencer like <a href="http://www.rosegardenmusic.com/">Rosegarden</a>. It is recommended to use an existing song as a template when making a new one. With both formats, you need audio tracks (background with or without vocals and each instrument needs a separate track) in MP3 or other supported format and it is also good to have a cover image and a background video or image. + :h2:IRC channel You can reach us at <a href="irc://irc.freenode.net/performous">#performous</a> on Freenode. If you are not familiar with IRC, you can use <a href="http://webchat.freenode.net/?channels=#performous" target="performous_irc">webchat</a>. |