diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cf485d..725f121 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Save the GUI state periodically to a recovery file and load it on startup of the app, if present. The recovery file is located in the home directory of the user. +- Instrument presets. The presets are embedded in the executable and + there's a button to open a menu to load one of the presets. ### Fixed - The sointu-vsti-native plugin has different plugin ID and plugin name diff --git a/tracker/gioui/instrumenteditor.go b/tracker/gioui/instrumenteditor.go index 1cacbeb..84a5d0d 100644 --- a/tracker/gioui/instrumenteditor.go +++ b/tracker/gioui/instrumenteditor.go @@ -34,6 +34,7 @@ type InstrumentEditor struct { loadInstrumentBtn *TipClickable addUnitBtn *TipClickable commentExpandBtn *TipClickable + presetMenuBtn *TipClickable commentEditor *widget.Editor nameEditor *widget.Editor unitTypeEditor *widget.Editor @@ -48,10 +49,12 @@ type InstrumentEditor struct { wasFocused bool commentExpanded bool voiceStates [vm.MAX_VOICES]float32 + presetMenuItems []MenuItem + presetMenu Menu } func NewInstrumentEditor() *InstrumentEditor { - return &InstrumentEditor{ + ret := &InstrumentEditor{ newInstrumentBtn: new(TipClickable), enlargeBtn: new(TipClickable), deleteInstrumentBtn: new(TipClickable), @@ -60,6 +63,7 @@ func NewInstrumentEditor() *InstrumentEditor { loadInstrumentBtn: new(TipClickable), addUnitBtn: new(TipClickable), commentExpandBtn: new(TipClickable), + presetMenuBtn: new(TipClickable), commentEditor: new(widget.Editor), nameEditor: &widget.Editor{SingleLine: true, Submit: true, Alignment: text.Middle}, unitTypeEditor: &widget.Editor{SingleLine: true, Submit: true, Alignment: text.Start}, @@ -69,7 +73,12 @@ func NewInstrumentEditor() *InstrumentEditor { unitScrollBar: &ScrollBar{Axis: layout.Vertical}, confirmInstrDelete: new(Dialog), paramEditor: NewParamEditor(), + presetMenuItems: []MenuItem{}, } + for _, instr := range tracker.Presets { + ret.presetMenuItems = append(ret.presetMenuItems, MenuItem{Text: instr.Name, IconBytes: icons.ImageAudiotrack}) + } + return ret } func (t *InstrumentEditor) ExpandComment() { @@ -85,7 +94,8 @@ func (ie *InstrumentEditor) Focused() bool { } func (ie *InstrumentEditor) ChildFocused() bool { - return ie.paramEditor.Focused() || ie.instrumentDragList.Focused() || ie.commentEditor.Focused() || ie.nameEditor.Focused() || ie.unitTypeEditor.Focused() + return ie.paramEditor.Focused() || ie.instrumentDragList.Focused() || ie.commentEditor.Focused() || ie.nameEditor.Focused() || ie.unitTypeEditor.Focused() || + ie.addUnitBtn.Clickable.Focused() || ie.commentExpandBtn.Clickable.Focused() || ie.presetMenuBtn.Clickable.Focused() || ie.deleteInstrumentBtn.Clickable.Focused() || ie.copyInstrumentBtn.Clickable.Focused() } func (ie *InstrumentEditor) Layout(gtx C, t *Tracker) D { @@ -109,6 +119,7 @@ func (ie *InstrumentEditor) Layout(gtx C, t *Tracker) D { icon = icons.NavigationFullscreenExit enlargeTip = "Shrink" } + fullscreenBtnStyle := IconButton(t.Theme, ie.enlargeBtn, icon, true, enlargeTip) for ie.enlargeBtn.Clickable.Clicked() { t.SetInstrEnlarged(!t.InstrEnlarged()) @@ -175,11 +186,18 @@ func (ie *InstrumentEditor) layoutInstrumentHeader(gtx C, t *Tracker) D { } commentExpandBtnStyle := IconButton(t.Theme, ie.commentExpandBtn, collapseIcon, true, commentTip) + presetMenuBtnStyle := IconButton(t.Theme, ie.presetMenuBtn, icons.NavigationMenu, true, "Load preset") copyInstrumentBtnStyle := IconButton(t.Theme, ie.copyInstrumentBtn, icons.ContentContentCopy, true, "Copy instrument") saveInstrumentBtnStyle := IconButton(t.Theme, ie.saveInstrumentBtn, icons.ContentSave, true, "Save instrument") loadInstrumentBtnStyle := IconButton(t.Theme, ie.loadInstrumentBtn, icons.FileFolderOpen, true, "Load instrument") deleteInstrumentBtnStyle := IconButton(t.Theme, ie.deleteInstrumentBtn, icons.ActionDelete, t.CanDeleteInstrument(), "Delete\ninstrument") + m := PopupMenu(t.Theme, &ie.presetMenu) + + for item, clicked := ie.presetMenu.Clicked(); clicked; item, clicked = ie.presetMenu.Clicked() { + t.SetInstrument(tracker.Presets[item]) + } + header := func(gtx C) D { return layout.Flex{Axis: layout.Horizontal, Alignment: layout.Middle}.Layout(gtx, layout.Rigid(Label("Voices: ", white)), @@ -193,11 +211,24 @@ func (ie *InstrumentEditor) layoutInstrumentHeader(gtx C, t *Tracker) D { }), layout.Flexed(1, func(gtx C) D { return layout.Dimensions{Size: gtx.Constraints.Min} }), layout.Rigid(commentExpandBtnStyle.Layout), + layout.Rigid(func(gtx C) D { + //defer op.Offset(image.Point{}).Push(gtx.Ops).Pop() + dims := presetMenuBtnStyle.Layout(gtx) + op.Offset(image.Pt(0, dims.Size.Y)).Add(gtx.Ops) + gtx.Constraints.Max.Y = gtx.Dp(unit.Dp(500)) + m.Layout(gtx, ie.presetMenuItems...) + return dims + }), layout.Rigid(saveInstrumentBtnStyle.Layout), layout.Rigid(loadInstrumentBtnStyle.Layout), layout.Rigid(copyInstrumentBtnStyle.Layout), layout.Rigid(deleteInstrumentBtnStyle.Layout)) } + + for ie.presetMenuBtn.Clickable.Clicked() { + ie.presetMenu.Visible = true + } + for ie.commentExpandBtn.Clickable.Clicked() { ie.commentExpanded = !ie.commentExpanded if !ie.commentExpanded { @@ -234,6 +265,7 @@ func (ie *InstrumentEditor) layoutInstrumentHeader(gtx C, t *Tracker) D { } return header(gtx) } + for ie.copyInstrumentBtn.Clickable.Clicked() { contents, err := yaml.Marshal(t.Instrument()) if err == nil { diff --git a/tracker/gioui/menu.go b/tracker/gioui/menu.go index 00bd6e1..ed94b4d 100644 --- a/tracker/gioui/menu.go +++ b/tracker/gioui/menu.go @@ -20,6 +20,7 @@ type Menu struct { tags []bool clicks []int hover int + list layout.List } type MenuStyle struct { @@ -54,8 +55,7 @@ func (m *Menu) Clicked() (int, bool) { func (m *MenuStyle) Layout(gtx C, items ...MenuItem) D { contents := func(gtx C) D { - flexChildren := make([]layout.FlexChild, len(items)) - for i, item := range items { + for i := range items { // make sure we have a tag for every item for len(m.Menu.tags) <= i { m.Menu.tags = append(m.Menu.tags, false) @@ -78,60 +78,58 @@ func (m *MenuStyle) Layout(gtx C, items ...MenuItem) D { } } } - // layout contents for this item - i2 := i // avoid loop variable getting updated in closure - item2 := item - flexChildren[i] = layout.Rigid(func(gtx C) D { - defer op.Offset(image.Point{}).Push(gtx.Ops).Pop() - var macro op.MacroOp - if i2 == m.Menu.hover-1 && !item2.Disabled { - macro = op.Record(gtx.Ops) - } - icon := widgetForIcon(item2.IconBytes) - iconColor := m.IconColor - if item2.Disabled { - iconColor = mediumEmphasisTextColor - } - iconInset := layout.Inset{Left: unit.Dp(12), Right: unit.Dp(6)} - textLabel := LabelStyle{Text: item2.Text, FontSize: m.FontSize, Color: m.TextColor} - if item2.Disabled { - textLabel.Color = mediumEmphasisTextColor - } - shortcutLabel := LabelStyle{Text: item2.ShortcutText, FontSize: m.FontSize, Color: m.ShortCutColor} - shortcutInset := layout.Inset{Left: unit.Dp(12), Right: unit.Dp(12), Bottom: unit.Dp(2), Top: unit.Dp(2)} - dims := layout.Flex{Axis: layout.Horizontal, Alignment: layout.Middle}.Layout(gtx, - layout.Rigid(func(gtx C) D { - return iconInset.Layout(gtx, func(gtx C) D { - p := gtx.Dp(unit.Dp(m.IconSize)) - gtx.Constraints.Min = image.Pt(p, p) - return icon.Layout(gtx, iconColor) - }) - }), - layout.Rigid(textLabel.Layout), - layout.Flexed(1, func(gtx C) D { return D{Size: image.Pt(gtx.Constraints.Max.X, 1)} }), - layout.Rigid(func(gtx C) D { - return shortcutInset.Layout(gtx, shortcutLabel.Layout) - }), - ) - if i2 == m.Menu.hover-1 && !item2.Disabled { - recording := macro.Stop() - paint.FillShape(gtx.Ops, m.HoverColor, clip.Rect{ - Max: image.Pt(dims.Size.X, dims.Size.Y), - }.Op()) - recording.Add(gtx.Ops) - } - if !item2.Disabled { - rect := image.Rect(0, 0, dims.Size.X, dims.Size.Y) - area := clip.Rect(rect).Push(gtx.Ops) - pointer.InputOp{Tag: &m.Menu.tags[i2], - Types: pointer.Press | pointer.Enter | pointer.Leave, - }.Add(gtx.Ops) - area.Pop() - } - return dims - }) } - return layout.Flex{Axis: layout.Vertical}.Layout(gtx, flexChildren...) + m.Menu.list.Axis = layout.Vertical + return m.Menu.list.Layout(gtx, len(items), func(gtx C, i int) D { + defer op.Offset(image.Point{}).Push(gtx.Ops).Pop() + var macro op.MacroOp + item := &items[i] + if i == m.Menu.hover-1 && !item.Disabled { + macro = op.Record(gtx.Ops) + } + icon := widgetForIcon(item.IconBytes) + iconColor := m.IconColor + if item.Disabled { + iconColor = mediumEmphasisTextColor + } + iconInset := layout.Inset{Left: unit.Dp(12), Right: unit.Dp(6)} + textLabel := LabelStyle{Text: item.Text, FontSize: m.FontSize, Color: m.TextColor} + if item.Disabled { + textLabel.Color = mediumEmphasisTextColor + } + shortcutLabel := LabelStyle{Text: item.ShortcutText, FontSize: m.FontSize, Color: m.ShortCutColor} + shortcutInset := layout.Inset{Left: unit.Dp(12), Right: unit.Dp(12), Bottom: unit.Dp(2), Top: unit.Dp(2)} + dims := layout.Flex{Axis: layout.Horizontal, Alignment: layout.Middle}.Layout(gtx, + layout.Rigid(func(gtx C) D { + return iconInset.Layout(gtx, func(gtx C) D { + p := gtx.Dp(unit.Dp(m.IconSize)) + gtx.Constraints.Min = image.Pt(p, p) + return icon.Layout(gtx, iconColor) + }) + }), + layout.Rigid(textLabel.Layout), + layout.Flexed(1, func(gtx C) D { return D{Size: image.Pt(gtx.Constraints.Max.X, 1)} }), + layout.Rigid(func(gtx C) D { + return shortcutInset.Layout(gtx, shortcutLabel.Layout) + }), + ) + if i == m.Menu.hover-1 && !item.Disabled { + recording := macro.Stop() + paint.FillShape(gtx.Ops, m.HoverColor, clip.Rect{ + Max: image.Pt(dims.Size.X, dims.Size.Y), + }.Op()) + recording.Add(gtx.Ops) + } + if !item.Disabled { + rect := image.Rect(0, 0, dims.Size.X, dims.Size.Y) + area := clip.Rect(rect).Push(gtx.Ops) + pointer.InputOp{Tag: &m.Menu.tags[i], + Types: pointer.Press | pointer.Enter | pointer.Leave, + }.Add(gtx.Ops) + area.Pop() + } + return dims + }) } popup := Popup(&m.Menu.Visible) popup.NE = unit.Dp(0) diff --git a/tracker/presets.go b/tracker/presets.go new file mode 100644 index 0000000..1d8d21a --- /dev/null +++ b/tracker/presets.go @@ -0,0 +1,51 @@ +package tracker + +import ( + "embed" + "io/fs" + "sort" + + "github.com/vsariola/sointu" + "gopkg.in/yaml.v3" +) + +type PresetList []sointu.Instrument + +//go:embed presets/* +var presetFS embed.FS + +var Presets PresetList + +func init() { + fs.WalkDir(presetFS, ".", func(path string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + if d.IsDir() { + return nil + } + data, err := fs.ReadFile(presetFS, path) + if err != nil { + return nil + } + var instr sointu.Instrument + if yaml.Unmarshal(data, &instr) != nil { + return nil + } + Presets = append(Presets, instr) + return nil + }) + sort.Sort(Presets) +} + +func (p PresetList) Len() int { + return len(p) +} + +func (p PresetList) Less(i, j int) bool { + return p[i].Name < p[j].Name +} + +func (p PresetList) Swap(i, j int) { + p[i], p[j] = p[j], p[i] +} diff --git a/tracker/presets/Fairies.yml b/tracker/presets/Fairies.yml new file mode 100644 index 0000000..c5124f1 --- /dev/null +++ b/tracker/presets/Fairies.yml @@ -0,0 +1,43 @@ +name: Fairies +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 80, decay: 96, gain: 128, release: 88, stereo: 0, sustain: 80} + - type: envelope + id: 2 + parameters: {attack: 0, decay: 96, gain: 128, release: 88, stereo: 0, sustain: 40} + - type: distort + id: 3 + parameters: {drive: 32, stereo: 0} + - type: send + id: 5 + parameters: {amount: 96, port: 0, sendpop: 1, target: 12} + - type: oscillator + id: 232 + parameters: {color: 3, detune: 56, gain: 64, lfo: 0, phase: 3, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 233 + parameters: {color: 3, detune: 72, gain: 64, lfo: 0, phase: 3, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 234 + parameters: {stereo: 0} + - type: distort + id: 10 + parameters: {drive: 96, stereo: 0} + - type: filter + id: 12 + parameters: {bandpass: 0, frequency: 16, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 24, stereo: 0} + - type: mulp + id: 13 + parameters: {stereo: 0} + - type: pan + id: 14 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 15 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 96, stereo: 1} + varargs: [48, 24] + - type: outaux + id: 19 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/tracker/presets/airy.yml b/tracker/presets/airy.yml new file mode 100644 index 0000000..c2afb5d --- /dev/null +++ b/tracker/presets/airy.yml @@ -0,0 +1,67 @@ +name: Airy +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 48, decay: 80, gain: 128, release: 64, stereo: 0, sustain: 64} + - type: noise + id: 2 + parameters: {gain: 64, shape: 64, stereo: 0} + - type: distort + id: 3 + parameters: {drive: 64, stereo: 0} + - type: hold + id: 4 + parameters: {holdfreq: 0, stereo: 0} + - type: oscillator + id: 5 + parameters: {color: 64, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 16, type: 1} + - type: addp + id: 6 + parameters: {stereo: 0} + - type: send + id: 123 + parameters: {amount: 40, port: 0, sendpop: 0, target: 12} + - type: send + id: 124 + parameters: {amount: 58, port: 1, sendpop: 1, target: 12} + - type: oscillator + id: 10 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 88, type: 0} + - type: noise + id: 11 + parameters: {gain: 5, shape: 64, stereo: 0} + - type: filter + id: 12 + parameters: {bandpass: 1, frequency: 77, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 24, stereo: 0} + - type: addp + id: 13 + parameters: {stereo: 0} + - type: push + id: 14 + parameters: {stereo: 0} + - type: filter + id: 15 + parameters: {bandpass: 1, frequency: 32, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: xch + id: 16 + parameters: {stereo: 0} + - type: filter + id: 17 + parameters: {bandpass: 1, frequency: 96, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 18 + parameters: {stereo: 0} + - type: mulp + id: 19 + parameters: {stereo: 0} + - type: delay + id: 20 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [48] + - type: pan + id: 21 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 22 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/tracker/presets/alpha-omega.yml b/tracker/presets/alpha-omega.yml new file mode 100644 index 0000000..f048976 --- /dev/null +++ b/tracker/presets/alpha-omega.yml @@ -0,0 +1,59 @@ +name: AlphaOmega +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 76, stereo: 0, sustain: 32} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 52, type: 0} + - type: send + id: 3 + parameters: {amount: 48, port: 1, sendpop: 0, target: 205} + - type: send + id: 4 + parameters: {amount: 80, port: 1, sendpop: 0, target: 206} + - type: send + id: 5 + parameters: {amount: 96, port: 3, sendpop: 1, target: 207} + - type: oscillator + id: 205 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 76, type: 1} + - type: oscillator + id: 206 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 76, type: 1} + - type: oscillator + id: 207 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 10 + parameters: {stereo: 0} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: envelope + id: 12 + parameters: {attack: 0, decay: 80, gain: 128, release: 64, stereo: 0, sustain: 30} + - type: send + id: 13 + parameters: {amount: 96, port: 0, sendpop: 1, target: 15} + - type: filter + id: 15 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 16 + parameters: {stereo: 0} + - type: delay + id: 17 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [36] + - type: pan + id: 18 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 19 + parameters: {damp: 0, dry: 0, feedback: 0, notetracking: 0, pregain: 128, stereo: 0} + varargs: [512] + - type: outaux + id: 20 + parameters: {auxgain: 32, outgain: 64, stereo: 1} diff --git a/examples/instruments/bass-adam.yml b/tracker/presets/bass-adam.yml similarity index 99% rename from examples/instruments/bass-adam.yml rename to tracker/presets/bass-adam.yml index 74e1522..dd82466 100644 --- a/examples/instruments/bass-adam.yml +++ b/tracker/presets/bass-adam.yml @@ -1,4 +1,4 @@ -name: Bass +name: BassAdam comment: | Author: pestis/bC!. Suggested note: F#1. Originally from: 4k intro Adam. diff --git a/tracker/presets/bass-punch.yml b/tracker/presets/bass-punch.yml new file mode 100644 index 0000000..9884f62 --- /dev/null +++ b/tracker/presets/bass-punch.yml @@ -0,0 +1,46 @@ +name: BassPunch +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 76, stereo: 0, sustain: 64} + - type: send + id: 2 + parameters: {amount: 112, port: 4, sendpop: 0, target: 1} + - type: oscillator + id: 3 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 52, type: 2} + - type: oscillator + id: 4 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 5 + parameters: {stereo: 0} + - type: envelope + id: 6 + parameters: {attack: 0, decay: 66, gain: 128, release: 64, stereo: 0, sustain: 16} + - type: send + id: 214 + parameters: {amount: 96, port: 0, sendpop: 0, target: 10} + - type: send + id: 215 + parameters: {amount: 96, port: 0, sendpop: 1, target: 11} + - type: filter + id: 10 + parameters: {bandpass: 0, frequency: 12, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: filter + id: 11 + parameters: {bandpass: 0, frequency: 12, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 12 + parameters: {stereo: 0} + - type: delay + id: 13 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [36] + - type: pan + id: 14 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 15 + parameters: {auxgain: 4, outgain: 128, stereo: 1} diff --git a/tracker/presets/bass.yml b/tracker/presets/bass.yml new file mode 100644 index 0000000..da6b914 --- /dev/null +++ b/tracker/presets/bass.yml @@ -0,0 +1,49 @@ +name: Bass +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 32, decay: 64, gain: 64, release: 64, stereo: 0, sustain: 64} + - type: send + id: 2 + parameters: {amount: 120, port: 4, sendpop: 0, target: 1} + - type: oscillator + id: 3 + parameters: {color: 80, detune: 64, gain: 128, lfo: 0, phase: 32, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 4 + parameters: {color: 96, detune: 72, gain: 128, lfo: 0, phase: 32, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 5 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 90, stereo: 0, transpose: 32, type: 0} + - type: send + id: 6 + parameters: {amount: 68, port: 1, sendpop: 0, target: 3} + - type: send + id: 38 + parameters: {amount: 60, port: 1, sendpop: 1, target: 4} + - type: addp + id: 40 + parameters: {stereo: 0} + - type: mulp + id: 10 + parameters: {stereo: 0} + - type: filter + id: 11 + parameters: {bandpass: 0, frequency: 18, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 1, resonance: 64, stereo: 0} + - type: filter + id: 12 + parameters: {bandpass: 0, frequency: 32, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 48, stereo: 0} + - type: distort + id: 13 + parameters: {drive: 88, stereo: 0} + - type: pan + id: 15 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 16 + parameters: {damp: 64, dry: 128, feedback: 96, notetracking: 2, pregain: 64, stereo: 1} + varargs: [24, 48] + - type: outaux + id: 20 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/tracker/presets/bass2.yml b/tracker/presets/bass2.yml new file mode 100644 index 0000000..4c07215 --- /dev/null +++ b/tracker/presets/bass2.yml @@ -0,0 +1,45 @@ +name: Bass2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 32, decay: 76, gain: 81, release: 32, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 106, port: 4, sendpop: 0, target: 1} + - type: send + id: 3 + parameters: {amount: 84, port: 0, sendpop: 0, target: 13} + - type: envelope + id: 4 + parameters: {attack: 0, decay: 60, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 5 + parameters: {amount: 50, port: 4, sendpop: 1, target: 103} + - type: oscillator + id: 102 + parameters: {color: 128, detune: 70, gain: 126, lfo: 0, phase: 40, shape: 80, stereo: 0, transpose: 64, type: 0} + - type: oscillator + id: 103 + parameters: {color: 128, detune: 48, gain: 128, lfo: 0, phase: 48, shape: 96, stereo: 0, transpose: 64, type: 0} + - type: addp + id: 104 + parameters: {stereo: 0} + - type: filter + id: 10 + parameters: {bandpass: 0, frequency: 30, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: distort + id: 11 + parameters: {drive: 107, stereo: 0} + - type: filter + id: 13 + parameters: {bandpass: 1, frequency: 35, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 14 + parameters: {stereo: 0} + - type: pan + id: 15 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 16 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/bass3.yml b/tracker/presets/bass3.yml new file mode 100644 index 0000000..8cfc872 --- /dev/null +++ b/tracker/presets/bass3.yml @@ -0,0 +1,52 @@ +name: Bass3 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 72, gain: 128, release: 16, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 88, port: 0, sendpop: 0, target: 13} + - type: distort + id: 3 + parameters: {drive: 16, stereo: 0} + - type: noise + id: 5 + parameters: {gain: 128, shape: 64, stereo: 0} + - type: distort + id: 6 + parameters: {drive: 64, stereo: 0} + - type: hold + id: 66 + parameters: {holdfreq: 0, stereo: 0} + - type: send + id: 67 + parameters: {amount: 74, port: 0, sendpop: 1, target: 14} + - type: oscillator + id: 10 + parameters: {color: 64, detune: 62, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 11 + parameters: {color: 16, detune: 74, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: filter + id: 13 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 64, stereo: 0} + - type: mulp + id: 15 + parameters: {stereo: 0} + - type: delay + id: 16 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [32] + - type: pan + id: 17 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 18 + parameters: {auxgain: 16, outgain: 128, stereo: 1} diff --git a/tracker/presets/clap.yml b/tracker/presets/clap.yml new file mode 100644 index 0000000..053a9b0 --- /dev/null +++ b/tracker/presets/clap.yml @@ -0,0 +1,24 @@ +name: Clap +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 76, gain: 32, release: 0, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: noise + id: 3 + parameters: {gain: 128, shape: 64, stereo: 0} + - type: mulp + id: 4 + parameters: {stereo: 0} + - type: filter + id: 5 + parameters: {bandpass: 0, frequency: 80, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: pan + id: 6 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 161 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/dark.yml b/tracker/presets/dark.yml new file mode 100644 index 0000000..57799b7 --- /dev/null +++ b/tracker/presets/dark.yml @@ -0,0 +1,37 @@ +name: Dark +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 64, stereo: 0, sustain: 64} + - type: oscillator + id: 2 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 3 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 52, type: 0} + - type: send + id: 4 + parameters: {amount: 96, port: 3, sendpop: 1, target: 6} + - type: oscillator + id: 6 + parameters: {color: 64, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 127, stereo: 0, transpose: 40, type: 1} + - type: mulp + id: 181 + parameters: {stereo: 0} + - type: filter + id: 182 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 48, stereo: 0} + - type: mulp + id: 183 + parameters: {stereo: 0} + - type: pan + id: 10 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 11 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 0, pregain: 0, stereo: 1} + varargs: [1024, 1024] + - type: outaux + id: 15 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/tracker/presets/deepness.yml b/tracker/presets/deepness.yml new file mode 100644 index 0000000..8be0964 --- /dev/null +++ b/tracker/presets/deepness.yml @@ -0,0 +1,52 @@ +name: Deepness +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 32, gain: 128, release: 64, stereo: 0, sustain: 112} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 117, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 0} + - type: send + id: 3 + parameters: {amount: 112, port: 2, sendpop: 0, target: 211} + - type: send + id: 4 + parameters: {amount: 112, port: 3, sendpop: 0, target: 212} + - type: send + id: 5 + parameters: {amount: 40, port: 3, sendpop: 1, target: 213} + - type: oscillator + id: 211 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 212 + parameters: {color: 80, detune: 80, gain: 128, lfo: 0, phase: 80, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 213 + parameters: {color: 48, detune: 48, gain: 128, lfo: 0, phase: 48, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 10 + parameters: {stereo: 0} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: filter + id: 12 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 88, stereo: 0} + - type: filter + id: 13 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 88, stereo: 0} + - type: mulp + id: 14 + parameters: {stereo: 0} + - type: pan + id: 15 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 16 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 1} + varargs: [32, 32] + - type: outaux + id: 20 + parameters: {auxgain: 96, outgain: 0, stereo: 1} diff --git a/tracker/presets/guitar.yml b/tracker/presets/guitar.yml new file mode 100644 index 0000000..a7db30a --- /dev/null +++ b/tracker/presets/guitar.yml @@ -0,0 +1,34 @@ +name: Guitar +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 0, gain: 128, release: 64, stereo: 0, sustain: 128} + - type: envelope + id: 2 + parameters: {attack: 0, decay: 58, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: noise + id: 3 + parameters: {gain: 128, shape: 127, stereo: 0} + - type: mulp + id: 4 + parameters: {stereo: 0} + - type: filter + id: 5 + parameters: {bandpass: 1, frequency: 48, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: delay + id: 6 + parameters: {damp: 48, dry: 128, feedback: 126, notetracking: 1, pregain: 128, stereo: 0} + varargs: [10787] + - type: mulp + id: 87 + parameters: {stereo: 0} + - type: filter + id: 88 + parameters: {bandpass: 0, frequency: 96, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: pan + id: 89 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 10 + parameters: {auxgain: 16, outgain: 64, stereo: 1} diff --git a/tracker/presets/guitar2.yml b/tracker/presets/guitar2.yml new file mode 100644 index 0000000..ed355f2 --- /dev/null +++ b/tracker/presets/guitar2.yml @@ -0,0 +1,34 @@ +name: Guitar2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 0, gain: 128, release: 72, stereo: 0, sustain: 128} + - type: envelope + id: 2 + parameters: {attack: 0, decay: 58, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: noise + id: 3 + parameters: {gain: 128, shape: 127, stereo: 0} + - type: mulp + id: 4 + parameters: {stereo: 0} + - type: filter + id: 5 + parameters: {bandpass: 1, frequency: 32, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: delay + id: 6 + parameters: {damp: 16, dry: 128, feedback: 128, notetracking: 1, pregain: 128, stereo: 0} + varargs: [10787] + - type: filter + id: 84 + parameters: {bandpass: 1, frequency: 24, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 85 + parameters: {stereo: 0} + - type: pan + id: 86 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 10 + parameters: {auxgain: 24, outgain: 64, stereo: 1} diff --git a/tracker/presets/hihat.yml b/tracker/presets/hihat.yml new file mode 100644 index 0000000..32bb5db --- /dev/null +++ b/tracker/presets/hihat.yml @@ -0,0 +1,21 @@ +name: Hihat +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: noise + id: 2 + parameters: {gain: 128, shape: 64, stereo: 0} + - type: mulp + id: 3 + parameters: {stereo: 0} + - type: filter + id: 4 + parameters: {bandpass: 0, frequency: 128, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: pan + id: 5 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 6 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/hihat2.yml b/tracker/presets/hihat2.yml new file mode 100644 index 0000000..3ee1a89 --- /dev/null +++ b/tracker/presets/hihat2.yml @@ -0,0 +1,25 @@ +name: Hihat2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: noise + id: 2 + parameters: {gain: 128, shape: 64, stereo: 0} + - type: mulp + id: 3 + parameters: {stereo: 0} + - type: filter + id: 4 + parameters: {bandpass: 1, frequency: 128, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: pan + id: 5 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 6 + parameters: {damp: 64, dry: 128, feedback: 96, notetracking: 2, pregain: 64, stereo: 1} + varargs: [24, 48] + - type: outaux + id: 13 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/jarresque.yml b/tracker/presets/jarresque.yml new file mode 100644 index 0000000..13a1107 --- /dev/null +++ b/tracker/presets/jarresque.yml @@ -0,0 +1,64 @@ +name: Jarresque +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 80, decay: 128, gain: 128, release: 80, stereo: 0, sustain: 128} + - type: oscillator + id: 2 + parameters: {color: 64, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 16, type: 1} + - type: send + id: 3 + parameters: {amount: 80, port: 0, sendpop: 0, target: 14} + - type: send + id: 4 + parameters: {amount: 48, port: 0, sendpop: 0, target: 10} + - type: send + id: 5 + parameters: {amount: 58, port: 1, sendpop: 1, target: 10} + - type: oscillator + id: 235 + parameters: {color: 4, detune: 56, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 236 + parameters: {color: 8, detune: 72, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 76, type: 1} + - type: noise + id: 237 + parameters: {gain: 16, shape: 64, stereo: 0} + - type: filter + id: 10 + parameters: {bandpass: 1, frequency: 105, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 18, stereo: 0} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: push + id: 13 + parameters: {stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 1, frequency: 26, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: xch + id: 15 + parameters: {stereo: 0} + - type: filter + id: 16 + parameters: {bandpass: 1, frequency: 96, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 17 + parameters: {stereo: 0} + - type: mulp + id: 18 + parameters: {stereo: 0} + - type: delay + id: 19 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [48] + - type: pan + id: 20 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 21 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/examples/instruments/kick-adam.yml b/tracker/presets/kick-adam.yml similarity index 99% rename from examples/instruments/kick-adam.yml rename to tracker/presets/kick-adam.yml index 879fdba..553ee71 100644 --- a/examples/instruments/kick-adam.yml +++ b/tracker/presets/kick-adam.yml @@ -1,4 +1,4 @@ -name: Kick +name: KickAdam comment: | Author: pestis/bC!. Suggested note: F#1. Originally from: 4k intro Adam. diff --git a/tracker/presets/kick.yml b/tracker/presets/kick.yml new file mode 100644 index 0000000..ca2aa10 --- /dev/null +++ b/tracker/presets/kick.yml @@ -0,0 +1,30 @@ +name: Kick +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 32, gain: 128, release: 64, stereo: 0, sustain: 96} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 70, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: distort + id: 4 + parameters: {drive: 32, stereo: 0} + - type: send + id: 6 + parameters: {amount: 80, port: 0, sendpop: 1, target: 106} + - type: oscillator + id: 106 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 66, stereo: 0, transpose: 45, type: 0} + - type: mulp + id: 107 + parameters: {stereo: 0} + - type: pan + id: 10 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 11 + parameters: {auxgain: 0, outgain: 128, stereo: 1} diff --git a/tracker/presets/kick2.yml b/tracker/presets/kick2.yml new file mode 100644 index 0000000..b3fde44 --- /dev/null +++ b/tracker/presets/kick2.yml @@ -0,0 +1,33 @@ +name: Kick2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 64, stereo: 0, sustain: 96} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 70, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: distort + id: 4 + parameters: {drive: 32, stereo: 0} + - type: hold + id: 5 + parameters: {holdfreq: 128, stereo: 0} + - type: send + id: 6 + parameters: {amount: 80, port: 0, sendpop: 1, target: 109} + - type: oscillator + id: 109 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 46, type: 1} + - type: mulp + id: 110 + parameters: {stereo: 0} + - type: pan + id: 10 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 11 + parameters: {auxgain: 0, outgain: 128, stereo: 1} diff --git a/tracker/presets/kick3.yml b/tracker/presets/kick3.yml new file mode 100644 index 0000000..820e03b --- /dev/null +++ b/tracker/presets/kick3.yml @@ -0,0 +1,30 @@ +name: Kick3 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 32, gain: 128, release: 76, stereo: 0, sustain: 96} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 70, gain: 128, release: 64, stereo: 0, sustain: 30} + - type: distort + id: 4 + parameters: {drive: 32, stereo: 0} + - type: send + id: 6 + parameters: {amount: 80, port: 0, sendpop: 1, target: 112} + - type: oscillator + id: 112 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 66, stereo: 0, transpose: 45, type: 0} + - type: mulp + id: 113 + parameters: {stereo: 0} + - type: pan + id: 10 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 11 + parameters: {auxgain: 0, outgain: 128, stereo: 1} diff --git a/tracker/presets/kick4.yml b/tracker/presets/kick4.yml new file mode 100644 index 0000000..85f62a7 --- /dev/null +++ b/tracker/presets/kick4.yml @@ -0,0 +1,30 @@ +name: Kick4 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 32, gain: 128, release: 82, stereo: 0, sustain: 96} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 64, gain: 128, release: 106, stereo: 0, sustain: 41} + - type: distort + id: 4 + parameters: {drive: 29, stereo: 0} + - type: send + id: 6 + parameters: {amount: 77, port: 0, sendpop: 1, target: 115} + - type: oscillator + id: 115 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 32, shape: 66, stereo: 0, transpose: 45, type: 0} + - type: mulp + id: 116 + parameters: {stereo: 0} + - type: pan + id: 10 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 11 + parameters: {auxgain: 0, outgain: 128, stereo: 1} diff --git a/tracker/presets/lofi-choir.yml b/tracker/presets/lofi-choir.yml new file mode 100644 index 0000000..8339f5e --- /dev/null +++ b/tracker/presets/lofi-choir.yml @@ -0,0 +1,43 @@ +name: LoFiChoir +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 70, decay: 64, gain: 128, release: 80, stereo: 0, sustain: 64} + - type: oscillator + id: 2 + parameters: {color: 0, detune: 44, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 3 + parameters: {color: 32, detune: 74, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 4 + parameters: {stereo: 0} + - type: distort + id: 5 + parameters: {drive: 112, stereo: 0} + - type: filter + id: 196 + parameters: {bandpass: 0, frequency: 53, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 31, stereo: 0} + - type: filter + id: 197 + parameters: {bandpass: 0, frequency: 50, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: distort + id: 198 + parameters: {drive: 64, stereo: 0} + - type: hold + id: 10 + parameters: {holdfreq: 66, stereo: 0} + - type: mulp + id: 11 + parameters: {stereo: 0} + - type: delay + id: 12 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [16] + - type: pan + id: 13 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 14 + parameters: {auxgain: 31, outgain: 64, stereo: 1} diff --git a/tracker/presets/lullaby.yml b/tracker/presets/lullaby.yml new file mode 100644 index 0000000..9786c5a --- /dev/null +++ b/tracker/presets/lullaby.yml @@ -0,0 +1,22 @@ +name: Lullaby +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 32, decay: 80, gain: 128, release: 64, stereo: 0, sustain: 64} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 88, type: 0} + - type: mulp + id: 3 + parameters: {stereo: 0} + - type: pan + id: 4 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 5 + parameters: {damp: 64, dry: 64, feedback: 64, notetracking: 0, pregain: 64, stereo: 1} + varargs: [144, 160] + - type: outaux + id: 170 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/tracker/presets/lullaby2.yml b/tracker/presets/lullaby2.yml new file mode 100644 index 0000000..704034e --- /dev/null +++ b/tracker/presets/lullaby2.yml @@ -0,0 +1,22 @@ +name: Lullaby2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 32, decay: 80, gain: 128, release: 64, stereo: 0, sustain: 64} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 88, type: 0} + - type: mulp + id: 3 + parameters: {stereo: 0} + - type: pan + id: 4 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 5 + parameters: {damp: 64, dry: 64, feedback: 64, notetracking: 2, pregain: 96, stereo: 1} + varargs: [48, 24] + - type: outaux + id: 174 + parameters: {auxgain: 96, outgain: 96, stereo: 1} diff --git a/tracker/presets/mighty.yml b/tracker/presets/mighty.yml new file mode 100644 index 0000000..37bf57e --- /dev/null +++ b/tracker/presets/mighty.yml @@ -0,0 +1,46 @@ +name: Mighty +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 64, stereo: 0, sustain: 64} + - type: envelope + id: 2 + parameters: {attack: 0, decay: 88, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 3 + parameters: {amount: 96, port: 5, sendpop: 1, target: 217} + - type: oscillator + id: 5 + parameters: {color: 64, detune: 68, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 6 + parameters: {color: 32, detune: 58, gain: 128, lfo: 0, phase: 32, shape: 64, stereo: 0, transpose: 52, type: 1} + - type: oscillator + id: 217 + parameters: {color: 128, detune: 62, gain: 32, lfo: 0, phase: 48, shape: 32, stereo: 0, transpose: 88, type: 0} + - type: addp + id: 218 + parameters: {stereo: 0} + - type: addp + id: 219 + parameters: {stereo: 0} + - type: filter + id: 10 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 64, stereo: 0} + - type: distort + id: 11 + parameters: {drive: 120, stereo: 0} + - type: mulp + id: 13 + parameters: {stereo: 0} + - type: delay + id: 15 + parameters: {damp: 64, dry: 96, feedback: 64, notetracking: 0, pregain: 96, stereo: 0} + varargs: [224] + - type: pan + id: 14 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 19 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/tracker/presets/minorium.yml b/tracker/presets/minorium.yml new file mode 100644 index 0000000..cb595fe --- /dev/null +++ b/tracker/presets/minorium.yml @@ -0,0 +1,70 @@ +name: Minorium +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 48, stereo: 0, sustain: 88} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 16, type: 0} + - type: send + id: 3 + parameters: {amount: 48, port: 0, sendpop: 1, target: 11} + - type: oscillator + id: 5 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 8, type: 0} + - type: send + id: 6 + parameters: {amount: 32, port: 0, sendpop: 0, target: 13} + - type: send + id: 238 + parameters: {amount: 68, port: 1, sendpop: 0, target: 12} + - type: send + id: 239 + parameters: {amount: 88, port: 0, sendpop: 1, target: 15} + - type: oscillator + id: 10 + parameters: {color: 16, detune: 64, gain: 72, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 67, type: 1} + - type: filter + id: 11 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: oscillator + id: 12 + parameters: {color: 16, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 71, type: 1} + - type: filter + id: 13 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: oscillator + id: 14 + parameters: {color: 16, detune: 64, gain: 96, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: filter + id: 15 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 16 + parameters: {stereo: 0} + - type: addp + id: 17 + parameters: {stereo: 0} + - type: envelope + id: 18 + parameters: {attack: 88, decay: 88, gain: 128, release: 96, stereo: 0, sustain: 96} + - type: send + id: 19 + parameters: {amount: 88, port: 0, sendpop: 1, target: 21} + - type: filter + id: 21 + parameters: {bandpass: 0, frequency: 32, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 16, stereo: 0} + - type: mulp + id: 22 + parameters: {stereo: 0} + - type: delay + id: 23 + parameters: {damp: 128, dry: 96, feedback: 48, notetracking: 2, pregain: 48, stereo: 0} + varargs: [72] + - type: pan + id: 24 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 25 + parameters: {auxgain: 96, outgain: 128, stereo: 1} diff --git a/tracker/presets/more-and-more.yml b/tracker/presets/more-and-more.yml new file mode 100644 index 0000000..4c230a5 --- /dev/null +++ b/tracker/presets/more-and-more.yml @@ -0,0 +1,52 @@ +name: MoreAndMore +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 80, gain: 128, release: 32, stereo: 0, sustain: 0} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 52, type: 0} + - type: send + id: 3 + parameters: {amount: 56, port: 1, sendpop: 0, target: 6} + - type: send + id: 4 + parameters: {amount: 72, port: 1, sendpop: 1, target: 226} + - type: oscillator + id: 6 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 226 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 227 + parameters: {stereo: 0} + - type: envelope + id: 228 + parameters: {attack: 0, decay: 76, gain: 128, release: 32, stereo: 0, sustain: 0} + - type: send + id: 10 + parameters: {amount: 88, port: 0, sendpop: 0, target: 13} + - type: send + id: 11 + parameters: {amount: 88, port: 0, sendpop: 1, target: 14} + - type: filter + id: 13 + parameters: {bandpass: 0, frequency: 80, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 0, frequency: 80, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 15 + parameters: {stereo: 0} + - type: delay + id: 16 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [48] + - type: pan + id: 17 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 18 + parameters: {auxgain: 32, outgain: 128, stereo: 1} diff --git a/tracker/presets/morpher.yml b/tracker/presets/morpher.yml new file mode 100644 index 0000000..c6f2d51 --- /dev/null +++ b/tracker/presets/morpher.yml @@ -0,0 +1,70 @@ +name: Morpher +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 0, gain: 128, release: 64, stereo: 0, sustain: 128} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 96, shape: 64, stereo: 0, transpose: 40, type: 0} + - type: send + id: 3 + parameters: {amount: 72, port: 0, sendpop: 1, target: 15} + - type: oscillator + id: 5 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 96, shape: 64, stereo: 0, transpose: 32, type: 0} + - type: send + id: 6 + parameters: {amount: 80, port: 0, sendpop: 0, target: 17} + - type: send + id: 229 + parameters: {amount: 80, port: 3, sendpop: 1, target: 231} + - type: oscillator + id: 231 + parameters: {color: 44, detune: 56, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 10 + parameters: {color: 24, detune: 76, gain: 64, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 11 + parameters: {color: 95, detune: 56, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: addp + id: 13 + parameters: {stereo: 0} + - type: push + id: 14 + parameters: {stereo: 0} + - type: filter + id: 15 + parameters: {bandpass: 1, frequency: 16, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: xch + id: 16 + parameters: {stereo: 0} + - type: filter + id: 17 + parameters: {bandpass: 1, frequency: 80, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 64, stereo: 0} + - type: addp + id: 18 + parameters: {stereo: 0} + - type: filter + id: 19 + parameters: {bandpass: 0, frequency: 20, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 1, resonance: 48, stereo: 0} + - type: filter + id: 20 + parameters: {bandpass: 0, frequency: 80, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 1, resonance: 80, stereo: 0} + - type: mulp + id: 21 + parameters: {stereo: 0} + - type: delay + id: 22 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [32] + - type: pan + id: 23 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 24 + parameters: {auxgain: 16, outgain: 64, stereo: 1} diff --git a/tracker/presets/not-from-this-world.yml b/tracker/presets/not-from-this-world.yml new file mode 100644 index 0000000..64558be --- /dev/null +++ b/tracker/presets/not-from-this-world.yml @@ -0,0 +1,64 @@ +name: NotFromThisWorld +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 88, gain: 128, release: 6, stereo: 0, sustain: 128} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 88, shape: 64, stereo: 0, transpose: 17, type: 0} + - type: send + id: 3 + parameters: {amount: 72, port: 0, sendpop: 0, target: 13} + - type: send + id: 4 + parameters: {amount: 48, port: 0, sendpop: 1, target: 15} + - type: oscillator + id: 6 + parameters: {color: 56, detune: 67, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 40, type: 1} + - type: send + id: 202 + parameters: {amount: 112, port: 2, sendpop: 0, target: 203} + - type: oscillator + id: 203 + parameters: {color: 128, detune: 77, gain: 128, lfo: 0, phase: 0, shape: 124, stereo: 0, transpose: 68, type: 0} + - type: oscillator + id: 204 + parameters: {color: 128, detune: 72, gain: 128, lfo: 0, phase: 0, shape: 124, stereo: 0, transpose: 64, type: 0} + - type: mulp + id: 10 + parameters: {stereo: 0} + - type: mulp + id: 11 + parameters: {stereo: 0} + - type: push + id: 12 + parameters: {stereo: 0} + - type: filter + id: 13 + parameters: {bandpass: 1, frequency: 32, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 64, stereo: 0} + - type: xch + id: 14 + parameters: {stereo: 0} + - type: filter + id: 15 + parameters: {bandpass: 1, frequency: 96, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 79, stereo: 0} + - type: addp + id: 16 + parameters: {stereo: 0} + - type: filter + id: 17 + parameters: {bandpass: 0, frequency: 19, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 37, stereo: 0} + - type: mulp + id: 18 + parameters: {stereo: 0} + - type: pan + id: 19 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 20 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 1} + varargs: [24, 48] + - type: outaux + id: 24 + parameters: {auxgain: 128, outgain: 128, stereo: 1} diff --git a/tracker/presets/organ.yml b/tracker/presets/organ.yml new file mode 100644 index 0000000..faa44f7 --- /dev/null +++ b/tracker/presets/organ.yml @@ -0,0 +1,33 @@ +name: Organ +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 64, gain: 128, release: 64, stereo: 0, sustain: 96} + - type: oscillator + id: 2 + parameters: {color: 16, detune: 64, gain: 128, lfo: 0, phase: 64, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 3 + parameters: {color: 128, detune: 64, gain: 16, lfo: 0, phase: 64, shape: 16, stereo: 0, transpose: 112, type: 0} + - type: oscillator + id: 4 + parameters: {color: 128, detune: 64, gain: 32, lfo: 0, phase: 64, shape: 32, stereo: 0, transpose: 88, type: 0} + - type: filter + id: 5 + parameters: {bandpass: 0, frequency: 100, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 6 + parameters: {stereo: 0} + - type: addp + id: 162 + parameters: {stereo: 0} + - type: mulp + id: 163 + parameters: {stereo: 0} + - type: pan + id: 164 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 10 + parameters: {auxgain: 128, outgain: 0, stereo: 1} diff --git a/tracker/presets/pad-long.yml b/tracker/presets/pad-long.yml new file mode 100644 index 0000000..42a0fe1 --- /dev/null +++ b/tracker/presets/pad-long.yml @@ -0,0 +1,52 @@ +name: PadLong +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 74, decay: 96, gain: 128, release: 96, stereo: 0, sustain: 96} + - type: envelope + id: 2 + parameters: {attack: 96, decay: 104, gain: 64, release: 96, stereo: 0, sustain: 104} + - type: send + id: 3 + parameters: {amount: 128, port: 0, sendpop: 1, target: 14} + - type: oscillator + id: 5 + parameters: {color: 64, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 28, type: 1} + - type: send + id: 6 + parameters: {amount: 96, port: 0, sendpop: 1, target: 13} + - type: oscillator + id: 159 + parameters: {color: 0, detune: 80, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 160 + parameters: {color: 64, detune: 56, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 10 + parameters: {color: 32, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 52, type: 1} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: filter + id: 13 + parameters: {bandpass: 0, frequency: 53, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 0, frequency: 16, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 48, stereo: 0} + - type: mulp + id: 15 + parameters: {stereo: 0} + - type: pan + id: 16 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 17 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 1} + varargs: [48, 24] + - type: outaux + id: 21 + parameters: {auxgain: 64, outgain: 64, stereo: 1} diff --git a/tracker/presets/pad.yml b/tracker/presets/pad.yml new file mode 100644 index 0000000..2291b95 --- /dev/null +++ b/tracker/presets/pad.yml @@ -0,0 +1,52 @@ +name: Pad +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 72, decay: 96, gain: 128, release: 88, stereo: 0, sustain: 96} + - type: send + id: 2 + parameters: {amount: 64, port: 4, sendpop: 0, target: 1} + - type: oscillator + id: 3 + parameters: {color: 80, detune: 60, gain: 128, lfo: 0, phase: 32, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 4 + parameters: {color: 96, detune: 72, gain: 128, lfo: 0, phase: 32, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 5 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 90, stereo: 0, transpose: 32, type: 0} + - type: send + id: 6 + parameters: {amount: 68, port: 1, sendpop: 0, target: 3} + - type: send + id: 78 + parameters: {amount: 61, port: 1, sendpop: 1, target: 4} + - type: addp + id: 80 + parameters: {stereo: 0} + - type: mulp + id: 10 + parameters: {stereo: 0} + - type: filter + id: 11 + parameters: {bandpass: 0, frequency: 26, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 1, resonance: 128, stereo: 0} + - type: filter + id: 12 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 64, stereo: 0} + - type: distort + id: 13 + parameters: {drive: 104, stereo: 0} + - type: hold + id: 14 + parameters: {holdfreq: 128, stereo: 0} + - type: pan + id: 15 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 16 + parameters: {damp: 64, dry: 128, feedback: 96, notetracking: 2, pregain: 96, stereo: 1} + varargs: [24, 48] + - type: outaux + id: 20 + parameters: {auxgain: 32, outgain: 0, stereo: 1} diff --git a/tracker/presets/pad2.yml b/tracker/presets/pad2.yml new file mode 100644 index 0000000..1d4505c --- /dev/null +++ b/tracker/presets/pad2.yml @@ -0,0 +1,46 @@ +name: Pad2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 72, decay: 96, gain: 128, release: 88, stereo: 0, sustain: 96} + - type: send + id: 2 + parameters: {amount: 64, port: 4, sendpop: 0, target: 1} + - type: oscillator + id: 3 + parameters: {color: 80, detune: 60, gain: 128, lfo: 0, phase: 32, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 4 + parameters: {color: 128, detune: 72, gain: 64, lfo: 0, phase: 32, shape: 112, stereo: 0, transpose: 64, type: 0} + - type: oscillator + id: 5 + parameters: {color: 64, detune: 112, gain: 128, lfo: 1, phase: 0, shape: 16, stereo: 0, transpose: 80, type: 2} + - type: send + id: 6 + parameters: {amount: 68, port: 1, sendpop: 0, target: 3} + - type: send + id: 81 + parameters: {amount: 60, port: 1, sendpop: 1, target: 4} + - type: addp + id: 83 + parameters: {stereo: 0} + - type: mulp + id: 10 + parameters: {stereo: 0} + - type: filter + id: 11 + parameters: {bandpass: 0, frequency: 80, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 24, stereo: 0} + - type: filter + id: 12 + parameters: {bandpass: 0, frequency: 48, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 24, stereo: 0} + - type: pan + id: 13 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 14 + parameters: {damp: 64, dry: 128, feedback: 96, notetracking: 2, pregain: 96, stereo: 1} + varargs: [24, 48] + - type: outaux + id: 18 + parameters: {auxgain: 32, outgain: 0, stereo: 1} diff --git a/tracker/presets/piano.yml b/tracker/presets/piano.yml new file mode 100644 index 0000000..d0dd9b8 --- /dev/null +++ b/tracker/presets/piano.yml @@ -0,0 +1,24 @@ +name: Piano +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 74, gain: 128, release: 74, stereo: 0, sustain: 0} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 64, shape: 96, stereo: 0, transpose: 64, type: 0} + - type: oscillator + id: 3 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 64, shape: 96, stereo: 0, transpose: 64, type: 0} + - type: mulp + id: 4 + parameters: {stereo: 0} + - type: mulp + id: 5 + parameters: {stereo: 0} + - type: pan + id: 6 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 59 + parameters: {auxgain: 93, outgain: 64, stereo: 1} diff --git a/tracker/presets/piano2.yml b/tracker/presets/piano2.yml new file mode 100644 index 0000000..fc88a67 --- /dev/null +++ b/tracker/presets/piano2.yml @@ -0,0 +1,37 @@ +name: Piano2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 48, gain: 128, release: 64, stereo: 0, sustain: 128} + - type: send + id: 2 + parameters: {amount: 116, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 56, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: noise + id: 4 + parameters: {gain: 128, shape: 64, stereo: 0} + - type: mulp + id: 5 + parameters: {stereo: 0} + - type: filter + id: 6 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: delay + id: 60 + parameters: {damp: 8, dry: 128, feedback: 127, notetracking: 1, pregain: 128, stereo: 0} + varargs: [10787] + - type: filter + id: 61 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 62 + parameters: {stereo: 0} + - type: pan + id: 10 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 11 + parameters: {auxgain: 16, outgain: 64, stereo: 1} diff --git a/tracker/presets/rest-in-peace.yml b/tracker/presets/rest-in-peace.yml new file mode 100644 index 0000000..a3fa651 --- /dev/null +++ b/tracker/presets/rest-in-peace.yml @@ -0,0 +1,74 @@ +name: RestInPeace +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 48, decay: 64, gain: 128, release: 80, stereo: 0, sustain: 80} + - type: envelope + id: 2 + parameters: {attack: 0, decay: 88, gain: 128, release: 88, stereo: 0, sustain: 64} + - type: send + id: 3 + parameters: {amount: 96, port: 3, sendpop: 0, target: 14} + - type: send + id: 4 + parameters: {amount: 96, port: 3, sendpop: 0, target: 15} + - type: send + id: 5 + parameters: {amount: 96, port: 3, sendpop: 1, target: 16} + - type: oscillator + id: 208 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 72, type: 0} + - type: send + id: 209 + parameters: {amount: 56, port: 1, sendpop: 0, target: 14} + - type: send + id: 210 + parameters: {amount: 77, port: 1, sendpop: 1, target: 16} + - type: oscillator + id: 11 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 48, type: 0} + - type: send + id: 12 + parameters: {amount: 72, port: 1, sendpop: 1, target: 15} + - type: oscillator + id: 14 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 15 + parameters: {color: 64, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 16 + parameters: {color: 64, detune: 64, gain: 96, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: addp + id: 17 + parameters: {stereo: 0} + - type: addp + id: 18 + parameters: {stereo: 0} + - type: filter + id: 19 + parameters: {bandpass: 0, frequency: 88, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 20 + parameters: {stereo: 0} + - type: oscillator + id: 21 + parameters: {color: 93, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 52, type: 0} + - type: mulp + id: 22 + parameters: {stereo: 0} + - type: delay + id: 23 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [96] + - type: pan + id: 24 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 25 + parameters: {damp: 0, dry: 0, feedback: 0, notetracking: 0, pregain: 128, stereo: 0} + varargs: [512] + - type: outaux + id: 26 + parameters: {auxgain: 32, outgain: 64, stereo: 1} diff --git a/tracker/presets/rhodes.yml b/tracker/presets/rhodes.yml new file mode 100644 index 0000000..3e3f7cd --- /dev/null +++ b/tracker/presets/rhodes.yml @@ -0,0 +1,27 @@ +name: Rhodes +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 96, gain: 128, release: 64, stereo: 0, sustain: 0} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 73, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 0} + - type: send + id: 3 + parameters: {amount: 96, port: 2, sendpop: 1, target: 5} + - type: oscillator + id: 5 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 64, shape: 64, stereo: 0, transpose: 64, type: 0} + - type: mulp + id: 6 + parameters: {stereo: 0} + - type: filter + id: 175 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 64, stereo: 0} + - type: pan + id: 176 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 177 + parameters: {auxgain: 4, outgain: 96, stereo: 1} diff --git a/tracker/presets/rimshot.yml b/tracker/presets/rimshot.yml new file mode 100644 index 0000000..b18993c --- /dev/null +++ b/tracker/presets/rimshot.yml @@ -0,0 +1,58 @@ +name: Rimshot +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 85, gain: 128, release: 72, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 56, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 4 + parameters: {amount: 108, port: 0, sendpop: 0, target: 56} + - type: send + id: 5 + parameters: {amount: 72, port: 0, sendpop: 1, target: 57} + - type: oscillator + id: 56 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 32, stereo: 0, transpose: 64, type: 0} + - type: oscillator + id: 57 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 80, stereo: 0, transpose: 64, type: 0} + - type: noise + id: 58 + parameters: {gain: 64, shape: 64, stereo: 0} + - type: filter + id: 10 + parameters: {bandpass: 0, frequency: 104, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: mulp + id: 13 + parameters: {stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 0, frequency: 23, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: filter + id: 15 + parameters: {bandpass: 0, frequency: 80, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 54, stereo: 0} + - type: filter + id: 16 + parameters: {bandpass: 1, frequency: 56, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 3, stereo: 0} + - type: delay + id: 17 + parameters: {damp: 64, dry: 128, feedback: 60, notetracking: 2, pregain: 63, stereo: 0} + varargs: [36] + - type: pan + id: 18 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 19 + parameters: {auxgain: 0, outgain: 3, stereo: 1} diff --git a/tracker/presets/short-punchy.yml b/tracker/presets/short-punchy.yml new file mode 100644 index 0000000..bedb0aa --- /dev/null +++ b/tracker/presets/short-punchy.yml @@ -0,0 +1,68 @@ +name: ShortPunchy +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 70, gain: 128, release: 70, stereo: 0, sustain: 0} + - type: envelope + id: 2 + parameters: {attack: 0, decay: 80, gain: 128, release: 80, stereo: 0, sustain: 0} + - type: send + id: 3 + parameters: {amount: 96, port: 0, sendpop: 0, target: 19} + - type: send + id: 4 + parameters: {amount: 96, port: 0, sendpop: 0, target: 20} + - type: oscillator + id: 190 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 72, type: 0} + - type: addp + id: 191 + parameters: {stereo: 0} + - type: send + id: 192 + parameters: {amount: 32, port: 3, sendpop: 1, target: 14} + - type: oscillator + id: 11 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 96, type: 0} + - type: send + id: 12 + parameters: {amount: 80, port: 1, sendpop: 1, target: 16} + - type: oscillator + id: 14 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 76, type: 2} + - type: oscillator + id: 15 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 16 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 76, type: 1} + - type: addp + id: 17 + parameters: {stereo: 0} + - type: addp + id: 18 + parameters: {stereo: 0} + - type: filter + id: 19 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 96, stereo: 0} + - type: filter + id: 20 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 96, stereo: 0} + - type: mulp + id: 21 + parameters: {stereo: 0} + - type: delay + id: 22 + parameters: {damp: 32, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [36] + - type: pan + id: 23 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 24 + parameters: {damp: 0, dry: 0, feedback: 0, notetracking: 0, pregain: 128, stereo: 0} + varargs: [512] + - type: outaux + id: 25 + parameters: {auxgain: 32, outgain: 44, stereo: 1} diff --git a/examples/instruments/snare-adam.yml b/tracker/presets/snare-adam.yml similarity index 99% rename from examples/instruments/snare-adam.yml rename to tracker/presets/snare-adam.yml index 8177810..d308d2f 100644 --- a/examples/instruments/snare-adam.yml +++ b/tracker/presets/snare-adam.yml @@ -1,4 +1,4 @@ -name: Snare +name: SnareAdam comment: | Author: pestis/bC!. Suggested note: F#3. Originally from: 4k intro Adam. diff --git a/tracker/presets/snare.yml b/tracker/presets/snare.yml new file mode 100644 index 0000000..12b39c3 --- /dev/null +++ b/tracker/presets/snare.yml @@ -0,0 +1,36 @@ +name: Snare +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 75, gain: 32, release: 0, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 70, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: distort + id: 4 + parameters: {drive: 8, stereo: 0} + - type: send + id: 6 + parameters: {amount: 76, port: 0, sendpop: 1, target: 26} + - type: noise + id: 25 + parameters: {gain: 128, shape: 64, stereo: 0} + - type: oscillator + id: 26 + parameters: {color: 128, detune: 64, gain: 128, lfo: 0, phase: 64, shape: 64, stereo: 0, transpose: 64, type: 0} + - type: addp + id: 10 + parameters: {stereo: 0} + - type: mulp + id: 11 + parameters: {stereo: 0} + - type: pan + id: 12 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 13 + parameters: {auxgain: 0, outgain: 32, stereo: 1} diff --git a/tracker/presets/snare2.yml b/tracker/presets/snare2.yml new file mode 100644 index 0000000..122dd84 --- /dev/null +++ b/tracker/presets/snare2.yml @@ -0,0 +1,48 @@ +name: Snare2 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 72, gain: 128, release: 72, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 56, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 4 + parameters: {amount: 108, port: 0, sendpop: 0, target: 41} + - type: send + id: 5 + parameters: {amount: 72, port: 0, sendpop: 1, target: 42} + - type: oscillator + id: 41 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 32, stereo: 0, transpose: 32, type: 0} + - type: oscillator + id: 42 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 80, stereo: 0, transpose: 64, type: 0} + - type: noise + id: 43 + parameters: {gain: 64, shape: 64, stereo: 0} + - type: filter + id: 10 + parameters: {bandpass: 0, frequency: 104, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: mulp + id: 13 + parameters: {stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 0, frequency: 22, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: pan + id: 15 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 16 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/snare3.yml b/tracker/presets/snare3.yml new file mode 100644 index 0000000..424d7ff --- /dev/null +++ b/tracker/presets/snare3.yml @@ -0,0 +1,58 @@ +name: Snare3 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 74, gain: 128, release: 64, stereo: 0, sustain: 0} + - type: envelope + id: 2 + parameters: {attack: 0, decay: 72, gain: 128, release: 72, stereo: 0, sustain: 0} + - type: send + id: 3 + parameters: {amount: 128, port: 4, sendpop: 0, target: 2} + - type: envelope + id: 4 + parameters: {attack: 0, decay: 56, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 5 + parameters: {amount: 108, port: 0, sendpop: 0, target: 45} + - type: send + id: 6 + parameters: {amount: 72, port: 0, sendpop: 1, target: 46} + - type: oscillator + id: 45 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 32, stereo: 0, transpose: 32, type: 0} + - type: oscillator + id: 46 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 80, stereo: 0, transpose: 64, type: 0} + - type: noise + id: 10 + parameters: {gain: 64, shape: 64, stereo: 0} + - type: filter + id: 11 + parameters: {bandpass: 0, frequency: 104, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: addp + id: 13 + parameters: {stereo: 0} + - type: mulp + id: 14 + parameters: {stereo: 0} + - type: filter + id: 15 + parameters: {bandpass: 0, frequency: 22, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: delay + id: 16 + parameters: {damp: 64, dry: 128, feedback: 115, notetracking: 0, pregain: 32, stereo: 0} + varargs: [1116, 1188, 1276, 1356, 1422, 1492, 1556, 1618] + - type: mulp + id: 17 + parameters: {stereo: 0} + - type: pan + id: 18 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 19 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/snare4.yml b/tracker/presets/snare4.yml new file mode 100644 index 0000000..e777a62 --- /dev/null +++ b/tracker/presets/snare4.yml @@ -0,0 +1,54 @@ +name: Snare4 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 72, gain: 126, release: 72, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 56, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 4 + parameters: {amount: 108, port: 0, sendpop: 0, target: 47} + - type: send + id: 5 + parameters: {amount: 72, port: 0, sendpop: 1, target: 48} + - type: oscillator + id: 47 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 32, stereo: 0, transpose: 32, type: 0} + - type: oscillator + id: 48 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 80, stereo: 0, transpose: 64, type: 0} + - type: noise + id: 49 + parameters: {gain: 64, shape: 10, stereo: 0} + - type: filter + id: 10 + parameters: {bandpass: 0, frequency: 96, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: noise + id: 11 + parameters: {gain: 16, shape: 64, stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: addp + id: 13 + parameters: {stereo: 0} + - type: addp + id: 14 + parameters: {stereo: 0} + - type: mulp + id: 15 + parameters: {stereo: 0} + - type: filter + id: 16 + parameters: {bandpass: 0, frequency: 22, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: pan + id: 17 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 18 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/snare5.yml b/tracker/presets/snare5.yml new file mode 100644 index 0000000..da76e10 --- /dev/null +++ b/tracker/presets/snare5.yml @@ -0,0 +1,43 @@ +name: Snare5 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 72, gain: 128, release: 64, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 52, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 4 + parameters: {amount: 80, port: 0, sendpop: 1, target: 6} + - type: oscillator + id: 6 + parameters: {color: 128, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 74, stereo: 0, transpose: 48, type: 0} + - type: noise + id: 50 + parameters: {gain: 64, shape: 64, stereo: 0} + - type: filter + id: 51 + parameters: {bandpass: 0, frequency: 112, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 52 + parameters: {stereo: 0} + - type: mulp + id: 10 + parameters: {stereo: 0} + - type: filter + id: 11 + parameters: {bandpass: 0, frequency: 22, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 22, stereo: 0} + - type: delay + id: 12 + parameters: {damp: 64, dry: 64, feedback: 64, notetracking: 0, pregain: 32, stereo: 0} + varargs: [1140, 1212, 1300, 1380, 1446, 1516, 1580, 1642] + - type: pan + id: 13 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 14 + parameters: {auxgain: 0, outgain: 64, stereo: 1} diff --git a/tracker/presets/snare6.yml b/tracker/presets/snare6.yml new file mode 100644 index 0000000..3c7b99f --- /dev/null +++ b/tracker/presets/snare6.yml @@ -0,0 +1,48 @@ +name: Snare6 +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 0, decay: 72, gain: 128, release: 72, stereo: 0, sustain: 0} + - type: send + id: 2 + parameters: {amount: 128, port: 4, sendpop: 0, target: 1} + - type: envelope + id: 3 + parameters: {attack: 0, decay: 64, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: send + id: 4 + parameters: {amount: 108, port: 0, sendpop: 0, target: 53} + - type: send + id: 5 + parameters: {amount: 72, port: 0, sendpop: 1, target: 54} + - type: noise + id: 53 + parameters: {gain: 64, shape: 32, stereo: 0} + - type: oscillator + id: 54 + parameters: {color: 64, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 96, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 55 + parameters: {color: 64, detune: 64, gain: 64, lfo: 0, phase: 0, shape: 96, stereo: 0, transpose: 76, type: 1} + - type: filter + id: 10 + parameters: {bandpass: 0, frequency: 96, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: mulp + id: 13 + parameters: {stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 0, frequency: 28, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: pan + id: 15 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 16 + parameters: {auxgain: 0, outgain: 79, stereo: 1} diff --git a/tracker/presets/strangeland.yml b/tracker/presets/strangeland.yml new file mode 100644 index 0000000..632fbb9 --- /dev/null +++ b/tracker/presets/strangeland.yml @@ -0,0 +1,64 @@ +name: Strangeland +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 32, decay: 88, gain: 128, release: 92, stereo: 0, sustain: 64} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 38, type: 0} + - type: send + id: 3 + parameters: {amount: 72, port: 0, sendpop: 1, target: 14} + - type: oscillator + id: 5 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 64, shape: 64, stereo: 0, transpose: 32, type: 0} + - type: send + id: 6 + parameters: {amount: 72, port: 0, sendpop: 1, target: 16} + - type: oscillator + id: 242 + parameters: {color: 2, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 2} + - type: oscillator + id: 243 + parameters: {color: 123, detune: 69, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 76, type: 2} + - type: oscillator + id: 10 + parameters: {color: 24, detune: 55, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 76, type: 2} + - type: addp + id: 11 + parameters: {stereo: 0} + - type: addp + id: 12 + parameters: {stereo: 0} + - type: push + id: 13 + parameters: {stereo: 0} + - type: filter + id: 14 + parameters: {bandpass: 0, frequency: 96, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 96, stereo: 0} + - type: xch + id: 15 + parameters: {stereo: 0} + - type: filter + id: 16 + parameters: {bandpass: 1, frequency: 52, highpass: 0, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 112, stereo: 0} + - type: addp + id: 17 + parameters: {stereo: 0} + - type: filter + id: 18 + parameters: {bandpass: 0, frequency: 48, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: mulp + id: 19 + parameters: {stereo: 0} + - type: delay + id: 20 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [48] + - type: pan + id: 21 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 22 + parameters: {auxgain: 32, outgain: 32, stereo: 1} diff --git a/tracker/presets/string.yml b/tracker/presets/string.yml new file mode 100644 index 0000000..0fbe857 --- /dev/null +++ b/tracker/presets/string.yml @@ -0,0 +1,33 @@ +name: String +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 88, decay: 88, gain: 88, release: 88, stereo: 0, sustain: 88} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 64, lfo: 1, phase: 64, shape: 64, stereo: 0, transpose: 76, type: 0} + - type: send + id: 3 + parameters: {amount: 70, port: 1, sendpop: 0, target: 6} + - type: send + id: 4 + parameters: {amount: 70, port: 3, sendpop: 1, target: 63} + - type: oscillator + id: 6 + parameters: {color: 52, detune: 65, gain: 64, lfo: 0, phase: 64, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 63 + parameters: {color: 52, detune: 63, gain: 64, lfo: 0, phase: 64, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 64 + parameters: {stereo: 0} + - type: mulp + id: 65 + parameters: {stereo: 0} + - type: pan + id: 10 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 11 + parameters: {auxgain: 128, outgain: 0, stereo: 1} diff --git a/examples/instruments/supersaw-adam.yml b/tracker/presets/supersaw-adam.yml similarity index 99% rename from examples/instruments/supersaw-adam.yml rename to tracker/presets/supersaw-adam.yml index 35fc3d1..29b8067 100644 --- a/examples/instruments/supersaw-adam.yml +++ b/tracker/presets/supersaw-adam.yml @@ -1,4 +1,4 @@ -name: Supersaw +name: SupersawAdam comment: | Author: pestis/bC!. Originally from: 4k intro Adam. diff --git a/tracker/presets/synastasia.yml b/tracker/presets/synastasia.yml new file mode 100644 index 0000000..2c8f761 --- /dev/null +++ b/tracker/presets/synastasia.yml @@ -0,0 +1,62 @@ +name: Synastasia +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 64, decay: 70, gain: 128, release: 88, stereo: 0, sustain: 70} + - type: oscillator + id: 2 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 69, type: 0} + - type: send + id: 3 + parameters: {amount: 72, port: 1, sendpop: 1, target: 12} + - type: oscillator + id: 5 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 73, type: 0} + - type: send + id: 6 + parameters: {amount: 56, port: 1, sendpop: 0, target: 13} + - type: send + id: 193 + parameters: {amount: 56, port: 3, sendpop: 1, target: 13} + - type: oscillator + id: 195 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 77, type: 0} + - type: send + id: 10 + parameters: {amount: 72, port: 1, sendpop: 1, target: 14} + - type: oscillator + id: 12 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 13 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: oscillator + id: 14 + parameters: {color: 0, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: addp + id: 15 + parameters: {stereo: 0} + - type: addp + id: 16 + parameters: {stereo: 0} + - type: filter + id: 17 + parameters: {bandpass: 0, frequency: 104, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 96, stereo: 0} + - type: mulp + id: 18 + parameters: {stereo: 0} + - type: delay + id: 19 + parameters: {damp: 0, dry: 64, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [72] + - type: pan + id: 20 + parameters: {panning: 64, stereo: 0} + - type: delay + id: 21 + parameters: {damp: 0, dry: 0, feedback: 0, notetracking: 0, pregain: 128, stereo: 0} + varargs: [512] + - type: outaux + id: 22 + parameters: {auxgain: 64, outgain: 16, stereo: 1} diff --git a/tracker/presets/synth.yml b/tracker/presets/synth.yml new file mode 100644 index 0000000..0863e6f --- /dev/null +++ b/tracker/presets/synth.yml @@ -0,0 +1,37 @@ +name: Synth +numvoices: 1 +units: + - type: envelope + id: 1 + parameters: {attack: 64, decay: 64, gain: 128, release: 64, stereo: 0, sustain: 64} + - type: oscillator + id: 2 + parameters: {color: 64, detune: 64, gain: 128, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: send + id: 3 + parameters: {amount: 96, port: 2, sendpop: 1, target: 5} + - type: oscillator + id: 5 + parameters: {color: 64, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 48, type: 1} + - type: send + id: 6 + parameters: {amount: 81, port: 2, sendpop: 1, target: 73} + - type: oscillator + id: 73 + parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 8, stereo: 0, transpose: 32, type: 0} + - type: filter + id: 74 + parameters: {bandpass: 1, frequency: 32, highpass: 1, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 32, stereo: 0} + - type: mulp + id: 10 + parameters: {stereo: 0} + - type: delay + id: 11 + parameters: {damp: 64, dry: 128, feedback: 64, notetracking: 2, pregain: 64, stereo: 0} + varargs: [24] + - type: pan + id: 12 + parameters: {panning: 64, stereo: 0} + - type: outaux + id: 13 + parameters: {auxgain: 64, outgain: 64, stereo: 1}