3. What is Lua and UVI Script?

3. What is Lua and UVI Script?

Note: ✍🏽

Hello potentially new coder. Don't let the documentation scare you and if it does, you're not the only one. I've taught classes at colleges in which students expressed hesitation during these early steps. Don't worry. This documentation is dry, dull, and confusing but we will work through it slowly. We will also only focus on certain parts of it.

What is Lua?

Lua provides an easy to read syntax and a reasonable list of keywords you'll want to remember. It has a strong role in many gaming engines as well. In other words, the concepts you'll learn here can be used for other technologies.

What is UVI Script?

"UVIScript is a domain-specific scripting language built on top of the Lua scripting language.

It has been created in order to provide greater flexibility and inject artificial intelligence when generating and interpreting (MIDI) musical events. UVI scripts are small files written in the Lua language and using the UVIScript API that process and/or generate musical Events. It can be seen as MIDI Effects on steroids. Scripts also have access to all the synthesis engine and can query and modify module parameters."

Create Interactive Music in UVI Falcon

Buy nowLearn more

Steps to Getting Started

  • 1. How to Navigate this Course
  • 2. The Tools You'll Need4
  • 3. What is Lua and UVI Script?
  • 4. How to Load and Write Scripts
  • 5. Managing Falcon Projects and Files
  • 6. Terminology
  • 7. Important Files
  • 8. Helpful Resources

Module 1: Falcon Instrument Creation

  • The Falcon Interface and Instrument Creation
  • Lab 1: Creating a Falcon Program5

Module 2: Consoles, Print, and Variables

  • Topic: Comments
  • Topic: Console, Print
  • Topic: Operators
  • Topic: Variables4
  • Topic: Variable Scope3
  • Lab 2: Variables2
  • Lab 2.2

Module 3: Functions 1

  • Topic: Do, End
  • Topic: Functions I
  • Lab 3: Creating Basic Functions
  • Lab 3.2

Module 4: Tables

  • Topic: Tables I
  • Topic: Tables II
  • Topic: Tables III
  • Topic: Tables IV
  • Lab 4: Accessing Values

Module 5: The Falcon Object Model

  • Topic: Falcon Object Model I
  • Revisiting the UVI Script Documentation
  • Topic: Falcon Object Model II
  • Topic: Understanding Tables in the FOM

Module 6: Control Flow and Loops

  • Topic: If Statements
  • Topic: While Do2
  • Topic: Infinite Loops
  • Topic: For Loops I
  • Topic: For Loops II
  • Lab 6: Creating a Basic For Loop
  • Lab 6.22

Module 7: Advanced Functions and More

  • Topic: Functions II
  • Topic: Callback Functions
  • Lab 7: Set default parameters on load

Module 8: Timing

  • Topic: wait() and waitBeat()

Module 9: User Interface Topics

  • Topic: User Interface Widgets
  • Topic: User Interface Widgets II
  • Concept: Color and Hex Codes

Where are we now?

  • What we've learned so far

Project 1: Basic MIDI Sequencer

  • Download Project 1 Files
  • Project 1: Basic MIDI Sequencer3

Project 2: Generative MIDI Events

  • Download Project 2 Files
  • Concept: Probability
  • Project 2: Basic Generative MIDI Sequencer1

Project 3: Keyswitch Modulation

  • Download Project 3 Files
  • Project 3: Keyswitch Modulation

Project 4: Intermediate MIDI Sequencer

  • Download These Files
  • Project 4: Intermediate Sequencer

Project 5: Drag and Drop Sampler

  • Download Project 5 Files
  • Project 5: Drag and Drop Sampler

Project 6: Sampler with Algorithmic Events

  • Download Project 6 Files
  • Project 6: Sampler with Algorithmic Events