|
Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
|
#include <cstdint>#include <filesystem>#include <optional>#include <span>#include <string_view>#include <vector>Go to the source code of this file.
Classes | |
| struct | ts::MidiEvent |
| One scheduled MIDI message. More... | |
| struct | ts::smf::SongLoop |
| Loop points a file declared, in samples on the render-block grid. More... | |
| struct | ts::smf::Song |
| A parsed file: the event list plus what the container knew beyond the events. More... | |
Namespaces | |
| namespace | ts |
| namespace | ts::smf |
| A dependency-free Standard MIDI File reader. | |
Enumerations | |
| enum class | ts::MidiEventKind { ts::channel , ts::sysex } |
| What kind of message an event carries. More... | |
Functions | |
| Song | ts::smf::load (const std::filesystem::path &path, int sample_rate=32000) |
| Reads a music file, with its loop points. | |
| Song | ts::smf::load (std::span< const std::uint8_t > data, int sample_rate=32000, std::string_view name={}) |
| Parses a music file held in memory, with its loop points. | |
| std::vector< MidiEvent > | ts::smf::read (const std::filesystem::path &path, int sample_rate=32000) |
| Reads a music file, ordered by position — load without the loop points. | |
| std::vector< MidiEvent > | ts::smf::parse (std::span< const std::uint8_t > data, int sample_rate=32000) |
| Parses a music file held in memory, ordered by position — load without the loop points. | |
| std::int64_t | ts::smf::quantise (double samples) noexcept |
| Rounds a sample position onto the render-block grid. | |
Variables | |
| constexpr int | ts::smf::block_grid = 32 |
| Samples per render block — the grid events are applied on. | |
| constexpr int | ts::smf::default_tempo = 500'000 |
| Default tempo when a file sets none: 120 bpm, in microseconds per quarter note. | |