from .music import Envelope, Instrument, LFO, Track


def get_available_tracks() -> list[Track]:
    return [
        Track(
            id=0, name="Dog", notes=[],
            iconURI="/static/music-editor/dog.png",
            instrument=Instrument(
                waveform=1,
                octave=4,
                ampEnvelope=Envelope(
                    attack=10,
                    decay=100,
                    sustain=500,
                    release=100,
                    amplitude=1024
                ),
                pitchLFO=LFO(
                    frequency=5,
                    amplitude=0
                )
            )
        ),
        Track(
            id=1,
            name="Duck", notes=[],
            iconURI="music-editor/duck.png",
            instrument=Instrument(
                waveform=15,
                octave=4,
                ampEnvelope=Envelope(
                    attack=5,
                    decay=530,
                    sustain=705,
                    release=450,
                    amplitude=1024
                ),
                pitchEnvelope=Envelope(
                    attack=5,
                    decay=40,
                    sustain=0,
                    release=100,
                    amplitude=40
                ),
                ampLFO=LFO(
                    frequency=3,
                    amplitude=20
                ),
                pitchLFO=LFO(
                    frequency=6,
                    amplitude=2
                )
            )
        ),
        Track(
            id=2,
            name="Cat",
            notes=[],
            iconURI="music-editor/cat.png",
            instrument=Instrument(
                waveform=12,
                octave=5,
                ampEnvelope=Envelope(
                    attack=150,
                    decay=100,
                    sustain=365,
                    release=400,
                    amplitude=1024
                ),
                pitchEnvelope=Envelope(
                    attack=120,
                    decay=300,
                    sustain=0,
                    release=100,
                    amplitude=50
                ),
                pitchLFO=LFO(
                    frequency=10,
                    amplitude=6
                )
            )
        ),
        Track(
            id=3,
            name="Fish",
            notes=[],
            iconURI="music-editor/fish.png",
            instrument=Instrument(
                waveform=1,
                octave=3,
                ampEnvelope=Envelope(
                    attack=220,
                    decay=105,
                    sustain=1024,
                    release=350,
                    amplitude=1024
                ),
                ampLFO=LFO(
                    frequency=5,
                    amplitude=100
                ),
                pitchLFO=LFO(
                    frequency=1,
                    amplitude=4
                )
            )
        ),
        Track(
            id=4,
            name="Car",
            notes=[],
            iconURI="music-editor/car.png",
            instrument=Instrument(
                waveform=16,
                octave=4,
                ampEnvelope=Envelope(
                    attack=5,
                    decay=100,
                    sustain=1024,
                    release=30,
                    amplitude=1024
                ),
                pitchLFO=LFO(
                    frequency=10,
                    amplitude=4
                )
            )
        ),
        Track(
            id=5,
            name="Computer",
            notes=[],
            iconURI="music-editor/computer.png",
            instrument=Instrument(
                waveform=15,
                octave=2,
                ampEnvelope=Envelope(
                    attack=10,
                    decay=100,
                    sustain=500,
                    release=10,
                    amplitude=1024
                )
            )
        ),
        Track(
            id=6,
            name="Burger",
            notes=[],
            iconURI="music-editor/burger.png",
            instrument=Instrument(
                waveform=1,
                octave=2,
                ampEnvelope=Envelope(
                    attack=10,
                    decay=100,
                    sustain=500,
                    release=100,
                    amplitude=1024
                )
            )
        ),
        Track(
            id=7,
            name="Cherry",
            notes=[],
            iconURI="music-editor/cherry.png",
            instrument=Instrument(
                waveform=2,
                octave=3,
                ampEnvelope=Envelope(
                    attack=10,
                    decay=100,
                    sustain=500,
                    release=100,
                    amplitude=1024
                )
            )
        ),
        Track(
            id=8,
            name="Lemon",
            notes=[],
            iconURI="music-editor/lemon.png",
            instrument=Instrument(
                waveform=14,
                octave=2,
                ampEnvelope=Envelope(
                    attack=5,
                    decay=70,
                    sustain=870,
                    release=50,
                    amplitude=1024
                ),
                pitchEnvelope=Envelope(
                    attack=10,
                    decay=45,
                    sustain=0,
                    release=100,
                    amplitude=20
                ),
                ampLFO=LFO(
                    frequency=1,
                    amplitude=50
                ),
                pitchLFO=LFO(
                    frequency=2,
                    amplitude=1
                )
            )
        )
    ]
