Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
action-functions [2024/02/08 23:23] – steve.wang | action-functions [2024/04/24 17:37] (current) – [midiSequencedRhythm/callMusicSynthesizerRhythm:] steve.wang | ||
---|---|---|---|
Line 2: | Line 2: | ||
**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:// | ||
- | 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 // | + | **Things To Note:** This tutorial assumes you have already installed Konduktiva successfully using the [[https:// |
+ | <code javascript> | ||
+ | const K = require(' | ||
+ | let e = K.setUpMusicalEnvironment(K.defaultConfigurationObject, | ||
+ | </ | ||
+ | |||
+ | |||
+ | An Action Function is the function the player calls when the Konduktiva scheduler tells it that to do something. | ||
<code javascript> | <code javascript> | ||
//Code will work if you have imported Konduktiva to K variable and assigned any of the example MusicalEnvironments to e. | //Code will work if you have imported Konduktiva to K variable and assigned any of the example MusicalEnvironments to e. | ||
Line 14: | Line 20: | ||
</ | </ | ||
- | To test if the action function is being triggered you can assign the player to use the default action function and turn on verbose: | + | To test if the action function is being triggered you can assign the player to use the default action function and turn on verbose. Verbose is a feature that will prompt the functions to log many things which is useful for debugging.: |
<code javascript> | <code javascript> | ||
e.players.exampleMidiPlayer1.action = ' | e.players.exampleMidiPlayer1.action = ' | ||
Line 30: | Line 36: | ||
If you do not, restart Konduktiva and assign the // | If you do not, restart Konduktiva and assign the // | ||
- | ===== Action Functions ===== | + | ===== Existing |
==== default: ==== | ==== default: ==== | ||
{{ : | {{ : | ||
- | ==== midiSequencedRhythm/ | ||
- | {{ : | ||
==== sendNotesMidiInfo: | ==== sendNotesMidiInfo: | ||
Line 50: | Line 54: | ||
**Overview: ** This tutorial will teach you how to make your own action function by going through the steps of making a new action function called // | **Overview: ** This tutorial will teach you how to make your own action function by going through the steps of making a new action function called // | ||
- | **Things To Note:** This tutorial assumes you have already installed Konduktiva successfully using the [[https:// | + | **Things To Note:** This tutorial assumes you have already installed Konduktiva successfully using the [[https:// |
Setup: | Setup: | ||
<code javascript> | <code javascript> | ||
const K = require(' | const K = require(' | ||
- | let e = K.setUpMusicalEnvironment(1) | + | let e = K.setUpMusicalEnvironment(K.defaultConfigurationObject, |
</ | </ | ||
+ | ===== Example 1 ===== | ||
The action function arguments should be in this order for Konduktiva to be able to use it properly: player name, beat, MusicalEnvironment. | The action function arguments should be in this order for Konduktiva to be able to use it properly: player name, beat, MusicalEnvironment. | ||
So we will start this function like this: | So we will start this function like this: | ||
Line 68: | Line 73: | ||
console.log(' | console.log(' | ||
console.log(' | console.log(' | ||
- | console.log(' | + | console.log(' |
} | } | ||
</ | </ | ||
+ | |||
+ | 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: | ||
Line 84: | Line 91: | ||
e.play(' | e.play(' | ||
</ | </ | ||
+ | |||
+ | ===== Example 2 ===== | ||
+ | Making an action function that plays a random note each time it is triggered. | ||
+ | |||
+ | <code javascript> | ||
+ | function sendRandomMidiNote(){ | ||
+ | | ||
+ | let noteToPlay = K.randomRange(0, | ||
+ | e.midiOutputs[0].send(' | ||
+ | note: noteToPlay, | ||
+ | velocity: 100, | ||
+ | channel: 0, | ||
+ | }); | ||
+ | setTimeout(() => { | ||
+ | e.midiOutputs[0].send(' | ||
+ | note: noteToPlay, | ||
+ | velocity: 100, | ||
+ | channel: 0, | ||
+ | }); | ||
+ | }, 1000) | ||
+ | } | ||
+ | e.actions.sendRandomMidiNote = sendRandomMidiNote | ||
+ | e.players.exampleMidiPlayer1.action = ' | ||
+ | e.play(' | ||
+ | </ | ||
+ | |||
+ | It should sound something like this: | ||
+ | |||
+ | {{ : | ||
[[http:// | [[http:// |