Add polyphony AND add overtones do synthesed tones

This commit is contained in:
Bartłomiej Pluta
2019-07-28 19:48:39 +02:00
parent 75dcacce67
commit 0dcf5287e1
4 changed files with 71 additions and 38 deletions

View File

@@ -1,13 +1,13 @@
from smnp.function.model import Function
from smnp.function.signature import signature
from smnp.module.synth.lib import player
from smnp.module.synth.lib.wave import pause
from smnp.type.model import Type
from smnp.type.signature.matcher.type import ofTypes
_signature = signature(ofTypes(Type.INTEGER))
def _function(env, value):
bpm = env.findVariable('bpm')
player.pause(value.value, bpm.value)
pause(value.value, bpm.value)
function = Function(_signature, _function, 'pause')

View File

@@ -1,13 +1,24 @@
from smnp.function.model import Function
from smnp.function.signature import signature
from smnp.module.synth.lib.player import play
from smnp.function.model import Function, CombinedFunction
from smnp.function.signature import varargSignature
from smnp.module.synth.lib.wave import play
from smnp.type.model import Type
from smnp.type.signature.matcher.type import ofType
from smnp.type.signature.matcher.list import listOf
from smnp.type.signature.matcher.type import ofTypes
_signature = signature(ofType(Type.NOTE))
def _function(env, note):
bpm = env.findVariable('bpm')
play(note.value, bpm.value)
_signature1 = varargSignature(listOf(Type.NOTE, Type.INTEGER))
def _function1(env, notes):
rawNotes = [note.value for note in notes]
play(rawNotes, env.findVariable("bpm").value, env.findVariable("overtones").value)
function = Function(_signature, _function, 'synthNote')
_signature2 = varargSignature(ofTypes(Type.NOTE, Type.INTEGER))
def _function2(env, notes):
play([ notes ], env.findVariable("bpm").value, env.findVariable("overtones").value)
function = CombinedFunction(
'synth',
Function(_signature1, _function1),
Function(_signature2, _function2)
)