Create 'synth' function

This commit is contained in:
Bartłomiej Pluta
2019-07-04 14:30:49 +02:00
parent 76c02922ec
commit f7b813daff
2 changed files with 29 additions and 5 deletions

View File

@@ -10,6 +10,7 @@ from smnp.library.function.octave import withOctave
from smnp.library.function.rand import random
from smnp.library.function.semitones import semitones
from smnp.library.function.sleep import sleep
from smnp.library.function.synth import synth
from smnp.library.function.tuplet import tuplet
from smnp.library.function.type import objectType
@@ -26,7 +27,8 @@ def createEnvironment():
flat,
wait,
random,
tuplet
tuplet,
synth
]
methods = [

View File

@@ -1,6 +1,28 @@
from smnp.library.model import CombinedFunction, Function
from smnp.library.signature import varargSignature, ofTypes, listOf
from smnp.synth.player import playNotes
from smnp.type.model import Type
def synth(args, env):
pass
def pause(args, env):
pass
def _synth1(env, vararg):
notes = [arg.value for arg in vararg]
bpm = env.findVariable('bpm')
playNotes(notes, bpm)
_sign1 = varargSignature(ofTypes(Type.NOTE, Type.INTEGER))
def _synth2(env, vararg):
for arg in vararg:
_synth1(env, arg.value)
_sign2 = varargSignature(listOf(Type.NOTE, Type.INTEGER))
synth = CombinedFunction(
'synth',
Function(_sign1, _synth1),
Function(_sign2, _synth2)
)