Advertisement
Guest User

Untitled

a guest
Jul 24th, 2014
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local cam = cam
  2. local draw = draw
  3. local ScrW = ScrW
  4. local ScrH = ScrH
  5. local Color = Color
  6. local Angle = Angle
  7. local Vector = Vector
  8. local tonumber = tonumber
  9. local ColorToHSV = ColorToHSV
  10. local HSVToColor = HSVToColor
  11.  
  12. local hide = {
  13.     CHudHealth  = true,
  14.     CHudBattery = true,
  15. }
  16.  
  17. local function HideThings( name )
  18.     if ( hide[ name ] ) then return false end
  19. end
  20. hook.Add( "HUDShouldDraw", "HideThings", HideThings )
  21.  
  22.  
  23. local BLACK = Color( 0, 0, 0 )
  24. local WHITE = Color( 255, 255, 255 )
  25. local GRAY  = Color(120,120,120,50)
  26.  
  27. --[[-------------------------------------------------------------------------------]]--
  28. visualizer = visualizer or {}
  29. --[[-------------------------------------------------------------------------------]]--
  30. visualizer.levels = visualizer.levels or {
  31.     [FFT_256]   = 128,
  32.     [FFT_512]   = 256,
  33.     [FFT_1024]  = 512,
  34.     [FFT_2048]  = 1024,
  35.     [FFT_4096]  = 2048,
  36.     [FFT_8192]  = 4096,
  37.     [FFT_16384] = 8192,
  38. }
  39. --[[-------------------------------------------------------------------------------]]--
  40. visualizer.Level  = FFT_256
  41. visualizer.LevelW = 22
  42. visualizer.LevelH = ScrH()
  43. visualizer.TotalW = visualizer.LevelW * visualizer.levels[ visualizer.Level ]
  44.  
  45. visualizer.URL     = "http://jukebox.ijwtb.net/music/Capital Cities/In A Tidal Wave Of Mystery/I Sold My Bed, But Not My Stereo.mp3"
  46. visualizer.Channel = visualizer.Channel
  47.  
  48. visualizer.Pos = Vector( -1000, 1000, -11275 )
  49. visualizer.Ang = Angle( 0, 0, 90 )
  50. visualizer.Color = Color( 255, 0, 0 )
  51. --[[-------------------------------------------------------------------------------]]--
  52. concommand.Add( "visualizer_url", function( ply, cmd, args, str )
  53.     visualizer.URL = args[1]
  54. end )
  55. --[[-------------------------------------------------------------------------------]]--
  56. concommand.Add( "visualizer_levels", function( ply, cmd, args, str )
  57.     local num = tonumber( args[1] )
  58.     if ( !num ) then return end
  59.    
  60.     local fft = _G[ "FFT_" .. num ]
  61.     if ( !fft ) then return end
  62.    
  63.     visualizer.Level = fft
  64.     visualizer.TotalW = visualizer.LevelW * visualizer.levels[ fft ]
  65. end )
  66. --[[-------------------------------------------------------------------------------]]--
  67. concommand.Add( "visualizer_pos", function( ply, cmd, args, str )
  68.     local x, y, z = tonumber( args[1] ), tonumber( args[2] ), tonumber( args[3] )
  69.     if ( !x or !y or !z ) then return end
  70.    
  71.     visualizer.Pos = Vector( x, y, z )
  72. end )
  73. --[[-------------------------------------------------------------------------------]]--
  74. concommand.Add( "visualizer_ang", function( ply, cmd, args, str )
  75.     local p, y, r = tonumber( args[1] ), tonumber( args[2] ), tonumber( args[3] )
  76.     if ( !p or !y or !r ) then return end
  77.    
  78.     visualizer.Ang = Angle( p, y, r )
  79. end )
  80. --[[-------------------------------------------------------------------------------]]--
  81. function visualizer.Play()
  82.     visualizer.Stop()
  83.  
  84.     hook.Add( "PostDrawOpaqueRenderables", "Visualizer", visualizer.Draw )
  85.    
  86.     sound.PlayURL( visualizer.URL, "noblock", function( channel, errID, errName )
  87.         visualizer.Channel = channel
  88.     end )
  89. end
  90. concommand.Add( "visualizer_play", function( ply, cmd, args, str )
  91.     visualizer.Play()
  92. end )
  93. --[[-------------------------------------------------------------------------------]]--
  94. function visualizer.Stop()
  95.     if ( visualizer.Channel ) then
  96.         visualizer.Channel:Stop()
  97.         visualizer.Channel = nil
  98.     end
  99.    
  100.     hook.Remove( "PostDrawOpaqueRenderables", "Visualizer" )
  101. end
  102. concommand.Add( "visualizer_stop", function( ply, cmd, args, str )
  103.     visualizer.Stop()
  104. end )
  105. --[[-------------------------------------------------------------------------------]]--
  106. function visualizer.Draw()
  107.     if( not IsValid( visualizer.Channel ) ) then return end
  108.  
  109.     local FFTable   = {}
  110.     local FFTLevels = visualizer.Channel:FFT( FFTable, visualizer.Level )
  111.    
  112.     cam.Start3D2D( visualizer.Pos, visualizer.Ang, 1 )
  113.         draw.RoundedBox( 0, 0, 0, visualizer.TotalW, ScrH(), GRAY )
  114.     cam.End3D2D()
  115.    
  116.     local fft, x, y
  117.     local levelW = visualizer.LevelW
  118.    
  119.     local h, s, v = ColorToHSV( visualizer.Color )
  120.     visualizer.Color = HSVToColor( h + 1, s, v )
  121.  
  122.     for i = 1, #FFTable do
  123.         fft = FFTable[ i ]
  124.         local levelH = fft * visualizer.LevelH
  125.        
  126.         x = 22 * ( i - 1 )
  127.         y = visualizer.LevelH - levelH
  128.  
  129.         cam.Start3D2D( visualizer.Pos, visualizer.Ang, 1 )
  130.             draw.RoundedBox( 0, x, y, levelW, levelH, HSVToColor( h + i, s, v ) )
  131.             surface.SetDrawColor( BLACK )
  132.             surface.DrawOutlinedRect( x, y, levelW, levelH )
  133.             draw.SimpleText( i, "default", x + 11, y, WHITE, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  134.         cam.End3D2D()
  135.     end
  136. end
  137. --[[-------------------------------------------------------------------------------]]--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement