diff --git a/src/main.py b/src/main.py index ddaef68..b054c6e 100644 --- a/src/main.py +++ b/src/main.py @@ -7,12 +7,12 @@ if __name__ == "__main__": print("Loading project...") test_project = Project(channels=[ ProjectChannel(chunks=[ - AudioChannelChunk(*librosa.load("120 bpm amen break.mp3"), position=0), - AudioChannelChunk(*librosa.load("120 bpm amen break.mp3"), position=1), - AudioChannelChunk(*librosa.load("120 bpm amen break.mp3"), position=2) + AudioChannelChunk(*librosa.load("120 bpm amen break.mp3", mono=False), position=0, name="120 bpm amen break.mp3"), + AudioChannelChunk(*librosa.load("120 bpm amen break.mp3", mono=False), position=1, name="120 bpm amen break.mp3"), + AudioChannelChunk(*librosa.load("120 bpm amen break.mp3", mono=False), position=2, name="120 bpm amen break.mp3") ], name="drums"), ProjectChannel(chunks=[ - + AudioChannelChunk(*librosa.load("piano chords - Bmin 120BPM.wav", mono=False), name="piano chords - Bmin 120BPM.wav") ], name="piano") ])#.from_file("test_project.tdp") diff --git a/src/piano chords - Bmin 120BPM.wav b/src/piano chords - Bmin 120BPM.wav new file mode 100644 index 0000000..c87ddcb Binary files /dev/null and b/src/piano chords - Bmin 120BPM.wav differ diff --git a/src/ui/app.py b/src/ui/app.py index cbfd6df..7127e0c 100644 --- a/src/ui/app.py +++ b/src/ui/app.py @@ -9,8 +9,6 @@ from ui.widgets.project_settings import ProjectSettings class AppUI(App): CSS_PATH = "../assets/style.tcss" - theme = "atom-one-dark" - def __init__(self, project): super().__init__() self.zoom_level = 0.05 diff --git a/src/ui/widgets/chunk_types/audio.py b/src/ui/widgets/chunk_types/audio.py index c20549a..7064a2d 100644 --- a/src/ui/widgets/chunk_types/audio.py +++ b/src/ui/widgets/chunk_types/audio.py @@ -14,7 +14,7 @@ from ui.widgets.chunk_types.chunk import Chunk class AudioChunk(Chunk): DEFAULT_CSS = """ AudioChunk { - border: tab $accent; + border: tab $secondary; PlotWidget { height: 1fr; @@ -51,7 +51,7 @@ class AudioChunk(Chunk): def on_mount(self): for plot in self.query(PlotWidget): plot: PlotWidget = plot # just for type checking - + plot.margin_top = 0 plot.margin_left = 0 plot.margin_bottom = 0 @@ -91,7 +91,7 @@ class AudioChunk(Chunk): x, y, 1.0, - bar_style=self.app.theme_variables["warning"], + bar_style=self.app.theme_variables["secondary"], hires_mode=HiResMode.BRAILLE ) @@ -114,8 +114,6 @@ class AudioChunk(Chunk): samples.append(self.audio[channel, sample])""" yield PlotWidget(allow_pan_and_zoom=False, id=f"channel-{channel}") - - #yield Sparkline(data=samples) else: @@ -125,6 +123,4 @@ class AudioChunk(Chunk): for sample in range(0, self.num_samples, int(self.sample_rate*0.1)): samples.append(self.audio[sample])""" - yield PlotWidget(allow_pan_and_zoom=False) - - #yield Sparkline(data=samples) \ No newline at end of file + yield PlotWidget(allow_pan_and_zoom=False) \ No newline at end of file diff --git a/src/ui/widgets/timeline.py b/src/ui/widgets/timeline.py index 7c99909..db42d29 100644 --- a/src/ui/widgets/timeline.py +++ b/src/ui/widgets/timeline.py @@ -80,6 +80,11 @@ class Timeline(Vertical): for bar_line in self.query(Rule): if not isinstance(bar_line, PlayHead): bar_line.offset = (self.bar_offset * bar_line.index, 0) + + if self.app.zoom_level >= 0.09 and bar_line.has_class("beat-line"): + bar_line.display = False + else: + bar_line.display = True def compose(self) -> ComposeResult: @@ -98,7 +103,7 @@ class Timeline(Vertical): yield Chunk(chunk_name=chunk.name, bar_pos=chunk.position) elif chunk.chunk_type == ChunkType.AUDIO: yield AudioChunk(chunk.audio_data, chunk.sample_rate, chunk.name, chunk.position) - + for i in range(1, 17): bar = None if i % 4 == 0: @@ -113,4 +118,4 @@ class Timeline(Vertical): - #yield PlayHead() \ No newline at end of file + yield PlayHead() \ No newline at end of file