Anklang
0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)
« « « Anklang Documentation
Loading...
Searching...
No Matches
ase
midilib.hh
Go to the documentation of this file.
1
// This Source Code Form is licensed MPL-2.0: http://mozilla.org/MPL/2.0
2
#ifndef __ASE_MIDILIB_HH__
3
#define __ASE_MIDILIB_HH__
4
5
#include <
ase/processor.hh
>
6
#include <
ase/track.hh
>
7
#include <
ase/clip.hh
>
8
9
namespace
Ase
{
10
11
namespace
MidiLib {
12
14
struct
MidiFeed
{
15
ClipImplGeneratorS
generators;
16
TrackImpl::ClipScout
scout;
17
int
trigger = ~0;
18
};
19
using
MidiFeedP
=
std::shared_ptr<MidiFeed>
;
20
21
class
MidiProducerIface
:
public
AudioProcessor
{
22
public
:
23
struct
Position
{
24
int
next = -1;
25
int
current = -1;
26
double
tick = -1;
27
};
28
virtual
void
update_feed (
MidiFeedP
&feed) = 0;
29
virtual
Position
* position ()
const
= 0;
// MT-Safe
30
virtual
void
start () = 0;
31
virtual
void
stop (
bool
restart =
false
) = 0;
32
MidiProducerIface
(
const
ProcessorSetup
&psetup) :
AudioProcessor
(psetup) {}
33
};
34
35
using
MidiProducerIfaceP =
std::shared_ptr<MidiProducerIface>
;
36
37
}
// MidiLib
38
}
// Ase
39
40
#endif
// __ASE_MIDILIB_HH__
41
std::atomic
Ase::AudioProcessor
Audio signal AudioProcessor base class, implemented by all effects and instruments.
Definition
processor.hh:76
Ase::AudioProcessor::ProcessorSetup
Definition
processor.hh:137
Ase::MidiLib::MidiProducerIface
Definition
midilib.hh:21
Ase::MidiLib::MidiProducerIface::Position
Definition
midilib.hh:23
Ase::TrackImpl::ClipScout
MIDI clip playback succession generator.
Definition
track.hh:47
clip.hh
Ase::MidiLib::MidiFeed
Aggregation of MIDI events and sequencing information.
Definition
midilib.hh:14
Ase
The Anklang C++ API namespace.
Definition
api.hh:9
processor.hh
std::shared_ptr< MidiFeed >
track.hh
std::vector< ClipImpl::Generator >
« « « Anklang Documentation