Pages

Thursday, February 27, 2014

The Metal Band Name Generator

After reading The 100 Most Overused Metal Band Name Words, I decided I must create a band name generator. The MATLAB code is below on the right 100 randomly generated band names are the left.
  1. Fire Shadow Steel
  2. Goat Ruin Torture
  3. Throne Lost Face Evil
  4. Burn Wind Circle
  5. Goat Demon Suffer
  6. Crypt Forest Night
  7. Circle Night Nocturnal Serpent
  8. Gore Raven
  9. Raven Devil Infernal
  10. Pain Child Stone
  11. Child Satan Fear
  12. Steel Night Fallen
  13. Stone Blood
  14. Gore Serpent Force Torment
  15. Serpent Wrath
  16. Ash Crypt Wrath
  17. Death Torture
  18. Winter Face
  19. Brutal Torment
  20. Force Murder Storm Ash
  21. Soul Doom Torment Demon
  22. Child Cross
  23. Moon Spirit
  24. Eternal Ash Anger
  25. Wolf Goat
  26. Evil Serpent Eternal Cross
  27. Forest Fire Cold Evil
  28. Torment Frost Forest Ancient
  29. Grind Brutal
  30. Head Stone Black Chaos
  31. Steel Infernal
  32. Wolf Doom Slave Wrath
  33. Wrath Hell Divine
  34. Moon Slaughter Cult
  35. Dark Grace
  36. Sorrow Heaven Forest Agony
  37. Torment Agony
  38. Necro Ruin
  39. Fuck Steel
  40. Rain Doom Iron
  41. Funeral Torment
  42. Steel Spirit
  43. Circle Sick
  44. Beyond Torture
  45. Grind Wrath Child
  46. Head Fire
  47. Death Brain
  48. Agony Fuck Dream
  49. Demon Fuck Hate
  50. Divine Grind Flesh Wind
  51. Soul Brutal Forest
  52. Noise Lord
  53. Throne Winter
  54. Cold Lord
  55. Dream Funeral Slave
  56. Death Serpent
  57. Frost Gore Fall Hand
  58. Ash Fear Death
  59. Gate Shadow Dead
  60. Dead Witch Thrash Ancient
  61. Thrash Fuck Raven
  62. Heaven Doom Fear
  63. Cross Night Shadow Steel
  64. Skull Hand Heaven
  65. Grace Storm
  66. Brain Winter Necro Dream
  67. Necro Goat Evil Storm
  68. Cold Soul
  69. Rain Raven Cross
  70. Brutal Slaughter
  71. Fall Rage Winter Cult
  72. Force Wolf
  73. Suffer Satan Nocturnal
  74. Brutal Lord War Grim
  75. Hate Night Brain Divine
  76. Night Fuck Serpent Rot
  77. Winter Fuck
  78. Stone Corpse
  79. Dragon Shadow Lost Slaughter
  80. Ritual Devil Agony Wrath
  81. Corpse Suffer
  82. Grind Torment
  83. Demon Soul Dream
  84. Funeral Satan Devil Ruin
  85. Torture Murder
  86. Morbid Dream
  87. Pain Rain Grind Torment
  88. Noise Burn Necro
  89. Rage Wind Lord Necro
  90. Brutal Dream
  91. Raven Slaughter Ruin
  92. Head Face Death
  93. Face Brain
  94. Dragon God
  95. Fire Christ Brutal Goat
  96. Beyond Satan
  97. Cold Ritual
  98. Fall Metal
  99. Chaos Circle
  100. Shadow Christ Morbid


NOTE: For this to work correctly, you must copy the numbered list from the article into a text file called "bandnames.txt". Also, at the time of this writing, there is no space between "43." and "Wolf". For Wolf to be used in your results, you must add the space in your text file.

function bandnames(varargin)
%By Timmortal, Feb 2014, http://nyarlathotim.blogspot.com
%
%Syntax: bandnames generates 1 band name
%        bandnames(number of band names to generate)
%          ex. bandnames(20) produces 20 bandnames
%
%Generates metal band names from the list of "100" most overused metal band
%names. (Actually 102.)

if length(varargin) > 0
    numBandNames = varargin{1};
else
    numBandNames = 1;
end

fid = fopen('bandnames.txt');
data = textscan(fid,'%s%s%s%s%s','delimiter',' ');
fclose(fid);

bandNames = data{2};

for ii = 1:numBandNames
    wordCount = randi(3,1)+1;
    
    wordNum = 0;
    go = 1;
    while length(unique(wordNum)) < length(wordNum) || go
        wordNum = randi([1 length(bandNames)],wordCount,1);
        go = 0;
    end
    
    outputFormat = '%s';
    for jj = 2:wordCount
        outputFormat = [outputFormat ' %s'];
    end
    outputFormat = [outputFormat '\r'];
    fprintf(outputFormat,bandNames{wordNum})
end
end