Both sides previous revision Previous revision Next revision | Previous revision |
action-functions [2024/02/19 21:27] – [Example 2] steve.wang | action-functions [2024/04/24 17:37] (current) – [midiSequencedRhythm/callMusicSynthesizerRhythm:] steve.wang |
---|
**Overview: ** This tutorial will teach you about what actions function do in Konduktiva and how they work. | **Overview: ** This tutorial will teach you about what actions function do in Konduktiva and how they work. |
| |
**Things To Note:** This tutorial assumes you have already installed Konduktiva successfully using the [[https://github.com/renickbell/konduktiva|Konduktiva installation]] instructions and have read through and understood the [[:first_steps|first steps tutorial]]. The tutorial also assumes that you have imported Konduktiva to the //K// variable and assigned any of the example MusicalEnvironments to the //e// variable. | |
| **Things To Note:** This tutorial assumes you have already installed Konduktiva successfully using the [[https://github.com/renickbell/konduktiva|Konduktiva installation]] instructions and have read through and understood the [[:first_steps|first steps tutorial]]. The tutorial also assumes 2 things. One, Konduktiva has been assigned to the //K// variable. Two, user created a Musical Environment using the //setUpMusicalEnvironment// function using //K.defaultConfigurationObject// as the first argument and //'exampleMidiPlayer'// as the third argument then, assigned the output to the //e// variable. |
| <code javascript> |
| const K = require('konduktiva') |
| let e = K.setUpMusicalEnvironment(K.defaultConfigurationObject,4,'exampleMidiPlayer', K.exampleMusicalEnvironmentsExtraConfig) |
| </code> |
| |
An Action Function is the function the player calls when the Konduktiva scheduler tells it that to do something. The action function the player uses can be controlled at the variable //e.players.playerName.action//. It should be a string and the strings refer to a variable which is a function in the //e.actions// object. This analogy might help, players are like an employee working in a company. The action function is the job the employee has to do and the scheduler is the manager telling the employee when to start or stop working. | An Action Function is the function the player calls when the Konduktiva scheduler tells it that to do something. The action function the player uses can be controlled at the variable //e.players.playerName.action//. It should be a string and the strings refer to a variable which is a function in the //e.actions// object. This analogy might help, players are like an employee working in a company. The action function is the job the employee has to do and the scheduler is the manager telling the employee when to start or stop working. |
==== default: ==== | ==== default: ==== |
{{ :default-action-funciton-flowchart.svg |}} | {{ :default-action-funciton-flowchart.svg |}} |
==== midiSequencedRhythm/callMusicSynthesizerRhythm: ==== | |
| |
{{ :midisequencedrhythm-callmusicsynthesizerrhythm--action-function-flowchart.svg |}} | |
==== sendNotesMidiInfo: ===== | ==== sendNotesMidiInfo: ===== |
| |
<code javascript> | <code javascript> |
const K = require('konduktiva') | const K = require('konduktiva') |
let e = K.setUpMusicalEnvironment(1) | let e = K.setUpMusicalEnvironment(K.defaultConfigurationObject,4,'exampleMidiPlayer', K.exampleMusicalEnvironmentsExtraConfig) |
</code> | </code> |
| |
console.log('Hi this is my new action function called testAction.') | console.log('Hi this is my new action function called testAction.') |
console.log('testAction playerName: ', playerName) | console.log('testAction playerName: ', playerName) |
console.log('testAction beat: ', b) | console.log('testAction beat: ', e.currentBeat()) |
} | } |
</code> | </code> |
| |
| Notice we did not use b argument. The b argument is for next onset. To get beat use e.currentBeat(). |
| |
Next we have to make it so the players in the MusicalEnvironment can use it. To do so, we have the add it to the actions object of the MusicalEnvironment: | Next we have to make it so the players in the MusicalEnvironment can use it. To do so, we have the add it to the actions object of the MusicalEnvironment: |