Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 28 23:18
    romeric commented #28
  • May 28 17:45
    dorpxam commented #28
  • May 28 16:23
    martinholters commented #28
  • May 28 16:04
    dorpxam commented #28
  • May 28 16:04
    dorpxam commented #28
  • May 28 15:52
    martinholters commented #28
  • May 28 15:52
    dorpxam commented #28
  • May 28 15:47
    martinholters commented #28
  • May 28 15:39
    dorpxam commented #28
  • May 28 15:37
    dorpxam commented #28
  • May 28 15:30
    dorpxam commented #28
  • May 28 15:29
    dorpxam commented #28
  • May 28 15:27
    romeric commented #28
  • May 28 15:22
    dorpxam commented #28
  • May 28 15:20
    romeric commented #28
  • May 28 15:18
    romeric commented #28
  • May 28 15:16
    romeric commented #28
  • May 28 15:15
    romeric commented #28
  • May 28 15:09
    dorpxam commented #28
  • May 28 15:09
    dorpxam commented #28
Joshua Duncan
@JoshuaLeonD_twitter
I just checked out the ACME package and it looks cool. I was curious about the type hierarchy in the package. I'm not familiar with what's being done in the ACME package. Are the types being defined using macros? I haven't dived into programming macros yet in Julia.
Martin Holters
@martinholters
It's a hack for the transition to struct and mutable struct. I'm still supporting earlier Julia versions that only know immutable and type, but don't want the deprecation warnings in newer Julia versions. The comment line above the eval(Expr(:type, ... is what will eventually replace these hacks once I drop support for Julia older than 0.6.
Joshua Duncan
@JoshuaLeonD_twitter
Oh ok, good to know. Thanks for the clarification. I've been thinking about diving into analog modular synthesizer design and stumbled across your library. It seems really interesting. Thanks again.
Martin Holters
@martinholters
So far I've mainly applied it to distortion effects, so if you do something with it concerning synthesizers, it would be nice if you could provide some feedback. Especially, I'm afraid that certain types of oscillators may be problematic.
MauroSanches
@MauroSanches
Hi, I'm new to Julia and just started using it to check out ACME. I'm having a hard time even passing audio through the diode clipper. How can I input a wav file and listen to the output?
By the way, I really like that you implemented Gummel-Poon transistors.
Martin Holters
@martinholters
using WAV
data_in, fs, _ = wavread("/path/to/audiofile.wav")
include(Pkg.dir("ACME", "examples", "diodeclipper.jl"))
model = diodeclipper(fs=round(Int,fs))
u = 10*transpose(data_in)
y = run!(model, u)
data_out = transpose(y)
wavplay(data_out, fs)
Note that you have to transpose input and output because ACME expects the second dimension to be the time index, while for WAV, it's the first. Also, this assumes the input file to be mono. Otherwise, you have to do e.g. u = 10*transpose(data_in[:,1]) to extract the first channel. (The factor 10 here ensures some significant distortion to happen.)
MauroSanches
@MauroSanches
Oh, ok, thanks a lot. Gonna test it right now.
MauroSanches
@MauroSanches
After weeks of trial and error (thanks to my lack of attention to what's clearly written) I discovered that wavplay isn't supported on Windows. Anyway, it's working great using wavwrite and it only takes about 20 seconds for the diode clipper. I'd try with AudioIO, but it's not even building. Thanks for the help, I'll try to use some c++ to play the audio later this week.
MauroSanches
@MauroSanches
Is it possible to use ACME to do stuff like get the incident matrixes? I'm learning and studying your papers (and Julia). It would be awesome to check my matrixes against the ones your code generates to figure out where I'm making mistakes.
Martin Holters
@martinholters
ACME.incidence(circ) returns the incidence matrix of the Circuit circ
There is also ACME.topomat which returns the topology matrices Tᵥ and Tᵢ.
MauroSanches
@MauroSanches
Great, thanks.
Andreas Prokopiou
@AndreasPro
Apologies if this is off topic, but how is ACME different from SPICE simulators?
Martin Holters
@martinholters
It's a bit more flexible especially wrt. defining new components/component models.
And it's geared toward simulation of audio circuits. In particular, it uses a fixed step size/sampling rate. That allows real-time simulation of sufficiently simple circuits, but also means that circuits where something happens too fast can't be simulated well.
DarkVador42
@DarkVador42
Hello Mr. Holters, dear Martin,
I am an absolutely uneducated person when it comes to electrical systems. However, I would like to make use of the methodology of magnetic equivalent circuits to compute fluxes in a specific motor design. Since I really love the Julia eco-system and stumbled over your package, it would be great using it also in this case. Can one obtain the related currents over resistors, once specified together with voltage sources and nodal connections? So, I am actually looking only for the solution of a linear system of equations here, but want to save the work in setting up the equations. Of course, nonlinear effects could become interesting in the future.