02/08
2017
dev-master
9999999-dev
GPL-3.0+
The Requires
- php >=7.1
The Development Requires
Wallogit.com
2017 © Pedro Peláez
Calculates string lengths, frequencies, intervals, harmonics, etc., (*2)
<?php
require_once 'vendor/autoload.php';
use ExtendedStrings\Strings\HarmonicCalculator;
use ExtendedStrings\Strings\Instrument;
use ExtendedStrings\Strings\Note;
// Find all the possible harmonics on a violin for the sounding pitch D5.
$harmonics = (new HarmonicCalculator())
->findHarmonics(Note::fromName('D5'), Instrument::fromPreset('violin'));
foreach ($harmonics as $harmonic) {
$string = $harmonic->getString();
$stringNote = Note::fromFrequency($string->getFrequency());
$baseNote = Note::fromFrequency($harmonic->getBaseStop()->getFrequency($string));
$harmonicNote = Note::fromFrequency($harmonic->getHalfStop()->getFrequency($string));
$soundingNote = Note::fromFrequency($harmonic->getSoundingFrequency());
echo "String: $stringNote\n";
if ($harmonic->isNatural()) {
echo " Harmonic pressure on: $harmonicNote\n";
} else {
echo " Artificial harmonic: $baseNote : $harmonicNote\n";
}
echo " Sounding pitch: $soundingNote\n";
echo "\n";
}
Result:, (*3)
String: D4 Harmonic pressure on: D5 Sounding pitch: D5 String: G3 Harmonic pressure on: D5 +2c Sounding pitch: D5 +2c String: G3 Harmonic pressure on: D4 +2c Sounding pitch: D5 +2c String: G3 Artificial harmonic: D4 : D5 Sounding pitch: D5
GPL-3.0+