
    2jr                        S SK r S SKrS SKrS SKrS SKJr  SrSrSr	Sr
\S-  rSrSrSrS	rS
rSrSrSrS\S\4S jrS\S\R,                  4S jrS\R,                  S\R,                  4S jrS\S\R,                  4S jr " S S\5      rg)    N)Dataset   i        i     d   iY     z.vaez.jsonn_framesreturnc                 .    [        SU S-
  [        -  5      $ )N   )max	CHUNK_HOP)r
   s    7/mnt/workspace/git/minimaxmusic.cpp/training/dataset.pyn_dit_windowsr   *   s    q8a<I-..    c                 ^   [         R                  " U S-   [         R                  S9n[         R                  " U[        -
  [
        -  S[        U 5      S-
  5      nX[
        -  -
  n[         R                  " [        X[
        -  -
  5      nU[        -  [        -  nU[        -  X5-  U-   S-
  U-  -   $ )Nr   dtyper   )nparangeint64clip
OWNED_FROMr   r   minimumCHUNK_FRAMES	RATIO_NUM	RATIO_DENHOP_LATENTS)r
   tktauFLs         r   frame_latent_startsr%   /   s     ))HqL
1A
''1z>i/M(4Ka4O
PA
)m
C
**\8)m#;
<A
i-9
$A{?cgkAo!333r   boundsc                     [         R                  " [        [        4[         R                  S9n[        [        5       H+  n[        X   5      [        XS-      5      pCSXC-
  -  XX424'   M-     U$ )Nr   r   g      ?)r   zerosFRAMES_PER_WINLATENT_WINDOW_MAXfloat32rangeint)r&   pooljabs        r   pool_matrixr2   @   s_     88^%67rzzJD>"69~s6a%=11ae}V # Kr   pathc                 <   [        U 5       n[        R                  " [        R                  " U5      S   R                  S5      [        R                  S9nS S S 5        WR                  [        -  S:X  d   eUR                  S[        5      $ ! , (       d  f       N== f)Naudio_codes,r   r   )
openr   arrayjsonloadsplitr   sizeCODES_PER_FRAMEreshape)r3   fvalss      r   
load_codesrB   J   sl    	dqxx		!]399#>bhhO 
99&!+++<<O,, 
s   A
B
Bc                   B    \ rS rSrS	S\S\\   S-  4S jjrS rS rSr	g)
CorpusDatasetQ   N
corpus_dirbasesc                 j   Uc&  [        S [        R                  " U5       5       5      n/ U l        U H  n[        R                  R                  X[        -   5      n[        [        R                  R                  X[        -   5      5      n[        R                  R                  U5      [        -  nUR                  S   S-
  n[        U5      nUS:  a  X   U:  a  US-  nUS:  a
  X   U:  a  M  [        SU[        -
  S-   [        5       H   n	U R                  R                  XEX45        M"     M     g )Nc              3   ~   #    U  H3  oR                  [        5      (       d  M  US [        [        5      *  v   M5     g 7fN)endswithVAE_EXTlen).0r@   s     r   	<genexpr>)CorpusDataset.__init__.<locals>.<genexpr>T   s.     e7M!Q[Q[\cQd-1_G}-7Ms   ==r   r   )sortedoslistdirwindowsr3   joinrL   rB   JSON_EXTgetsizeLATENT_BYTESshaper%   r,   r)   append)
selfrF   rG   basevae_pathcodesn_latr
   startst0s
             r   __init__CorpusDataset.__init__R   s    =erzz*7MeeEDww||Jw?H!"'',,z(?"KLEwwx0L@E{{1~)H*84FQ,6#3e#;A Q,6#3e#;Ax.81<nM##Xf$AB N r   c                 ,    [        U R                  5      $ rJ   )rM   rT   )r[   s    r   __len__CorpusDataset.__len__a   s    4<<  r   c           	      V   U R                   U   u  p#pEXEU[        -   S-    XE   -
  n[        US   5      nU[        ::  d   e[        R
                  " [        [        4[        R                  S9n[        R                  " U[        R                  U[        -  [        XE   5      [        -  S9R                  U[        5      US U& X5S-   US-   [        -    n	[        R                  " U5      [        R                  " [        U5      5      [        R                  " U	R                  5       5      4$ )Nr   r7   r   )r   countoffset)rT   r)   r-   r*   r   r(   LATENT_CHANNELSr+   fromfilerX   r?   torch
from_numpyr2   copy)
r[   ir]   r^   r`   ra   r&   r_   latentstargets
             r   __getitem__CorpusDataset.__getitem__d   s    &*ll1o#R.0145
BVBZ))))((-?rzzR++hbjjP_H_-0_|-KMMTWUZ\kMl 	AvQ 78  )5+;+;K<O+P  /1 	1r   )rT   rJ   )
__name__
__module____qualname____firstlineno__strlistrb   re   rr   __static_attributes__ r   r   rD   rD   Q   s+    C3 CtCy4/? C!
1r   rD   )r:   rR   numpyr   rl   torch.utils.datar   rj   r)   r*   r>   rX   r   r   r   r   r   r   rL   rV   r-   r   ndarrayr%   r2   rx   rB   rD   r{   r   r   <module>r      s   (  	   $ #a'			
/C /C /
4# 4"** 4"

 rzz -S -RZZ -1G 1r   