# A sink that converts mono sources such as C64 SID or Amiga Tracker (rendered in mono) # music to stereo using the Calf lv2 plugins. # # Settings are from http://marzen.de/Holger/stereo_width/ # Although designed for a different purpose, it enhances the old mono music in a plesent way. # # This sink requires the Calf lv2 plugins (Gentoo: media-plugins/calf Ubuntu, Debian: calf-plugins Arch: calf) # # Copy this file into a conf.d/ directory such as # ~/.config/pipewire/filter-chain.conf.d/ context.modules = [ { name = libpipewire-module-filter-chain flags = [ nofail ] args = { node.description = "Vintage Stereo Imager Sink" media.name = "Vintage Stereo Imager Sink" filter.graph = { nodes = [ { name = copyL type = builtin label = copy } { name = copyR type = builtin label = copy } { name = mixL type = builtin label = mixer control = { "Gain 1" = 1.0 "Gain 2" = 1.0 } } { name = mixR type = builtin label = mixer control = { "Gain 1" = 1.0 "Gain 2" = 1.0 } } { plugin = "http://calf.sourceforge.net/plugins/Equalizer5Band" name = calf_eq5 label = calf_eq5 type = lv2 control = { "bypass" = 0 "level_in" = 1 "level_out" = 1 "ls_active" = 1 "ls_level" = 0.0634076148271561 "ls_freq" = 100 "ls_q" = 0.707000017166138 "hs_active" = 1 "hs_level" = 0.2497229129076 "hs_freq" = 8009.14111328125 "hs_q" = 0.707000017166138 "p1_active" = 0 "p1_level" = 1 "p1_freq" = 250 "p1_q" = 1 "p2_active" = 0 "p2_level" = 1 "p2_freq" = 1000 "p2_q" = 1 "p3_active" = 0 "p3_level" = 1 "p3_freq" = 4000 "p3_q" = 1 "individuals" = 1 "zoom" = 0.25 "analyzer" = 1 "analyzer_mode" = 1 } } { plugin = "http://calf.sourceforge.net/plugins/VintageDelay" name = calf_delay label = calf_delay type = lv2 control = { "on" = 1 "level_in" = 1 "level_out" = 1 "subdiv" = 1 "time_l" = 1 "time_r" = 1 "feedback" = 0 "amount" = 1.04536008834839 "mix_mode" = 0 "medium" = 0 "dry" = 0 "width" = 1 "fragmentation" = 0 "pbeats" = 4 "pfrag" = 4 "timing" = 1 "bpm" = 30 "ms" = 20 "hz" = 2 } } { plugin = "http://calf.sourceforge.net/plugins/StereoTools" name = calf_stereo label = calf_stereo type = lv2 control = { "bypass" = 0 "level_in" = 1 "level_out" = 0.350624859333038 "balance_in" = 0 "balance_out" = 0 "softclip" = 0 "mutel" = 0 "muter" = 0 "phasel" = 0 "phaser" = 1 "mode" = 6 "slev" = 1 "sbal" = 0 "mlev" = 1 "mpan" = 0 "stereo_base" = 0 "delay" = 0 "sc_level" = 1 "stereo_phase" = 0 } } ] links = [ { output = "copyL:Out" input = "mixL:In 1" } { output = "copyR:Out" input = "mixR:In 1" } { output = "copyL:Out" input = "calf_eq5:in_l" } { output = "copyR:Out" input = "calf_eq5:in_r" } { output = "calf_eq5:out_l" input = "calf_delay:in_l" } { output = "calf_eq5:out_r" input = "calf_delay:in_r" } { output = "calf_delay:out_l" input = "calf_stereo:in_l" } { output = "calf_delay:out_r" input = "calf_stereo:in_r" } { output = "calf_stereo:out_l" input = "mixL:In 2" } { output = "calf_stereo:out_r" input = "mixR:In 2" } ] inputs = [ "copyL:In" "copyR:In" ] outputs = [ "mixL:Out" "mixR:Out" ] } audio.channels = 2 audio.position = [ FL FR ] capture.props = { node.name = "effect_input.vintage_stereo_imager" media.class = Audio/Sink } playback.props = { node.name = "effect_output.vintage_stereo_imager" node.passive = true } } } ]