Take Me Back to Chicago

Take Me Back to Chicago is a compilation album by Chicago released in 1985 by Columbia/CBS Special Products with Cat. N. PC 39579 and the first one to bear this title; in 1990 a different compilation was released by CBS/Columbia with the Cat. N. 21581 with the same title but a different track list. This 1985 release was issued by Columbia/CBS at a time when the band was enjoying many hit singles and swift album sales for Warner Brothers, and consists of hit singles and key album tracks that (save for the title track) had not appeared on the band's two Greatest Hits albums on the Columbia label, while the 1990 release features many tracks already present on the previous Greatest Hits.

Take Me Back to Chicago
Compilation album by
ReleasedJanuary 1985
RecordedAugust 1973 - May 1980
GenrePop, rock, jazz fusion
Length39:12
LabelColumbia
CBS
Chicago chronology
Chicago 17
(1984)
Take Me Back to Chicago
(1985)
Chicago 18
(1986)
Professional ratings
Review scores
SourceRating
AllMusic[1]

Because Chicago had, by 1985, moved to their new label, Take Me Back to Chicago was not directly authorized by the band and they do not acknowledge it in their official discography. Also notable is the fact that the 1990 release featured almost exclusively songs by bassist and singer Peter Cetera, rather than a mix of material by all of the band's songwriters (the 1985 release has a more balanced sampling of material between each songwriter and the different time periods). By this time, the once prominent writers, Robert Lamm and James Pankow, who had composed nearly all of the material in the early days of the band, were losing ground due to the band's stylistic changes. Only two of Pankow's songs are featured on this compilation, and Lamm was credited only as a co-composer on one song.

The 1985 version album was issued on LP, cassette, and CD, while the 1990 version was released only on cassette (BT 21581) and CD (A 21581). The 1985 release was not successful sales-wise, nor was it critically approved of. A particularly biting review came in one sentence from AllMusic, stating that it was "Another pointless rip-off compilation by Columbia Records and this one doesn't even contain any big hits."

Title track single release

"Take Me Back to Chicago"
Single by Chicago
from the album Chicago XI
B-side"Policeman"
ReleasedMay 1978
Recorded1977
GenreSoft rock
Length2:57 (Single version)
5:17 (Album version)
LabelColumbia
Songwriter(s)Danny Seraphine, David "Hawk" Wolinski
Producer(s)James William Guercio
Chicago singles chronology
"Little One"
(1978)
"Take Me Back to Chicago"
(1978)
"Alive Again"
(1978)

The title track of this LP, originally released on the Chicago XI album, was a 1978 chart hit in the U.S. and Canada. The song features Chaka Khan on backing vocals.[2]

Released in May of that year, it reached #63 on the U.S. Billboard Hot 100 and #62 on the Cash Box Top 100.[3] In Canada, it reached #66.[4] On the Adult Contemporary charts, it reached #39 in the U.S. and #21 in Canada.[5]

Track listing

1985 Edition

  1. "Listen" (Robert Lamm)
  2. "Free" (Lamm)
  3. "Thunder and Lightning" (Peter Cetera, Lamm, Danny Seraphine)
  4. "Lowdown" (Cetera, Seraphine)
  5. "I'm a Man" (Steve Winwood, Jimmy Miller)
  6. "Prelude (Little One)" (Seraphine, David Wolinski)
  7. "Little One" (Seraphine, Wolinski)
  8. "You Are on My Mind" (James Pankow)
  9. "Take Me Back to Chicago" (Seraphine, Wolinski)
  10. "Mongonucleosis" (Pankow)
  11. "Harry Truman" (Lamm)

1990 Edition

All songs written by Cetera, except where noted.

  1. "Baby, What a Big Surprise" - 3:05
  2. "Happy Man" - 3:15
  3. "Take Me Back to Chicago" (Seraphine, Wolinski) - 5:17
  4. "If You Leave Me Now" - 3:54
  5. "Old Days" (James Pankow) - 3:31
  6. "Song for You" - 3:41
  7. "Thunder and Lightning" (Cetera, Lamm, Seraphine) - 3:32
  8. "Wishing You Were Here" - 4:34
  9. "Mama Take" - 4:05
  10. "Run Away" (Pankow) - 4:18
gollark: So, I finished that to highly dubious demand. I'd like to know how #11 and such work.
gollark: > `x = _(int(0, e), int(e, е))`You may note that this would produce slices of 0 size. However, one of the `e`s is a homoglyph; it contains `2 * e`.`return Result[0][0], x, m@set({int(e, 0), int(е, e)}), w`From this, it's fairly obvious what `strassen` *really* does - partition `m1` into 4 block matrices of half (rounded up to the nearest power of 2) size.> `E = typing(lookup[2])`I forgot what this is meant to contain. It probably isn't important.> `def exponentiate(m1, m2):`This is the actual multiplication bit.> `if m1.n == 1: return Mаtrix([[m1.bigData[0] * m2.bigData[0]]])`Recursion base case. 1-sized matrices are merely multiplied scalarly.> `aa, ab, ac, ad = strassen(m1)`> `аa, аb, аc, аd = strassen(m2)`More use of homoglyph confusion here. The matrices are quartered.> `m = m1.subtract(exponentiate(aa, аa) ** exponentiate(ab, аc), exponentiate(aa, аb) ** exponentiate(ab, аd), exponentiate(ac, аa) ** exponentiate(ad, аc), exponentiate(ac, аb) ** exponentiate(ad, аd)) @ [-0j, int.abs(m2.n * 3, m1.n)]`This does matrix multiplication in an inefficient *recursive* way; the Strassen algorithm could save one of eight multiplications here, which is more efficient (on big matrices). It also removes the zero padding.> `m = exponentiate(Mаtrix(m1), Mаtrix(m2)) @ (0j * math.sin(math.asin(math.sin(math.asin(math.sin(math.e))))), int(len(m1), len(m1)))`This multiples them and I think also removes the zero padding again, as we want it to be really very removed.> `i += 1`This was added as a counter used to ensure that it was usably performant during development.> `math.factorial = math.sinh`Unfortunately, Python's factorial function has really rather restrictive size limits.> `for row in range(m.n):`This converts back into the 2D array format.> `for performance in sorted(dir(gc)): getattr(gc, performance)()`Do random fun things to the GC.
gollark: > `globals()[Row + Row] = random.randint(*sys.version_info[:2])`Never actually got used anywhere.> `ε = sys.float_info.epsilon`Also not used. I just like epsilons.> `def __exit__(self, _, _________, _______):`This is also empty, because cleaning up the `_` global would be silly. It'll be overwritten anyway. This does serve a purpose, however, and not just in making it usable as a context manager. This actually swallows all errors, which is used in some places.> `def __pow__(self, m2):`As ever, this is not actual exponentiation. `for i, (ι, 𐌉) in enumerate(zip(self.bigData, m2.bigData)): e.bigData[i] = ι + 𐌉` is in fact just plain and simple addition of two matrices.> `def subtract(forth, 𝕒, polynomial, c, vector_space):`This just merges 4 submatrices back into one matrix.> `with out as out, out, forth:`Apart from capturing the exceptions, this doesn't really do much either. The `_` provided by the context manager is not used.> `_(0j, int(0, 𝕒.n))`Yes, it's used in this line. However, this doesn't actually have any effect whatsoever on the execution of this. So I ignore it. It was merely a distraction.> `with Mаtrix(ℤ(ℤ(4))):`It is used again to swallow exceptions. After this is just some fluff again.> `def strassen(m, x= 3.1415935258989):`This is an interesting part. Despite being called `strassen`, it does not actually implement the Strassen algorithm, which is a somewhat more efficient way to multiply matrices than the naive way used in - as far as I can tell - every entry.> `e = 2 ** (math.ceil(math.log2(m.n)) - 1)`This gets the next power of two in a fairly obvious way. It is used to pad out the matrix to the next power of 2 size.> `with m:`The context manager is used again for nicer lookups.> `Result[0] += [_(0j, int(e, e))]`Weird pythonoquirkiness again. You can append to lists in tuples with `+=`, but it throws an exception as they're sort of immutable.> `typing(lookup[4])(input())`It's entirely possible that this does things.
gollark: > `def __eq__(self, xy): return self.bigData[math.floor(xy.real * self.n + xy.imag)]`This actually gets indices into the matrix. I named it badly for accursedness. It uses complex number coordinates.> `def __matmul__(self, ǫ):`*This* function gets a 2D "slice" of the matrix between the specified coordinates. > `for (fοr, k), (b, р), (whіle, namedtuple) in itertools.product(I(*int.ℝ(start, end)), enumerate(range(ℤ(start.imag), math.floor(end.imag))), (ǫ, ǫ)):`This is really just bizarre obfuscation for the basic "go through every X/Y in the slice" thing.> `out[b * 1j + fοr] = 0`In case the matrix is too big, just pad it with zeros.> `except ZeroDivisionError:`In case of zero divisions, which cannot actually *happen*, we replace 0 with 1 except this doesn't actually work.> `import hashlib`As ever, we need hashlib.> `memmove(id(0), id(1), 27)`It *particularly* doesn't work because we never imported this name.> `def __setitem__(octonion, self, v):`This sets either slices or single items of the matrix. I would have made it use a cool™️ operator, but this has three parameters, unlike the other ones. It's possible that I could have created a temporary "thing setting handle" or something like that and used two operators, but I didn't.> `octonion[sedenion(malloc, entry, 20290, 15356, 44155, 30815, 37242, 61770, 64291, 20834, 47111, 326, 11094, 37556, 28513, 11322)] = v == int(bool, b)`Set each element in the slice. The sharp-eyed may wonder where `sedenion` comes from.> `"""`> `for testing`> `def __repr__(m):`This was genuinely for testing, although the implementation here was more advanced.> `def __enter__(The_Matrix: 2):`This allows use of `Matrix` objects as context managers.> `globals()[f"""_"""] = lambda h, Ĥ: The_Matrix@(h,Ĥ)`This puts the matrix slicing thing into a convenient function accessible globally (as long as the context manager is running). This is used a bit below.
gollark: * desired

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.