In [2]:
#using LibSndFile
#using Mocha
using PyPlot
#using WaveletScattering
#ws = WaveletScattering


WARNING: bytestring(p::Union{Ptr{Int8},Ptr{UInt8}}) is deprecated, use unsafe_string(p) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::Ptr{UInt8}) at ./deprecated.jl:50
 in __init__() at /Users/vl238/.julia/v0.5/PyCall/src/pyinit.jl:47
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/vl238/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/vl238/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[2], in expression starting on line 3
WARNING: bytestring(s::AbstractString...) is deprecated, use string(s...) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::String) at ./deprecated.jl:50
 in gstring_ptr(::String, ::String) at /Users/vl238/.julia/v0.5/PyCall/src/pytype.jl:8
 in PyCall.PyMethodDef(::String, ::Function, ::UInt16, ::String) at /Users/vl238/.julia/v0.5/PyCall/src/pytype.jl:43
 in make_io_methods(::Bool) at /Users/vl238/.julia/v0.5/PyCall/src/io.jl:306
 in __init__() at /Users/vl238/.julia/v0.5/PyCall/src/pyinit.jl:94
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/vl238/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/vl238/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[2], in expression starting on line 3
WARNING: bytestring(s::AbstractString...) is deprecated, use string(s...) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::String) at ./deprecated.jl:50
 in PyCall.PyTypeObject(::String, ::Int64, ::PyCall.##24#25) at /Users/vl238/.julia/v0.5/PyCall/src/pytype.jl:278
 in pyjlwrap_init() at /Users/vl238/.julia/v0.5/PyCall/src/pytype.jl:385
 in __init__() at /Users/vl238/.julia/v0.5/PyCall/src/pyinit.jl:110
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/vl238/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/vl238/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[2], in expression starting on line 3
WARNING: bytestring(s::AbstractString...) is deprecated, use string(s...) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::String) at ./deprecated.jl:50
 in PyCall.PyTypeObject(::String, ::Int64, ::PyCall.##26#27{PyCall.##3#6}) at /Users/vl238/.julia/v0.5/PyCall/src/pytype.jl:278
 in pyjlwrap_type(::String, ::PyCall.##3#6) at /Users/vl238/.julia/v0.5/PyCall/src/pytype.jl:399
 in __init__() at /Users/vl238/.julia/v0.5/PyCall/src/pyinit.jl:112
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/vl238/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/vl238/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[2], in expression starting on line 3
WARNING: bytestring(s::AbstractString...) is deprecated, use string(s...) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::String) at ./deprecated.jl:50
 in __init__() at /Users/vl238/.julia/v0.5/PyCall/src/pyinit.jl:119
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/vl238/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/vl238/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[2], in expression starting on line 3
WARNING: Base.UTF8String is deprecated, use String instead.
  likely near In[2]:3
in pystring_query at /Users/vl238/.julia/v0.5/PyCall/src/conversions.jl
WARNING: bytestring(p::Union{Ptr{Int8},Ptr{UInt8}},len::Integer) is deprecated, use unsafe_string(p,len) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::Ptr{UInt8}, ::Int64) at ./deprecated.jl:50
 in convert(::Type{AbstractString}, ::PyCall.PyObject) at /Users/vl238/.julia/v0.5/PyCall/src/conversions.jl:88
 in convert(::Type{PyCall.PyAny}, ::PyCall.PyObject) at /Users/vl238/.julia/v0.5/PyCall/src/conversions.jl:786
 in __init__() at /Users/vl238/.julia/v0.5/PyPlot/src/PyPlot.jl:240
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/vl238/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/vl238/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[2], in expression starting on line 3
WARNING: bytestring(p::Union{Ptr{Int8},Ptr{UInt8}},len::Integer) is deprecated, use unsafe_string(p,len) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::Ptr{UInt8}, ::Int64) at ./deprecated.jl:50
 in convert(::Type{String}, ::PyCall.PyObject) at /Users/vl238/.julia/v0.5/PyCall/src/conversions.jl:88
 in convert(::Type{String}, ::PyCall.PyObject) at /Users/vl238/.julia/v0.5/PyCall/src/conversions.jl:82
 in convert(::Type{PyCall.PyAny}, ::PyCall.PyObject) at /Users/vl238/.julia/v0.5/PyCall/src/conversions.jl:786
 in get(::PyCall.PyObject, ::Type{PyCall.PyAny}, ::String, ::String) at /Users/vl238/.julia/v0.5/PyCall/src/PyCall.jl:434
 in find_backend(::PyCall.PyObject) at /Users/vl238/.julia/v0.5/PyPlot/src/PyPlot.jl:146
 in __init__() at /Users/vl238/.julia/v0.5/PyPlot/src/PyPlot.jl:245
 in _include_from_serialized(::String) at ./loading.jl:150
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in require(::Symbol) at ./loading.jl:371
 in require(::Symbol) at /Users/vl238/dev/julia/usr/lib/julia/sys.dylib:?
 in include_string(::String, ::String) at ./loading.jl:441
 in execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/vl238/.julia/v0.5/IJulia/src/execute_request.jl:157
 in eventloop(::ZMQ.Socket) at /Users/vl238/.julia/v0.5/IJulia/src/eventloop.jl:8
 in (::IJulia.##13#19)() at ./task.jl:360
while loading In[2], in expression starting on line 3

In [3]:
chirp = LibSndFile.load("/Users/vl238/dev/fall2015_clip_dataset/data/clips/unit10/unit10_1_2524648.wav")
#chirp = LibSndFile.load("unit10_1_2524648.wav")
data = [ Float32(x) for x in collect(chirp) ]
plot(data)


Out[3]:
1-element Array{Any,1}:
 PyObject <matplotlib.lines.Line2D object at 0x31f443350>

In [5]:
J = 4
Q = 16

spec = ws.Spec1D(log2_size=13, max_qualityfactor=Q, n_filters_per_octave=Q, n_octaves=J)
bank = ws.Bank1D(spec, max_log2_stride=0)

backend = Mocha.CPUBackend()
signal = ws.InputLayer(
    data = data,
    tops = [:signal],
    symbols = [:time, :chunk])

fourier = ws.FourierLayer(
    bottoms = [:signal],
    pathkeys = [ws.PathKey(:time)],
    tops = [:fourier])

wavelets = ws.WaveletLayer(
    bank = bank,
    bottoms = [:fourier],
    tops = [:wavelets])

invfourier = ws.InvFourierLayer(
    bottoms = [:wavelets],
    pathkeys = [ws.PathKey(:time)],
    tops = [:invfourier])

modulus = ws.PointwiseLayer(
    bottoms = [:invfourier],
    tops = [:modulus],
    ρ = ws.Modulus())

layers = Mocha.Layer[
    signal,
    fourier,
    wavelets,
    invfourier,
    modulus]

Mocha.init(backend)
@time net = Mocha.Net("network", backend, layers);

paths = [ ws.Path(ws.PathKey(:j,:time) => j) for j in 0:(J-1)]
octaves = [ net.states[end].blobs[1].nodes[path].data for path in paths]

U1 = cat(4, octaves...)
U1 = reshape(U1, size(U1, 1), size(U1, 3) * size(U1, 4))

imshow(U1[:, :].', aspect="auto", cmap=ColorMap("magma_r"))


02-Mar 19:23:17:INFO:root:Constructing net network on Mocha.CPUBackend...
02-Mar 19:23:17:INFO:root:Topological sorting 5 layers...
02-Mar 19:23:17:INFO:root:Setup layers...
02-Mar 19:23:18:INFO:root:Network constructed!
  0.279423 seconds (1.67 M allocations: 46.200 MB, 4.69% gc time)
Out[5]:
PyObject <matplotlib.image.AxesImage object at 0x31fa1d790>

In [ ]: