excellent! that will be a lot easier than dumping the data to 2 files just to run a simple fgetc on one line. thanks again. in case you’re curious, i am changing the key of songs. i finally got it working yesterday. i had to match up each chord with a number. i used an array to “count” between the original chords and the new key chords. not fun, but it works.
this part grabs the data and converts it to numbers:
[php]//converts the current and desired song keys into numbers
$file=fopen(“songs/” . $song_filename,“r”) or exit(“Unable to open file!”);
$null = trim(fgets($file));
$song_key = trim(fgets($file));
fclose($file);
if ($song_key == “Am”) $song_key = “A”;
if ($song_key == “Bm”) $song_key = “B”;
if ($song_key == “Cm”) $song_key = “C”;
if ($song_key == “Dm”) $song_key = “D”;
if ($song_key == “Em”) $song_key = “E”;
if ($song_key == “Fm”) $song_key = “F”;
if ($song_key == “Gm”) $song_key = “G”;
$chords_array = array(“A”,“B”,“C”,“D”,“E”,“F”,“G”,“A”,“B”,“C”,“D”,“E”,“F”,“G”,“A”,“B”,“C”,“D”,“E”,“F”,“G”);
if ($song_key == “A”) $song_key_number = 7;
if ($song_key == “B”) $song_key_number = 8;
if ($song_key == “C”) $song_key_number = 9;
if ($song_key == “D”) $song_key_number = 10;
if ($song_key == “E”) $song_key_number = 11;
if ($song_key == “F”) $song_key_number = 12;
if ($song_key == “G”) $song_key_number = 13;
if ($desired_song_key == “A”) $desired_song_key_number = 7;
if ($desired_song_key == “B”) $desired_song_key_number = 8;
if ($desired_song_key == “C”) $desired_song_key_number = 9;
if ($desired_song_key == “D”) $desired_song_key_number = 10;
if ($desired_song_key == “E”) $desired_song_key_number = 11;
if ($desired_song_key == “F”) $desired_song_key_number = 12;
if ($desired_song_key == “G”) $desired_song_key_number = 13;
if ($song_key_number > $desired_song_key_number) $song_key_shift = $song_key_number - $desired_song_key_number;
if ($song_key_number < $desired_song_key_number) $song_key_shift = $desired_song_key_number - $song_key_number;
if ($song_key_number == $desired_song_key_number) $song_key_shift = 0;[/php]
then i used the array as a counter to move up/down the octave:
[php]if ($song_key_number < $desired_song_key_number)
{
if ($one_character == “A”) $xone_character = $chords_array[7+$song_key_shift];
if ($one_character == “B”) $xone_character = $chords_array[8+$song_key_shift];
if ($one_character == “C”) $xone_character = $chords_array[9+$song_key_shift];
if ($one_character == “D”) $xone_character = $chords_array[10+$song_key_shift];
if ($one_character == “E”) $xone_character = $chords_array[11+$song_key_shift];
if ($one_character == “F”) $xone_character = $chords_array[12+$song_key_shift];
if ($one_character == “G”) $xone_character = $chords_array[13+$song_key_shift];
}
if ($song_key_number > $desired_song_key_number)
{
if ($one_character == “A”) $xone_character = $chords_array[7-$song_key_shift];
if ($one_character == “B”) $xone_character = $chords_array[8-$song_key_shift];
if ($one_character == “C”) $xone_character = $chords_array[9-$song_key_shift];
if ($one_character == “D”) $xone_character = $chords_array[10-$song_key_shift];
if ($one_character == “E”) $xone_character = $chords_array[11-$song_key_shift];
if ($one_character == “F”) $xone_character = $chords_array[12-$song_key_shift];
if ($one_character == “G”) $xone_character = $chords_array[13-$song_key_shift];
}
if ($song_key_number == $desired_song_key_number) $xone_character = $one_character;
if ($one_character == “b”) $xone_character = “b”;
if ($one_character == “m”) $xone_character = “m”;
if ($one_character == “#”) $xone_character = “#”;
if ($one_character == “7”) $xone_character = “7”;
if ($one_character == " ") $xone_character = " ";
if ($one_character == “”) $xone_character = “”;
$song_data .= $xone_character;[/php]
it all comes together in the $song_data variable, which gets dumped to separate files in 24-line chunks, or however many lines the config file specifies:
[php]$presentation_song_filename = $song_filename . " (" . $page_number . " of " . $page_count . “)”;
if (file_exists(“presentation_songs/” . $presentation_song_filename))
{
echo ‘’;
echo ‘
’;
echo ‘
’;
echo ‘Whoops! It looks like you already added this song to the presentation:’;
echo ‘
’;
echo ‘"’ . $song_filename . ‘"’;
echo ‘
’;
echo ‘’;
echo ‘
’;
echo ‘’;
echo ‘Go Back’;
exit;
}
$file2=fopen(“presentation_songs/” . $presentation_song_filename,“w+”) or exit(“Unable to open file!”);
fputs($file2, $slide_count . “\n”);
fputs($file2, $song_key . “\n”);
fputs($file2, $song_speed . “\n”);
fputs($file2, $song_data);
fclose($file2);[/php]
i had some fun with this one!