├── b0 ├── b2 ├── b3 ├── src ├── export │ ├── sid.c │ ├── sid.h │ ├── vgm.c │ ├── vgm.h │ ├── export.c │ ├── export.h │ ├── fzt.h │ └── plaintext.h ├── import │ ├── a2m.c │ ├── a2m.h │ ├── dmf.c │ ├── dmf.h │ ├── it.c │ ├── it.h │ ├── midi.c │ ├── midi.h │ ├── mptm.c │ ├── mptm.h │ ├── rmt.c │ ├── rmt.h │ ├── s3m.c │ ├── s3m.h │ ├── plaintext.h │ ├── xm.h │ ├── hubdialog.h │ ├── ahx.h │ ├── org.h │ ├── fur │ │ ├── furmodule.h │ │ └── furmodule.c │ ├── mod.h │ ├── import.h │ ├── wavetable_string.h │ ├── mml_string.h │ ├── hubbard.h │ └── importutil.h ├── version ├── nostalgy.h ├── stats.h ├── view │ ├── sequence.h │ ├── oscilloscope.h │ ├── timer.c │ ├── grooveview.h │ ├── timer.h │ ├── visu.h │ ├── songmessage.h │ ├── pattern.h │ ├── envelopeview.h │ ├── credits.h │ ├── wavetableview.h │ └── localsample.h ├── version.in ├── zap.h ├── memwriter.h ├── songstats.h ├── help.h ├── wavewriter.h ├── nostalgy.c ├── wavegen.h ├── box drawing.txt ├── key.h ├── wave_action.h ├── shortcutdefs.h ├── config.h ├── export.h ├── mymsg.h ├── box drawing changed codes.txt ├── midi.h ├── wave.h ├── stats.c ├── keytab.h ├── command.h ├── wavewriter.c ├── copypaste.h ├── edit.h ├── console.h ├── optimize.h ├── mybevdefs.h ├── clipboard.h ├── diskop.h ├── clipboard.c ├── memwriter.c └── theme.h ├── themes ├── AHX │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── catometer.png │ └── colors.txt ├── C64 │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── logo.png │ └── colors.txt ├── Blacklyst │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── analyzor.png │ ├── catometer.png │ └── colors.txt ├── Classic │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── catometer.png │ └── colors.txt ├── Default │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font4x6 │ │ ├── res.txt │ │ ├── charmap.txt │ │ └── font.png │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.pdn │ │ ├── font.png │ │ ├── charmap.txt │ │ └── charmap_src.txt │ ├── font8x8 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── tiny │ │ ├── res.txt │ │ ├── charmap.txt │ │ └── font.png │ ├── vu.png │ ├── icon.png │ ├── logo.png │ ├── bevel.png │ ├── cursor.png │ ├── analyzor.png │ ├── catometer.png │ └── colors.txt ├── Gameboy │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── catometer.png │ └── colors.txt ├── Ravancore │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── tiny │ │ ├── res.txt │ │ ├── charmap.txt │ │ └── font.png │ ├── font4x6 │ │ ├── res.txt │ │ ├── charmap.txt │ │ └── font.png │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font8x8 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── logo.png │ ├── analyzor.png │ ├── catometer.png │ └── colors.txt ├── Rust_Camo │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── tiny │ │ ├── res.txt │ │ ├── charmap.txt │ │ └── font.png │ ├── font4x6 │ │ ├── res.txt │ │ ├── charmap.txt │ │ └── font.png │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font8x8 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── analyzor.png │ ├── catometer.png │ └── colors.txt ├── Rust_Red │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── tiny │ │ ├── res.txt │ │ ├── charmap.txt │ │ └── font.png │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── analyzor.png │ ├── catometer.png │ └── colors.txt ├── Golden_Brown │ ├── font │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font7x6 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── analyzor.png │ ├── catometer.png │ └── colors.txt └── Ultimate_Proctamed │ ├── font │ ├── res.txt │ ├── font.png │ └── charmap.txt │ ├── tiny │ ├── res.txt │ ├── charmap.txt │ └── font.png │ ├── font7x6 │ ├── res.txt │ ├── font.png │ └── charmap.txt │ ├── vu.png │ ├── bevel.png │ ├── analyzor.png │ ├── catometer.png │ └── colors.txt ├── Fonts ├── src │ ├── font16x16 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ ├── font24x24 │ │ ├── res.txt │ │ ├── font.png │ │ └── charmap.txt │ └── build-font-file.bat ├── font16x16.fnt └── font24x24.fnt ├── 4op_editor.png ├── doc ├── Default.kt ├── inst_editor.png ├── KlystrackGCLogo.png ├── SDL_image.txt ├── SDL.txt └── klystrack.1 ├── icon ├── 256x256.ico ├── 256x256.png └── 256x256.icns ├── envelope_editor.png ├── fm_alg_schemes ├── 1.png ├── 10.png ├── 11.png ├── 12.png ├── 13.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png └── 9.png ├── instrument_editor.png ├── key ├── QWERTZ ├── FT2 ├── AZERTY ├── n00bstar └── DVORAK ├── examples ├── songs │ ├── dr.happy.kt │ ├── hwv 437.kt │ ├── phonkeh.kt │ ├── ringmod.kt │ ├── StarChips.kt │ ├── Starport2.kt │ ├── obspatial.kt │ ├── castlevania.kt │ ├── smp_dpintro.kt │ ├── AmsterdamBoppe.kt │ ├── Sprock'n'Sprawl.kt │ ├── Ocean_Loader_III.kt │ ├── smp_dingleberries.kt │ ├── Diverted_Experience.kt │ ├── hskv03-rygar_trance.kt │ ├── LTVA-examples │ │ ├── resting.kt │ │ ├── 4mat_empty.kt │ │ ├── SSG-EG_demo.kt │ │ ├── crosswords.kt │ │ ├── new_journey.kt │ │ ├── pulse_+_tri.kt │ │ ├── CSM_timer_PWM_demo.kt │ │ ├── lost_transmission.kt │ │ ├── muriatic_milkshake.kt │ │ ├── Sunset_over_the_river.kt │ │ ├── Jeroen_Tel_Alloyrun_(cover).kt │ │ ├── Jeroen_Tel_Atmosphere_(cover).kt │ │ ├── drums_using_new_noise_modes.kt │ │ ├── software_wavetable_sawtooth.kt │ │ ├── software_wavetable_triangle.kt │ │ └── Abstract_64_Carve_Your_Own_Path_(cover).kt │ ├── Paranoimia_(Suntronic).kt │ ├── n00bstar-examples │ │ ├── Arps.kt │ │ ├── Buzz.kt │ │ ├── FXBus.kt │ │ ├── Sync.kt │ │ ├── Ringmod.kt │ │ ├── Multiplex.kt │ │ ├── highscore.kt │ │ └── Oscillators_And_Wavetable.kt │ ├── System64-examples │ │ ├── Magica.kt │ │ └── 4-Dimensional-Goddess-Of-Existence.kt │ └── Imported_XMs │ │ ├── STRANGLEHOLD_(C)JT.kt │ │ ├── tomorrow_without_you.kt │ │ └── STRANGLEHOLD_II_LETTING_GO_(C)JT.kt ├── instruments │ ├── bass.ki │ ├── clap.ki │ ├── dang.ki │ ├── kick.ki │ ├── tom.ki │ ├── JDsnare.ki │ ├── bass2.ki │ ├── cowbell.ki │ ├── katana.ki │ ├── lead1.ki │ ├── major.ki │ ├── snappy.ki │ ├── ssnare.ki │ ├── stabmaj.ki │ ├── stabmin.ki │ ├── wetkick.ki │ ├── MontyKick.ki │ ├── bigsnare.ki │ ├── hardkick.ki │ ├── lethal_kick.ki │ ├── lethal_snare.ki │ ├── the_horror.ki │ ├── vibbas_flt.ki │ ├── LTVA-instruments │ │ ├── helicopter.ki │ │ ├── NES_triangle.ki │ │ ├── glockenspiel.ki │ │ ├── 100hz_4op_snare.ki │ │ ├── CSM_timer_saw.ki │ │ ├── 23xx_command_demo.ki │ │ ├── 4-op_FM_fart_bass.ki │ │ ├── additive_fm_snare.ki │ │ ├── CSM_timer_saw_chord.ki │ │ ├── demo_point_envelopes.ki │ │ ├── 4-op_FM_pathetic_snare.ki │ │ ├── multiple_programs_demo.ki │ │ └── locked_noise_pitch_snare.ki │ └── n00bstar-instruments │ │ ├── Tom_01.ki │ │ ├── Tom_02.ki │ │ ├── Tom_03.ki │ │ ├── Bass_FM.ki │ │ ├── Clap_01.ki │ │ ├── Clap_02.ki │ │ ├── Snare_01.ki │ │ ├── Snare_02.ki │ │ ├── Snare_03.ki │ │ ├── Snare_04.ki │ │ ├── Snare_05.ki │ │ ├── Snare_06.ki │ │ ├── Bass_Aggro.ki │ │ ├── Bass_Deep.ki │ │ ├── Bass_Picked.ki │ │ ├── Bass_Pulse.ki │ │ ├── Bassdrum_01.ki │ │ ├── Bassdrum_02.ki │ │ ├── Bassdrum_03.ki │ │ ├── Bassdrum_04.ki │ │ ├── Bassdrum_05.ki │ │ ├── Bassdrum_06.ki │ │ ├── FX_DriveBy.ki │ │ ├── FX_PowerUp.ki │ │ ├── Lead_Buzz.ki │ │ ├── Arp_Fixed_Aug.ki │ │ ├── Arp_Fixed_Dim.ki │ │ ├── Bass_Filtered.ki │ │ ├── Bass_Shifting.ki │ │ ├── FX_BreakGlass.ki │ │ ├── Hihat_1_Open.ki │ │ ├── Hihat_2_Open.ki │ │ ├── Hihat_3_Open.ki │ │ ├── Lead_FM_Rise.ki │ │ ├── Lead_FM_Sync.ki │ │ ├── Lead_FakeArp.ki │ │ ├── Pad_LongRise.ki │ │ ├── Arp_Fixed_Dom7th.ki │ │ ├── Arp_Fixed_Major.ki │ │ ├── Arp_Fixed_Minor.ki │ │ ├── Arp_Fixed_Sus4.ki │ │ ├── Bass_Sustained.ki │ │ ├── FX_VinylRecord.ki │ │ ├── Hihat_1_Closed.ki │ │ ├── Hihat_2_Closed.ki │ │ ├── Hihat_3_Closed.ki │ │ ├── Lead_VibraSquare.ki │ │ ├── Pad_ThinDigital.ki │ │ ├── Arp_External_Short.ki │ │ ├── Bass_DoubleSquare.ki │ │ ├── Instrument_Strings.ki │ │ ├── Instrument_Trumpet.ki │ │ ├── Lead_DigitalBells.ki │ │ ├── Lead_HPF_SawFifths.ki │ │ ├── Lead_PulseToSquare.ki │ │ ├── Lead_ShortFMSquare.ki │ │ ├── Lead_SquareToPulse.ki │ │ ├── Pad_ResonnantSweep.ki │ │ ├── Arp_External_OscSweep.ki │ │ ├── Instrument_Trombone.ki │ │ ├── Lead_OctaveArpBleep.ki │ │ ├── Arp_External_PhasingSquare.ki │ │ └── Arp_External_SustainedPWM.ki └── wavegen_patches │ └── LTVA-examples │ ├── lead_1.kw │ ├── Distorted.kw │ ├── 8_harmonics_Fourier_square.kw │ └── Alternative_OPL3_8th_wave.kw ├── instrument_editor_fm.png ├── .gitmodules ├── OSX_Xcode ├── English.lproj │ └── InfoPlist.strings ├── SDLMain.h └── Info.plist ├── windres ├── resource.h └── resource.rc ├── scancode-tool ├── Makefile └── scancode.c ├── .gitignore ├── .vscode ├── settings.json └── c_cpp_properties.json ├── SDL_image.txt ├── linux └── klystrack.desktop ├── SDL.txt ├── player ├── Makefile └── player.c ├── installer └── UnFiles.cmd ├── .circleci └── config.yml └── LICENSE /b0: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /b2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /b3: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/export/sid.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/export/sid.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/export/vgm.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/export/vgm.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/a2m.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/a2m.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/dmf.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/dmf.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/it.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/it.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/midi.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/midi.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/mptm.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/mptm.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/rmt.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/rmt.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/s3m.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/import/s3m.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/export/export.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/export/export.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/AHX/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/C64/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /Fonts/src/font16x16/res.txt: -------------------------------------------------------------------------------- 1 | 16 16 -------------------------------------------------------------------------------- /Fonts/src/font24x24/res.txt: -------------------------------------------------------------------------------- 1 | 24 24 -------------------------------------------------------------------------------- /src/version: -------------------------------------------------------------------------------- 1 | 0.10.0-alpha3 2 | -------------------------------------------------------------------------------- /themes/AHX/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Blacklyst/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/C64/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Classic/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Classic/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Default/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Default/font4x6/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Default/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 7 -------------------------------------------------------------------------------- /themes/Default/font8x8/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Default/tiny/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Gameboy/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Gameboy/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Ravancore/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Ravancore/tiny/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Rust_Camo/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Rust_Camo/tiny/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Rust_Red/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Rust_Red/tiny/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Blacklyst/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Golden_Brown/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Golden_Brown/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Ravancore/font4x6/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Ravancore/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 7 -------------------------------------------------------------------------------- /themes/Ravancore/font8x8/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Rust_Camo/font4x6/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Rust_Camo/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Rust_Camo/font8x8/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Rust_Red/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/font/res.txt: -------------------------------------------------------------------------------- 1 | 8 8 -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/tiny/res.txt: -------------------------------------------------------------------------------- 1 | 4 6 -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/font7x6/res.txt: -------------------------------------------------------------------------------- 1 | 7 6 -------------------------------------------------------------------------------- /themes/Ravancore/tiny/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+- -------------------------------------------------------------------------------- /themes/Ravancore/font4x6/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+- -------------------------------------------------------------------------------- /themes/Rust_Camo/tiny/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+-pithvol=#yhpgstr,.:nmx -------------------------------------------------------------------------------- /themes/Rust_Red/tiny/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+-pithvol=#yhpgstr,.:nmx -------------------------------------------------------------------------------- /themes/Default/tiny/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+-pithvol=#yhpgstr,.:nmx\f9\fa -------------------------------------------------------------------------------- /themes/Rust_Camo/font4x6/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+-pithvol=#yhpgstr,.:nmx -------------------------------------------------------------------------------- /4op_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/4op_editor.png -------------------------------------------------------------------------------- /doc/Default.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/doc/Default.kt -------------------------------------------------------------------------------- /icon/256x256.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/icon/256x256.ico -------------------------------------------------------------------------------- /icon/256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/icon/256x256.png -------------------------------------------------------------------------------- /themes/Default/font4x6/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+-pithvol=#yhpgstr,.:nmx\f9\fa -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/tiny/charmap.txt: -------------------------------------------------------------------------------- 1 | 0123456789abcdef+-pithvol=#yhpgstr,.:nmx -------------------------------------------------------------------------------- /icon/256x256.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/icon/256x256.icns -------------------------------------------------------------------------------- /themes/AHX/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/AHX/vu.png -------------------------------------------------------------------------------- /themes/C64/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/C64/vu.png -------------------------------------------------------------------------------- /Fonts/font16x16.fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/Fonts/font16x16.fnt -------------------------------------------------------------------------------- /Fonts/font24x24.fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/Fonts/font24x24.fnt -------------------------------------------------------------------------------- /doc/inst_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/doc/inst_editor.png -------------------------------------------------------------------------------- /envelope_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/envelope_editor.png -------------------------------------------------------------------------------- /fm_alg_schemes/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/1.png -------------------------------------------------------------------------------- /fm_alg_schemes/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/10.png -------------------------------------------------------------------------------- /fm_alg_schemes/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/11.png -------------------------------------------------------------------------------- /fm_alg_schemes/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/12.png -------------------------------------------------------------------------------- /fm_alg_schemes/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/13.png -------------------------------------------------------------------------------- /fm_alg_schemes/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/2.png -------------------------------------------------------------------------------- /fm_alg_schemes/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/3.png -------------------------------------------------------------------------------- /fm_alg_schemes/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/4.png -------------------------------------------------------------------------------- /fm_alg_schemes/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/5.png -------------------------------------------------------------------------------- /fm_alg_schemes/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/6.png -------------------------------------------------------------------------------- /fm_alg_schemes/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/7.png -------------------------------------------------------------------------------- /fm_alg_schemes/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/8.png -------------------------------------------------------------------------------- /fm_alg_schemes/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/fm_alg_schemes/9.png -------------------------------------------------------------------------------- /instrument_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/instrument_editor.png -------------------------------------------------------------------------------- /themes/AHX/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/AHX/bevel.png -------------------------------------------------------------------------------- /themes/C64/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/C64/bevel.png -------------------------------------------------------------------------------- /themes/C64/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/C64/logo.png -------------------------------------------------------------------------------- /themes/Classic/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Classic/vu.png -------------------------------------------------------------------------------- /themes/Default/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/vu.png -------------------------------------------------------------------------------- /themes/Gameboy/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Gameboy/vu.png -------------------------------------------------------------------------------- /doc/KlystrackGCLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/doc/KlystrackGCLogo.png -------------------------------------------------------------------------------- /key/QWERTZ: -------------------------------------------------------------------------------- 1 | # Fix problems with QWERTZ keyboards 2 | [pattern] 3 | K_Z = K_Y 4 | K_Y = K_Z 5 | -------------------------------------------------------------------------------- /themes/Blacklyst/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/vu.png -------------------------------------------------------------------------------- /themes/Default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/icon.png -------------------------------------------------------------------------------- /themes/Default/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/logo.png -------------------------------------------------------------------------------- /themes/Ravancore/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/vu.png -------------------------------------------------------------------------------- /themes/Rust_Camo/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/vu.png -------------------------------------------------------------------------------- /themes/Rust_Red/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/vu.png -------------------------------------------------------------------------------- /examples/songs/dr.happy.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/dr.happy.kt -------------------------------------------------------------------------------- /examples/songs/hwv 437.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/hwv 437.kt -------------------------------------------------------------------------------- /examples/songs/phonkeh.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/phonkeh.kt -------------------------------------------------------------------------------- /examples/songs/ringmod.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/ringmod.kt -------------------------------------------------------------------------------- /instrument_editor_fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/instrument_editor_fm.png -------------------------------------------------------------------------------- /themes/AHX/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/AHX/catometer.png -------------------------------------------------------------------------------- /themes/AHX/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/AHX/font/font.png -------------------------------------------------------------------------------- /themes/Blacklyst/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/bevel.png -------------------------------------------------------------------------------- /themes/C64/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/C64/font/font.png -------------------------------------------------------------------------------- /themes/Classic/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Classic/bevel.png -------------------------------------------------------------------------------- /themes/Default/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/bevel.png -------------------------------------------------------------------------------- /themes/Default/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/cursor.png -------------------------------------------------------------------------------- /themes/Gameboy/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Gameboy/bevel.png -------------------------------------------------------------------------------- /themes/Golden_Brown/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/vu.png -------------------------------------------------------------------------------- /themes/Ravancore/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/bevel.png -------------------------------------------------------------------------------- /themes/Ravancore/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/logo.png -------------------------------------------------------------------------------- /themes/Rust_Camo/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/bevel.png -------------------------------------------------------------------------------- /themes/Rust_Red/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/bevel.png -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "klystron"] 2 | path = klystron 3 | url = https://github.com/LTVA1/klystron 4 | -------------------------------------------------------------------------------- /Fonts/src/font16x16/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/Fonts/src/font16x16/font.png -------------------------------------------------------------------------------- /Fonts/src/font24x24/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/Fonts/src/font24x24/font.png -------------------------------------------------------------------------------- /examples/instruments/bass.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/bass.ki -------------------------------------------------------------------------------- /examples/instruments/clap.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/clap.ki -------------------------------------------------------------------------------- /examples/instruments/dang.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/dang.ki -------------------------------------------------------------------------------- /examples/instruments/kick.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/kick.ki -------------------------------------------------------------------------------- /examples/instruments/tom.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/tom.ki -------------------------------------------------------------------------------- /examples/songs/StarChips.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/StarChips.kt -------------------------------------------------------------------------------- /examples/songs/Starport2.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Starport2.kt -------------------------------------------------------------------------------- /examples/songs/obspatial.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/obspatial.kt -------------------------------------------------------------------------------- /themes/AHX/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/AHX/font/charmap.txt -------------------------------------------------------------------------------- /themes/AHX/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/AHX/font7x6/font.png -------------------------------------------------------------------------------- /themes/C64/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/C64/font/charmap.txt -------------------------------------------------------------------------------- /themes/C64/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/C64/font7x6/font.png -------------------------------------------------------------------------------- /themes/Classic/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Classic/catometer.png -------------------------------------------------------------------------------- /themes/Classic/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Classic/font/font.png -------------------------------------------------------------------------------- /themes/Default/analyzor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/analyzor.png -------------------------------------------------------------------------------- /themes/Default/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/catometer.png -------------------------------------------------------------------------------- /themes/Default/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font/font.png -------------------------------------------------------------------------------- /themes/Default/tiny/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/tiny/font.png -------------------------------------------------------------------------------- /themes/Gameboy/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Gameboy/catometer.png -------------------------------------------------------------------------------- /themes/Gameboy/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Gameboy/font/font.png -------------------------------------------------------------------------------- /themes/Rust_Red/analyzor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/analyzor.png -------------------------------------------------------------------------------- /Fonts/src/font16x16/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/Fonts/src/font16x16/charmap.txt -------------------------------------------------------------------------------- /Fonts/src/font24x24/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/Fonts/src/font24x24/charmap.txt -------------------------------------------------------------------------------- /examples/instruments/JDsnare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/JDsnare.ki -------------------------------------------------------------------------------- /examples/instruments/bass2.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/bass2.ki -------------------------------------------------------------------------------- /examples/instruments/cowbell.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/cowbell.ki -------------------------------------------------------------------------------- /examples/instruments/katana.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/katana.ki -------------------------------------------------------------------------------- /examples/instruments/lead1.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/lead1.ki -------------------------------------------------------------------------------- /examples/instruments/major.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/major.ki -------------------------------------------------------------------------------- /examples/instruments/snappy.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/snappy.ki -------------------------------------------------------------------------------- /examples/instruments/ssnare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/ssnare.ki -------------------------------------------------------------------------------- /examples/instruments/stabmaj.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/stabmaj.ki -------------------------------------------------------------------------------- /examples/instruments/stabmin.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/stabmin.ki -------------------------------------------------------------------------------- /examples/instruments/wetkick.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/wetkick.ki -------------------------------------------------------------------------------- /examples/songs/castlevania.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/castlevania.kt -------------------------------------------------------------------------------- /examples/songs/smp_dpintro.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/smp_dpintro.kt -------------------------------------------------------------------------------- /src/nostalgy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "gfx/gfx.h" 4 | 5 | void nos_decrunch(GfxDomain *domain); 6 | -------------------------------------------------------------------------------- /themes/AHX/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/AHX/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Blacklyst/analyzor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/analyzor.png -------------------------------------------------------------------------------- /themes/Blacklyst/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/catometer.png -------------------------------------------------------------------------------- /themes/Blacklyst/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/font/font.png -------------------------------------------------------------------------------- /themes/C64/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/C64/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Classic/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Classic/font/charmap.txt -------------------------------------------------------------------------------- /themes/Classic/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Classic/font7x6/font.png -------------------------------------------------------------------------------- /themes/Default/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font/charmap.txt -------------------------------------------------------------------------------- /themes/Default/font4x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font4x6/font.png -------------------------------------------------------------------------------- /themes/Default/font7x6/font.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font7x6/font.pdn -------------------------------------------------------------------------------- /themes/Default/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font7x6/font.png -------------------------------------------------------------------------------- /themes/Default/font8x8/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font8x8/font.png -------------------------------------------------------------------------------- /themes/Gameboy/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Gameboy/font/charmap.txt -------------------------------------------------------------------------------- /themes/Gameboy/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Gameboy/font7x6/font.png -------------------------------------------------------------------------------- /themes/Golden_Brown/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/bevel.png -------------------------------------------------------------------------------- /themes/Ravancore/analyzor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/analyzor.png -------------------------------------------------------------------------------- /themes/Ravancore/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/catometer.png -------------------------------------------------------------------------------- /themes/Ravancore/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/font/font.png -------------------------------------------------------------------------------- /themes/Ravancore/tiny/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/tiny/font.png -------------------------------------------------------------------------------- /themes/Rust_Camo/analyzor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/analyzor.png -------------------------------------------------------------------------------- /themes/Rust_Camo/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/catometer.png -------------------------------------------------------------------------------- /themes/Rust_Camo/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/font/font.png -------------------------------------------------------------------------------- /themes/Rust_Camo/tiny/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/tiny/font.png -------------------------------------------------------------------------------- /themes/Rust_Red/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/catometer.png -------------------------------------------------------------------------------- /themes/Rust_Red/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/font/font.png -------------------------------------------------------------------------------- /themes/Rust_Red/tiny/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/tiny/font.png -------------------------------------------------------------------------------- /examples/instruments/MontyKick.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/MontyKick.ki -------------------------------------------------------------------------------- /examples/instruments/bigsnare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/bigsnare.ki -------------------------------------------------------------------------------- /examples/instruments/hardkick.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/hardkick.ki -------------------------------------------------------------------------------- /examples/songs/AmsterdamBoppe.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/AmsterdamBoppe.kt -------------------------------------------------------------------------------- /examples/songs/Sprock'n'Sprawl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Sprock'n'Sprawl.kt -------------------------------------------------------------------------------- /themes/Blacklyst/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/font/charmap.txt -------------------------------------------------------------------------------- /themes/Blacklyst/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/font7x6/font.png -------------------------------------------------------------------------------- /themes/Golden_Brown/analyzor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/analyzor.png -------------------------------------------------------------------------------- /themes/Golden_Brown/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/catometer.png -------------------------------------------------------------------------------- /themes/Golden_Brown/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/font/font.png -------------------------------------------------------------------------------- /themes/Ravancore/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/font/charmap.txt -------------------------------------------------------------------------------- /themes/Ravancore/font4x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/font4x6/font.png -------------------------------------------------------------------------------- /themes/Ravancore/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/font7x6/font.png -------------------------------------------------------------------------------- /themes/Ravancore/font8x8/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/font8x8/font.png -------------------------------------------------------------------------------- /themes/Rust_Camo/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/font/charmap.txt -------------------------------------------------------------------------------- /themes/Rust_Camo/font4x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/font4x6/font.png -------------------------------------------------------------------------------- /themes/Rust_Camo/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/font7x6/font.png -------------------------------------------------------------------------------- /themes/Rust_Camo/font8x8/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/font8x8/font.png -------------------------------------------------------------------------------- /themes/Rust_Red/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/font/charmap.txt -------------------------------------------------------------------------------- /themes/Rust_Red/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/font7x6/font.png -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/vu.png -------------------------------------------------------------------------------- /examples/instruments/lethal_kick.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/lethal_kick.ki -------------------------------------------------------------------------------- /examples/instruments/lethal_snare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/lethal_snare.ki -------------------------------------------------------------------------------- /examples/instruments/the_horror.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/the_horror.ki -------------------------------------------------------------------------------- /examples/instruments/vibbas_flt.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/vibbas_flt.ki -------------------------------------------------------------------------------- /examples/songs/Ocean_Loader_III.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Ocean_Loader_III.kt -------------------------------------------------------------------------------- /examples/songs/smp_dingleberries.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/smp_dingleberries.kt -------------------------------------------------------------------------------- /key/FT2: -------------------------------------------------------------------------------- 1 | # Fasttracker 2 key shortcuts 2 | [pattern] 3 | M_LSHIFT K_TAB = M_CTRL K_LEFT 4 | K_TAB = M_CTRL K_RIGHT 5 | -------------------------------------------------------------------------------- /themes/Blacklyst/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Blacklyst/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Classic/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Classic/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Default/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Default/font8x8/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Default/font8x8/charmap.txt -------------------------------------------------------------------------------- /themes/Gameboy/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Gameboy/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Golden_Brown/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/font/charmap.txt -------------------------------------------------------------------------------- /themes/Golden_Brown/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/font7x6/font.png -------------------------------------------------------------------------------- /themes/Ravancore/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Ravancore/font8x8/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ravancore/font8x8/charmap.txt -------------------------------------------------------------------------------- /themes/Rust_Camo/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Rust_Camo/font8x8/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Camo/font8x8/charmap.txt -------------------------------------------------------------------------------- /themes/Rust_Red/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Rust_Red/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/bevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/bevel.png -------------------------------------------------------------------------------- /examples/songs/Diverted_Experience.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Diverted_Experience.kt -------------------------------------------------------------------------------- /examples/songs/hskv03-rygar_trance.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/hskv03-rygar_trance.kt -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/analyzor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/analyzor.png -------------------------------------------------------------------------------- /OSX_Xcode/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/OSX_Xcode/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/resting.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/resting.kt -------------------------------------------------------------------------------- /examples/songs/Paranoimia_(Suntronic).kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Paranoimia_(Suntronic).kt -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/Arps.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/Arps.kt -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/Buzz.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/Buzz.kt -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/FXBus.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/FXBus.kt -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/Sync.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/Sync.kt -------------------------------------------------------------------------------- /themes/Golden_Brown/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Golden_Brown/font7x6/charmap.txt -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/catometer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/catometer.png -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/font/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/font/font.png -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/tiny/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/tiny/font.png -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/4mat_empty.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/4mat_empty.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/SSG-EG_demo.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/SSG-EG_demo.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/crosswords.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/crosswords.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/new_journey.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/new_journey.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/pulse_+_tri.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/pulse_+_tri.kt -------------------------------------------------------------------------------- /examples/songs/System64-examples/Magica.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/System64-examples/Magica.kt -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/Ringmod.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/Ringmod.kt -------------------------------------------------------------------------------- /themes/Default/font7x6/charmap_src.txt: -------------------------------------------------------------------------------- 1 | ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-#Ѕ§^/\:+\1\2()='!?,`|_;"│┤╢╕╣║╗╝╜╛┐└┴┬├─┼╟╚╔╩╦╠═╬╧╤╘╒┘┌░▒▓ -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/font/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/font/charmap.txt -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/font7x6/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/font7x6/font.png -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/Multiplex.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/Multiplex.kt -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/highscore.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/highscore.kt -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/font7x6/charmap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/themes/Ultimate_Proctamed/font7x6/charmap.txt -------------------------------------------------------------------------------- /examples/wavegen_patches/LTVA-examples/lead_1.kw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/wavegen_patches/LTVA-examples/lead_1.kw -------------------------------------------------------------------------------- /windres/resource.h: -------------------------------------------------------------------------------- 1 | #ifndef IDC_STATIC 2 | #define IDC_STATIC (-1) 3 | #endif 4 | 5 | #define IDI_MAINICON 101 6 | -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/helicopter.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/helicopter.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Tom_01.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Tom_01.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Tom_02.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Tom_02.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Tom_03.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Tom_03.ki -------------------------------------------------------------------------------- /examples/songs/Imported_XMs/STRANGLEHOLD_(C)JT.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Imported_XMs/STRANGLEHOLD_(C)JT.kt -------------------------------------------------------------------------------- /examples/songs/Imported_XMs/tomorrow_without_you.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Imported_XMs/tomorrow_without_you.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/CSM_timer_PWM_demo.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/CSM_timer_PWM_demo.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/lost_transmission.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/lost_transmission.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/muriatic_milkshake.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/muriatic_milkshake.kt -------------------------------------------------------------------------------- /examples/wavegen_patches/LTVA-examples/Distorted.kw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/wavegen_patches/LTVA-examples/Distorted.kw -------------------------------------------------------------------------------- /key/AZERTY: -------------------------------------------------------------------------------- 1 | # Fix problems with AZERTY keyboards 2 | [pattern] 3 | K_A = K_Q 4 | K_Q = K_A 5 | K_W = K_Z 6 | K_Z = K_W 7 | K_WORLD_34 = K_2 8 | -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/NES_triangle.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/NES_triangle.ki -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/glockenspiel.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/glockenspiel.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_FM.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_FM.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Clap_01.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Clap_01.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Clap_02.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Clap_02.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Snare_01.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Snare_01.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Snare_02.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Snare_02.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Snare_03.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Snare_03.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Snare_04.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Snare_04.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Snare_05.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Snare_05.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Snare_06.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Snare_06.ki -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/Sunset_over_the_river.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/Sunset_over_the_river.kt -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/100hz_4op_snare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/100hz_4op_snare.ki -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/CSM_timer_saw.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/CSM_timer_saw.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_Aggro.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_Aggro.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_Deep.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_Deep.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_Picked.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_Picked.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_Pulse.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_Pulse.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bassdrum_01.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bassdrum_01.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bassdrum_02.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bassdrum_02.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bassdrum_03.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bassdrum_03.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bassdrum_04.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bassdrum_04.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bassdrum_05.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bassdrum_05.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bassdrum_06.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bassdrum_06.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/FX_DriveBy.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/FX_DriveBy.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/FX_PowerUp.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/FX_PowerUp.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_Buzz.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_Buzz.ki -------------------------------------------------------------------------------- /scancode-tool/Makefile: -------------------------------------------------------------------------------- 1 | CC = gcc -s -Ic:/MinGW/include/SDL2 2 | EXE = scancode.exe 3 | 4 | $(EXE): scancode.c 5 | $(CC) -o $@ $^ -lmingw32 -lSDL2main -lSDL2 6 | -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/23xx_command_demo.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/23xx_command_demo.ki -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/4-op_FM_fart_bass.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/4-op_FM_fart_bass.ki -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/additive_fm_snare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/additive_fm_snare.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_Fixed_Aug.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_Fixed_Aug.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_Fixed_Dim.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_Fixed_Dim.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_Filtered.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_Filtered.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_Shifting.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_Shifting.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/FX_BreakGlass.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/FX_BreakGlass.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Hihat_1_Open.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Hihat_1_Open.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Hihat_2_Open.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Hihat_2_Open.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Hihat_3_Open.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Hihat_3_Open.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_FM_Rise.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_FM_Rise.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_FM_Sync.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_FM_Sync.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_FakeArp.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_FakeArp.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Pad_LongRise.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Pad_LongRise.ki -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/CSM_timer_saw_chord.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/CSM_timer_saw_chord.ki -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/demo_point_envelopes.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/demo_point_envelopes.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_Fixed_Dom7th.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_Fixed_Dom7th.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_Fixed_Major.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_Fixed_Major.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_Fixed_Minor.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_Fixed_Minor.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_Fixed_Sus4.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_Fixed_Sus4.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_Sustained.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_Sustained.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/FX_VinylRecord.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/FX_VinylRecord.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Hihat_1_Closed.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Hihat_1_Closed.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Hihat_2_Closed.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Hihat_2_Closed.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Hihat_3_Closed.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Hihat_3_Closed.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_VibraSquare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_VibraSquare.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Pad_ThinDigital.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Pad_ThinDigital.ki -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/Jeroen_Tel_Alloyrun_(cover).kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/Jeroen_Tel_Alloyrun_(cover).kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/Jeroen_Tel_Atmosphere_(cover).kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/Jeroen_Tel_Atmosphere_(cover).kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/drums_using_new_noise_modes.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/drums_using_new_noise_modes.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/software_wavetable_sawtooth.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/software_wavetable_sawtooth.kt -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/software_wavetable_triangle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/software_wavetable_triangle.kt -------------------------------------------------------------------------------- /examples/songs/n00bstar-examples/Oscillators_And_Wavetable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/n00bstar-examples/Oscillators_And_Wavetable.kt -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/4-op_FM_pathetic_snare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/4-op_FM_pathetic_snare.ki -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/multiple_programs_demo.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/multiple_programs_demo.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_External_Short.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_External_Short.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Bass_DoubleSquare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Bass_DoubleSquare.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Instrument_Strings.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Instrument_Strings.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Instrument_Trumpet.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Instrument_Trumpet.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_DigitalBells.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_DigitalBells.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_HPF_SawFifths.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_HPF_SawFifths.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_PulseToSquare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_PulseToSquare.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_ShortFMSquare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_ShortFMSquare.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_SquareToPulse.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_SquareToPulse.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Pad_ResonnantSweep.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Pad_ResonnantSweep.ki -------------------------------------------------------------------------------- /examples/songs/Imported_XMs/STRANGLEHOLD_II_LETTING_GO_(C)JT.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/Imported_XMs/STRANGLEHOLD_II_LETTING_GO_(C)JT.kt -------------------------------------------------------------------------------- /src/stats.h: -------------------------------------------------------------------------------- 1 | #ifndef STATS_H 2 | #define STATS_H 3 | 4 | #include "songstats.h" 5 | 6 | void song_stats(void *unused1, void *unused2, void *unused3); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /examples/instruments/LTVA-instruments/locked_noise_pitch_snare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/LTVA-instruments/locked_noise_pitch_snare.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_External_OscSweep.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_External_OscSweep.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Instrument_Trombone.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Instrument_Trombone.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Lead_OctaveArpBleep.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Lead_OctaveArpBleep.ki -------------------------------------------------------------------------------- /examples/wavegen_patches/LTVA-examples/8_harmonics_Fourier_square.kw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/wavegen_patches/LTVA-examples/8_harmonics_Fourier_square.kw -------------------------------------------------------------------------------- /examples/wavegen_patches/LTVA-examples/Alternative_OPL3_8th_wave.kw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/wavegen_patches/LTVA-examples/Alternative_OPL3_8th_wave.kw -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_External_PhasingSquare.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_External_PhasingSquare.ki -------------------------------------------------------------------------------- /examples/instruments/n00bstar-instruments/Arp_External_SustainedPWM.ki: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/instruments/n00bstar-instruments/Arp_External_SustainedPWM.ki -------------------------------------------------------------------------------- /examples/songs/LTVA-examples/Abstract_64_Carve_Your_Own_Path_(cover).kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/LTVA-examples/Abstract_64_Carve_Your_Own_Path_(cover).kt -------------------------------------------------------------------------------- /examples/songs/System64-examples/4-Dimensional-Goddess-Of-Existence.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LTVA1/klystrack/HEAD/examples/songs/System64-examples/4-Dimensional-Goddess-Of-Existence.kt -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /deps 2 | /objs.* 3 | /bin.* 4 | /res 5 | *.dll 6 | *.exe 7 | zip/data/Default.kt 8 | zip 9 | .vscode/ipch/* 10 | themetemp 11 | /src/version_number.h 12 | /src/version.h 13 | -------------------------------------------------------------------------------- /Fonts/src/build-font-file.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | echo Building font... 3 | bin\makebundle.exe Font.fnt MyFont 4 | echo --- 5 | echo Your new font is now packed in the file called "Font"! 6 | pause 7 | -------------------------------------------------------------------------------- /src/view/sequence.h: -------------------------------------------------------------------------------- 1 | #include "../view.h" 2 | 3 | extern Uint32 pattern_color[16]; 4 | 5 | void sequence_view2(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 6 | -------------------------------------------------------------------------------- /src/version.in: -------------------------------------------------------------------------------- 1 | #ifndef VERSION_H 2 | #define VERSION_H 3 | 4 | #include "version_number.h" 5 | #define REVISION "r$WCREV$" 6 | #define VERSION_STRING "klystrack-plus " VERSION " " REVISION 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.encoding": "utf8", 3 | "files.autoGuessEncoding": false, 4 | "C_Cpp.errorSquiggles": "disabled", 5 | "files.associations": { 6 | "sdl.h": "c", 7 | "math.h": "c", 8 | "music.h": "c" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SDL_image.txt: -------------------------------------------------------------------------------- 1 | Please include this notice with the runtime environment: 2 | 3 | This library is distributed under the terms of the GNU LGPL license: 4 | http://www.gnu.org/copyleft/lesser.html 5 | 6 | The source is available from the libraries page at the SDL website: 7 | http://www.libsdl.org/ 8 | -------------------------------------------------------------------------------- /doc/SDL_image.txt: -------------------------------------------------------------------------------- 1 | Please include this notice with the runtime environment: 2 | 3 | This library is distributed under the terms of the GNU LGPL license: 4 | http://www.gnu.org/copyleft/lesser.html 5 | 6 | The source is available from the libraries page at the SDL website: 7 | http://www.libsdl.org/ 8 | -------------------------------------------------------------------------------- /src/zap.h: -------------------------------------------------------------------------------- 1 | #ifndef ZAP_H 2 | #define ZAP_H 3 | 4 | void zap_instruments(void* no_confirm, void* b, void* c); 5 | void zap_sequence(void* no_confirm, void* b, void* c); 6 | void zap_fx(void* no_confirm, void* b, void* c); 7 | void zap_wavetable(void* no_confirm, void* b, void* c); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /linux/klystrack.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Klystrack-plus 3 | Comment=Chiptune Tracker 4 | Comment[fr]=Tracker 8-bits 5 | Exec=klystrack %f 6 | Type=Application 7 | Icon=klystrack.png 8 | Terminal=false 9 | Categories=AudioVideo;AudioVideoEditing 10 | Keywords=tracker;music;chipsong; 11 | MimeType=audio/kt; 12 | -------------------------------------------------------------------------------- /src/memwriter.h: -------------------------------------------------------------------------------- 1 | #ifndef MEMWRITER_H 2 | #define MEMWRITER_H 3 | 4 | #include 5 | 6 | typedef struct 7 | { 8 | void *data; 9 | size_t allocated, size; 10 | size_t position; 11 | FILE *flush; 12 | } MemWriter; 13 | 14 | #include "SDL_rwops.h" 15 | 16 | SDL_RWops * create_memwriter(); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /SDL.txt: -------------------------------------------------------------------------------- 1 | The Simple DirectMedia Layer (SDL for short) is a cross-platform 2 | library designed to make it easy to write multi-media software, such 3 | as games and emulators. 4 | 5 | The Simple DirectMedia Layer library source code is available from: 6 | http://www.libsdl.org/ 7 | 8 | This library is distributed under the terms of the GNU LGPL license: 9 | http://www.gnu.org/copyleft/lesser.html 10 | -------------------------------------------------------------------------------- /doc/SDL.txt: -------------------------------------------------------------------------------- 1 | The Simple DirectMedia Layer (SDL for short) is a cross-platform 2 | library designed to make it easy to write multi-media software, such 3 | as games and emulators. 4 | 5 | The Simple DirectMedia Layer library source code is available from: 6 | http://www.libsdl.org/ 7 | 8 | This library is distributed under the terms of the GNU LGPL license: 9 | http://www.gnu.org/copyleft/lesser.html 10 | -------------------------------------------------------------------------------- /player/Makefile: -------------------------------------------------------------------------------- 1 | ifdef COMSPEC 2 | SDL := -lSDL2main -lSDL2 -I /mingw/include/SDL2 3 | LIBS := -lmingw32 -lengine_snd 4 | else 5 | SDL := `sdl-config --libs` 6 | LIBS := -lengine_snd 7 | endif 8 | 9 | player.exe: player.c 10 | gcc -DUSESDLMUTEXES -DSTEREOOUTPUT -DENABLEAUDIODUMP -DNOSDL_MIXER -DDEBUG -o player.exe player.c -g -Wall $(LIBS) $(SDL) -I ../../klystron/src -L ../../klystron/bin.debug 11 | -------------------------------------------------------------------------------- /src/songstats.h: -------------------------------------------------------------------------------- 1 | #ifndef SONG_STATS_H 2 | #define SONG_STATS_H 3 | 4 | enum 5 | { 6 | STATS_HEADER, 7 | STATS_FX, 8 | STATS_DEFVOLPAN, 9 | STATS_INSTRUMENTS, 10 | STATS_SEQUENCE, 11 | STATS_PATTERNS, 12 | STATS_WAVETABLE, 13 | STATS_WAVETABLE_NAMES, 14 | N_STATS 15 | }; 16 | 17 | typedef struct 18 | { 19 | int size[N_STATS]; 20 | int total_size; 21 | } SongStats; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /OSX_Xcode/SDLMain.h: -------------------------------------------------------------------------------- 1 | /* SDLMain.m - main entry point for our Cocoa-ized SDL app 2 | Initial Version: Darrell Walisser 3 | Non-NIB-Code & other changes: Max Horn 4 | 5 | Feel free to customize this file to suit your needs 6 | */ 7 | 8 | #ifndef _SDLMain_h_ 9 | #define _SDLMain_h_ 10 | 11 | #import 12 | 13 | @interface SDLMain : NSObject 14 | @end 15 | 16 | #endif /* _SDLMain_h_ */ 17 | -------------------------------------------------------------------------------- /windres/resource.rc: -------------------------------------------------------------------------------- 1 | // Generated by ResEdit 1.4.13 2 | // Copyright (C) 2006-2010 3 | // http://www.resedit.net 4 | 5 | #ifdef _WIN32_WINNT 6 | #undef _WIN32_WINNT 7 | #define _WIN32_WINNT 0x500 8 | #endif 9 | 10 | #include 11 | #include 12 | #include 13 | #include "resource.h" 14 | 15 | 16 | 17 | 18 | // 19 | // Icon resources 20 | // 21 | IDI_MAINICON ICON "..\\icon\\256x256.ico" 22 | -------------------------------------------------------------------------------- /key/n00bstar: -------------------------------------------------------------------------------- 1 | # n00bstar's convoluted keymap 2 | # inspired by protracker and fasttracker 3 | [global] 4 | #play/stop 5 | K_RALT = M_SHIFT K_F6 6 | K_RCTRL = K_F6 7 | M_LALT K_RCTRL = K_F5 8 | #windows 9 | K_F2 = M_SHIFT K_F4 10 | K_F4 = M_SHIFT K_F3 11 | K_F5 = K_F2 12 | K_F6 = K_F4 13 | K_F7 = M_SHIFT K_F2 14 | K_COMMA = K_Q 15 | K_L = K_2 16 | K_PERIOD = K_W 17 | K_SEMICOLON = K_3 18 | K_SLASH = K_E 19 | [pattern] 20 | #tab move 21 | M_LSHIFT K_TAB = M_CTRL K_LEFT 22 | K_TAB = M_CTRL K_RIGHT 23 | [sequence] 24 | #tab move 25 | M_LSHIFT K_TAB = K_LEFT 26 | K_TAB = K_RIGHT 27 | -------------------------------------------------------------------------------- /src/help.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef HELP_H 4 | #define HELP_H 5 | 6 | #include "mused.h" 7 | #include "gfx/gfx.h" 8 | 9 | typedef struct 10 | { 11 | int mode; 12 | int selected_line; 13 | const char *title; 14 | SliderParam scrollbar; 15 | char **lines; 16 | int n_lines; 17 | int list_position; 18 | int quit; 19 | const Font *largefont, *smallfont; 20 | GfxSurface *gfx; 21 | int elemwidth, list_width; 22 | } Data; 23 | 24 | int helpbox(const char *title, GfxDomain *domain, GfxSurface *gfx, const Font *largefont, const Font *smallfont); 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /src/wavewriter.h: -------------------------------------------------------------------------------- 1 | #ifndef WAVEWRITER_H 2 | #define WAVEWRITER_H 3 | 4 | #include 5 | #include "SDL.h" 6 | 7 | typedef struct 8 | { 9 | FILE *file; 10 | int channels; 11 | size_t chunksize_pos, riffsize_pos; 12 | } WaveWriter; 13 | 14 | /* Create WaveWriter with sample rate of rate/16-bits and start writing to file */ 15 | WaveWriter * ww_create(FILE * file, int sample_rate, int channels); 16 | /* Write channels * samples Sint16's */ 17 | void ww_write(WaveWriter *ww, Sint16 * buffer, int samples); 18 | /* Close file and free WaveWriter */ 19 | void ww_finish(WaveWriter *ww); 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /src/view/oscilloscope.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef OSCILLOSCOPE_H 4 | #define OSCILLOSCOPE_H 5 | 6 | #include "wavetableview.h" 7 | #include "../mused.h" 8 | #include "../view.h" 9 | #include "../event.h" 10 | #include "gui/mouse.h" 11 | #include "gui/dialog.h" 12 | #include "gui/bevel.h" 13 | #include "../theme.h" 14 | #include "../mybevdefs.h" 15 | #include "../action.h" 16 | #include "../wave_action.h" 17 | 18 | #define OSC_SIZE 150 19 | //#define 20 | //#define SCALE_MULT 150 21 | #define TRIGGER_LEVEL 400 22 | 23 | void update_oscillscope_view(GfxDomain *dest, const SDL_Rect* area, int* sound_buffer, int size, int* buffer_counter, bool is_translucent, bool show_midlines); 24 | 25 | #endif -------------------------------------------------------------------------------- /key/DVORAK: -------------------------------------------------------------------------------- 1 | # Dvorak layout 2 | [global] 3 | K_QUOTE = K_Q 4 | K_LESS = K_W 5 | K_COMMA = K_W 6 | K_GREATER = K_E 7 | K_PERIOD = K_E 8 | K_P = K_R 9 | K_Y = K_T 10 | K_F = K_Y 11 | K_G = K_U 12 | K_C = K_I 13 | K_R = K_O 14 | K_L = K_L 15 | K_QUESTION = K_LEFTBRACKET 16 | K_PLUS = K_RIGHTBRACKET 17 | K_O = K_S 18 | K_E = K_D 19 | K_U = K_F 20 | K_I = K_G 21 | K_D = K_H 22 | K_H = K_J 23 | K_T = K_K 24 | K_N = K_L 25 | K_S = K_SEMICOLON 26 | K_MINUS = K_QUOTE 27 | K_SEMICOLON = K_Z 28 | K_Q = K_X 29 | K_J = K_C 30 | K_K = K_V 31 | K_X = K_B 32 | K_B = K_N 33 | K_W = K_COMMA 34 | K_V = K_PERIOD 35 | K_Z = K_SLASH 36 | K_LEFTBRACKET = K_MINUS 37 | K_RIGHTBRACKET = K_EQUALS 38 | -------------------------------------------------------------------------------- /scancode-tool/scancode.c: -------------------------------------------------------------------------------- 1 | #include "SDL.h" 2 | #include 3 | 4 | int main(int argc, char **argv) 5 | { 6 | SDL_Init(SDL_INIT_EVERYTHING); 7 | SDL_CreateWindow("", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 100, 100, 0); 8 | 9 | printf("Make sure the empty window is focused and hit any key to see info for that key!\n\n"); 10 | 11 | while (1) 12 | { 13 | SDL_Event e; 14 | 15 | if (SDL_PollEvent(&e)) 16 | { 17 | if (e.type == SDL_QUIT) 18 | break; 19 | 20 | if (e.type == SDL_KEYDOWN) 21 | { 22 | printf("scancode = %x\tsym = %x\tmod = %x\n", e.key.keysym.scancode, e.key.keysym.sym, e.key.keysym.mod); 23 | } 24 | } 25 | else 26 | SDL_Delay(10); 27 | } 28 | 29 | SDL_Quit(); 30 | 31 | return 0; 32 | } 33 | -------------------------------------------------------------------------------- /src/nostalgy.c: -------------------------------------------------------------------------------- 1 | #include "nostalgy.h" 2 | #include 3 | 4 | void nos_decrunch(GfxDomain *domain) 5 | { 6 | static const Uint32 palette[] = 7 | { 8 | 0x000000, 9 | 0xFFFFFF, 10 | 0x68372B, 11 | 0x70A4B2, 12 | 0x6F3D86, 13 | 0x588D43, 14 | 0x352879, 15 | 0xB8C76F, 16 | 0x6F4F25, 17 | 0x433900, 18 | 0x9A6759, 19 | 0x444444, 20 | 0x6C6C6C, 21 | 0x9AD284, 22 | 0x6C5EB5, 23 | 0x959595 24 | }; 25 | 26 | for (int i = 0; i < 60; ++i) 27 | { 28 | for (int y = 0; y < domain->screen_h; ) 29 | { 30 | int h = rand() & 15; 31 | { 32 | SDL_Rect line = {0, y, domain->screen_w, h}; 33 | gfx_rect(domain, &line, palette[rand() & 15]); 34 | } 35 | 36 | y += h; 37 | } 38 | gfx_domain_flip(domain); 39 | SDL_Delay(15); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/view/timer.c: -------------------------------------------------------------------------------- 1 | #include "timer.h" 2 | #include "gui/bevel.h" 3 | #include "mused.h" 4 | #include "mybevdefs.h" 5 | 6 | void timer_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param) 7 | { 8 | //bevel(mused.screen, dest, mused.slider_bevel->surface, BEV_THIN_FRAME); 9 | 10 | SDL_Rect field; 11 | copy_rect(&field, dest); 12 | adjust_rect(&field, 2); 13 | 14 | if (mused.flags & SONG_PLAYING) 15 | { 16 | Uint64 t = (mused.play_start_at + mused.time_played) / 1000; 17 | font_write_args(&mused.smallfont, dest_surface, &field, (((mused.play_start_at + mused.time_played) / 500) & 1) ? "%02d:%02d.%02d" : "%02d %02d.%02d", (int)(t / 60), (int)(t % 60), (int)(((mused.play_start_at + mused.time_played) / 10) % 100)); 18 | } 19 | else 20 | font_write(&mused.smallfont, dest_surface, &field, "00:00.00"); 21 | } 22 | -------------------------------------------------------------------------------- /themes/Classic/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x0 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | statusbar_text = main_text 5 | 6 | sequence_counter = 0x000000 7 | sequence_normal = 0x000000 8 | 9 | pattern_selected = 0xffffff 10 | pattern_bar = 0xffffff 11 | pattern_beat = 0xc0c0ff 12 | pattern_normal = 0xd0a0d0 13 | pattern_disabled = 0x808080 14 | 15 | pattern_instrument = 0xd0a0d0 16 | pattern_instrument_bar = 0xffffff 17 | pattern_instrument_beat = 0xffffff 18 | 19 | program_selected = 0xffffff 20 | program_even = 0xe0d0d0 21 | program_odd = 0xb0a0b0 22 | 23 | instrument_selected = 0xffffff 24 | instrument_normal = 0xc0c0c0 25 | 26 | menu = 0xffffff 27 | menu_selected = 0xffffff 28 | menu_header = 0xffffff 29 | menu_header_selected = 0xffffff 30 | menu_shortcut = 0xffffff 31 | menu_shortcut_selected = 0xffffff 32 | 33 | catometer_eyes = 0xa04f9b 34 | -------------------------------------------------------------------------------- /themes/Gameboy/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x0 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | statusbar_text = main_text 5 | 6 | sequence_normal = 0xaaaaaa 7 | sequence_counter = 0x000000 8 | 9 | pattern_normal = 0xaaaaaa 10 | pattern_beat = 0xaaaaaa 11 | pattern_bar = 0xffffff 12 | pattern_selected = 0xffffff 13 | pattern_disabled = 0x555555 14 | 15 | pattern_instrument = 0xffffff 16 | pattern_instrument_beat = 0xffffff 17 | pattern_instrument_bar = 0xffffff 18 | 19 | program_selected = 0xffffff 20 | program_even = 0xaaaaaa 21 | program_odd = 0xaaaaaa 22 | 23 | instrument_selected = 0xffffff 24 | instrument_normal = 0xaaaaaa 25 | 26 | menu = 0xffffff 27 | menu_selected = 0xffffff 28 | menu_header = 0xffffff 29 | menu_header_selected = 0xffffff 30 | menu_shortcut = 0xffffff 31 | menu_shortcut_selected = 0xffffff 32 | 33 | catometer_eyes = 0xa04f9b 34 | -------------------------------------------------------------------------------- /installer/UnFiles.cmd: -------------------------------------------------------------------------------- 1 | @rem NSIS Uninstall Header Recursive File List Maker 2 | @rem Copyright 2014 Aleksandr Ivankiv 3 | 4 | @rem Modified for the klystrack installer by Tero Lindeman 5 | 6 | @SET DIR=%~1 7 | @SET HEADER=%~2 8 | @IF "%~1" == "/?" goto Help 9 | @IF NOT DEFINED DIR goto Help 10 | @IF NOT DEFINED HEADER SET HEADER=UnFiles.nsh 11 | @IF NOT EXIST "%DIR%" ECHO Cannot find the folder %DIR%. & SET "DIR=" & goto :EOF 12 | 13 | @SetLocal EnableDelayedExpansion 14 | 15 | @FOR /F "tokens=*" %%f IN ('DIR %DIR%\*.* /A:-D /B /S') DO @( 16 | set string=%%f 17 | set string=!string:%CD%\%DIR%=! 18 | echo Delete "$OUTDIR\!string:~1!" >> %HEADER% 19 | ) 20 | 21 | @FOR /F "tokens=*" %%d IN ('DIR %DIR%\*.* /A:D /B /S') DO @( 22 | set string=%%d 23 | set string=!string:%CD%\%DIR%=! 24 | echo RMDir "$OUTDIR\!string:~1!" >> %HEADER% 25 | ) 26 | 27 | @EndLocal 28 | @goto :EOF 29 | 30 | :Help 31 | @echo. 32 | @echo Usage: UNFILES FolderName [OutFile] 33 | @echo. 34 | @goto :EOF -------------------------------------------------------------------------------- /src/wavegen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "SDL.h" 4 | 5 | #define WG_CHAIN_OSCS 8 //was 4 6 | 7 | typedef enum 8 | { 9 | WG_OSC_SINE, 10 | WG_OSC_SQUARE, 11 | WG_OSC_SAW, 12 | WG_OSC_TRIANGLE, 13 | WG_OSC_NOISE, 14 | WG_OSC_EXP, 15 | WG_NUM_OSCS 16 | } WgOscType; 17 | 18 | typedef enum 19 | { 20 | WG_OP_ADD, 21 | WG_OP_MUL, 22 | WG_NUM_OPS 23 | } WgOpType; 24 | 25 | typedef struct 26 | { 27 | WgOscType osc; 28 | WgOpType op; 29 | int mult, shift; 30 | int exp; 31 | 32 | Uint16 vol; //wasn't there 33 | 34 | float exp_c; 35 | Uint32 flags; 36 | } WgOsc; 37 | 38 | enum 39 | { 40 | WG_OSC_FLAG_ABS = 1, 41 | WG_OSC_FLAG_NEG = 2 42 | }; 43 | 44 | typedef struct 45 | { 46 | WgOsc chain[WG_CHAIN_OSCS]; 47 | int num_oscs, length; 48 | } WgSettings; 49 | 50 | typedef struct 51 | { 52 | const char *name; 53 | WgSettings settings; 54 | } WgPreset; 55 | 56 | void wg_gen_waveform(WgOsc *chain, int num_oscs, Sint16 *data, int len); 57 | float wg_osc(WgOsc *osc, float _phase); 58 | void wg_init_osc(WgOsc *osc); 59 | float wg_get_sample(WgOsc *chain, int num_oscs, float phase); 60 | -------------------------------------------------------------------------------- /themes/AHX/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x0 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | statusbar_text = main_text 5 | 6 | sequence_counter = 0x000000 7 | sequence_normal = 0xc6c6ce 8 | 9 | pattern_normal = 0xcee7e7 10 | pattern_beat = 0xcee7e7 11 | pattern_bar = 0xcee7e7 12 | pattern_selected = 0xffffff 13 | pattern_disabled = 0x525a63 14 | 15 | pattern_instrument = 0xcee7e7 16 | pattern_instrument_beat = 0xcee7e7 17 | pattern_instrument_bar = 0xcee7e7 18 | 19 | program_selected = 0xffffff 20 | program_even = 0xcee7e7 21 | program_odd = 0xcee7e7 22 | 23 | instrument_selected = 0xffffff 24 | instrument_normal = 0xcee7e7 25 | 26 | menu = 0xffffff 27 | menu_selected = 0xffffff 28 | menu_header = 0xffffff 29 | menu_header_selected = 0xffffff 30 | menu_shortcut = 0xffffff 31 | menu_shortcut_selected = 0xffffff 32 | 33 | pattern_volume = 0xcee7e7 34 | pattern_volume_beat = 0xcee7e7 35 | pattern_volume_bar = 0xcee7e7 36 | 37 | pattern_ctrl = 0xcee7e7 38 | pattern_ctrl_beat = 0xcee7e7 39 | pattern_ctrl_bar = 0xcee7e7 40 | 41 | pattern_command = 0xcee7e7 42 | pattern_command_beat = 0xcee7e7 43 | pattern_command_bar = 0xcee7e7 44 | 45 | catometer_eyes = 0xa04f9b 46 | -------------------------------------------------------------------------------- /themes/C64/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x0 2 | main_text = 0xffffff 3 | small_text = 0x787878 4 | statusbar_text = main_text 5 | 6 | sequence_counter = 0xffffff 7 | sequence_normal = 0x7869c4 8 | 9 | pattern_normal = 0x787878 10 | pattern_beat = 0x787878 11 | pattern_bar = 0x787878 12 | pattern_selected = 0xffffff 13 | pattern_disabled = 0x40318d 14 | 15 | pattern_instrument = 0x9f9f9f 16 | pattern_instrument_beat = 0x9f9f9f 17 | pattern_instrument_bar = 0x9f9f9f 18 | 19 | program_selected = 0xffffff 20 | program_even = 0x787878 21 | program_odd = 0x787878 22 | 23 | instrument_selected = 0xffffff 24 | instrument_normal = 0x787878 25 | 26 | menu = 0x787878 27 | menu_selected = 0xffffff 28 | menu_header = 0xffffff 29 | menu_header_selected = 0xffffff 30 | menu_shortcut = 0x787878 31 | menu_shortcut_selected = 0xffffff 32 | 33 | pattern_volume = 0x9f9f9f 34 | pattern_volume_beat = 0x9f9f9f 35 | pattern_volume_bar = 0x9f9f9f 36 | 37 | pattern_ctrl = 0x9f9f9f 38 | pattern_ctrl_beat = 0x9f9f9f 39 | pattern_ctrl_bar = 0x9f9f9f 40 | 41 | pattern_command = 0x9f9f9f 42 | pattern_command_beat = 0x9f9f9f 43 | pattern_command_bar = 0x9f9f9f 44 | 45 | catometer_eyes = 0xa04f9b 46 | -------------------------------------------------------------------------------- /OSX_Xcode/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 256x256 11 | CFBundleIdentifier 12 | com.yourcompany.Klystrack 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | NSMainNibFile 24 | SDLMain 25 | NSPrincipalClass 26 | NSApplication 27 | LSMinimumSystemVersionByArchitecture 28 | 29 | x86_64 30 | 10.6.0 31 | i386 32 | 10.4.0 33 | ppc 34 | 10.4.0 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/box drawing.txt: -------------------------------------------------------------------------------- 1 | ░ ▒ ▓ █ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐ └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ 2 | 3 | ╔════════════════════╗ 4 | ║\BASE \xaf\xb0\xb1\xb2\xb3\xaf\xb0\xb1\xb2\xb3 \xb4L ║ 5 | ║\xb5\DRUM \xb5KSYNC ║ 6 | ║\xb4VIB \xb5SET PW ║ 7 | ║\xb5SET CUT SLIDE\xaf\xb1\xb2\xb3║ 8 | ╟────────────────────╢ 9 | ║\xb4PUL \xaf\xb0\xb1\xb2\xb3 \xb4SAW ║ 10 | ║\xb5TRI \xb4NOI \xb4METAL ║ 11 | ║\xb4POKEY \xae\xb2\xb3 \xb4 1/4TH ║ 12 | ╟────────────────────╢ 13 | ║\xb4WAVE\xaf\xb1\xb2\xb3 \xb4OENV \xb4L ║ 14 | ╟────────────────────╢ 15 | ║OSC. MIX MODE \xaf\xb0\xb1\xb2\xb3 ║ 16 | ╟────────────────────╢ 17 | ║VOL \xaf\xb1\xb2\xb3 \xb4RELATIVE ║ 18 | ║\ATK \xaf\xb1\xb2\xb3 DEC \xaf\xb1\xb2\xb3 ║ 19 | ║SUS \xaf\xb1\xb2\xb3 REL \xaf\xb1\xb2\xb3 ║ 20 | ╟────────────────────╢ 21 | ║\xb4\BUZZ DETUNE\xaf\xb1\xb2\xb3 ║ 22 | ║SHAPE\xae\xb2\xb3 FINE\xaf\xb0\xb1\xb2\xb3 ║ 23 | ╟────────────────────╢ 24 | ║\xb4SYNC SRC \xaf\xb1\xb2\xb3 ║ 25 | ║\xb4RING MOD SRC \xaf\xb1\xb2\xb3 ║ 26 | ╟────────────────────╢ 27 | ║\xb4\FILTER TYPE\xaf\xb0\xb1\xb2\xb3 ║ 28 | ║\CUT\xaf\xb0\xb1\xb2\xb3 RES \xae\xb2\xb3 ║ 29 | ║SLOPE \xaf\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb1\xb2\xb3 ║ 30 | -------------------------------------------------------------------------------- /src/import/plaintext.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | void paste_from_clipboard(); -------------------------------------------------------------------------------- /themes/Rust_Red/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x000011 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | button_text = 0xffffff 5 | text_shadow = 0x0 6 | statusbar_text = main_text 7 | 8 | sequence_counter = 0xffffff 9 | sequence_normal = 0x0 10 | 11 | pattern_normal = 0x2699ff 12 | pattern_beat = 0x2699ff 13 | pattern_bar = 0xffffff 14 | pattern_selected = 0x0 15 | pattern_disabled = 0x333333 16 | 17 | pattern_instrument = 0x2699ff 18 | pattern_instrument_beat = 0x2699ff 19 | pattern_instrument_bar = 0x2699ff 20 | 21 | pattern_volume = 0x2699ff 22 | pattern_volume_beat = 0x2699ff 23 | pattern_volume_bar = 0x2699ff 24 | 25 | pattern_ctrl = 0x2699ff 26 | pattern_ctrl_beat = 0x2699ff 27 | pattern_ctrl_bar = 0x2699ff 28 | 29 | pattern_command = 0x2699ff 30 | pattern_command_beat = 0x2699ff 31 | pattern_command_bar = 0x2699ff 32 | 33 | pattern_empty_data = 0x80000000 34 | 35 | program_selected = 0xffffff 36 | program_even = 0x2699ff 37 | program_odd = 0x2699ff 38 | 39 | instrument_selected = 0xffffff 40 | instrument_normal = 0x2699ff 41 | 42 | menu = 0xffffff 43 | menu_selected = 0xffffff 44 | menu_header = 0xffffff 45 | menu_header_selected = 0xffffff 46 | menu_shortcut = 0xffffff 47 | menu_shortcut_selected = 0xffffff 48 | 49 | wavetable_sample = 0x2699ff 50 | wavetable_background = 0x0b2b48 51 | progress_bar = 0xffffff 52 | -------------------------------------------------------------------------------- /themes/Rust_Camo/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x000011 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | button_text = 0xffffff 5 | text_shadow = 0x0 6 | statusbar_text = main_text 7 | 8 | sequence_counter = 0xffffff 9 | sequence_normal = 0x0 10 | 11 | pattern_normal = 0x2699ff 12 | pattern_beat = 0x2699ff 13 | pattern_bar = 0xffffff 14 | pattern_selected = 0x0 15 | pattern_disabled = 0x333333 16 | 17 | pattern_instrument = 0x2699ff 18 | pattern_instrument_beat = 0x2699ff 19 | pattern_instrument_bar = 0x2699ff 20 | 21 | pattern_volume = 0x2699ff 22 | pattern_volume_beat = 0x2699ff 23 | pattern_volume_bar = 0x2699ff 24 | 25 | pattern_ctrl = 0x2699ff 26 | pattern_ctrl_beat = 0x2699ff 27 | pattern_ctrl_bar = 0x2699ff 28 | 29 | pattern_command = 0x2699ff 30 | pattern_command_beat = 0x2699ff 31 | pattern_command_bar = 0x2699ff 32 | 33 | pattern_empty_data = 0x80000000 34 | 35 | program_selected = 0xffffff 36 | program_even = 0x2699ff 37 | program_odd = 0x2699ff 38 | 39 | instrument_selected = 0xffffff 40 | instrument_normal = 0x2699ff 41 | 42 | menu = 0xffffff 43 | menu_selected = 0xffffff 44 | menu_header = 0xffffff 45 | menu_header_selected = 0xffffff 46 | menu_shortcut = 0xffffff 47 | menu_shortcut_selected = 0xffffff 48 | 49 | wavetable_sample = 0x2699ff 50 | wavetable_background = 0x0b2b48 51 | progress_bar = 0xffffff 52 | -------------------------------------------------------------------------------- /themes/Ultimate_Proctamed/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x000011 2 | main_text = 0x0 3 | small_text = 0xffffff 4 | button_text = 0xffffff 5 | text_shadow = 0x0 6 | 7 | sequence_counter = 0xffffff 8 | sequence_normal = 0x0 9 | 10 | pattern_normal = 0x3047ff 11 | pattern_beat = 0x3047ff 12 | pattern_bar = 0x3047ff 13 | pattern_selected = 0x0 14 | pattern_disabled = 0x333333 15 | 16 | statusbar_text = pattern_normal 17 | 18 | pattern_instrument = 0x3047ff 19 | pattern_instrument_beat = 0x3047ff 20 | pattern_instrument_bar = 0x3047ff 21 | 22 | pattern_volume = 0x3047ff 23 | pattern_volume_beat = 0x3047ff 24 | pattern_volume_bar = 0x3047ff 25 | 26 | pattern_ctrl = 0x3047ff 27 | pattern_ctrl_beat = 0x3047ff 28 | pattern_ctrl_bar = 0x3047ff 29 | 30 | pattern_command = 0x3047ff 31 | pattern_command_beat = 0x3047ff 32 | pattern_command_bar = 0x3047ff 33 | 34 | pattern_empty_data = 0xff000000 35 | 36 | program_selected = 0x0 37 | program_even = 0x3047ff 38 | program_odd = 0x3047ff 39 | 40 | instrument_selected = 0x0 41 | instrument_normal = 0x3047ff 42 | 43 | menu = 0xffffff 44 | menu_selected = 0xffffff 45 | menu_header = 0xffffff 46 | menu_header_selected = 0xffffff 47 | menu_shortcut = 0xffffff 48 | menu_shortcut_selected = 0xffffff 49 | 50 | wavetable_sample = 0xfff000 51 | wavetable_background = 0x0 52 | progress_bar = 0xffffff 53 | -------------------------------------------------------------------------------- /src/import/xm.h: -------------------------------------------------------------------------------- 1 | #ifndef XM_H 2 | #define XM_H 3 | 4 | /* 5 | Copyright (c) 2009-2011 Tero Lindeman (kometbomb) 6 | 7 | Permission is hereby granted, free of charge, to any person 8 | obtaining a copy of this software and associated documentation 9 | files (the "Software"), to deal in the Software without 10 | restriction, including without limitation the rights to use, 11 | copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following 14 | conditions: 15 | 16 | The above copyright notice and this permission notice shall be 17 | included in all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #include 30 | 31 | int import_xm(FILE *f); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /src/import/hubdialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #pragma once 28 | 29 | #include "hubbard.h" 30 | 31 | int hub_view(hubbard_t *hub); 32 | -------------------------------------------------------------------------------- /src/view/grooveview.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef GROOVEVIEW_H 4 | #define GROOVEVIEW_H 5 | 6 | /* 7 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 8 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 9 | 10 | Permission is hereby granted, free of charge, to any person 11 | obtaining a copy of this software and associated documentation 12 | files (the "Software"), to deal in the Software without 13 | restriction, including without limitation the rights to use, 14 | copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the 16 | Software is furnished to do so, subject to the following 17 | conditions: 18 | 19 | The above copyright notice and this permission notice shall be 20 | included in all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 24 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 27 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 29 | OTHER DEALINGS IN THE SOFTWARE. 30 | */ 31 | 32 | void groove_view(); 33 | 34 | #endif -------------------------------------------------------------------------------- /themes/Golden_Brown/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x0 2 | main_text = 0xe1d622 3 | small_text = 0xe1d622 4 | button_text = 0xc3ba24 5 | statusbar_text = main_text 6 | 7 | sequence_counter = 0x000000 8 | sequence_normal = 0x3c2f26 9 | 10 | pattern_normal = 0x668ca6 11 | pattern_beat = 0xa0b2c6 12 | pattern_bar = 0xd9def1 13 | pattern_selected = 0xffffff 14 | pattern_disabled = 0x333333 15 | 16 | pattern_instrument = 0x668ca6 17 | pattern_instrument_beat = 0xa0b2c6 18 | pattern_instrument_bar = 0xd9def1 19 | 20 | pattern_volume = 0x68934e 21 | pattern_volume_beat = 0xa4c187 22 | pattern_volume_bar = 0xe3f1d9 23 | 24 | pattern_ctrl = 0x937b4e 25 | pattern_ctrl_beat = 0xc1ae87 26 | pattern_ctrl_bar = 0xf1e8d9 27 | 28 | pattern_command = 0x1791a6 29 | pattern_command_beat = 0x00c8e8 30 | pattern_command_bar = 0x97eefc 31 | 32 | pattern_empty_data = 0x80000000 33 | 34 | program_selected = 0xfff4cc 35 | program_even = 0x668ca6 36 | program_odd = 0xa0b2c6 37 | 38 | instrument_selected = 0xfff4cc 39 | instrument_normal = 0x1791a6 40 | 41 | menu = 0xc1ae87 42 | menu_selected = 0xe1d622 43 | menu_header = 0x97eefc 44 | menu_header_selected = 0xd9def1 45 | menu_shortcut = 0xc1ae87 46 | menu_shortcut_selected = 0xe1d622 47 | 48 | wavetable_sample = 0xffffff 49 | wavetable_background = 0x0 50 | progress_bar = 0x291f17 51 | 52 | catometer_eyes = 0xa04f9b 53 | -------------------------------------------------------------------------------- /themes/Blacklyst/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x0 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | button_text = 0xffffff 5 | text_shadow = 0x0 6 | statusbar_text = main_text 7 | 8 | sequence_counter = 0x820b05 9 | sequence_normal = 0x3eb6a3 10 | 11 | pattern_normal = 0x3eb6a3 12 | pattern_beat = 0x00f4cd 13 | pattern_bar = 0xffffff 14 | pattern_selected = 0x0 15 | pattern_disabled = 0x333333 16 | 17 | pattern_instrument = 0xecb34b 18 | pattern_instrument_beat = 0xecb34b 19 | pattern_instrument_bar = 0xecb34b 20 | 21 | pattern_volume = 0x3eb6a3 22 | pattern_volume_beat = 0x00f4cd 23 | pattern_volume_bar = 0x00f4cd 24 | 25 | pattern_ctrl = 0x3eb6a3 26 | pattern_ctrl_beat = 0x00f4cd 27 | pattern_ctrl_bar = 0x00f4cd 28 | 29 | pattern_command = 0x3eb6a3 30 | pattern_command_beat = 0x00f4cd 31 | pattern_command_bar = 0x00f4cd 32 | 33 | pattern_empty_data = 0xc0000000 34 | 35 | program_selected = 0xffffff 36 | program_even = 0x3eb6a3 37 | program_odd = 0x2f8a7c 38 | 39 | instrument_selected = 0xffffff 40 | instrument_normal = 0x3eb6a3 41 | 42 | menu = 0xffffff 43 | menu_selected = 0xffffff 44 | menu_header = 0xffffff 45 | menu_header_selected = 0xffffff 46 | menu_shortcut = 0xffffff 47 | menu_shortcut_selected = 0xffffff 48 | 49 | wavetable_sample = 0xffffff 50 | wavetable_background = 0x0 51 | progress_bar = 0xffffff 52 | 53 | catometer_eyes = 0xa04f9b 54 | -------------------------------------------------------------------------------- /src/import/ahx.h: -------------------------------------------------------------------------------- 1 | #ifndef AHX_H 2 | #define AHX_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include 31 | 32 | int import_ahx(FILE *f); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/import/org.h: -------------------------------------------------------------------------------- 1 | #ifndef ORG_H 2 | #define ORG_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include 31 | 32 | int import_org(FILE *f); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/key.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2011 Tero Lindeman (kometbomb) 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | */ 25 | 26 | #ifndef KEY_H 27 | #define KEY_H 28 | 29 | #include "SDL.h" 30 | 31 | void translate_key_event(SDL_KeyboardEvent *e); 32 | void load_keymap(const char *name); 33 | void enum_keymaps(); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /themes/Default/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x0 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | button_text = 0xffffff 5 | statusbar_text = main_text 6 | 7 | sequence_counter = 0xffffff 8 | sequence_normal = 0x000000 9 | 10 | pattern_normal = 0xa0c9d0 11 | pattern_beat = 0x619fac 12 | pattern_bar = 0xffffff 13 | pattern_selected = 0xffffff 14 | pattern_disabled = 0x808080 15 | 16 | pattern_instrument = 0x00c8e8 17 | pattern_instrument_beat = 0x009fba 18 | pattern_instrument_bar = 0xffffff 19 | 20 | pattern_volume = 0xa0c9d0 21 | pattern_volume_beat = 0x619fac 22 | pattern_volume_bar = 0xffffff 23 | 24 | pattern_ctrl = 0xa0c9d0 25 | pattern_ctrl_beat = 0x619fac 26 | pattern_ctrl_bar = 0xffffff 27 | 28 | pattern_command = 0x00c8e8 29 | pattern_command_beat = 0x009fba 30 | pattern_command_bar = 0xffffff 31 | 32 | pattern_empty_data = 0x80000000 33 | pattern_seq_number = 0xffffff 34 | 35 | program_selected = 0xffffff 36 | program_even = 0xd0d0e0 37 | program_odd = 0xb0a0b0 38 | 39 | instrument_selected = 0xffffff 40 | instrument_normal = 0xc0c0c0 41 | 42 | menu = 0xffffff 43 | menu_selected = 0xffffff 44 | menu_header = 0xffffff 45 | menu_header_selected = 0xffffff 46 | menu_shortcut = 0xffffff 47 | menu_shortcut_selected = 0xffffff 48 | 49 | wavetable_sample = 0xffffff 50 | wavetable_background = 0x0 51 | progress_bar = 0xffffff 52 | 53 | catometer_eyes = 0xa04f9b 54 | -------------------------------------------------------------------------------- /src/view/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "../view.h" 28 | 29 | void timer_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 30 | -------------------------------------------------------------------------------- /src/import/fur/furmodule.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #pragma once 28 | 29 | #ifndef FURMODULE_H 30 | #define FURMODULE_H 31 | 32 | #include 33 | 34 | void import_furnace_module(FILE* f); 35 | 36 | #endif -------------------------------------------------------------------------------- /src/import/mod.h: -------------------------------------------------------------------------------- 1 | #ifndef MOD_H 2 | #define MOD_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include 31 | #include "SDL.h" 32 | 33 | int import_mod(FILE *f); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/wave_action.h: -------------------------------------------------------------------------------- 1 | #ifndef __WAVE_ACTION_H 2 | #define __WAVE_ACTION_H 3 | 4 | void wavetable_drop_lowest_bit(void *unused1, void *unused2, void *unused3); 5 | void wavetable_halve_samplerate(void *unused1, void *unused2, void *unused3); 6 | void wavetable_normalize(void *vol, void *unused2, void *unused3); 7 | void wavetable_cut_tail(void *unused1, void *unused2, void *unused3); 8 | void wavetable_cut_head(void *unused1, void *unused2, void *unused3); 9 | void wavetable_chord(void *transpose, void *unused2, void *unused3); 10 | void wavetable_create_one_cycle(void *unused1, void *unused2, void *unused3); 11 | void wavetable_randomize_and_create_one_cycle(void *unused1, void *unused2, void *unused3); 12 | void wavegen_randomize(void *unused1, void *unused2, void *unused3); 13 | 14 | void wavegen_load(void *unused1, void *unused2, void *unused3); //weren't there 15 | void wavegen_save(void *unused1, void *unused2, void *unused3); 16 | 17 | void wavegen_preset(void *_preset, void *_settings, void *unused3); 18 | void wavetable_draw(float x, float y, float w); 19 | void wavetable_amp(void *amp, void *unused2, void *unused3); 20 | void wavetable_distort(void *amp, void *unused2, void *unused3); 21 | void wavetable_remove_dc(void *unused1, void *unused2, void *unused3); 22 | void wavetable_filter(void *filter_type, void *unused2, void *unused3); 23 | void wavetable_find_zero(void *unused1, void *unused2, void *unused3); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /src/shortcutdefs.h: -------------------------------------------------------------------------------- 1 | #ifndef SHORTCUTDEFS_H 2 | #define SHORTCUTDEFS_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "gui/shortcuts.h" 31 | 32 | extern const KeyShortcut shortcuts[]; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/export/fzt.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #pragma once 28 | 29 | #include "../mused.h" 30 | 31 | enum 32 | { 33 | TYPE_PROGRAM = 0, 34 | TYPE_PATTERN = 1, 35 | }; 36 | 37 | bool export_fzt(MusSong *song, CydWavetableEntry * entry, FILE *f); -------------------------------------------------------------------------------- /themes/Ravancore/colors.txt: -------------------------------------------------------------------------------- 1 | background = 0x1a0016 2 | main_text = 0xffffff 3 | small_text = 0xffffff 4 | button_text = 0xffffff 5 | statusbar_text = main_text 6 | 7 | sequence_counter = 0xffffff 8 | sequence_selected = 0xffffff 9 | sequence_bar = 0x1c2426 10 | sequence_beat = 0x4a6165 11 | sequence_normal = 0x000000 12 | sequence_disabled = 0xa4bcd2 13 | 14 | pattern_normal = 0xa0c9d0 15 | pattern_beat = 0x619fac 16 | pattern_bar = 0xffffff 17 | pattern_selected = 0xffffff 18 | pattern_disabled = 0x808080 19 | 20 | pattern_instrument = 0x00c8e8 21 | pattern_instrument_beat = 0x009fba 22 | pattern_instrument_bar = 0xffffff 23 | 24 | pattern_volume = 0xa0c9d0 25 | pattern_volume_beat = 0x619fac 26 | pattern_volume_bar = 0xffffff 27 | 28 | pattern_ctrl = 0xa0c9d0 29 | pattern_ctrl_beat = 0x619fac 30 | pattern_ctrl_bar = 0xffffff 31 | 32 | pattern_command = 0x00c8e8 33 | pattern_command_beat = 0x009fba 34 | pattern_command_bar = 0xffffff 35 | 36 | pattern_empty_data = 0x80000000 37 | pattern_seq_number = 0xffffff 38 | 39 | program_selected = 0xffffff 40 | program_even = 0xd0d0e0 41 | program_odd = 0xb0a0b0 42 | 43 | instrument_selected = 0xffffff 44 | instrument_normal = 0xc0c0c0 45 | 46 | menu = 0xffffff 47 | menu_selected = 0xffffff 48 | menu_header = 0xffffff 49 | menu_header_selected = 0xffffff 50 | menu_shortcut = 0xffffff 51 | menu_shortcut_selected = 0xffffff 52 | 53 | wavetable_sample = 0xffffff 54 | wavetable_background = 0x0 55 | progress_bar = 0xffffff 56 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | docker: 5 | - image: gcc:8 6 | steps: 7 | - run: apt-get update && apt-get install -y zip libsdl2-dev libsdl2-image-dev 8 | - checkout 9 | - run: git submodule init && git submodule update --remote 10 | - run: make CC=gcc CFG=release RES_PATH=. 11 | - run: zip -j /tmp/klystrack-linux64.zip bin.release/klystrack doc/Default.kt && zip -r /tmp/klystrack-linux64.zip res key examples LICENSE doc/SDL.txt doc/SDL_image.txt 12 | #- run: cd klystrack && make clean 13 | #- run: SDL_ROOT_DIR=/usr/x86_64-win32-mingw32 COMSPEC=1 && cd klystrack && make CC=x86_64-win32-mingw32-gcc CFG=release RES_PATH=. 14 | #- run: cd klystrack && zip -j /tmp/klystrack-win32.zip bin.release/klystrack doc/Default.kt && zip -r /tmp/klystrack-win32.zip res key examples LICENSE doc/SDL.txt doc/SDL_image.txt 15 | #- run: cd klystrack && make clean 16 | #- run: SDL_ROOT_DIR=/usr/x86_64-w64-mingw32 COMSPEC=1 && cd klystrack && make CC=x86_64-w64-mingw32-gcc CFG=release RES_PATH=. 17 | #- run: cd klystrack && zip -j /tmp/klystrack.zip bin.release/klystrack doc/Default.kt && zip -r /tmp/klystrack.zip res key examples LICENSE doc/SDL.txt doc/SDL_image.txt 18 | #- store_artifacts: 19 | # path: /tmp/klystrack.zip 20 | #- store_artifacts: 21 | # path: /tmp/klystrack-win32.zip 22 | #- store_artifacts: 23 | # path: /tmp/klystrack-win64.zip 24 | -------------------------------------------------------------------------------- /src/config.h: -------------------------------------------------------------------------------- 1 | #ifndef CONFIG_H 2 | #define CONFIG_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include 31 | 32 | void load_config(const char *path, bool apply); 33 | void save_config(const char *path); 34 | void apply_config(); 35 | 36 | #endif -------------------------------------------------------------------------------- /src/view/visu.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "../view.h" 28 | 29 | void spectrum_analyzer_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 30 | void catometer_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 31 | -------------------------------------------------------------------------------- /src/view/songmessage.h: -------------------------------------------------------------------------------- 1 | #ifndef SONGMESSAGE_H 2 | #define SONGMESSAGE_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | #include "../mused.h" 32 | #include "gfx/gfx.h" 33 | #include "gui/view.h" 34 | 35 | void song_message_view(GfxDomain *domain, GfxSurface *gfx, const Font *largefont, const Font *smallfont); 36 | 37 | #endif -------------------------------------------------------------------------------- /src/export.h: -------------------------------------------------------------------------------- 1 | #ifndef EXPORT_H 2 | #define EXPORT_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "snd/music.h" 31 | 32 | bool export_wav(MusSong *song, CydWavetableEntry * entry, FILE *f, int channel); 33 | bool export_wav_hires(MusSong *song, CydWavetableEntry * entry, FILE *f, int channel); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/mymsg.h: -------------------------------------------------------------------------------- 1 | #ifndef MYMSG_H 2 | #define MYMSG_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | enum 31 | { 32 | MSG_EVENTHIT = SDL_USEREVENT + 1, 33 | MSG_NOTEON, 34 | MSG_NOTEOFF, 35 | MSG_PROGRAMCHANGE, 36 | MSG_CLOCK, 37 | MSG_START, 38 | MSG_CONTINUE, 39 | MSG_STOP, 40 | MSG_SPP 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/view/pattern.h: -------------------------------------------------------------------------------- 1 | #ifndef PATTERN_H 2 | #define PATTERN_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | 32 | void pattern_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 33 | void pattern_view2(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Win32", 5 | "includePath": [ 6 | "${workspaceFolder}/**", 7 | "C:/msys64_Copy/mingw64/include", 8 | "C:/msys64_Copy/mingw64/include/**", 9 | "C:/msys64_Copy/mingw64/include/SDL2", 10 | "C:/msys64_Copy/mingw64/include/SDL2/**", 11 | "C:/msys64_Copy/mingw64/x86_64-w64-mingw32/include", 12 | "C:/msys64_Copy/mingw64/lib/gcc/x86_64-w64-mingw32/11.2.0/include" 13 | ], 14 | 15 | "browse": { 16 | "path":[ 17 | "${workspaceFolder}/**", 18 | "C:/msys64_Copy/mingw64/include", 19 | "C:/msys64_Copy/mingw64/include/**", 20 | "C:/msys64_Copy/mingw64/include/SDL2", 21 | "C:/msys64_Copy/mingw64/include/SDL2/**", 22 | "C:/msys64_Copy/mingw64/x86_64-w64-mingw32/include", 23 | "C:/msys64_Copy/mingw64/lib/gcc/x86_64-w64-mingw32/11.2.0/include" 24 | ] 25 | }, 26 | 27 | "defines": [ 28 | "_DEBUG", 29 | "UNICODE", 30 | "_UNICODE" 31 | ], 32 | "windowsSdkVersion": "10.0.19041.0", 33 | "compilerPath": "C:/msys64_Copy/mingw64/bin/gcc.exe", 34 | "cStandard": "c99", 35 | "cppStandard": "c++17", 36 | "intelliSenseMode": "gcc-x64", 37 | "configurationProvider": "ms-vscode.makefile-tools" 38 | } 39 | ], 40 | "version": 4 41 | } -------------------------------------------------------------------------------- /src/import/fur/furmodule.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "furmodule.h" 28 | 29 | #include "../../edit.h" 30 | #include "../../mused.h" 31 | #include "../../action.h" 32 | #include "../../event.h" 33 | #include "SDL_endian.h" 34 | #include "../../../klystron/src/snd/freqs.h" 35 | #include "../../view.h" 36 | 37 | #include "../importutil.h" 38 | 39 | void import_furnace_module(FILE* f) 40 | { 41 | debug("f"); 42 | } -------------------------------------------------------------------------------- /src/box drawing changed codes.txt: -------------------------------------------------------------------------------- 1 | \x9a\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x9e\x8c \n\x8b\BASE \xaf\xb0\xb1\xb2\xb3\xaf\xb0\xb1\xb2\xb3 \xb4L \x8b \n\x8b\xb5\DRUM \xb5KSYNC \x8b \n\x8b\xb4VIB \xb5SET PW \x8b \n\x8b\xb5SET CUT SLIDE\xaf\xb1\xb2\xb3\x8b \n\x98\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x87 \n\x8b\xb4PUL \xaf\xb0\xb1\xb2\xb3 \xb4SAW \x8b \n\x8b\xb5TRI \xb4NOI \xb4METAL \x8b \n\x8b\xb4POKEY \xae\xb2\xb3 \xb4 1/4TH \x8b \n\x98\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x87 \n\x8b\xb4WAVE\xaf\xb1\xb2\xb3 \xb4OENV \xb4L \x8b \n\x98\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x87 \n\x8bOSC. MIX MODE \xaf\xb0\xb1\xb2\xb3 \x8b \n\x98\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x87 \n\x8bVOL \xaf\xb1\xb2\xb3 \xb4RELATIVE \x8b \n\x8b\ATK \xaf\xb1\xb2\xb3 DEC \xaf\xb1\xb2\xb3 \x8b \n\x8bSUS \xaf\xb1\xb2\xb3 REL \xaf\xb1\xb2\xb3 \x8b \n\x98\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x87 \n\x8b\xb4\BUZZ DETUNE\xaf\xb1\xb2\xb3 \x8b \n\x8bSHAPE\xae\xb2\xb3 FINE\xaf\xb0\xb1\xb2\xb3 \x8b \n\x98\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x87 \n\x8b\xb4SYNC SRC \xaf\xb1\xb2\xb3 \x8b \n\x8b\xb4RING MOD SRC \xaf\xb1\xb2\xb3 \x8b \n\x98\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x95\x87 \n\x8b\xb4\FILTER TYPE\xaf\xb0\xb1\xb2\xb3 \x8b \n\x8b\CUT\xaf\xb0\xb1\xb2\xb3 RES \xae\xb2\xb3 \x8b \n\x8bSLOPE \xaf\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb1\xb2\xb3 \x8b -------------------------------------------------------------------------------- /src/import/import.h: -------------------------------------------------------------------------------- 1 | #ifndef IMPORT_H 2 | #define IMPORT_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | enum { IMPORT_MOD, IMPORT_MED, IMPORT_S3M, IMPORT_AHX, IMPORT_XM, IMPORT_IT, IMPORT_MPTM, IMPORT_ORG, IMPORT_HUBBARD, IMPORT_FTM, IMPORT_0CC, IMPORT_DNM, IMPORT_EFT, IMPORT_DMF, IMPORT_FUR, IMPORT_A2M, IMPORT_RMT, IMPORT_FZT }; 31 | 32 | void import_module(void *type, void*, void*); 33 | 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/view/envelopeview.h: -------------------------------------------------------------------------------- 1 | #ifndef ENVELOPEVIEW_H 2 | #define ENVELOPEVIEW_H 3 | 4 | #pragma once 5 | 6 | /* 7 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 8 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 9 | 10 | Permission is hereby granted, free of charge, to any person 11 | obtaining a copy of this software and associated documentation 12 | files (GfxDomain *dest_surface, the "Software"), to deal in the Software without 13 | restriction, including without limitation the rights to use, 14 | copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the 16 | Software is furnished to do so, subject to the following 17 | conditions: 18 | 19 | The above copyright notice and this permission notice shall be 20 | included in all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 24 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 27 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 29 | OTHER DEALINGS IN THE SOFTWARE. 30 | */ 31 | 32 | #include "gui/view.h" 33 | #include "../view.h" 34 | 35 | void point_envelope_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 36 | void fourop_point_envelope_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 37 | 38 | #endif -------------------------------------------------------------------------------- /src/midi.h: -------------------------------------------------------------------------------- 1 | #ifndef MIDI_H 2 | #define MIDI_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #ifdef MIDI 31 | 32 | #include "SDL.h" 33 | 34 | #include "gui/menu.h" 35 | 36 | extern Menu midi_menu[]; 37 | 38 | void midi_event(SDL_Event *e); 39 | void midi_init(); 40 | void midi_deinit(); 41 | void midi_set_channel(void *chn, void *unused1, void *unused2); 42 | void midi_set_octave(void *octave, void *unused1, void *unused2); 43 | 44 | #endif 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/export/plaintext.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #ifndef PLAINTEXT_H 28 | #define PLAINTEXT_H 29 | 30 | #pragma once 31 | 32 | #define KLYSTRACK_PLAINTEXT_SIG "klystrack-plus" 33 | #define KLYSTRACK_PATTERN_SEGMENT_SIG "pattern_segment" 34 | 35 | #define KLYSTRACK_PLAINTEXT_NOTE_CUT "OFF" 36 | #define KLYSTRACK_PLAINTEXT_NOTE_RELEASE "===" 37 | #define KLYSTRACK_PLAINTEXT_NOTE_MACRO_RELEASE "M==" 38 | #define KLYSTRACK_PLAINTEXT_NOTE_NOTE_RELEASE "N==" 39 | 40 | void create_plain_text(); 41 | 42 | #endif -------------------------------------------------------------------------------- /src/import/wavetable_string.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #pragma once 28 | 29 | #include "snd/music.h" 30 | #include "../mused.h" 31 | #include "../klystron/src/gui/msgbox.h" 32 | #include "../klystron/src/gui/bevdefs.h" 33 | #include "../klystron/src/gui/view.h" 34 | #include "../klystron/src/gui/toolutil.h" 35 | #include "../klystron/src/gui/bevel.h" 36 | #include "../klystron/src/gui/dialog.h" 37 | #include "../klystron/src/gui/mouse.h" 38 | 39 | #include 40 | 41 | void import_wavetable_string(MusInstrument* inst); -------------------------------------------------------------------------------- /src/wave.h: -------------------------------------------------------------------------------- 1 | #ifndef WAVE_H 2 | #define WAVE_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | #include 32 | 33 | enum 34 | { 35 | WAVE_FORMAT_PCM = 1, 36 | WAVE_FORMAT_FLOAT = 3 37 | }; 38 | 39 | typedef struct 40 | { 41 | int format; 42 | Uint16 channels; 43 | Uint32 sample_rate; 44 | Uint32 length; 45 | Uint16 bits_per_sample; 46 | void *data; 47 | } Wave; 48 | 49 | Wave * wave_load(FILE *f); 50 | void wave_destroy(Wave *wave); 51 | 52 | #endif -------------------------------------------------------------------------------- /src/stats.c: -------------------------------------------------------------------------------- 1 | #include "stats.h" 2 | #include "memwriter.h" 3 | #include "diskop.h" 4 | #include "macros.h" 5 | #include "mused.h" 6 | #include "gui/msgbox.h" 7 | 8 | static void get_stats(SongStats *stats) 9 | { 10 | SDL_RWops *rw = create_memwriter(NULL); 11 | save_song_inner(rw, stats, true); 12 | SDL_RWclose(rw); 13 | } 14 | 15 | void song_stats(void *unused1, void *unused2, void *unused3) 16 | { 17 | SongStats stats; 18 | get_stats(&stats); 19 | 20 | char str[1000]; 21 | snprintf(str, sizeof(str), 22 | "Header: %6d bytes %2d %%\n" 23 | "FX: %6d bytes %2d %%\n" 24 | "Def.vol/pan: %6d bytes %2d %%\n" 25 | "Instruments: %6d bytes %2d %%\n" 26 | "Sequence: %6d bytes %2d %%\n" 27 | "Patterns: %6d bytes %2d %%\n" 28 | "Wavetable: %6d bytes %2d %%\n" 29 | "Wave names: %6d bytes %2d %%\n" 30 | "-------------------------------\n" 31 | "TOTAL: %6d bytes", 32 | stats.size[STATS_HEADER], stats.size[STATS_HEADER] * 100 / stats.total_size, 33 | stats.size[STATS_FX], stats.size[STATS_FX] * 100 / stats.total_size, 34 | stats.size[STATS_DEFVOLPAN], stats.size[STATS_DEFVOLPAN] * 100 / stats.total_size, 35 | stats.size[STATS_INSTRUMENTS], stats.size[STATS_INSTRUMENTS] * 100 / stats.total_size, 36 | stats.size[STATS_SEQUENCE], stats.size[STATS_SEQUENCE] * 100 / stats.total_size, 37 | stats.size[STATS_PATTERNS], stats.size[STATS_PATTERNS] * 100 / stats.total_size, 38 | stats.size[STATS_WAVETABLE], stats.size[STATS_WAVETABLE] * 100 / stats.total_size, 39 | stats.size[STATS_WAVETABLE_NAMES], stats.size[STATS_WAVETABLE_NAMES] * 100 / stats.total_size, 40 | stats.total_size 41 | ); 42 | 43 | msgbox(domain, mused.slider_bevel, &mused.largefont, str, MB_OK); 44 | } 45 | -------------------------------------------------------------------------------- /src/view/credits.h: -------------------------------------------------------------------------------- 1 | #ifndef CREDITS_H 2 | #define CREDITS_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | 32 | #define TIMEOUT 50 /* 20 FPS */ 33 | 34 | #define RGB(r, g, b) ((r << 16) | (g << 8) | (b)) 35 | 36 | #define NUM_DOTS 30 37 | 38 | #define NUM_PREV_COORDS 96 39 | 40 | typedef struct 41 | { 42 | Sint16 x, y; 43 | } Prev_coords; 44 | 45 | typedef struct 46 | { 47 | double x, y; 48 | double vx, vy; 49 | 50 | struct 51 | { 52 | Sint16 x, y; 53 | } prev_coords[NUM_PREV_COORDS]; 54 | } Dot; 55 | 56 | void show_credits(void *unused0, void *unused1, void *unused2); 57 | 58 | #endif -------------------------------------------------------------------------------- /src/keytab.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2011 Tero Lindeman (kometbomb) 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | */ 25 | 26 | #ifndef KEYTAB_H 27 | #define KEYTAB_H 28 | 29 | #include "SDL.h" 30 | 31 | typedef enum { KEYSYM, SCANCODE } KeyTranType; 32 | 33 | typedef struct 34 | { 35 | KeyTranType type; 36 | int focus; 37 | int from_mod; 38 | int from_key; 39 | int from_scancode; 40 | int to_mod; 41 | int to_key; 42 | int to_scancode; 43 | } KeyTran; 44 | 45 | typedef struct 46 | { 47 | const char *name; 48 | int key; 49 | } KeyDef; 50 | 51 | #define KEYDEF(key) {"K_"#key, SDLK_##key} 52 | #define MODDEF(key) {"M_"#key, KMOD_##key} 53 | 54 | extern const KeyDef keydefs[]; 55 | extern const KeyDef moddefs[]; 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /src/command.h: -------------------------------------------------------------------------------- 1 | #ifndef COMMAND_H 2 | #define COMMAND_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | #include 32 | 33 | typedef struct { Uint16 opcode; Uint16 mask; char *name, *shortname; int minv, maxv; } InstructionDesc; 34 | 35 | const InstructionDesc * get_instruction_desc(Uint16 command); 36 | bool is_valid_command(Uint16 command); 37 | void get_command_desc(char *text, size_t buffer_size, Uint16 inst); 38 | Uint16 validate_command(Uint16 command); 39 | const InstructionDesc* list_all_commands(); 40 | 41 | Uint16 get_instruction_mask(Uint16 command); 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/import/mml_string.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #pragma once 28 | 29 | #include "snd/music.h" 30 | #include "../mused.h" 31 | #include "../klystron/src/gui/msgbox.h" 32 | #include "../klystron/src/gui/bevdefs.h" 33 | #include "../klystron/src/gui/view.h" 34 | #include "../klystron/src/gui/toolutil.h" 35 | #include "../klystron/src/gui/bevel.h" 36 | #include "../klystron/src/gui/dialog.h" 37 | #include "../klystron/src/gui/mouse.h" 38 | 39 | #include 40 | 41 | #include "yamaha_fm_params.h" 42 | 43 | enum 44 | { 45 | BTN_PMD = 1, 46 | BTN_FMP = 2, 47 | BTN_FMP7 = 4, 48 | BTN_VOPM = 8, 49 | BTN_NRTDRV = 16, 50 | BTN_MXDRV = 32, 51 | BTN_MMLDRV = 64, 52 | BTN_MUCOM88 = 128, 53 | 54 | MML_BUTTON_TYPES = 8, 55 | }; 56 | 57 | void import_mml_fm_instrument_string(MusInstrument* inst); -------------------------------------------------------------------------------- /src/wavewriter.c: -------------------------------------------------------------------------------- 1 | #include "wavewriter.h" 2 | #include 3 | #include "SDL.h" 4 | 5 | WaveWriter * ww_create(FILE * file, int sample_rate, int channels) 6 | { 7 | WaveWriter * ww = calloc(1, sizeof(WaveWriter)); 8 | 9 | ww->file = file; 10 | ww->channels = channels; 11 | 12 | Uint16 tmp16 = 0; 13 | Uint32 tmp32 = 0; 14 | 15 | fwrite("RIFF", 4, 1, ww->file); 16 | 17 | ww->riffsize_pos = ftell(ww->file); 18 | 19 | fwrite(&tmp32, 4, 1, ww->file); 20 | fwrite("WAVE", 4, 1, ww->file); 21 | fwrite("fmt ", 4, 1, ww->file); 22 | 23 | tmp32 = SDL_SwapLE32(16); // size of format data 24 | 25 | fwrite(&tmp32, 4, 1, ww->file); 26 | 27 | tmp16 = SDL_SwapLE16(1); // data type = PCM 28 | 29 | fwrite(&tmp16, 2, 1, ww->file); 30 | 31 | tmp16 = SDL_SwapLE16(channels); 32 | 33 | fwrite(&tmp16, 2, 1, ww->file); 34 | 35 | tmp32 = SDL_SwapLE32(sample_rate); 36 | 37 | fwrite(&tmp32, 4, 1, ww->file); 38 | 39 | tmp32 = SDL_SwapLE32(sample_rate * channels * sizeof(Sint16)); 40 | 41 | fwrite(&tmp32, 4, 1, ww->file); 42 | 43 | tmp16 = SDL_SwapLE16(channels * sizeof(Sint16)); 44 | 45 | fwrite(&tmp16, 2, 1, ww->file); 46 | 47 | tmp16 = SDL_SwapLE16(16); // bits per sample 48 | 49 | fwrite(&tmp16, 2, 1, ww->file); 50 | 51 | fwrite("data", 4, 1, ww->file); 52 | 53 | ww->chunksize_pos = ftell(ww->file); 54 | 55 | tmp32 = 0; 56 | fwrite(&tmp32, 4, 1, ww->file); 57 | 58 | return ww; 59 | } 60 | 61 | 62 | void ww_write(WaveWriter *ww, Sint16 * buffer, int samples) 63 | { 64 | fwrite(buffer, samples * ww->channels * sizeof(Sint16), 1, ww->file); 65 | } 66 | 67 | 68 | void ww_finish(WaveWriter *ww) 69 | { 70 | Uint32 sz = ftell(ww->file) - 8; 71 | Uint32 tmp32 = SDL_SwapLE32(sz); 72 | 73 | fseek(ww->file, ww->riffsize_pos, SEEK_SET); 74 | fwrite(&tmp32, sizeof(tmp32), 1, ww->file); 75 | 76 | tmp32 = SDL_SwapLE32(sz + 8 - (ww->chunksize_pos + 4)); 77 | 78 | fseek(ww->file, ww->chunksize_pos, SEEK_SET); 79 | fwrite(&tmp32, sizeof(tmp32), 1, ww->file); 80 | 81 | fclose(ww->file); 82 | free(ww); 83 | } 84 | -------------------------------------------------------------------------------- /doc/klystrack.1: -------------------------------------------------------------------------------- 1 | .TH klystrack 1 "December 12 2017" 2 | .SH NAME 3 | klystrack \- make C64/NES/Amiga-style chiptunes 4 | .SH SYNOPSIS 5 | .B klystrack 6 | .RI [ options ] " files" ... 7 | .SH DESCRIPTION 8 | This manual page documents briefly the 9 | .B klystrack 10 | command. 11 | .PP 12 | \fBklystrack\fP is a tracker for making C64/NES/Amiga-style chiptunes on a modern 13 | platform. It can be used to create audio for games. 14 | .SH FEATURES 15 | .B Sound 16 | .br 17 | Additive synthesis with filters (think SID, Atari, NES etc.) 18 | .br 19 | Hard sync and ring modulation (like SID) 20 | .br 21 | FM synthesis (think Adlib, MSX, OPL2 etc.) 22 | .br 23 | Wavetable for samples or custom waveforms to be used in synthesis (think Amiga, SNES) 24 | .br 25 | Built-in wave generator and editor 26 | .br 27 | Programmable instruments not limited to simple arpeggios 28 | .br 29 | .B Sequencer 30 | .br 31 | Tracker with free positioning of patterns 32 | .br 33 | Pattern transpose 34 | .br 35 | Pattern length is not fixed 36 | .br 37 | Hard limit of 32 channels but this can be raised (just ask if you need more... sounds crazy, though) 38 | .br 39 | Fully themeable, includes half dozen themes 40 | .br 41 | .B Effects 42 | .br 43 | Stereo chorus 44 | .br 45 | SNES-style multitap echo 46 | .br 47 | Bit crusher/decimator 48 | .br 49 | .B Export 50 | .br 51 | Own custom format with a tiny playback library to be used in games, demos etc. 52 | .br 53 | Export as .WAV 54 | .br 55 | Export each track as separate .WAV's 56 | .br 57 | Export wavetable items as .WAV's (use klystrack to create one-cycle waveforms for other synths!) 58 | .br 59 | .B Import 60 | .br 61 | Import .AHX modules 62 | .br 63 | Import .WAV's to use as samples 64 | .br 65 | Import Protracker and FT2 modules 66 | .br 67 | Import C64 SID files (Rob Hubbard player) 68 | .SH INTERNET TUTORIAL 69 | http://n00bstar.blogspot.ch/p/klystrack-tutorials.html 70 | .SH SEE ALSO 71 | .BR adtrack2 (1), 72 | .BR protracker (1), 73 | .BR goattracker (1), 74 | .BR milkytracker (1), 75 | .BR hivelytracker (1), 76 | .BR schismtracker (1). 77 | .br 78 | -------------------------------------------------------------------------------- /src/copypaste.h: -------------------------------------------------------------------------------- 1 | #ifndef COPYPASTE_H 2 | #define COPYPASTE_H 3 | 4 | #include 5 | 6 | #include "../klystron/src/snd/music.h" 7 | 8 | /* 9 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 10 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 11 | 12 | Permission is hereby granted, free of charge, to any person 13 | obtaining a copy of this software and associated documentation 14 | files (the "Software"), to deal in the Software without 15 | restriction, including without limitation the rights to use, 16 | copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the 18 | Software is furnished to do so, subject to the following 19 | conditions: 20 | 21 | The above copyright notice and this permission notice shall be 22 | included in all copies or substantial portions of the Software. 23 | 24 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 26 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 27 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 28 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 29 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 30 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 31 | OTHER DEALINGS IN THE SOFTWARE. 32 | */ 33 | 34 | 35 | typedef struct 36 | { 37 | int start, end, keydown; 38 | int patternx_start, patternx_end; 39 | 40 | bool drag_selection; //if we are in mouse drag selection mode 41 | bool drag_selection_sequence; 42 | bool drag_selection_program; 43 | bool drag_selection_program_4op; 44 | 45 | int prev_start, prev_end, prev_patternx_start, prev_patternx_end; //so when we drag outside of our rect we start the selection, otherwise do nothing 46 | int channel; 47 | 48 | int prev_name_index; 49 | 50 | bool is_local_sample; 51 | Uint8 local_sample_instrument; 52 | 53 | } Selection; 54 | 55 | 56 | void copy(); 57 | void paste(); 58 | void join_paste(); 59 | void cut(); 60 | void delete(); 61 | void begin_selection(int position); 62 | void select_range(int position); 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /src/view/wavetableview.h: -------------------------------------------------------------------------------- 1 | #ifndef WAVETABLEVIEW_H 2 | #define WAVETABLEVIEW_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | #include "gfx/gfx.h" 32 | 33 | void wavetable_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 34 | void wavetablelist_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 35 | void wavetable_sample_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 36 | void wavetable_tools_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 37 | void wavetable_edit_area(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 38 | void wavetable_sample_area(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 39 | void wavetable_name_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 40 | void invalidate_wavetable_view(); 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /player/player.c: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Example klystrack command line replayer. Use as you like. 4 | Usage: player.exe 5 | 6 | */ 7 | 8 | /* SDL stuff */ 9 | 10 | #include "SDL.h" 11 | 12 | /* klystron stuff */ 13 | 14 | #include "snd/cyd.h" 15 | #include "snd/music.h" 16 | 17 | #include 18 | 19 | #undef main 20 | 21 | int main(int argc, char **argv) 22 | { 23 | if (argc != 2) 24 | { 25 | fprintf(stderr, "Usage: %s \n", argv[0]); 26 | return 1; 27 | } 28 | 29 | MusSong song; 30 | CydEngine cyd; 31 | MusEngine mus; 32 | 33 | memset(&song, 0, sizeof(song)); 34 | 35 | /* To be sure, let's init enough channels */ 36 | 37 | cyd_init(&cyd, 44100, MUS_MAX_CHANNELS); 38 | 39 | if (!mus_load_song(argv[1], &song, cyd.wavetable_entries)) 40 | { 41 | fprintf(stderr, "Could not open %s\n", argv[1]); 42 | cyd_deinit(&cyd); 43 | return 2; 44 | } 45 | 46 | SDL_Init(SDL_INIT_AUDIO); 47 | 48 | /* Notify the music engine about Cyd */ 49 | 50 | mus_init_engine(&mus, &cyd); 51 | 52 | /* Add Cyd in SDL_Mixer audio output queue */ 53 | 54 | cyd_register(&cyd, 2000); 55 | 56 | /* Start updating the music engine at the rate set in the song */ 57 | 58 | cyd_set_callback(&cyd, mus_advance_tick, &mus, song.song_rate); 59 | 60 | /* Start playing from position 0 */ 61 | 62 | mus_set_song(&mus, &song, 0); 63 | 64 | printf("Playing %s...\n\nPress Ctrl-C to exit.\n\n", song.title); 65 | 66 | int done = 0; 67 | 68 | while (!done) 69 | { 70 | SDL_Event e; 71 | 72 | while (SDL_PollEvent(&e)) 73 | { 74 | switch (e.type) 75 | { 76 | case SDL_QUIT: 77 | case SDL_KEYDOWN: 78 | done = 1; 79 | break; 80 | } 81 | } 82 | 83 | int song_position; 84 | 85 | mus_poll_status(&mus, &song_position, NULL, NULL, NULL, NULL, NULL, NULL); 86 | 87 | printf("Position: %4d/%d\r", song_position, song.song_length); 88 | 89 | SDL_Delay(5); 90 | } 91 | 92 | printf("\nQuit.\n"); 93 | 94 | cyd_unregister(&cyd); 95 | 96 | cyd_deinit(&cyd); 97 | 98 | cyd_unregister(&cyd); 99 | cyd_deinit(&cyd); 100 | 101 | mus_free_song(&song); 102 | 103 | SDL_Quit(); 104 | 105 | return 0; 106 | } 107 | -------------------------------------------------------------------------------- /src/edit.h: -------------------------------------------------------------------------------- 1 | #ifndef EDIT_H 2 | #define EDIT_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "snd/music.h" 31 | 32 | typedef enum 33 | { 34 | S_T_PATTERN, 35 | S_T_SEQUENCE, 36 | S_T_MODE, 37 | S_T_SONGINFO, 38 | S_T_FX, 39 | S_T_WAVE_PARAM, 40 | S_T_WAVE_DATA, 41 | S_T_WAVE_NAME, 42 | S_T_INSTRUMENT 43 | } SHType; 44 | 45 | 46 | /* a, b = id for cascading snapshots */ 47 | void snapshot(SHType type); 48 | void snapshot_cascade(SHType type, int a, int b); 49 | 50 | void zero_step(MusStep *step); 51 | void clone_pattern(void *, void *, void *); 52 | void clone_each_pattern(void *, void *, void *); 53 | void get_unused_pattern(void*, void*, void*); 54 | void get_unused_pattern_all_tracks(void *, void *, void *); 55 | void expand_pattern(void *factor, void *, void *); 56 | void shrink_pattern(void *factor, void *, void *); 57 | void interpolate(void *, void *, void *); 58 | void transpose_note_data(void *semitones, void *unused1, void *unused2); 59 | 60 | void transpose_song_data(void *semitones, void *unused1, void *unused2); //wasn't there 61 | 62 | void split_pattern(void *unused1, void *unused2, void *unused3); 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /src/view/localsample.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef LOCALSAMPLE_H 4 | #define LOCALSAMPLE_H 5 | 6 | /* 7 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 8 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 9 | 10 | Permission is hereby granted, free of charge, to any person 11 | obtaining a copy of this software and associated documentation 12 | files (the "Software"), to deal in the Software without 13 | restriction, including without limitation the rights to use, 14 | copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the 16 | Software is furnished to do so, subject to the following 17 | conditions: 18 | 19 | The above copyright notice and this permission notice shall be 20 | included in all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 24 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 27 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 29 | OTHER DEALINGS IN THE SOFTWARE. 30 | */ 31 | 32 | #include "SDL.h" 33 | #include "gfx/gfx.h" 34 | 35 | void local_sample_bevel(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 36 | void local_sample_header_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 37 | 38 | void local_sample_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 39 | void local_samplelist_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 40 | void local_sample_sample_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 41 | void local_sample_tools_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 42 | void local_sample_edit_area(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 43 | void local_sample_sample_area(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 44 | void local_sample_name_view(GfxDomain *dest_surface, const SDL_Rect *dest, const SDL_Event *event, void *param); 45 | 46 | #endif -------------------------------------------------------------------------------- /src/console.h: -------------------------------------------------------------------------------- 1 | #ifndef CONSOLE_H 2 | #define CONSOLE_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | #include "gfx/font.h" 32 | 33 | typedef struct 34 | { 35 | Uint32 current_color; 36 | Uint16 cursor; 37 | Font font; 38 | SDL_Rect clip; 39 | int background; 40 | } Console; 41 | 42 | typedef struct 43 | { 44 | Uint32 current_color; 45 | Uint32 cursor; 46 | 47 | Unicode_font u_font; 48 | 49 | SDL_Rect clip; 50 | int background; 51 | } Unicode_console; 52 | 53 | void console_set_background(Console * c, int enabled); 54 | 55 | void unicode_console_set_background(Unicode_console * uc, int enabled); 56 | 57 | void console_reset_cursor(Console * c); 58 | void console_set_clip(Console * c, const SDL_Rect *rect); 59 | void console_clear(Console *console); 60 | Console * console_create(Bundle *b); 61 | Unicode_console * unicode_console_create(Bundle *b); 62 | 63 | void console_set_color(Console* console, Uint32 color); 64 | const SDL_Rect * console_write(Console* console, const char *string); 65 | const SDL_Rect * console_write_args(Console* console, const char *string, ...) __attribute__ ((format (printf, 2, 3))); 66 | void console_destroy(Console *c); 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /src/optimize.h: -------------------------------------------------------------------------------- 1 | #ifndef OPTIMIZE_H 2 | #define OPTIMIZE_H 3 | 4 | /* 5 | Copyright (c) 2009-2011 Tero Lindeman (kometbomb) 6 | 7 | Permission is hereby granted, free of charge, to any person 8 | obtaining a copy of this software and associated documentation 9 | files (the "Software"), to deal in the Software without 10 | restriction, including without limitation the rights to use, 11 | copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following 14 | conditions: 15 | 16 | The above copyright notice and this permission notice shall be 17 | included in all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #include "snd/music.h" 30 | #include 31 | 32 | void optimize_duplicate_patterns(MusSong *song, bool message_if_nothing_changed); 33 | void optimize_song(MusSong *song); 34 | bool is_pattern_empty(const MusPattern *a); 35 | bool is_pattern_equal(const MusPattern *a, const MusPattern *b); 36 | bool is_instrument_used(const MusSong *song, int instrument); 37 | bool is_wavetable_used(const MusSong *song, int wavetable); 38 | 39 | void optimize_patterns_action(void *unused1, void *unused2, void *unused3); 40 | 41 | void optimize_empty_patterns_action(void *no_confirm, void *unused2, void *unused3); //wasn't there 42 | void optimize_patterns_brute_action(void *unused1, void *unused2, void *unused3); //wasn't there 43 | 44 | void optimize_instruments_action(void *unused1, void *unused2, void *unused3); 45 | void optimize_wavetables_action(void *unused1, void *unused2, void *unused3); 46 | 47 | void duplicate_wavetables_action(void *unused1, void *unused2, void *unused3); //wasn't there 48 | void remove_instrument(MusSong *song, int instrument); 49 | 50 | int is_empty_program(Uint16* program); 51 | 52 | void kill_empty_patterns(MusSong *song, void* no_confirm); //wasn't there 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /src/import/hubbard.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #ifndef HUBBARD_H 28 | #define HUBBARD_H 29 | 30 | #include 31 | 32 | typedef struct 33 | { 34 | unsigned short int org; 35 | unsigned char data[65536]; 36 | struct 37 | { 38 | unsigned short int songtab; 39 | unsigned short int patternptrhi, patternptrlo; 40 | unsigned short int songs[16][3]; 41 | unsigned short int instruments; 42 | } addr; 43 | 44 | // decoded data 45 | 46 | struct { 47 | unsigned short int pulse_width; 48 | unsigned char waveform; 49 | unsigned char a, d, s, r; 50 | unsigned char vibrato_depth; 51 | unsigned char pwm; 52 | unsigned char fx; 53 | } instrument[256]; 54 | 55 | struct { 56 | struct { 57 | unsigned char note; 58 | unsigned char length; 59 | unsigned char legato; 60 | unsigned char instrument; 61 | char portamento; 62 | } note[256]; 63 | int length; 64 | } pattern[256]; 65 | 66 | int n_patterns; 67 | 68 | struct 69 | { 70 | unsigned char pattern[256]; 71 | int length; 72 | } track[3]; 73 | 74 | int n_tracks; 75 | int n_subsongs, n_instruments; 76 | int vib_type; 77 | } hubbard_t; 78 | 79 | int import_hubbard(FILE *f); 80 | 81 | #endif 82 | -------------------------------------------------------------------------------- /src/import/importutil.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #pragma once 28 | 29 | #ifndef IMPORTUTIL_H 30 | #define IMPORTUTIL_H 31 | 32 | #include 33 | #include "../edit.h" 34 | #include "../mused.h" 35 | #include "../action.h" 36 | #include "../event.h" 37 | #include "SDL_endian.h" 38 | #include "../view.h" 39 | 40 | char* citoa(int num, char* str, int base); 41 | void read_uint32(FILE *f, Uint32* number); //little-endian 42 | int checkbox_simple(GfxDomain *dest, const SDL_Event *event, const SDL_Rect *area, GfxSurface *gfx, const Font * font, int offset, int offset_pressed, int decal, const char* _label, Uint32 *flags, Uint32 mask); 43 | void generic_flags_simple(const SDL_Event *e, const SDL_Rect *_area, const char *label, Uint32 *_flags, Uint32 mask); 44 | Uint8 find_empty_command_column(MusStep* step); 45 | void find_command_xm(Uint16 command, MusStep* step); 46 | void find_command_s3m(Uint16 command, MusStep* step); 47 | void find_command_it(Uint16 command, MusStep* step); 48 | void find_command_mptm(Uint16 command, MusStep* step); 49 | void find_command_furnace(Uint16 command, MusStep* step, Uint8 command_index, Uint8 chip_index, Uint16 song_pos); 50 | Uint16 find_command_pt(Uint16 command, int sample_length); 51 | void convert_volume_and_command_xm(Uint16 command, Uint8 volume, MusStep* step); 52 | 53 | #endif -------------------------------------------------------------------------------- /src/mybevdefs.h: -------------------------------------------------------------------------------- 1 | #ifndef MYBEVDEFS_H 2 | #define MYBEVDEFS_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "gui/bevdefs.h" 31 | 32 | enum 33 | { 34 | BEV_SELECTED_PATTERN_ROW = BEV_SELECTED_ROW, 35 | BEV_SEQUENCE_PLAY_POS = BEV_USER, 36 | BEV_BACKGROUND, 37 | BEV_SELECTED_SEQUENCE_ROW, 38 | BEV_SEQUENCE_BORDER, 39 | BEV_SEQUENCE_LOOP, 40 | BEV_THIN_FRAME, 41 | BEV_SELECTION, 42 | BEV_EDIT_CURSOR, 43 | BEV_PATTERN, 44 | BEV_PATTERN_CURRENT, 45 | 46 | BEV_ENV_LOOP_START, 47 | BEV_ENV_LOOP_END, 48 | 49 | BEV_ENV_CURRENT_ENV_POSITION, 50 | BEV_ENV_SUSTAIN_POINT, 51 | }; 52 | 53 | enum 54 | { 55 | DECAL_AUDIO_ENABLED = DECAL_USER, 56 | DECAL_AUDIO_DISABLED, 57 | DECAL_MODE_PATTERN, 58 | DECAL_MODE_SEQUENCE, 59 | DECAL_MODE_CLASSIC, 60 | DECAL_MODE_INSTRUMENT, 61 | DECAL_MODE_FX, 62 | DECAL_MODE_WAVETABLE, 63 | DECAL_MODE_PATTERN_SELECTED, 64 | DECAL_MODE_SEQUENCE_SELECTED, 65 | DECAL_MODE_CLASSIC_SELECTED, 66 | DECAL_MODE_INSTRUMENT_SELECTED, 67 | DECAL_MODE_FX_SELECTED, 68 | DECAL_MODE_WAVETABLE_SELECTED, 69 | DECAL_TOOLBAR_VISUALIZATIONS, 70 | DECAL_TOOLBAR_FULLSCREEN, 71 | DECAL_TOOLBAR_QUIT, 72 | DECAL_COMPACT, 73 | DECAL_COMPACT_SELETED, 74 | DECAL_FOCUS, 75 | DECAL_FOCUS_SELETED, 76 | 77 | DECAL_COLLAPSE, //wasn't there 78 | DECAL_EXPAND, 79 | }; 80 | 81 | #endif 82 | -------------------------------------------------------------------------------- /src/clipboard.h: -------------------------------------------------------------------------------- 1 | #ifndef CLIPBOARD_H 2 | #define CLIPBOARD_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include 31 | 32 | #include "../klystron/src/snd/music.h" 33 | 34 | typedef struct 35 | { 36 | int type; 37 | void *data; 38 | size_t size; 39 | int position; 40 | 41 | int patternx_start, patternx_end; //for mouse drag selection 42 | int pattern_length; 43 | 44 | MusInstrument* inst; 45 | MusFmOp* op; 46 | } Clipboard; 47 | 48 | #include "mused.h" 49 | 50 | enum 51 | { 52 | CP_PATTERN = EDITPATTERN, 53 | CP_SEQUENCE = EDITSEQUENCE, 54 | CP_INSTRUMENT = EDITINSTRUMENT, 55 | CP_PROGRAM = EDITPROG, 56 | 57 | CP_WAVEGEN = EDITWAVETABLE, 58 | CP_WAVETABLE = 0xFF, 59 | 60 | CP_PATTERNSEGMENT, 61 | CP_LOCALSAMPLE, 62 | }; 63 | 64 | #define ALL_ITEMS 0xffffffff 65 | 66 | void cp_clear(Clipboard *cp); 67 | void cp_copy(Clipboard *cp, int type, void *data, const size_t size, int position); 68 | void cp_copy_items(Clipboard *cp, int type, void *data, const size_t dest_items, const size_t item_size, int position); 69 | void cp_paste(Clipboard *cp, int dest_type, void *dest, const size_t buffer_size); 70 | void cp_paste_items(Clipboard *cp, int target_type, void *dest, const size_t dest_items, const size_t item_size); 71 | size_t cp_get_item_count(Clipboard *cp, const size_t item_size); 72 | 73 | #endif 74 | -------------------------------------------------------------------------------- /src/diskop.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef DISKOP_H 4 | #define DISKOP_H 5 | 6 | /* 7 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 8 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 9 | 10 | Permission is hereby granted, free of charge, to any person 11 | obtaining a copy of this software and associated documentation 12 | files (the "Software"), to deal in the Software without 13 | restriction, including without limitation the rights to use, 14 | copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the 16 | Software is furnished to do so, subject to the following 17 | conditions: 18 | 19 | The above copyright notice and this permission notice shall be 20 | included in all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 24 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 27 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 29 | OTHER DEALINGS IN THE SOFTWARE. 30 | */ 31 | 32 | #include 33 | #include "SDL_rwops.h" 34 | #include "songstats.h" 35 | #include 36 | 37 | #include "wavegen.h" //wasn't there 38 | 39 | enum 40 | { 41 | OD_T_SONG, 42 | OD_T_INSTRUMENT, 43 | OD_T_WAVETABLE, 44 | OD_T_WAVETABLE_RAW_S, 45 | OD_T_WAVETABLE_RAW_U, 46 | OD_T_FX, 47 | OD_T_WAVEGEN_PATCH, //wasn't there 48 | /*------*/ 49 | OD_T_N_TYPES 50 | }; 51 | 52 | enum 53 | { 54 | OD_A_OPEN, 55 | OD_A_SAVE 56 | }; 57 | 58 | int open_song(FILE *f); 59 | int save_song(SDL_RWops *f, bool confirm_save /* if no confirm save all, even unused */); 60 | int save_song_inner(SDL_RWops *f, SongStats *stats, bool confirm_save /* if no confirm save all, even unused */); 61 | int open_wavetable(FILE *f); 62 | int open_instrument(FILE *f); 63 | int save_instrument(SDL_RWops *f); 64 | int open_fx(FILE *f); 65 | int save_fx(SDL_RWops *f); 66 | 67 | int open_wavepatch(FILE *f); //weren't there 68 | void save_wavepatch_inner(SDL_RWops *f, WgSettings *settings); 69 | int save_wavepatch(SDL_RWops *f); 70 | 71 | /* action */ 72 | void open_data(void *type, void *action, void*c); 73 | 74 | void init_recent_files_list(); 75 | void deinit_recent_files_list(); 76 | void update_recent_files_list(const char *path); 77 | 78 | #endif 79 | -------------------------------------------------------------------------------- /src/clipboard.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 3 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "clipboard.h" 28 | #include 29 | 30 | void cp_clear(Clipboard *cp) 31 | { 32 | if (cp->data != NULL) free(cp->data); 33 | cp->data = NULL; 34 | cp->size = 0; 35 | cp->type = 0; 36 | } 37 | 38 | 39 | void cp_copy(Clipboard *cp, int type, void *data, const size_t size, int position) 40 | { 41 | if (cp->data != NULL) free(cp->data); 42 | cp->data = calloc(1, size); 43 | memcpy(cp->data, data, size); 44 | cp->size = size; 45 | cp->type = type; 46 | cp->position = position; 47 | } 48 | 49 | void cp_paste(Clipboard *cp, int target_type, void *dest, const size_t buffer_size) 50 | { 51 | if (target_type != cp->type || buffer_size == 0) return; 52 | memcpy(dest, cp->data, (buffer_size == ALL_ITEMS || buffer_size > cp->size) ? cp->size : buffer_size); 53 | } 54 | 55 | 56 | void cp_paste_items(Clipboard *cp, int target_type, void *dest, const size_t dest_items, const size_t item_size) 57 | { 58 | cp_paste(cp, target_type, dest, dest_items * item_size); 59 | } 60 | 61 | 62 | size_t cp_get_item_count(Clipboard *cp, const size_t item_size) 63 | { 64 | return cp->size / item_size; 65 | } 66 | 67 | 68 | void cp_copy_items(Clipboard *cp, int type, void *data, const size_t dest_items, const size_t item_size, int position) 69 | { 70 | cp_copy(cp, type, data, dest_items * item_size, position); 71 | } 72 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2018 Tero Lindeman (kometbomb) 2 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 3 | Additional graphics copyright (c) 2010-2018 Ilija Melentijevic 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. 25 | 26 | 27 | == Graphics == 28 | 29 | 30 | 31 | Permission is hereby granted, free of charge, to any person 32 | obtaining a copy of this software and associated documentation 33 | files (the "Software"), to deal in the Software without 34 | restriction, including without limitation the rights to use, 35 | copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the 37 | Software is furnished to do so, subject to the following 38 | conditions: 39 | 40 | The above copyright notice and this permission notice shall be 41 | included in all copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 44 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 45 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 46 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 47 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 48 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 49 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 50 | OTHER DEALINGS IN THE SOFTWARE. 51 | 52 | 53 | == 3rd party software == 54 | 55 | This software uses the Mersenne Twister random number generator. 56 | 57 | Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, 58 | All rights reserved. 59 | -------------------------------------------------------------------------------- /src/memwriter.c: -------------------------------------------------------------------------------- 1 | #include "memwriter.h" 2 | #include "macros.h" 3 | #include 4 | #include 5 | 6 | static Sint64 mw_size(SDL_RWops *ops) 7 | { 8 | MemWriter *mem = ops->hidden.unknown.data1; 9 | return mem->size; 10 | } 11 | 12 | static Sint64 mw_seek(SDL_RWops *ops, Sint64 position, int mode) 13 | { 14 | MemWriter *mem = ops->hidden.unknown.data1; 15 | switch (mode) 16 | { 17 | case RW_SEEK_SET: 18 | mem->position = position; 19 | break; 20 | 21 | case RW_SEEK_CUR: 22 | mem->position += position; 23 | break; 24 | 25 | case RW_SEEK_END: 26 | mem->position = mem->size - position; 27 | break; 28 | } 29 | 30 | return mem->position; 31 | } 32 | 33 | 34 | static size_t mw_read(SDL_RWops *ops, void *data, size_t size, size_t num) 35 | { 36 | return 0; 37 | } 38 | 39 | 40 | static size_t mw_write(SDL_RWops *ops, const void *data, size_t size, size_t num) 41 | { 42 | MemWriter *mem = ops->hidden.unknown.data1; 43 | if (mem->position + size * num > mem->allocated) 44 | { 45 | int chunk = mem->position + size * num - mem->allocated; 46 | 47 | if (chunk < 1024) 48 | chunk = 1024; 49 | 50 | mem->allocated = mem->allocated + chunk; 51 | mem->data = realloc(mem->data, mem->allocated); 52 | 53 | debug("MemWriter: Allocating %d bytes (%d bytes allocated total)", chunk, (int)mem->allocated); 54 | } 55 | 56 | memcpy(mem->data + mem->position, data, size * num); 57 | 58 | mem->position += size * num; 59 | 60 | if (mem->size < mem->position) 61 | { 62 | mem->size = mem->position; 63 | } 64 | 65 | return size * num; 66 | } 67 | 68 | 69 | static int mw_close(SDL_RWops *ops) 70 | { 71 | MemWriter *mem = ops->hidden.unknown.data1; 72 | int r = 0; 73 | 74 | if (mem->flush) 75 | { 76 | debug("MemWriter: Flushing %d bytes to disk", (int)mem->size); 77 | r = fwrite(mem->data, mem->size, 1, mem->flush) == mem->size ? 0 : -1; 78 | } 79 | 80 | free(mem->data); 81 | free(mem); 82 | SDL_FreeRW(ops); 83 | 84 | return r; 85 | } 86 | 87 | 88 | SDL_RWops * create_memwriter(FILE *flush) 89 | { 90 | MemWriter *mem = calloc(1, sizeof(*mem)); 91 | mem->position = 0; 92 | mem->data = NULL; 93 | mem->size = 0; 94 | mem->allocated = 0; 95 | mem->flush = flush; 96 | 97 | SDL_RWops *ops = SDL_AllocRW(); 98 | ops->seek = mw_seek; 99 | ops->write = mw_write; 100 | ops->read = mw_read; 101 | ops->close = mw_close; 102 | ops->size = mw_size; 103 | ops->type = 0x1234; 104 | ops->hidden.unknown.data1 = mem; 105 | 106 | return ops; 107 | } 108 | -------------------------------------------------------------------------------- /src/theme.h: -------------------------------------------------------------------------------- 1 | #ifndef THEME_H 2 | #define THEME_H 3 | 4 | /* 5 | Copyright (c) 2009-2010 Tero Lindeman (kometbomb) 6 | Copyright (c) 2021-2023 Georgy Saraykin (LTVA1 a.k.a. LTVA) and contributors 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "SDL.h" 31 | 32 | enum 33 | { 34 | COLOR_SEQUENCE_COUNTER, 35 | COLOR_SEQUENCE_NORMAL, 36 | COLOR_PATTERN_SELECTED, 37 | COLOR_PATTERN_BAR, 38 | COLOR_PATTERN_BEAT, 39 | COLOR_PATTERN_INSTRUMENT, 40 | COLOR_PATTERN_INSTRUMENT_BAR, 41 | COLOR_PATTERN_INSTRUMENT_BEAT, 42 | COLOR_PATTERN_VOLUME, 43 | COLOR_PATTERN_VOLUME_BAR, 44 | COLOR_PATTERN_VOLUME_BEAT, 45 | COLOR_PATTERN_CTRL, 46 | COLOR_PATTERN_CTRL_BAR, 47 | COLOR_PATTERN_CTRL_BEAT, 48 | COLOR_PATTERN_COMMAND, 49 | COLOR_PATTERN_COMMAND_BAR, 50 | COLOR_PATTERN_COMMAND_BEAT, 51 | COLOR_PATTERN_NORMAL, 52 | COLOR_PATTERN_DISABLED, 53 | COLOR_PROGRAM_SELECTED, 54 | COLOR_PROGRAM_EVEN, 55 | COLOR_PROGRAM_ODD, 56 | COLOR_INSTRUMENT_SELECTED, 57 | COLOR_INSTRUMENT_NORMAL, 58 | COLOR_MENU_NORMAL, 59 | COLOR_MENU_SELECTED, 60 | COLOR_MENU_HEADER, 61 | COLOR_MENU_HEADER_SELECTED, 62 | COLOR_MENU_SHORTCUT, 63 | COLOR_MENU_SHORTCUT_SELECTED, 64 | COLOR_MAIN_TEXT, 65 | COLOR_SMALL_TEXT, 66 | COLOR_OF_BACKGROUND, 67 | COLOR_BUTTON_TEXT, 68 | COLOR_TEXT_SHADOW, 69 | COLOR_PATTERN_EMPTY_DATA, 70 | COLOR_WAVETABLE_SAMPLE, 71 | COLOR_WAVETABLE_BACKGROUND, 72 | COLOR_PROGRESS_BAR, 73 | COLOR_PATTERN_SEQ_NUMBER, 74 | COLOR_CATOMETER_EYES, 75 | COLOR_STATUSBAR_TEXT, 76 | /*-------------*/ 77 | NUM_COLORS, 78 | }; 79 | 80 | extern Uint32 colors[NUM_COLORS]; 81 | 82 | void load_theme(const char *name); 83 | void enum_themes(); 84 | void free_themes(); 85 | void update_theme_menu(); 86 | Uint32 mix_colors(Uint32 a, Uint32 b); // result = a * (1.0-b_alpha) + b*(b_alpha) 87 | void init_resources_dir(void); 88 | char * query_resource_directory(void); 89 | void set_scaled_cursor(); 90 | 91 | #endif --------------------------------------------------------------------------------