dbg_bank_scene_params/
dbg_bank_scene_params.rs1use ot_tools_io::{
7 ArrangementFile, BankFile, MarkersFile, OctatrackFileIO, OtToolsIoError, ProjectFile,
8};
9use std::path::PathBuf;
10
11fn bank_fname_from_id(id: usize) -> String {
12 format!["bank{id:0>2}.work"].to_string()
13}
14
15fn arr_fname_from_id(id: usize) -> String {
16 format!["arr{id:0>2}.work"].to_string()
17}
18
19fn new_proj(banks: &[BankFile], proj_id: u32) -> Result<(), OtToolsIoError> {
20 let project_dirpath = PathBuf::from("dbg").join(format!["PROJECT-{proj_id}"]);
21
22 std::fs::create_dir_all(&project_dirpath)?;
23
24 let proj_fpath = project_dirpath.join("project.work");
25 ProjectFile::default().to_data_file(&proj_fpath)?;
26
27 let markers_fpath = project_dirpath.join("markers.work");
28 MarkersFile::default().to_data_file(&markers_fpath)?;
29
30 for (idx, bank) in banks.iter().enumerate() {
31 let bank_fpath = project_dirpath.join(bank_fname_from_id(idx + 1));
32 bank.to_data_file(&bank_fpath)?;
33 }
34
35 for i in 1..=8 {
36 let arr_fpath = project_dirpath.join(arr_fname_from_id(i));
37 ArrangementFile::default().to_data_file(&arr_fpath)?;
38 }
39
40 println!("New project created: {project_dirpath:?}");
41 Ok(())
42}
43
44fn main() -> Result<(), OtToolsIoError> {
45 let mut buf: Vec<BankFile> = Vec::new();
46
47 for i in 0..(128_u32 * 6) {
48 let mut bank = BankFile::default();
49 bank.parts.unsaved[0].scenes[0].0[0].lfo.dep1 = i.rem_euclid(128_u32) as u8;
50 if i > 128 {
51 bank.parts.unsaved[0].scenes[0].0[0].lfo.dep2 = i.rem_euclid(128_u32) as u8;
52 }
53 if i > 128 * 2 {
54 bank.parts.unsaved[0].scenes[0].0[0].lfo.dep3 = i.rem_euclid(128_u32) as u8;
55 }
56 if i > 128 * 3 {
57 bank.parts.unsaved[0].scenes[0].0[0].lfo.spd1 = i.rem_euclid(128_u32) as u8;
58 }
59 if i > 128 * 4 {
60 bank.parts.unsaved[0].scenes[0].0[0].lfo.spd2 = i.rem_euclid(128_u32) as u8;
61 }
62 if i > 128 * 5 {
63 bank.parts.unsaved[0].scenes[0].0[0].lfo.spd3 = i.rem_euclid(128_u32) as u8;
64 }
65
66 if i.rem_euclid(16) == 0 {
67 new_proj(&buf, i.div_euclid(16))?;
68 buf.clear();
69 }
70 buf.push(bank);
71 }
72
73 Ok(())
74}