// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ //██Let me play the world's tiniest piano for you. ██ //█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ //█▙▙█▙▙▙█▙▙█▙▙▙█▙▙█▙▙▙█▙▙█▙▙▙█▙▙█▙▙▙█▙▙█▙▙▙█▙▙█▙▙▙██ //█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ //███████████████████████████████████████████████████ //█ ▀ ▀ ▀ █ #![allow(unused)] #![allow(clippy::unit_arg)] #![feature(adt_const_params)] #![feature(associated_type_defaults)] #![feature(if_let_guard)] #![feature(impl_trait_in_assoc_type)] #![feature(type_alias_impl_trait)] #![feature(trait_alias)] #![feature(type_changing_struct_update)] mod cli; pub use self::cli::*; mod audio; pub use self::audio::*; mod device; pub use self::device::*; mod keys; pub use self::keys::*; mod model; pub use self::model::*; mod view; pub use self::view::*; /// Standard result type. pub type Usually = std::result::Result>; /// Standard optional result type. pub type Perhaps = std::result::Result, Box>; pub use ::tek_time::{self, *}; pub use ::tek_jack::{self, *, jack::*}; pub use ::tek_midi::{self, *, midly::{MidiMessage, num::*, live::*}}; pub use ::tek_sampler::{self, *}; pub use ::tek_plugin::{self, *}; pub use ::tengri::{ dsl::*, input::*, output::*, tui::{ *, ratatui::{ self, prelude::{Color::{self, *}, Style, Stylize, Buffer, Modifier}, buffer::Cell }, crossterm::{ self, event::{ Event, KeyEvent, KeyEventKind, KeyEventState, KeyModifiers, KeyCode::{self, *}, }, }, }, }; pub(crate) use std::sync::{Arc, RwLock, atomic::{AtomicBool, Ordering::Relaxed}};