diff --git a/Cargo.lock b/Cargo.lock index d7cf48d1..739b4bc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.28" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79faae4620f45232f599d9bc7b290f88247a0834162c4495ab2f02d60004adfb" +checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -20,9 +20,9 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" [[package]] name = "addr2line" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] @@ -57,9 +57,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-activity" @@ -90,9 +90,9 @@ checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -105,36 +105,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -148,9 +148,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -166,9 +166,9 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" [[package]] name = "atk" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" dependencies = [ "atk-sys", "glib", @@ -177,9 +177,9 @@ dependencies = [ [[package]] name = "atk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" dependencies = [ "glib-sys", "gobject-sys", @@ -201,9 +201,9 @@ checksum = "628d228f918ac3b82fe590352cc719d30664a0c13ca3a60266fe02c7132d480a" [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" @@ -232,9 +232,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.69.4" +version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ "bitflags 2.6.0", "cexpr", @@ -249,7 +249,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.77", + "syn 2.0.90", "which", ] @@ -288,9 +288,9 @@ checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" [[package]] name = "byteorder" @@ -300,9 +300,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cairo-rs" @@ -372,9 +372,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.18" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" +checksum = "27f657647bcff5394bf56c7317665bbf790a137a50eaaa5c6bfbb9e27a518f2d" dependencies = [ "jobserver", "libc", @@ -426,14 +426,14 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading 0.8.5", + "libloading 0.8.6", ] [[package]] name = "clap" -version = "4.5.17" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -441,9 +441,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", @@ -453,21 +453,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clojure-reader" @@ -480,9 +480,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "combine" @@ -636,7 +636,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.5", + "libloading 0.8.6", ] [[package]] @@ -665,9 +665,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -680,12 +680,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -710,6 +710,12 @@ dependencies = [ "rustc_version", ] +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.5.0" @@ -728,7 +734,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -739,24 +745,24 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -765,32 +771,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-macro", @@ -802,9 +808,9 @@ dependencies = [ [[package]] name = "gdk" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -843,9 +849,9 @@ dependencies = [ [[package]] name = "gdk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -881,9 +887,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gio" @@ -951,7 +957,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -983,9 +989,9 @@ dependencies = [ [[package]] name = "gtk" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" dependencies = [ "atk", "cairo-rs", @@ -1004,9 +1010,9 @@ dependencies = [ [[package]] name = "gtk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" dependencies = [ "atk-sys", "cairo-sys-rs", @@ -1022,25 +1028,26 @@ dependencies = [ [[package]] name = "gtk3-macros" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "ahash", "allocator-api2", + "equivalent", + "foldhash", ] [[package]] @@ -1072,9 +1079,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", "hashbrown", @@ -1115,9 +1122,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jack" @@ -1179,10 +1186,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1200,9 +1208,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" [[package]] name = "libloading" @@ -1216,9 +1224,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -1226,20 +1234,20 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.7", ] [[package]] name = "lilv" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba8b5b9e4cc7a3f588377578868738c997eec13045ce31d727735181e425327a" +checksum = "06e14c13e0d64ed27265d0cc41563b131cd8499cde811618b646dd309763906d" dependencies = [ "lilv-sys", "lv2_raw", @@ -1264,9 +1272,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "livi" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a0c5cce0462040d482a75d2b3a7a4fa5593e9a2a4937167e1880ce6d941e43" +checksum = "29ea5b22748e1759210a4f78b4bc4b6a1cf02d6916c08c137bf704dd9f246306" dependencies = [ "lilv", "log", @@ -1293,9 +1301,9 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ "hashbrown", ] @@ -1323,9 +1331,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -1463,7 +1471,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -1671,42 +1679,42 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "orbclient" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" +checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" dependencies = [ "libredox", ] [[package]] name = "ordered-float" -version = "4.2.2" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6" +checksum = "c65ee1f9701bf938026630b455d5315f490640234259037edb259798b3bcf85e" dependencies = [ "num-traits", ] [[package]] name = "owned_ttf_parser" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490d3a563d3122bf7c911a59b0add9389e5ec0f5f0c3ac6b91ff235a0e6a7f90" +checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" dependencies = [ "ttf-parser", ] @@ -1733,7 +1741,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -1804,7 +1812,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.4", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -1851,7 +1859,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -1865,29 +1873,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -1897,15 +1905,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", @@ -1927,12 +1935,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.22" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -1960,7 +1968,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.22.20", + "toml_edit 0.22.22", ] [[package]] @@ -1989,9 +1997,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2013,9 +2021,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.1" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" dependencies = [ "memchr", ] @@ -2134,18 +2142,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -2155,9 +2163,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -2166,9 +2174,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "ringbuf" @@ -2202,22 +2210,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "ryu" @@ -2267,29 +2275,29 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -2392,7 +2400,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -2432,7 +2440,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -2653,9 +2661,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -2682,64 +2690,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] -name = "tek_api" -version = "0.1.0" -dependencies = [ - "livi", - "symphonia", - "tek_core", - "uuid", - "vst", - "wavers", -] - -[[package]] -name = "tek_cli" -version = "0.1.0" -dependencies = [ - "tek_api", - "tek_core", - "tek_tui", -] - -[[package]] -name = "tek_core" -version = "0.1.0" +name = "tek" +version = "0.2.0" dependencies = [ "atomic_float", "backtrace", "better-panic", "clap", "clojure-reader", + "crossterm", "jack", + "livi", "midly", "once_cell", "palette", "quanta", "rand", "ratatui", - "toml", -] - -[[package]] -name = "tek_layout" -version = "0.1.0" -dependencies = [ - "tek_core", -] - -[[package]] -name = "tek_tui" -version = "0.1.0" -dependencies = [ - "better-panic", - "crossterm", - "livi", "suil-rs", "symphonia", - "tek_api", - "tek_core", - "tek_layout", + "toml", + "uuid", "vst", "wavers", "winit", @@ -2747,22 +2718,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -2799,7 +2770,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit 0.22.22", ] [[package]] @@ -2835,22 +2806,22 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow 0.6.20", ] [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-core", @@ -2858,27 +2829,27 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" [[package]] name = "ttf-parser" -version = "0.24.1" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-truncate" @@ -2893,9 +2864,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "utf8parse" @@ -2905,9 +2876,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", ] @@ -2956,9 +2927,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -2967,36 +2938,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3004,22 +2975,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "wavers" @@ -3049,9 +3020,9 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.6" +version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" +checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" dependencies = [ "bitflags 2.6.0", "rustix", @@ -3072,9 +3043,9 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.31.6" +version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a94697e66e76c85923b0d28a0c251e8f0666f58fc47d316c0f4da6da75d37cb" +checksum = "32b08bc3aafdb0035e7fe0fdf17ba0c09c268732707dca4ae098f60cb28c9e4c" dependencies = [ "rustix", "wayland-client", @@ -3083,9 +3054,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.4" +version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" +checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -3095,9 +3066,9 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0a41a6875e585172495f7a96dfa42ca7e0213868f4f15c313f7c33221a7eff" +checksum = "9b31cab548ee68c7eb155517f2212049dc151f7cd7910c2b66abfd31c3ee12bd" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -3108,9 +3079,9 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad87b5fd1b1d3ca2f792df8f686a2a11e3fe1077b71096f7a175ab699f89109" +checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -3144,9 +3115,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" dependencies = [ "js-sys", "wasm-bindgen", @@ -3482,9 +3453,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -3509,7 +3480,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading 0.8.5", + "libloading 0.8.6", "once_cell", "rustix", "x11rb-protocol", @@ -3564,5 +3535,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] diff --git a/Cargo.toml b/Cargo.toml index e3660088..301685bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,10 @@ [workspace] resolver = "2" members = [ - "crates/tek_core", - "crates/tek_api", - "crates/tek_tui", - "crates/tek_cli", - "crates/tek_layout" + "crates/tek", + #"crates/tek_core", + #"crates/tek_api", + #"crates/tek_tui", + #"crates/tek_cli", + #"crates/tek_layout" ] diff --git a/crates/tek.old/Cargo.toml b/crates/tek.old/Cargo.toml new file mode 100644 index 00000000..5130e5cd --- /dev/null +++ b/crates/tek.old/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "tek" +edition = "2021" +version = "0.1.0" + +[dependencies] +clojure-reader = "0.1.0" +microxdg = "0.1.2" + +tek_core = { path = "../tek_core" } +#tek_sequencer = { path = "../tek_sequencer" } +#tek_mixer = { path = "../tek_mixer" } +#jack = "0.10" +#crossterm = "0.27" +#ratatui = { version = "0.26.3", features = [ "unstable-widget-ref", "underline-color" ] } +#backtrace = "0.3.72" +#toml = "0.8.12" +#better-panic = "0.3.0" +#midly = "0.5" + +#vst = "0.4.0" +##vst3 = "0.1.0" +#livi = "0.7.4" +##atomic_enum = "0.3.0" +#wavers = "1.4.3" +#music-math = "0.1.1" +#fraction = "0.15.3" +#rlsf = "0.2.1" +#r8brain-rs = "0.3.5" + +#symphonia = { version = "0.5.4", features = [ "all" ] } + +#dasp = { version = "0.11.0", features = [ "all" ] } + +#rubato = "0.15.0" diff --git a/crates/tek.old/README.md b/crates/tek.old/README.md new file mode 100644 index 00000000..44965638 --- /dev/null +++ b/crates/tek.old/README.md @@ -0,0 +1,3 @@ +# `tek` + +This crate unifies the `tek_*` subcrates into a single application. diff --git a/crates/tek/example.edn b/crates/tek.old/example.edn similarity index 100% rename from crates/tek/example.edn rename to crates/tek.old/example.edn diff --git a/crates/tek/src/app.rs b/crates/tek.old/src/app.rs similarity index 100% rename from crates/tek/src/app.rs rename to crates/tek.old/src/app.rs diff --git a/crates/tek/src/app_focus.rs b/crates/tek.old/src/app_focus.rs similarity index 100% rename from crates/tek/src/app_focus.rs rename to crates/tek.old/src/app_focus.rs diff --git a/crates/tek/src/app_paths.rs b/crates/tek.old/src/app_paths.rs similarity index 100% rename from crates/tek/src/app_paths.rs rename to crates/tek.old/src/app_paths.rs diff --git a/crates/tek/src/cli.rs b/crates/tek.old/src/cli.rs similarity index 100% rename from crates/tek/src/cli.rs rename to crates/tek.old/src/cli.rs diff --git a/crates/tek/src/control.rs b/crates/tek.old/src/control.rs similarity index 100% rename from crates/tek/src/control.rs rename to crates/tek.old/src/control.rs diff --git a/crates/tek/src/edn.rs b/crates/tek.old/src/edn.rs similarity index 100% rename from crates/tek/src/edn.rs rename to crates/tek.old/src/edn.rs diff --git a/crates/tek/src/help.rs b/crates/tek.old/src/help.rs similarity index 100% rename from crates/tek/src/help.rs rename to crates/tek.old/src/help.rs diff --git a/crates/tek/src/main.rs b/crates/tek.old/src/main.rs similarity index 100% rename from crates/tek/src/main.rs rename to crates/tek.old/src/main.rs diff --git a/crates/tek/src/setup.rs b/crates/tek.old/src/setup.rs similarity index 100% rename from crates/tek/src/setup.rs rename to crates/tek.old/src/setup.rs diff --git a/crates/tek/Cargo.toml b/crates/tek/Cargo.toml index 5130e5cd..0f0cbe29 100644 --- a/crates/tek/Cargo.toml +++ b/crates/tek/Cargo.toml @@ -1,35 +1,60 @@ [package] name = "tek" edition = "2021" -version = "0.1.0" +version = "0.2.0" [dependencies] +#no_deadlocks = "1.3.2" +#vst3 = "0.1.0" +atomic_float = "1.0.0" +backtrace = "0.3.72" +better-panic = "0.3.0" +clap = { version = "4.5.4", features = [ "derive" ] } clojure-reader = "0.1.0" -microxdg = "0.1.2" +crossterm = "0.27" +jack = "0.13" +livi = "0.7.4" +midly = "0.5" +once_cell = "1.19.0" +palette = { version = "0.7.6", features = [ "random" ] } +quanta = "0.12.3" +rand = "0.8.5" +ratatui = { version = "0.26.3", features = [ "unstable-widget-ref", "underline-color" ] } +suil-rs = { path = "../suil" } +symphonia = { version = "0.5.4", features = [ "all" ] } +toml = "0.8.12" +uuid = { version = "1.10.0", features = [ "v4" ] } +vst = "0.4.0" +wavers = "1.4.3" +winit = { version = "0.30.4", features = [ "x11" ] } -tek_core = { path = "../tek_core" } -#tek_sequencer = { path = "../tek_sequencer" } -#tek_mixer = { path = "../tek_mixer" } -#jack = "0.10" -#crossterm = "0.27" -#ratatui = { version = "0.26.3", features = [ "unstable-widget-ref", "underline-color" ] } -#backtrace = "0.3.72" -#toml = "0.8.12" -#better-panic = "0.3.0" -#midly = "0.5" +[dev-dependencies] +#tek_app = { version = "0.1.0", path = "../tek_app" } -#vst = "0.4.0" -##vst3 = "0.1.0" -#livi = "0.7.4" -##atomic_enum = "0.3.0" -#wavers = "1.4.3" -#music-math = "0.1.1" -#fraction = "0.15.3" -#rlsf = "0.2.1" -#r8brain-rs = "0.3.5" +[[bin]] +name = "tek_arranger" +path = "src/cli_arranger.rs" -#symphonia = { version = "0.5.4", features = [ "all" ] } +[[bin]] +name = "tek_sequencer" +path = "src/cli_sequencer.rs" -#dasp = { version = "0.11.0", features = [ "all" ] } +[[bin]] +name = "tek_transport" +path = "src/cli_transport.rs" -#rubato = "0.15.0" +#[[bin]] +#name = "tek_mixer" +#path = "src/cli_mixer.rs" + +#[[bin]] +#name = "tek_track" +#path = "src/cli_track.rs" + +#[[bin]] +#name = "tek_sampler" +#path = "src/cli_sampler.rs" + +#[[bin]] +#name = "tek_plugin" +#path = "src/cli_plugin.rs" diff --git a/crates/tek/README.md b/crates/tek/README.md index 44965638..b00cb3f8 100644 --- a/crates/tek/README.md +++ b/crates/tek/README.md @@ -1,3 +1,46 @@ -# `tek` -This crate unifies the `tek_*` subcrates into a single application. +# `tek_sequencer` + +This crate implements a MIDI sequencer and arranger with clip launching. + +--- + +# `tek_arranger` + +--- + +# `tek_timer` + +This crate implements time sync and JACK transport control. + +* Warning: If transport is set rolling by qjackctl, this program can't pause it +* Todo: bpm: shift +/- 0.001 +* Todo: quant/sync: shift = next/prev value of same type (normal, triplet, dotted) + * Or: use shift to switch between inc/dec top/bottom value? +* Todo: focus play button +* Todo: focus time position +* Todo: edit numeric values +* Todo: jump to time/bbt markers +* Todo: count xruns + +--- + +# `tek_mixer` + +// TODO: +// - Meters: propagate clipping: +// - If one stage clips, all stages after it are marked red +// - If one track clips, all tracks that feed from it are marked red? + +# `tek_track` + +--- + +# `tek_sampler` + +This crate implements a sampler device which plays audio files +in response to MIDI notes. + +--- + +# `tek_plugin` diff --git a/crates/tek_core/architecture.svg b/crates/tek/architecture.svg similarity index 100% rename from crates/tek_core/architecture.svg rename to crates/tek/architecture.svg diff --git a/crates/tek_core/examples/demo.rs b/crates/tek/examples/demo.rs similarity index 100% rename from crates/tek_core/examples/demo.rs rename to crates/tek/examples/demo.rs diff --git a/crates/tek_api/examples/midi_import.rs b/crates/tek/examples/midi_import.rs similarity index 100% rename from crates/tek_api/examples/midi_import.rs rename to crates/tek/examples/midi_import.rs diff --git a/crates/tek_api/examples/mixer.edn b/crates/tek/examples/mixer.edn similarity index 100% rename from crates/tek_api/examples/mixer.edn rename to crates/tek/examples/mixer.edn diff --git a/crates/tek_api/examples/sequencer.edn b/crates/tek/examples/sequencer.edn similarity index 100% rename from crates/tek_api/examples/sequencer.edn rename to crates/tek/examples/sequencer.edn diff --git a/crates/tek_api/src/todo_api_channel.rs b/crates/tek/src/api/_todo_api_channel.rs similarity index 100% rename from crates/tek_api/src/todo_api_channel.rs rename to crates/tek/src/api/_todo_api_channel.rs diff --git a/crates/tek_api/src/todo_api_mixer.rs b/crates/tek/src/api/_todo_api_mixer.rs similarity index 100% rename from crates/tek_api/src/todo_api_mixer.rs rename to crates/tek/src/api/_todo_api_mixer.rs diff --git a/crates/tek_api/src/todo_api_plugin.rs b/crates/tek/src/api/_todo_api_plugin.rs similarity index 100% rename from crates/tek_api/src/todo_api_plugin.rs rename to crates/tek/src/api/_todo_api_plugin.rs diff --git a/crates/tek_api/src/todo_api_plugin_kind.rs b/crates/tek/src/api/_todo_api_plugin_kind.rs similarity index 100% rename from crates/tek_api/src/todo_api_plugin_kind.rs rename to crates/tek/src/api/_todo_api_plugin_kind.rs diff --git a/crates/tek_api/src/todo_api_plugin_lv2.rs b/crates/tek/src/api/_todo_api_plugin_lv2.rs similarity index 100% rename from crates/tek_api/src/todo_api_plugin_lv2.rs rename to crates/tek/src/api/_todo_api_plugin_lv2.rs diff --git a/crates/tek_api/src/todo_api_sampler.rs b/crates/tek/src/api/_todo_api_sampler.rs similarity index 100% rename from crates/tek_api/src/todo_api_sampler.rs rename to crates/tek/src/api/_todo_api_sampler.rs diff --git a/crates/tek_api/src/todo_api_sampler_sample.rs b/crates/tek/src/api/_todo_api_sampler_sample.rs similarity index 100% rename from crates/tek_api/src/todo_api_sampler_sample.rs rename to crates/tek/src/api/_todo_api_sampler_sample.rs diff --git a/crates/tek_api/src/todo_api_sampler_voice.rs b/crates/tek/src/api/_todo_api_sampler_voice.rs similarity index 100% rename from crates/tek_api/src/todo_api_sampler_voice.rs rename to crates/tek/src/api/_todo_api_sampler_voice.rs diff --git a/crates/tek_api/src/api_clip.rs b/crates/tek/src/api/clip.rs similarity index 100% rename from crates/tek_api/src/api_clip.rs rename to crates/tek/src/api/clip.rs diff --git a/crates/tek_api/src/api_clock.rs b/crates/tek/src/api/clock.rs similarity index 100% rename from crates/tek_api/src/api_clock.rs rename to crates/tek/src/api/clock.rs diff --git a/crates/tek_api/src/api_color.rs b/crates/tek/src/api/color.rs similarity index 100% rename from crates/tek_api/src/api_color.rs rename to crates/tek/src/api/color.rs diff --git a/crates/tek_api/src/api_jack.rs b/crates/tek/src/api/jack.rs similarity index 100% rename from crates/tek_api/src/api_jack.rs rename to crates/tek/src/api/jack.rs diff --git a/crates/tek_api/src/lib.rs b/crates/tek/src/api/mod.rs similarity index 97% rename from crates/tek_api/src/lib.rs rename to crates/tek/src/api/mod.rs index 9908b835..70adcb3c 100644 --- a/crates/tek_api/src/lib.rs +++ b/crates/tek/src/api/mod.rs @@ -1,22 +1,14 @@ -pub(crate) use tek_core::*; -pub(crate) use tek_core::midly::{*, live::LiveEvent, num::u7}; -pub(crate) use std::thread::JoinHandle; -pub(crate) use std::fmt::{Debug, Formatter, Error}; -pub(crate) use tek_core::jack::{ - Client, ProcessScope, Control, CycleTimes, - Port, MidiIn, MidiOut, AudioIn, AudioOut, Unowned, - Transport, TransportState, MidiIter, RawMidi -}; +use crate::*; submod! { - api_clip - api_clock - api_color - api_jack - api_phrase - api_player - api_scene - api_track + clip + clock + color + jack + phrase + player + scene + track //api_mixer //api_channel diff --git a/crates/tek_api/README.md b/crates/tek/src/api/name.rs similarity index 100% rename from crates/tek_api/README.md rename to crates/tek/src/api/name.rs diff --git a/crates/tek_api/src/api_phrase.rs b/crates/tek/src/api/phrase.rs similarity index 100% rename from crates/tek_api/src/api_phrase.rs rename to crates/tek/src/api/phrase.rs diff --git a/crates/tek_api/src/api_player.rs b/crates/tek/src/api/player.rs similarity index 100% rename from crates/tek_api/src/api_player.rs rename to crates/tek/src/api/player.rs diff --git a/crates/tek_api/src/api_scene.rs b/crates/tek/src/api/scene.rs similarity index 100% rename from crates/tek_api/src/api_scene.rs rename to crates/tek/src/api/scene.rs diff --git a/crates/tek_api/src/api_name.rs b/crates/tek/src/api/timeline.ts similarity index 100% rename from crates/tek_api/src/api_name.rs rename to crates/tek/src/api/timeline.ts diff --git a/crates/tek_api/src/api_track.rs b/crates/tek/src/api/track.rs similarity index 100% rename from crates/tek_api/src/api_track.rs rename to crates/tek/src/api/track.rs diff --git a/crates/tek_cli/src/cli_arranger.rs b/crates/tek/src/cli_arranger.rs similarity index 100% rename from crates/tek_cli/src/cli_arranger.rs rename to crates/tek/src/cli_arranger.rs diff --git a/crates/tek_cli/src/cli_sequencer.rs b/crates/tek/src/cli_sequencer.rs similarity index 96% rename from crates/tek_cli/src/cli_sequencer.rs rename to crates/tek/src/cli_sequencer.rs index 3b9433e7..d3e64ac0 100644 --- a/crates/tek_cli/src/cli_sequencer.rs +++ b/crates/tek/src/cli_sequencer.rs @@ -1,5 +1,5 @@ use tek_api::JackActivate; -use tek_core::{*, jack::{MidiIn, MidiOut}, clap::{self, Parser}}; +use crate::{*, jack::{MidiIn, MidiOut}, clap::{self, Parser}}; pub fn main () -> Usually<()> { SequencerCli::parse().run() diff --git a/crates/tek_cli/src/cli_transport.rs b/crates/tek/src/cli_transport.rs similarity index 100% rename from crates/tek_cli/src/cli_transport.rs rename to crates/tek/src/cli_transport.rs diff --git a/crates/tek_core/src/audio.rs b/crates/tek/src/core/audio.rs similarity index 100% rename from crates/tek_core/src/audio.rs rename to crates/tek/src/core/audio.rs diff --git a/crates/tek_core/src/collect.rs b/crates/tek/src/core/collect.rs similarity index 100% rename from crates/tek_core/src/collect.rs rename to crates/tek/src/core/collect.rs diff --git a/crates/tek_core/src/color.rs b/crates/tek/src/core/color.rs similarity index 100% rename from crates/tek_core/src/color.rs rename to crates/tek/src/core/color.rs diff --git a/crates/tek_core/src/command.rs b/crates/tek/src/core/command.rs similarity index 100% rename from crates/tek_core/src/command.rs rename to crates/tek/src/core/command.rs diff --git a/crates/tek_core/src/edn.rs b/crates/tek/src/core/edn.rs similarity index 100% rename from crates/tek_core/src/edn.rs rename to crates/tek/src/core/edn.rs diff --git a/crates/tek_core/src/engine.rs b/crates/tek/src/core/engine.rs similarity index 100% rename from crates/tek_core/src/engine.rs rename to crates/tek/src/core/engine.rs diff --git a/crates/tek_core/src/focus.rs b/crates/tek/src/core/focus.rs similarity index 100% rename from crates/tek_core/src/focus.rs rename to crates/tek/src/core/focus.rs diff --git a/crates/tek_core/src/input.rs b/crates/tek/src/core/input.rs similarity index 100% rename from crates/tek_core/src/input.rs rename to crates/tek/src/core/input.rs diff --git a/crates/tek/src/core/mod.rs b/crates/tek/src/core/mod.rs new file mode 100644 index 00000000..9105f901 --- /dev/null +++ b/crates/tek/src/core/mod.rs @@ -0,0 +1,21 @@ +use crate::*; + +submod! { + //tui + audio + color + collect + command + edn + engine + focus + input + output + pitch + space + time +} + +testmod! { + test +} diff --git a/crates/tek_core/src/output.rs b/crates/tek/src/core/output.rs similarity index 100% rename from crates/tek_core/src/output.rs rename to crates/tek/src/core/output.rs diff --git a/crates/tek_core/src/pitch.rs b/crates/tek/src/core/pitch.rs similarity index 100% rename from crates/tek_core/src/pitch.rs rename to crates/tek/src/core/pitch.rs diff --git a/crates/tek_core/src/space.rs b/crates/tek/src/core/space.rs similarity index 100% rename from crates/tek_core/src/space.rs rename to crates/tek/src/core/space.rs diff --git a/crates/tek_core/src/test.rs b/crates/tek/src/core/test.rs similarity index 100% rename from crates/tek_core/src/test.rs rename to crates/tek/src/core/test.rs diff --git a/crates/tek_core/src/time.rs b/crates/tek/src/core/time.rs similarity index 100% rename from crates/tek_core/src/time.rs rename to crates/tek/src/core/time.rs diff --git a/crates/tek_core/src/tui.rs b/crates/tek/src/core/tui.rs similarity index 100% rename from crates/tek_core/src/tui.rs rename to crates/tek/src/core/tui.rs diff --git a/crates/tek_layout/README.md b/crates/tek/src/layout/README.md similarity index 100% rename from crates/tek_layout/README.md rename to crates/tek/src/layout/README.md diff --git a/crates/tek_layout/src/align.rs b/crates/tek/src/layout/align.rs similarity index 100% rename from crates/tek_layout/src/align.rs rename to crates/tek/src/layout/align.rs diff --git a/crates/tek_layout/src/bsp.rs b/crates/tek/src/layout/bsp.rs similarity index 100% rename from crates/tek_layout/src/bsp.rs rename to crates/tek/src/layout/bsp.rs diff --git a/crates/tek_layout/src/cond.rs b/crates/tek/src/layout/cond.rs similarity index 100% rename from crates/tek_layout/src/cond.rs rename to crates/tek/src/layout/cond.rs diff --git a/crates/tek_layout/src/debug.rs b/crates/tek/src/layout/debug.rs similarity index 100% rename from crates/tek_layout/src/debug.rs rename to crates/tek/src/layout/debug.rs diff --git a/crates/tek_layout/src/fill.rs b/crates/tek/src/layout/fill.rs similarity index 100% rename from crates/tek_layout/src/fill.rs rename to crates/tek/src/layout/fill.rs diff --git a/crates/tek_layout/src/fixed.rs b/crates/tek/src/layout/fixed.rs similarity index 100% rename from crates/tek_layout/src/fixed.rs rename to crates/tek/src/layout/fixed.rs diff --git a/crates/tek_layout/src/inset_outset.rs b/crates/tek/src/layout/inset_outset.rs similarity index 100% rename from crates/tek_layout/src/inset_outset.rs rename to crates/tek/src/layout/inset_outset.rs diff --git a/crates/tek_layout/src/layers.rs b/crates/tek/src/layout/layers.rs similarity index 100% rename from crates/tek_layout/src/layers.rs rename to crates/tek/src/layout/layers.rs diff --git a/crates/tek/src/layout/map_reduce.rs b/crates/tek/src/layout/map_reduce.rs new file mode 100644 index 00000000..833973b2 --- /dev/null +++ b/crates/tek/src/layout/map_reduce.rs @@ -0,0 +1,33 @@ +use crate::*; + +impl+Send+Sync, T, R: Render> LayoutMapReduce for E {} + +pub trait LayoutMapReduce+Send+Sync, T, R: Render> { + fn map R> (iterator: I, callback: F) -> Map { + Map(Default::default(), iterator, callback) + } + fn reduce , T)->R+Send+Sync> (iterator: I, callback: F) -> Reduce { + Reduce(Default::default(), iterator, callback) + } +} + +pub struct Map, R: Render, F: Fn(T)->R>( + PhantomData, + I, + F +); + +pub struct Reduce, R: Render, F: Fn(&dyn Render, T)->R>( + PhantomData<(E, R)>, + I, + F +); + +impl+Send+Sync, R: Render, F: Fn(&dyn Render, T)->R+Send+Sync> Render for Reduce { + fn min_size (&self, to: E::Size) -> Perhaps { + todo!() + } + fn render (&self, to: &mut E::Output) -> Usually<()> { + todo!() + } +} diff --git a/crates/tek_layout/src/measure.rs b/crates/tek/src/layout/measure.rs similarity index 100% rename from crates/tek_layout/src/measure.rs rename to crates/tek/src/layout/measure.rs diff --git a/crates/tek_layout/src/min_max.rs b/crates/tek/src/layout/min_max.rs similarity index 100% rename from crates/tek_layout/src/min_max.rs rename to crates/tek/src/layout/min_max.rs diff --git a/crates/tek_layout/src/lib.rs b/crates/tek/src/layout/mod.rs similarity index 88% rename from crates/tek_layout/src/lib.rs rename to crates/tek/src/layout/mod.rs index d9563df5..91996fe6 100644 --- a/crates/tek_layout/src/lib.rs +++ b/crates/tek/src/layout/mod.rs @@ -1,4 +1,4 @@ -pub(crate) use tek_core::*; +use crate::*; submod! { align @@ -16,7 +16,7 @@ submod! { scroll shrink_grow split - //stack + stack } #[macro_export] macro_rules! lay { diff --git a/crates/tek_layout/src/push_pull.rs b/crates/tek/src/layout/push_pull.rs similarity index 100% rename from crates/tek_layout/src/push_pull.rs rename to crates/tek/src/layout/push_pull.rs diff --git a/crates/tek_layout/src/scroll.rs b/crates/tek/src/layout/scroll.rs similarity index 100% rename from crates/tek_layout/src/scroll.rs rename to crates/tek/src/layout/scroll.rs diff --git a/crates/tek_layout/src/shrink_grow.rs b/crates/tek/src/layout/shrink_grow.rs similarity index 100% rename from crates/tek_layout/src/shrink_grow.rs rename to crates/tek/src/layout/shrink_grow.rs diff --git a/crates/tek_layout/src/split.rs b/crates/tek/src/layout/split.rs similarity index 100% rename from crates/tek_layout/src/split.rs rename to crates/tek/src/layout/split.rs diff --git a/crates/tek_layout/src/stack.rs b/crates/tek/src/layout/stack.rs similarity index 100% rename from crates/tek_layout/src/stack.rs rename to crates/tek/src/layout/stack.rs diff --git a/crates/tek/src/lib.rs b/crates/tek/src/lib.rs new file mode 100644 index 00000000..013d5566 --- /dev/null +++ b/crates/tek/src/lib.rs @@ -0,0 +1,75 @@ +pub(crate) use ratatui; + +pub(crate) use jack; +pub(crate) use jack::{ + Client, ProcessScope, Control, CycleTimes, + Port, MidiIn, MidiOut, AudioIn, AudioOut, Unowned, + Transport, TransportState, MidiIter, RawMidi +}; + +pub(crate) use midly; +pub(crate) use midly::{ + *, live::LiveEvent, num::u7 +}; + +pub(crate) use clap; + +pub(crate) use std::sync::{Arc, Mutex, RwLock}; +pub(crate) use std::sync::atomic::{Ordering, AtomicBool, AtomicUsize}; +pub(crate) use std::collections::BTreeMap; +pub(crate) use std::marker::PhantomData; +pub(crate) use std::error::Error; + +pub(crate) use crossterm::{ExecutableCommand}; +pub(crate) use crossterm::terminal::{EnterAlternateScreen, LeaveAlternateScreen, enable_raw_mode, disable_raw_mode}; +pub(crate) use crossterm::event::{KeyCode, KeyModifiers, KeyEvent, KeyEventKind, KeyEventState}; +pub(crate) use tek_core::midly::{num::u7, MidiMessage}; +pub(crate) use std::sync::{Arc, RwLock}; +pub(crate) use std::path::PathBuf; +pub(crate) use std::ffi::OsString; +pub(crate) use better_panic::{Settings, Verbosity}; +pub(crate) use std::thread::{spawn, JoinHandle}; +pub(crate) use std::time::Duration; +pub(crate) use ratatui::prelude::{Style, Color, Buffer}; +pub(crate) use ratatui::style::{Stylize, Modifier}; +pub(crate) use ratatui::backend::{Backend, CrosstermBackend, ClearType}; +pub(crate) use std::io::{Stdout, stdout}; + +pub(crate) use atomic_float::*; +pub(crate) use palette::{*, convert::*, okhsl::*}; + +use std::ops::{Add, Sub, Mul, Div, Rem}; +use std::cmp::{Ord, Eq, PartialEq}; +use std::fmt::{Debug, Display}; + +/// Standard result type. +pub type Usually = Result>; + +/// Standard optional result type. +pub type Perhaps = Result, Box>; + +/// Define and reexport submodules. +#[macro_export] macro_rules! submod { + ($($name:ident)*) => { $(mod $name; pub use self::$name::*;)* }; +} + +/// Define public modules. +#[macro_export] macro_rules! pubmod { + ($($name:ident)*) => { $(pub mod $name;)* }; +} + +/// Define test modules. +#[macro_export] macro_rules! testmod { + ($($name:ident)*) => { $(#[cfg(test)] mod $name;)* }; +} + +submod! { + api + core + layout + tui +} + +testmod! { + test +} diff --git a/crates/tek_api/src/api_timeline.ts b/crates/tek/src/test.rs similarity index 100% rename from crates/tek_api/src/api_timeline.ts rename to crates/tek/src/test.rs diff --git a/crates/tek_cli/src/todo_cli_mixer.rs b/crates/tek/src/todo_cli_mixer.rs similarity index 100% rename from crates/tek_cli/src/todo_cli_mixer.rs rename to crates/tek/src/todo_cli_mixer.rs diff --git a/crates/tek_cli/src/todo_cli_plugin.rs b/crates/tek/src/todo_cli_plugin.rs similarity index 100% rename from crates/tek_cli/src/todo_cli_plugin.rs rename to crates/tek/src/todo_cli_plugin.rs diff --git a/crates/tek_cli/src/todo_cli_sampler.rs b/crates/tek/src/todo_cli_sampler.rs similarity index 100% rename from crates/tek_cli/src/todo_cli_sampler.rs rename to crates/tek/src/todo_cli_sampler.rs diff --git a/crates/tek_tui/src/todo_tui_mixer.rs b/crates/tek/src/tui/_todo_tui_mixer.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_mixer.rs rename to crates/tek/src/tui/_todo_tui_mixer.rs diff --git a/crates/tek_tui/src/todo_tui_plugin.rs b/crates/tek/src/tui/_todo_tui_plugin.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_plugin.rs rename to crates/tek/src/tui/_todo_tui_plugin.rs diff --git a/crates/tek_tui/src/todo_tui_plugin_lv2.rs b/crates/tek/src/tui/_todo_tui_plugin_lv2.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_plugin_lv2.rs rename to crates/tek/src/tui/_todo_tui_plugin_lv2.rs diff --git a/crates/tek_tui/src/todo_tui_plugin_lv2_gui.rs b/crates/tek/src/tui/_todo_tui_plugin_lv2_gui.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_plugin_lv2_gui.rs rename to crates/tek/src/tui/_todo_tui_plugin_lv2_gui.rs diff --git a/crates/tek_tui/src/todo_tui_plugin_vst2.rs b/crates/tek/src/tui/_todo_tui_plugin_vst2.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_plugin_vst2.rs rename to crates/tek/src/tui/_todo_tui_plugin_vst2.rs diff --git a/crates/tek_tui/src/todo_tui_plugin_vst3.rs b/crates/tek/src/tui/_todo_tui_plugin_vst3.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_plugin_vst3.rs rename to crates/tek/src/tui/_todo_tui_plugin_vst3.rs diff --git a/crates/tek_tui/src/todo_tui_sampler.rs b/crates/tek/src/tui/_todo_tui_sampler.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_sampler.rs rename to crates/tek/src/tui/_todo_tui_sampler.rs diff --git a/crates/tek_tui/src/todo_tui_sampler_cmd.rs b/crates/tek/src/tui/_todo_tui_sampler_cmd.rs similarity index 100% rename from crates/tek_tui/src/todo_tui_sampler_cmd.rs rename to crates/tek/src/tui/_todo_tui_sampler_cmd.rs diff --git a/crates/tek_tui/src/tui_app_arranger.rs b/crates/tek/src/tui/app_arranger.rs similarity index 98% rename from crates/tek_tui/src/tui_app_arranger.rs rename to crates/tek/src/tui/app_arranger.rs index 2487d85b..f9b50393 100644 --- a/crates/tek_tui/src/tui_app_arranger.rs +++ b/crates/tek/src/tui/app_arranger.rs @@ -169,7 +169,7 @@ render!(|self: ArrangerStatus|{ let mode_bg = TuiTheme::mode_bg(); let mode_fg = TuiTheme::mode_fg(); - let mode = TuiStyle::bold(format!(" {label} "), true).bg(mode_bg).fg(mode_fg); + let mode = Tui::fg(mode_fg, Tui::bg(mode_bg, Tui::bold(true, format!(" {label} ")))); let commands = match self { Self::ArrangerMix => Self::command(&[ diff --git a/crates/tek_tui/src/tui_app_sequencer.rs b/crates/tek/src/tui/app_sequencer.rs similarity index 100% rename from crates/tek_tui/src/tui_app_sequencer.rs rename to crates/tek/src/tui/app_sequencer.rs diff --git a/crates/tek_tui/src/tui_app_transport.rs b/crates/tek/src/tui/app_transport.rs similarity index 100% rename from crates/tek_tui/src/tui_app_transport.rs rename to crates/tek/src/tui/app_transport.rs diff --git a/crates/tek_tui/src/tui_control_arranger.rs b/crates/tek/src/tui/ctrl_arranger.rs similarity index 100% rename from crates/tek_tui/src/tui_control_arranger.rs rename to crates/tek/src/tui/ctrl_arranger.rs diff --git a/crates/tek_tui/src/tui_control_file_browser.rs b/crates/tek/src/tui/ctrl_file_browser.rs similarity index 100% rename from crates/tek_tui/src/tui_control_file_browser.rs rename to crates/tek/src/tui/ctrl_file_browser.rs diff --git a/crates/tek_tui/src/tui_control_phrase_editor.rs b/crates/tek/src/tui/ctrl_phrase_editor.rs similarity index 100% rename from crates/tek_tui/src/tui_control_phrase_editor.rs rename to crates/tek/src/tui/ctrl_phrase_editor.rs diff --git a/crates/tek_tui/src/tui_control_phrase_length.rs b/crates/tek/src/tui/ctrl_phrase_length.rs similarity index 100% rename from crates/tek_tui/src/tui_control_phrase_length.rs rename to crates/tek/src/tui/ctrl_phrase_length.rs diff --git a/crates/tek_tui/src/tui_control_phrase_list.rs b/crates/tek/src/tui/ctrl_phrase_list.rs similarity index 100% rename from crates/tek_tui/src/tui_control_phrase_list.rs rename to crates/tek/src/tui/ctrl_phrase_list.rs diff --git a/crates/tek_tui/src/tui_control_phrase_rename.rs b/crates/tek/src/tui/ctrl_phrase_rename.rs similarity index 100% rename from crates/tek_tui/src/tui_control_phrase_rename.rs rename to crates/tek/src/tui/ctrl_phrase_rename.rs diff --git a/crates/tek_tui/src/tui_control_sequencer.rs b/crates/tek/src/tui/ctrl_sequencer.rs similarity index 100% rename from crates/tek_tui/src/tui_control_sequencer.rs rename to crates/tek/src/tui/ctrl_sequencer.rs diff --git a/crates/tek_tui/src/tui_control_transport.rs b/crates/tek/src/tui/ctrl_transport.rs similarity index 100% rename from crates/tek_tui/src/tui_control_transport.rs rename to crates/tek/src/tui/ctrl_transport.rs diff --git a/crates/tek_tui/src/tui_engine_focus.rs b/crates/tek/src/tui/engine_focus.rs similarity index 100% rename from crates/tek_tui/src/tui_engine_focus.rs rename to crates/tek/src/tui/engine_focus.rs diff --git a/crates/tek_tui/src/tui_engine_input.rs b/crates/tek/src/tui/engine_input.rs similarity index 100% rename from crates/tek_tui/src/tui_engine_input.rs rename to crates/tek/src/tui/engine_input.rs diff --git a/crates/tek_tui/src/tui_engine_layout.rs b/crates/tek/src/tui/engine_layout.rs similarity index 100% rename from crates/tek_tui/src/tui_engine_layout.rs rename to crates/tek/src/tui/engine_layout.rs diff --git a/crates/tek_tui/src/tui_engine_output.rs b/crates/tek/src/tui/engine_output.rs similarity index 100% rename from crates/tek_tui/src/tui_engine_output.rs rename to crates/tek/src/tui/engine_output.rs diff --git a/crates/tek_tui/src/tui_engine_style.rs b/crates/tek/src/tui/engine_style.rs similarity index 100% rename from crates/tek_tui/src/tui_engine_style.rs rename to crates/tek/src/tui/engine_style.rs diff --git a/crates/tek_tui/src/tui_jack_arranger.rs b/crates/tek/src/tui/jack_arranger.rs similarity index 100% rename from crates/tek_tui/src/tui_jack_arranger.rs rename to crates/tek/src/tui/jack_arranger.rs diff --git a/crates/tek_tui/src/tui_jack_sequencer.rs b/crates/tek/src/tui/jack_sequencer.rs similarity index 100% rename from crates/tek_tui/src/tui_jack_sequencer.rs rename to crates/tek/src/tui/jack_sequencer.rs diff --git a/crates/tek_tui/src/tui_jack_transport.rs b/crates/tek/src/tui/jack_transport.rs similarity index 100% rename from crates/tek_tui/src/tui_jack_transport.rs rename to crates/tek/src/tui/jack_transport.rs diff --git a/crates/tek_tui/src/tui.rs b/crates/tek/src/tui/mod.rs similarity index 75% rename from crates/tek_tui/src/tui.rs rename to crates/tek/src/tui/mod.rs index f629109f..2fd4e52e 100644 --- a/crates/tek_tui/src/tui.rs +++ b/crates/tek/src/tui/mod.rs @@ -1,62 +1,46 @@ -pub(crate) use crossterm::{ExecutableCommand}; -pub(crate) use crossterm::terminal::{EnterAlternateScreen, LeaveAlternateScreen, enable_raw_mode, disable_raw_mode}; -pub(crate) use crossterm::event::{KeyCode, KeyModifiers, KeyEvent, KeyEventKind, KeyEventState}; -pub(crate) use tek_core::midly::{num::u7, MidiMessage}; -pub(crate) use tek_core::{*, jack::*}; -pub(crate) use tek_layout::*; -pub(crate) use tek_api::*; -pub(crate) use std::sync::{Arc, RwLock}; -pub(crate) use std::path::PathBuf; -pub(crate) use std::ffi::OsString; -pub(crate) use better_panic::{Settings, Verbosity}; -pub(crate) use std::thread::{spawn, JoinHandle}; -pub(crate) use std::time::Duration; -pub(crate) use ratatui::prelude::{Style, Color, Buffer}; -pub(crate) use ratatui::style::{Stylize, Modifier}; -pub(crate) use ratatui::backend::{Backend, CrosstermBackend, ClearType}; -pub(crate) use std::io::{Stdout, stdout}; +use crate::*; submod! { - tui_engine_focus - tui_engine_input - tui_engine_layout - tui_engine_output - tui_engine_style + engine_focus + engine_input + engine_layout + engine_output + engine_style - tui_app_arranger - tui_app_sequencer - tui_app_transport + app_arranger + app_sequencer + app_transport - tui_jack_transport - tui_jack_sequencer - tui_jack_arranger + jack_transport + jack_sequencer + jack_arranger - tui_control_arranger - tui_control_file_browser - tui_control_phrase_editor - tui_control_phrase_length - tui_control_phrase_list - tui_control_phrase_rename - tui_control_sequencer - tui_control_transport + ctrl_arranger + ctrl_file_browser + ctrl_phrase_editor + ctrl_phrase_length + ctrl_phrase_list + ctrl_phrase_rename + ctrl_sequencer + ctrl_transport - tui_model_arranger - tui_model_clock - tui_model_file_browser - tui_model_phrase_editor - tui_model_phrase_length - tui_model_phrase_list - tui_model_phrase_player + model_arranger + model_clock + model_file_browser + model_phrase_editor + model_phrase_length + model_phrase_list + model_phrase_player - tui_view_arranger - tui_view_file_browser - tui_view_phrase_editor - tui_view_phrase_length - tui_view_phrase_list - tui_view_phrase_selector - tui_view_sequencer - tui_view_status_bar - tui_view_transport + view_arranger + view_file_browser + view_phrase_editor + view_phrase_length + view_phrase_list + view_phrase_selector + view_sequencer + view_status_bar + view_transport } #[macro_export] macro_rules! render { @@ -79,7 +63,7 @@ pub struct Tui { pub area: [u16;4], // FIXME auto resize } -impl Engine for Tui { +impl crate::core::Engine for Tui { type Unit = u16; type Size = [Self::Unit;2]; type Area = [Self::Unit;4]; diff --git a/crates/tek_tui/src/tui_model_arranger.rs b/crates/tek/src/tui/model_arranger.rs similarity index 100% rename from crates/tek_tui/src/tui_model_arranger.rs rename to crates/tek/src/tui/model_arranger.rs diff --git a/crates/tek_tui/src/tui_model_clock.rs b/crates/tek/src/tui/model_clock.rs similarity index 100% rename from crates/tek_tui/src/tui_model_clock.rs rename to crates/tek/src/tui/model_clock.rs diff --git a/crates/tek_tui/src/tui_model_file_browser.rs b/crates/tek/src/tui/model_file_browser.rs similarity index 100% rename from crates/tek_tui/src/tui_model_file_browser.rs rename to crates/tek/src/tui/model_file_browser.rs diff --git a/crates/tek_tui/src/tui_model_phrase_editor.rs b/crates/tek/src/tui/model_phrase_editor.rs similarity index 100% rename from crates/tek_tui/src/tui_model_phrase_editor.rs rename to crates/tek/src/tui/model_phrase_editor.rs diff --git a/crates/tek_tui/src/tui_model_phrase_length.rs b/crates/tek/src/tui/model_phrase_length.rs similarity index 100% rename from crates/tek_tui/src/tui_model_phrase_length.rs rename to crates/tek/src/tui/model_phrase_length.rs diff --git a/crates/tek_tui/src/tui_model_phrase_list.rs b/crates/tek/src/tui/model_phrase_list.rs similarity index 100% rename from crates/tek_tui/src/tui_model_phrase_list.rs rename to crates/tek/src/tui/model_phrase_list.rs diff --git a/crates/tek_tui/src/tui_model_phrase_player.rs b/crates/tek/src/tui/model_phrase_player.rs similarity index 100% rename from crates/tek_tui/src/tui_model_phrase_player.rs rename to crates/tek/src/tui/model_phrase_player.rs diff --git a/crates/tek_tui/src/tui_view_arranger.rs b/crates/tek/src/tui/view_arranger.rs similarity index 90% rename from crates/tek_tui/src/tui_view_arranger.rs rename to crates/tek/src/tui/view_arranger.rs index 48ca0cd6..75f7cc5d 100644 --- a/crates/tek_tui/src/tui_view_arranger.rs +++ b/crates/tek/src/tui/view_arranger.rs @@ -154,45 +154,44 @@ pub fn arranger_content_vertical ( } ); - let content = Tui::fixed_y((view.size.h() as u16).saturating_sub(header_h), Tui::reduce( - scenes.iter().zip(rows.iter().map(|row|row.0)), - |(scene, pulses)| { - let height = 1.max((pulses / PPQ) as u16); - let playing = scene.is_playing(tracks); - Tui::fixed_y( - height, + let height = (view.size.h() as u16).saturating_sub(header_h); + let scene_rows = scenes.iter().zip(rows.iter().map(|row|row.0)); + let content = Tui::fixed_y(height, Tui::reduce(scene_rows, |prev, (scene, pulses)| { + let height = 1.max((pulses / PPQ) as u16); + let playing = scene.is_playing(tracks); + Tui::fixed_y( + height, + Tui::to_east( Tui::to_east( - Tui::to_east( - if playing { "▶ " } else { " " }, - Tui::bold(true, scene.name.read().unwrap().as_str()) - ), - Tui::iter( - cols.iter().map(|col|col.0).enumerate(), - |(track, w)|Tui::fixed_xy(w as u16, height, Layers::new(move |add|{ - let mut bg = clip_bg; - match (tracks.get(track), scene.clips.get(track)) { - (Some(track), Some(Some(phrase))) => { - let name = &(phrase as &Arc>).read().unwrap().name; - let name = format!("{}", name); - let max_w = name.len().min((w as usize).saturating_sub(2)); - let color = phrase.read().unwrap().color; - add(&name.as_str()[0..max_w].push_x(1).fixed_x(w as u16))?; - bg = color.dark.rgb; - if let Some((_, Some(ref playing))) = track.player.play_phrase() { - if *playing.read().unwrap() == *phrase.read().unwrap() { - bg = color.light.rgb - } - }; - }, - _ => {} - }; - add(&Background(bg)) - })) - ) + if playing { "▶ " } else { " " }, + Tui::bold(true, scene.name.read().unwrap().as_str()) + ), + Tui::iter( + cols.iter().map(|col|col.0).enumerate(), + |(track, w)|Tui::fixed_xy(w as u16, height, Layers::new(move |add|{ + let mut bg = clip_bg; + match (tracks.get(track), scene.clips.get(track)) { + (Some(track), Some(Some(phrase))) => { + let name = &(phrase as &Arc>).read().unwrap().name; + let name = format!("{}", name); + let max_w = name.len().min((w as usize).saturating_sub(2)); + let color = phrase.read().unwrap().color; + add(&name.as_str()[0..max_w].push_x(1).fixed_x(w as u16))?; + bg = color.dark.rgb; + if let Some((_, Some(ref playing))) = track.player.play_phrase() { + if *playing.read().unwrap() == *phrase.read().unwrap() { + bg = color.light.rgb + } + }; + }, + _ => {} + }; + add(&Background(bg)) + })) ) ) - } - )); + ) + })); let arrangement = Layers::new(move |add|{ // column separators diff --git a/crates/tek_tui/src/tui_view_file_browser.rs b/crates/tek/src/tui/view_file_browser.rs similarity index 100% rename from crates/tek_tui/src/tui_view_file_browser.rs rename to crates/tek/src/tui/view_file_browser.rs diff --git a/crates/tek_tui/src/tui_view_phrase_editor.rs b/crates/tek/src/tui/view_phrase_editor.rs similarity index 100% rename from crates/tek_tui/src/tui_view_phrase_editor.rs rename to crates/tek/src/tui/view_phrase_editor.rs diff --git a/crates/tek_tui/src/tui_view_phrase_length.rs b/crates/tek/src/tui/view_phrase_length.rs similarity index 100% rename from crates/tek_tui/src/tui_view_phrase_length.rs rename to crates/tek/src/tui/view_phrase_length.rs diff --git a/crates/tek_tui/src/tui_view_phrase_list.rs b/crates/tek/src/tui/view_phrase_list.rs similarity index 92% rename from crates/tek_tui/src/tui_view_phrase_list.rs rename to crates/tek/src/tui/view_phrase_list.rs index 091c5663..ecdc21ca 100644 --- a/crates/tek_tui/src/tui_view_phrase_list.rs +++ b/crates/tek/src/tui/view_phrase_list.rs @@ -51,7 +51,7 @@ render!(|self: PhraseListView<'a>|{ row2 = format!("{row2}▄"); } }; - let row2 = TuiStyle::bold(row2, true); + let row2 = Tui::bold(true, row2); add(&Tui::bg(color.base.rgb, Tui::fill_x(Tui::to_south(row1, row2))))?; if *entered && i == *index { add(&CORNERS)?; @@ -70,7 +70,7 @@ render!(|self: PhraseListView<'a>|{ let upper_right = format!("({})", phrases.len()); lay!( content, - TuiStyle::fg(upper_left.to_string(), title_color).push_x(1).align_nw().fill_xy(), - TuiStyle::fg(upper_right.to_string(), title_color).pull_x(1).align_ne().fill_xy(), + Tui::fg(title_color, upper_left.to_string()).push_x(1).align_nw().fill_xy(), + Tui::fg(title_color, upper_right.to_string()).pull_x(1).align_ne().fill_xy(), ) }); diff --git a/crates/tek_tui/src/tui_view_phrase_selector.rs b/crates/tek/src/tui/view_phrase_selector.rs similarity index 100% rename from crates/tek_tui/src/tui_view_phrase_selector.rs rename to crates/tek/src/tui/view_phrase_selector.rs diff --git a/crates/tek_tui/src/tui_view_sequencer.rs b/crates/tek/src/tui/view_sequencer.rs similarity index 89% rename from crates/tek_tui/src/tui_view_sequencer.rs rename to crates/tek/src/tui/view_sequencer.rs index 720f3950..ae20af5b 100644 --- a/crates/tek_tui/src/tui_view_sequencer.rs +++ b/crates/tek/src/tui/view_sequencer.rs @@ -51,16 +51,11 @@ render!(|self: SequencerStatusBar|{ Tui::bg( light, Tui::reduce( + self.help.iter(), |(prefix, hotkey, suffix)|Tui::reduce( Tui::to_east, - [ - widget(&" "), - widget(*prefix), - widget(TuiStyle::fg(*hotkey, yellow)), - widget(*suffix) - ] + [widget(&" "), widget(*prefix), widget(Tui::fg(yellow, *hotkey)), widget(*suffix)] ), - self.help ) ) ); diff --git a/crates/tek_tui/src/tui_view_status_bar.rs b/crates/tek/src/tui/view_status_bar.rs similarity index 100% rename from crates/tek_tui/src/tui_view_status_bar.rs rename to crates/tek/src/tui/view_status_bar.rs diff --git a/crates/tek_tui/src/tui_view_transport.rs b/crates/tek/src/tui/view_transport.rs similarity index 98% rename from crates/tek_tui/src/tui_view_transport.rs rename to crates/tek/src/tui/view_transport.rs index b49b1e5f..6d08ae13 100644 --- a/crates/tek_tui/src/tui_view_transport.rs +++ b/crates/tek/src/tui/view_transport.rs @@ -28,7 +28,7 @@ render!(|self: TransportView|{ *state == Some(TransportState::Rolling), Tui::to_south( Tui::to_east("│", - Tui::to_east(TuiStyle::fg("▶ PLAYING", Color::Rgb(0, 255, 0)), + Tui::to_east(Tui::fg(Color::Rgb(0, 255, 0), "▶ PLAYING"), Tui::to_east("│0 (0)", Tui::to_east("│00m00s000u", "│00B 0b 00/00")))), diff --git a/crates/tek_api/Cargo.toml b/crates/tek_api/Cargo.toml deleted file mode 100644 index c8f25c24..00000000 --- a/crates/tek_api/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "tek_api" -edition = "2021" -version = "0.1.0" - -[dependencies] -tek_core = { path = "../tek_core" } -uuid = { version = "1.10.0", features = [ "v4" ] } -vst = "0.4.0" -livi = "0.7.4" -symphonia = { version = "0.5.4", features = [ "all" ] } -wavers = "1.4.3" diff --git a/crates/tek_cli/Cargo.toml b/crates/tek_cli/Cargo.toml deleted file mode 100644 index b9a09541..00000000 --- a/crates/tek_cli/Cargo.toml +++ /dev/null @@ -1,37 +0,0 @@ -[package] -name = "tek_cli" -edition = "2021" -version = "0.1.0" - -[dependencies] -tek_core = { path = "../tek_core" } -tek_api = { path = "../tek_api" } -tek_tui = { path = "../tek_tui" } - -#[[bin]] -#name = "tek_mixer" -#path = "src/cli_mixer.rs" - -#[[bin]] -#name = "tek_track" -#path = "src/cli_track.rs" - -#[[bin]] -#name = "tek_sampler" -#path = "src/cli_sampler.rs" - -#[[bin]] -#name = "tek_plugin" -#path = "src/cli_plugin.rs" - -[[bin]] -name = "tek_sequencer" -path = "src/cli_sequencer.rs" - -[[bin]] -name = "tek_arranger" -path = "src/cli_arranger.rs" - -[[bin]] -name = "tek_transport" -path = "src/cli_transport.rs" diff --git a/crates/tek_cli/README.md b/crates/tek_cli/README.md deleted file mode 100644 index 051bf760..00000000 --- a/crates/tek_cli/README.md +++ /dev/null @@ -1 +0,0 @@ -cli entry points diff --git a/crates/tek_core/Cargo.toml b/crates/tek_core/Cargo.toml deleted file mode 100644 index a4752597..00000000 --- a/crates/tek_core/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "tek_core" -edition = "2021" -version = "0.1.0" - -[dependencies] -atomic_float = "1.0.0" -backtrace = "0.3.72" -better-panic = "0.3.0" -clap = { version = "4.5.4", features = [ "derive" ] } -clojure-reader = "0.1.0" -jack = "0.13" -midly = "0.5" -once_cell = "1.19.0" -palette = { version = "0.7.6", features = [ "random" ] } -rand = "0.8.5" -ratatui = { version = "0.26.3", features = [ "unstable-widget-ref", "underline-color" ] } -toml = "0.8.12" -quanta = "0.12.3" -#no_deadlocks = "1.3.2" - -[dev-dependencies] -#tek_app = { version = "0.1.0", path = "../tek_app" } diff --git a/crates/tek_core/README.md b/crates/tek_core/README.md deleted file mode 100644 index 3a029c02..00000000 --- a/crates/tek_core/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# `tek_core` - -Core module of Tek TUI DAW. - -![](./architecture.svg) diff --git a/crates/tek_core/src/lib.rs b/crates/tek_core/src/lib.rs deleted file mode 100644 index e18c3c6a..00000000 --- a/crates/tek_core/src/lib.rs +++ /dev/null @@ -1,58 +0,0 @@ -pub use ratatui; -pub use jack; -pub use midly; -pub use clap; -pub use std::sync::{Arc, Mutex, LockResult, RwLock, RwLockReadGuard, RwLockWriteGuard}; -pub use std::collections::BTreeMap; -pub use once_cell::sync::Lazy; -pub use std::sync::atomic::{Ordering, AtomicBool, AtomicUsize, AtomicU16}; -pub use std::rc::Rc; -pub use std::cell::{Cell, RefCell}; -pub use std::marker::PhantomData; -pub(crate) use std::error::Error; -pub(crate) use atomic_float::*; -pub(crate) use palette::{*, convert::*, okhsl::*}; -use std::ops::{Add, Sub, Mul, Div, Rem}; -use std::cmp::{Ord, Eq, PartialEq}; -use std::fmt::{Debug, Display}; - -/// Define and reexport submodules. -#[macro_export] macro_rules! submod { - ($($name:ident)*) => { $(mod $name; pub use self::$name::*;)* }; -} - -/// Define public modules. -#[macro_export] macro_rules! pubmod { - ($($name:ident)*) => { $(pub mod $name;)* }; -} - -/// Define test modules. -#[macro_export] macro_rules! testmod { - ($($name:ident)*) => { $(#[cfg(test)] mod $name;)* }; -} - -submod! { - //tui - audio - color - collect - command - edn - engine - focus - input - output - pitch - space - time -} - -testmod! { - test -} - -/// Standard result type. -pub type Usually = Result>; - -/// Standard optional result type. -pub type Perhaps = Result, Box>; diff --git a/crates/tek_layout/Cargo.toml b/crates/tek_layout/Cargo.toml deleted file mode 100644 index 29fc6a14..00000000 --- a/crates/tek_layout/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "tek_layout" -edition = "2021" -version = "0.1.0" - -[dependencies] -tek_core = { path = "../tek_core" } diff --git a/crates/tek_layout/src/map_reduce.rs b/crates/tek_layout/src/map_reduce.rs deleted file mode 100644 index 3afa1fc8..00000000 --- a/crates/tek_layout/src/map_reduce.rs +++ /dev/null @@ -1,30 +0,0 @@ -use crate::*; - -impl, T, R: Render> LayoutMapReduce for E {} - -pub trait LayoutMapReduce, T, R: Render> { - fn map (iterator: I, callback: F) -> Map - where - F: Fn(T)->R - { - Map(Default::default(), iterator, callback) - } - fn reduce (iterator: I, callback: F) -> Reduce - where - F: Fn(R, T)->R - { - Reduce(Default::default(), iterator, callback) - } -} - -pub struct Map, R: Render, F: Fn(T)->R>( - PhantomData, - I, - F -); - -pub struct Reduce, R: Render, F: Fn(R, T)->R>( - PhantomData<(E, R)>, - I, - F -); diff --git a/crates/tek_tui/Cargo.toml b/crates/tek_tui/Cargo.toml deleted file mode 100644 index 2d7b3a90..00000000 --- a/crates/tek_tui/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "tek_tui" -edition = "2021" -version = "0.1.0" - -[lib] -path = "src/tui.rs" - -[dependencies] -tek_core = { path = "../tek_core" } -tek_layout = { path = "../tek_layout" } -tek_api = { path = "../tek_api" } -#tek_snd = { path = "../tek_snd" } - -livi = "0.7.4" -suil-rs = { path = "../suil" } -symphonia = { version = "0.5.4", features = [ "all" ] } -vst = "0.4.0" -#vst3 = "0.1.0" -wavers = "1.4.3" -winit = { version = "0.30.4", features = [ "x11" ] } -crossterm = "0.27" -better-panic = "0.3.0" diff --git a/crates/tek_tui/README.md b/crates/tek_tui/README.md deleted file mode 100644 index 5aa30847..00000000 --- a/crates/tek_tui/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# `tek_sequencer` - -This crate implements a MIDI sequencer and arranger with clip launching. - ---- - -# `tek_arranger` - ---- - -# `tek_timer` - -This crate implements time sync and JACK transport control. - -* Warning: If transport is set rolling by qjackctl, this program can't pause it -* Todo: bpm: shift +/- 0.001 -* Todo: quant/sync: shift = next/prev value of same type (normal, triplet, dotted) - * Or: use shift to switch between inc/dec top/bottom value? -* Todo: focus play button -* Todo: focus time position -* Todo: edit numeric values -* Todo: jump to time/bbt markers -* Todo: count xruns - ---- - -# `tek_mixer` - -// TODO: -// - Meters: propagate clipping: -// - If one stage clips, all stages after it are marked red -// - If one track clips, all tracks that feed from it are marked red? - -# `tek_track` - ---- - -# `tek_sampler` - -This crate implements a sampler device which plays audio files -in response to MIDI notes. - ---- - -# `tek_plugin`