-
Notifications
You must be signed in to change notification settings - Fork 98
Description
Abstract
Suddenly, at first attempt, I came across weird sound in one specific interval, only within one specific semitone corresponding to MIDI notes 50 to 51. So far, I could not reproduce the problem in any other tonal range.
Steps to Reproduce
Run this and try microtonal sounds between MIDI notes 50 to 51, compare with other sounds:
<html>
<head>
<script src='https://surikov.github.io/webaudiofont/npm/dist/WebAudioFontPlayer.js'></script>
<script src='https://surikov.github.io/webaudiofontdata/sound/0001_GeneralUserGS_sf2_file.js'></script>
<script>
var selectedPreset=_tone_0001_GeneralUserGS_sf2_file;
var AudioContextFunc = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContextFunc();
var player=new WebAudioFontPlayer();
player.adjustPreset(audioContext,selectedPreset);
function play(pitch) {
player.queueWaveTable(
audioContext, audioContext.destination, selectedPreset,
audioContext.currentTime, pitch,
0.4);
} // play
</script>
</head>
<body>
<a href='javascript:play(2.0+12*4);'>MIDI note 50: E</a><br/>
Moving up by 10 cents:</br>
<a href='javascript:play(2.1+12*4);'>50.1</a><br/>
<a href='javascript:play(2.2+12*4);'>50.2</a><br/>
<a href='javascript:play(2.3+12*4);'>50.3</a><br/>
<a href='javascript:play(2.4+12*4);'>50.4</a><br/>
<a href='javascript:play(2.5+12*4);'>50.5</a><br/>
<a href='javascript:play(2.6+12*4);'>50.6</a><br/>
<a href='javascript:play(2.7+12*4);'>50.7</a><br/>
<a href='javascript:play(2.8+12*4);'>50.8</a><br/>
<a href='javascript:play(2.9+12*4);'>50.9</a><br/>
Compare the sound!</br>
<a href='javascript:play(3.0+12*4);'>MIDI note 51: ♯F</a><br/><br/>
But beyond the ill range shown above (between 50 and 51), everything is fine:</br>
<a href='javascript:play(3.1+12*4);'>51.1</a><br/>
<a href='javascript:play(3.2+12*4);'>51.2</a><br/>
<a href='javascript:play(3.3+12*4);'>51.3</a><br/>
<a href='javascript:play(3.4+12*4);'>51.4</a><br/>
<a href='javascript:play(3.5+12*4);'>51.5</a><br/>
<a href='javascript:play(3.6+12*4);'>51.6</a><br/>
<a href='javascript:play(3.7+12*4);'>51.7</a><br/>
<a href='javascript:play(3.8+12*4);'>51.8</a><br/>
<a href='javascript:play(3.9+12*4);'>51.9</a><br/>
Done!</br>
</body>
</html>
The Problem Background
I do understand that this work is not intended for microtonal use. But! As I can see, microtonal sound works even without any change in the library. Also, I seriously think that the main value of this library is its microtonal potential.
Presently, there is a great activity in music around microtonal field: development of novel instruments and tone systems, and so on. There is a lot of 12-tone software these days, but the microtonal capabilities present a considerable problem. It's much better to concentrate on support of microtonal systems now.
My Questions
- Can you explain it?
- Can you suggest some other way of using the microtonal tones?
- Would you consider further development to offer microtonal versions of the API? If you can consider it, I can provide some help, as the very interested person qualified in the field. Alternatively, I could fork it and publish the fork if you don't mind and if you can support me with just answering some questions. In turn, I can explain what I would like to achieve.
Thank you.
—SA