Pitch modifier for story configuration

This commit is contained in:
Ruben van de Ven 2020-01-13 08:23:30 +01:00
parent 7c7fcf071a
commit ac11645dd0
2 changed files with 112 additions and 92 deletions

View File

@ -25,8 +25,10 @@ from .communication import LOG_BS
mainLogger = logging.getLogger("hugvey") mainLogger = logging.getLogger("hugvey")
logger = mainLogger.getChild("narrative") logger = mainLogger.getChild("narrative")
class Utterance(object): class Utterance(object):
"""Part of a reply""" """Part of a reply"""
def __init__(self, startTime): def __init__(self, startTime):
self.startTime = startTime self.startTime = startTime
self.endTime = None self.endTime = None
@ -34,7 +36,7 @@ class Utterance(object):
self.lastUpdateTime = startTime self.lastUpdateTime = startTime
def setText(self, text, now): def setText(self, text, now):
self.text = text.lower() # always lowercase self.text = text.lower() # always lowercase
self.lastUpdateTime = now self.lastUpdateTime = now
def hasText(self): def hasText(self):
@ -1151,7 +1153,6 @@ class Diversion(object):
async def _returnAfterTimeout(self, story): async def _returnAfterTimeout(self, story):
story.logger.info(f"Finalise diversion: {self.id}") story.logger.info(f"Finalise diversion: {self.id}")
async def _divergeIfInterrupted(self, story, msgFrom, msgTo, direction): async def _divergeIfInterrupted(self, story, msgFrom, msgTo, direction):
""" """
This is here as a placeholder for the interruption diversion. This is here as a placeholder for the interruption diversion.
@ -1177,14 +1178,16 @@ class Diversion(object):
return True return True
class Configuration(object): class Configuration(object):
id = 'configuration' id = 'configuration'
volume = 1 # Volume multiplier for 'play' command volume = 1 # Volume multiplier for 'play' command
nothing_text = "nothing" # When variable is not set, but used in sentence, replace it with this word. nothing_text = "nothing" # When variable is not set, but used in sentence, replace it with this word.
time_factor = 1 time_factor = 1 # time is multiplied to timeouts etc. (not playback)
tempo_factor = 1 tempo_factor = 1 # tempo is multiplied (playback)
pitch_modifier = 1 # pitch is added (playback)
light0_intensity = 0 light0_intensity = 0
light0_fade = 30. # fade duration in seconds light0_fade = 30. # fade duration in seconds
light0_isSophie = False light0_isSophie = False
light1_intensity = 150 light1_intensity = 150
light1_fade = 10. light1_fade = 10.
@ -1916,9 +1919,12 @@ class Story(object):
params['vol'] = "{:.4f}".format(params['vol']) params['vol'] = "{:.4f}".format(params['vol'])
params['tempo'] = (float(params['tempo']) if 'tempo' in params else 1) * (float(self.configuration.tempo_factor) if hasattr(self.configuration, 'tempo_factor') else 1) params['tempo'] = (float(params['tempo']) if 'tempo' in params else 1) * (float(self.configuration.tempo_factor) if hasattr(self.configuration, 'tempo_factor') else 1)
duration = float(duration) / params['tempo'] duration = float(duration) / params['tempo']
params['tempo'] = "{:.4f}".format(params['tempo']) params['tempo'] = "{:.4f}".format(params['tempo'])
params['pitch'] = (float(params['pitch']) if 'pitch' in params else 0)\
+ (float(self.configuration.pitch_modifier) if hasattr(self.configuration, 'pitch_modifier') else 0)
params['pitch'] = "{:.4f}".format(params['pitch'])
# self.hugvey.google.pause() # pause STT to avoid text events while decision is made # self.hugvey.google.pause() # pause STT to avoid text events while decision is made
self.hugvey.sendCommand({ self.hugvey.sendCommand({
'action': 'play', 'action': 'play',

View File

@ -1122,6 +1122,20 @@ class Graph {
'step': 0.01 'step': 0.01
}) })
), ),
crel(
'label',
"Playback pitch modifier: (< 0 is lower, >0 is higher)",
crel('input', {
'type': 'number',
'on': {
'change': function(e){
panopticon.graph.configuration['pitch_modifier'] = parseFloat(e.target.value)
}
},
'value': this.configuration.hasOwnProperty('pitch_modifier') ? this.configuration.pitch_modifier : 0,
'step': 1
})
),
crel('hr'), crel('hr'),
crel('h2', 'Light fade setting #0'), crel('h2', 'Light fade setting #0'),
crel( crel(