97 void throw_hw_missing_exception();
98 std::uint16_t base_port;
100 std::uint8_t control_val;
141 void out(std::uint8_t data);
156 void out_cmd(std::uint8_t command);
158 std::uint16_t base_port;
298 void reset_synth(std::uint8_t program_cnt, std::uint16_t patch_cnt, std::uint16_t wave_cnt);
337 static std::uint16_t _ensure_booted(std::uint16_t port);
340 void set_midi_port_mode(std::uint8_t mode);
343 void send_host_byte(std::uint8_t data);
345 void send_host_14bit(std::uint16_t data);
349 std::uint8_t recv_host_raw_byte();
351 std::uint8_t recv_host_7bit();
353 std::uint16_t recv_host_14bit();
355 std::uint16_t base_port;
Interface to a Soundscape sound card running the Mockingbird-OTTO firmware.
Definition sndscape.h:214
void set_melodic(std::uint8_t program_nr, const MelodicInstrument &inst)
Sets the definition of one melodic instrument.
MelodicInstrument get_melodic(std::uint8_t program_nr)
Gets the definition of one melodic instrument.
Version get_fw_version()
Get the firmware version.
Card(std::uint16_t port)
Interfaces to the card at a specific port.
void send_midi_byte(std::uint8_t byte)
Sends a byte to the MIDI synthesizer.
FWInfo get_fw_info()
Get Synthesizer info.
void reset_synth(std::uint8_t program_cnt, std::uint16_t patch_cnt, std::uint16_t wave_cnt)
Clear software-loaded waves and synthesizer configuration.
Card()
Interfaces to the card configured by the SNDSCAPE environment variable.
MPU401-compatible ODIE communication port in UART mode.
Definition sndscape.h:109
void out(std::uint8_t data)
Sends a MIDI (OUT) byte.
MPU401Port(std::uint16_t base)
Constructs a port.
bool in_avail()
Polls whether a MIDI (IN) byte is available.
void ensure_uart_mode()
Ensures the MPU401 port is set to operate in UART mode.
std::uint8_t in()
Reads a MIDI (IN) byte (blocking).
MC6850-compatible ODIE communication port.
Definition sndscape.h:57
ss6850_byte in()
Reads a byte from the port (blocking).
void out(ss6850_byte data)
Writes a byte to the port.
bool in_avail()
Polls whether a byte is available.
void drain()
Receives bytes from the port until no more bytes are available.
SS6850Port(std::uint16_t base, bool with_reset)
Initializes the port.
Information about the synthesizer setup.
Definition sndscape.h:21
Version version
firmware version
Definition sndscape.h:22
std::uint16_t wave_cnt
number of waves supported
Definition sndscape.h:25
std::uint16_t melodic_cnt
number of melodic programs supported
Definition sndscape.h:23
std::uint16_t drum_cnt
number of drum instruments supported
Definition sndscape.h:26
std::uint16_t patch_cnt
number of patches supported
Definition sndscape.h:24
One layer of a melodic instrument.
Definition layer.h:82
Definition of a melodic instrument.
Definition sndscape.h:181
InstrumentLayer layers[4]
The four layers.
Definition sndscape.h:183
Version number, consisting of a major and minor version.
Definition sndscape.h:7
std::uint8_t major
major verison.
Definition sndscape.h:8
std::uint8_t minor
minor version.
Definition sndscape.h:9
A byte, tagged as "command" or "data" byte.
Definition sndscape.h:45
std::uint8_t data
payload byte
Definition sndscape.h:46
bool is_command
channel indicator
Definition sndscape.h:47