Element-wise string multiplication Inspired by this challenge (thanks @cairdcoinheringaahing for the title!), your task is to take two printable ASCII strings and multiply them element-wise with the following rules.

How does it work?

Given two strings (for example split and isbn) you will first, truncate the longer one such that they have equal length and then determine their ASCII codes:

split -&gt; spli -&gt; [115, 112, 108, 105]
isbn  -&gt; isbn -&gt; [105, 115,  98, 110]


The next step will be to map them to the range [0..94] by subtracting 32 of each code:

[115, 112, 108, 105] -&gt; [83, 80, 76, 73]
[105, 115,  98, 110] -&gt; [73, 83, 66, 78]


Now you will multiply them element-wise modulo 95 (to stay in the printable range):

[83, 80, 76, 73] ⊗ [73, 83, 66, 78] -&gt; [74, 85, 76, 89]


Add 32 to get back to the range [32..126]:

[74, 85, 76, 89] -&gt; [106, 117, 108, 121]


And the final step is to map them back to ASCII characters:

[106, 117, 108, 121] -&gt; "july"


Rules


You will write a program/function that implements the described steps on two strings and either prints or returns the resulting string
The input format is flexible: you can take two strings, a tuple of strings, list of strings etc.
The input may consist of one or two empty strings
The input will be characters in the printable range ([32..126])
The output is either printed to the console or you return a string
The output is allowed to have trailing whitespaces


Test cases

"isbn", "split"                  -&gt; "july"
"", ""                           -&gt; ""
"", "I don't matter"             -&gt; ""
"             ", "Me neither :(" -&gt; "             "
"but I do!", "!!!!!!!!!"         -&gt; "but I do!"
'quotes', '""""""'               -&gt; 'ck_iKg'
"wood", "hungry"                 -&gt; "yarn"
"tray", "gzip"                   -&gt; "jazz"
"industry", "bond"               -&gt; "drop"
"public", "toll"                 -&gt; "fall"
"roll", "dublin"                 -&gt; "ball"
"GX!", "GX!"                     -&gt; "!!!"
"4 lll 4", "4 lll 4"             -&gt; "4 lll 4"
"M&gt;&gt;M", "M&gt;&gt;M"                   -&gt; "&gt;MM&gt;"


Note: The quotes are just for readability, in the 6th test case I used ' instead of ".
MATL, 12 bytes

c32-p95\32+c


Try it online!

Explanation

c      % Implicitly input cell array of 2 strings. Convert to 2-row char matrix.
       % This pads the shorter string with spaces
32-    % Subtract 32, element-wise. Each char is interpreted as its ASCII code.
       % Note that padding spaces will give 0.
p      % Product of each column. Since (padding) spaces have been mapped to 0, the
       % product effectively eliminates those colums. So the effect is the same as
       % if string length had been limited by the shorter one
95\    % Modulo 95, element-wise
32+    % Add 32, element-wise
c      % Convert to char. Implicitly display