Esempio n. 1
0
function getNoteIntervalOnScale($scale, $originalNote, $intervalInScale=2)
{
	($intervalInScale > 0) ? ($intervalInScale--) : ($intervalInScale++); // this is a interval, so 2 is a 3rd, 4 is a 5th, and so on... therefore correcting for human readability
	($intervalInScale > 0) ? ($way = 'UP') : ($way = 'DOWN');
	$originalDegree = getDegreeWithOctaveFromNote($originalNote, $scale, $way);
	
	//$degree = $originalDegree['degree'] + $intervalInScale;
	//$octave = $originalDegree['octave'];
	
	$newDegree = getDegreeAndOctave($scale, $originalDegree['degree'] + $intervalInScale, $originalDegree['octave']);
	/*
	while ($degree < 0)
	{
		$degree += count($scale['notes']);
		$octave--;
	}
	while ($degree >= count($scale['notes']))
	{
		$degree -= count($scale['notes']);
		$octave++;
	}
	*/
	return getNoteFromDegree($scale, $newDegree['octave'], $newDegree['degree']);
}
Esempio n. 2
0
<?php

require_once (__DIR__.'/functions.php');
//$genome = array(createGenome($scales['major'], 2, 16, 8), createGenome($scales['major']));

//getNoteInProximityOnScale($scales['major'], 20, 3)

//var_dump (getDegreeWithOctaveFromNote(getNoteFromTriad($scales['major'], 1),$scales['major']));

var_dump (getDegreeWithOctaveFromNote(getNoteOnNativeChord($scales['major'], 1, 0, TRUE), $scales['major']));

//var_dump (getNoteIntervalOnScale($scales['major'], 2, -3));
?>