64-bit ABox2

138 views
Skip to first unread message

John Paul Burtell

unread,
Apr 26, 2018, 10:38:51 PM4/26/18
to analo...@googlegroups.com
Greetings,

A bit of an silly question perhaps, as my ignorance of PC architecture is about to demonstrate, but how difficult would it be to port ABox2 to 64-bit and, is it even necessary?

I use ABox2 consistently in a lot of my music project, despite its very small quirks, I just gel with it far more than other modular environments. That being said, I'd like to continue to use it for the foreseeable future. Does anyone see ABox2 not working on 64-bit Windows systems over the next few years?

Any input is greatly appreciated.

Thanks all, I hope you are all well.

John

Andy Turner

unread,
Apr 28, 2018, 2:16:54 PM4/28/18
to analo...@googlegroups.com
Interesting question! There doesn't seem to be a definitive answer.
But I'm going to _guess_ that ABox will work as-is for another 10 or
20 years ... maybe with pieces decaying here and there ... we've
already seen that midi loopbacks are failing between 32 and 64 bit
platforms ... and I expect that VST 64 bit plugins will fail too ...
but I think it will be a long long time before the 32 bit audio
interface becomes broken.

To elaborate a little bit, under the hood, ABox uses the Win32 API to
interact with Windows and the user - as do nearly all other 32 bit
applications. When Win32 is removed from Windows, then ABox will
simply not work - nor will any other 32 app. I don't know for sure,
but there are probably 100's of thousands of 32 bit applications,
games, plugins, helpers, etc out there. Would be bad for business if
Microsoft cut those out of the picture.

Googling "win32 end of life" brings up many 3rd party opinions and a
link to Microsoft's end of life calendar.
<https://support.microsoft.com/en-us/lifecycle/selectindex> The
calendar only lists applications - not the same as the Win32 API.

If I understand correctly, there is a replacement for Win32 called UWP
(universal windows platform). It's still in development, and it's
anyones guess as to whether of not it will catch on.

Porting ABox to 64 bits is complicated by its being written in 32 bit
x86 assembler. Direct translation to 64 bit assembler would take a lot
of time and toil. William had the right idea a while back: port ABox
to C/C++. From there, compiling to 64 bits would be trivial - but not
without its share of headaches. Porting ABox to C, however, is a tall
order - akin to starting from scratch I fear.

From a performance perspective, going to 64 bit would not really gain
much ... but it would greatly increase the capacity - 32 bit ABox
might be able to store about a million objects, whereas 64 bit ABox
might be able to store 4 million billion objects. :-) I shudder to
imagine the clock speed and number of CPU cores that would be required
to calculate all that at audio rates :-)

Hope you are all well too!
Summer is nearing, the lawn needs clearing, and don't forget to
protect your hearing ;-)

--A
> --
> You received this message because you are subscribed to the Google Groups
> "Analog Box" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to analog-box+...@googlegroups.com.
> To post to this group, send email to analo...@googlegroups.com.
> Visit this group at https://groups.google.com/group/analog-box.
> For more options, visit https://groups.google.com/d/optout.
>

John Paul Burtell

unread,
Apr 29, 2018, 12:14:52 PM4/29/18
to analo...@googlegroups.com
Thank you so much for the thoughtful answer, Andy. I had a feeling that porting ABox2 to 64-bit wouldn't be a walk in the park, but I'm happy to know you think it still has some life left in it yet.

I am well, thank you. And it's funny you mention the lawn as I was just doing the first mowing yesterday. LOL!

Take care!

John


> To post to this group, send email to analo...@googlegroups.com.
> Visit this group at https://groups.google.com/group/analog-box.
> For more options, visit https://groups.google.com/d/optout.
>

--
You received this message because you are subscribed to the Google Groups "Analog Box" group.
To unsubscribe from this group and stop receiving emails from it, send an email to analog-box+unsubscribe@googlegroups.com.

William Croft

unread,
Apr 29, 2018, 1:55:55 PM4/29/18
to Analog Box
Here's a couple more data points.

So far, "Windows 10 S" bundled with the Windows Surface Laptop for S = 'School' environments, is the only Windows OS without Win32. (10 S is a product in response to Google's Chromebook / ChromeOS.) 10 S only allows apps downloaded from the Windows Store, in UWP format for security reasons. How popular is 10 S?


Even so, here is a solution that allows Win32 apps to run on 10 S,


Based on,


My guess with the vast number of Win32 apps in commercial use, it will be decades before Microsoft would impose a mandatory decision to turn off Win32 support. They could have something like an optional switch to allow the customer themselves to decide to turn it on or off. Or even provide their own sandboxed environment.

Regards,

William

William Croft

unread,
Apr 29, 2018, 2:07:00 PM4/29/18
to Analog Box
And this update from March 2018, it appears that in 2019, "10 S" will become a 'mode' of 10, and no longer be a standalone product. This implies that 10 S installations have been complaining or not selling well. So much for the idea of Microsoft killing Win32...  ;-)

John Paul Burtell

unread,
Apr 30, 2018, 8:27:23 AM4/30/18
to analo...@googlegroups.com
Thanks for the additional information, William. That certainly helps to put my mind at ease. :)

--

John Paul Burtell

unread,
Mar 15, 2019, 3:09:28 PM3/15/19
to analo...@googlegroups.com
OK, so here I am with another zany question (Andy, this sort-of piggy backs off of the project I discussed with you some months ago):
How difficult/feasible would it be to convert ABox to a DLL for embedding within another application? I have an interest in running ABox as an audio engine, without the need for GUI interaction.

Of course, attribution would be given with any distribution/demonstration of said application. Please note, this is not for commercial purposes.

Any input is, as always, greatly appreciated.

Thank you!

On Mon, Apr 30, 2018 at 8:27 AM John Paul Burtell <jpnul...@gmail.com> wrote:
Thanks for the additional information, William. That certainly helps to put my mind at ease. :)
On Sun, Apr 29, 2018 at 2:07 PM, William Croft <wjc...@gmail.com> wrote:
And this update from March 2018, it appears that in 2019, "10 S" will become a 'mode' of 10, and no longer be a standalone product. This implies that 10 S installations have been complaining or not selling well. So much for the idea of Microsoft killing Win32...  ;-)

--
You received this message because you are subscribed to the Google Groups "Analog Box" group.
To unsubscribe from this group and stop receiving emails from it, send an email to analog-box+...@googlegroups.com.

Lorne Covington

unread,
Mar 16, 2019, 12:41:33 PM3/16/19
to analo...@googlegroups.com

Yeah, I am a big user of vvvv, and would love to have ABox directly integrated as a plugin.  The new version of vvvv, vl, has the ability to directly import a DLL and expose it as nodes for use in the programming graph.

Just dreaming...

- Lorne

Lorne Covington
NOIRFLUX
http://noirflux.com

Andy Turner

unread,
Mar 16, 2019, 4:33:13 PM3/16/19
to analo...@googlegroups.com
I think it may be possible ... some experimentation is needed ... I'll
look into it seriously in a few days and get back to everyone.

In the mean time we'll need to develop an interface spec (how your
user code would like to interact with ABox) and all that. Maybe for a
really simple initial exploration something like this ?

// C language
const char* ABox_LoadFile( const char* filename ) ;
// returns a ptr to the currently loaded file
// returns NULL for load failed
// pass in NULL to query the currently loaded file
// no need to stop in order to load a different file
bool ABox_Play() ;
bool ABox_Stop() ;
// plays or stops the loaded circuit
// returns false if failed
bool ABox_IsPlaying() ;

... all kinds of interface ideas come to mind ... error codes instead
of bool might be helpful ... numerous internal concerns to be
elaborated too ... would be fun to have a Python binding ...

Till Soon,
Andy

On 3/16/19, Lorne Covington <lo...@mediadog.com> wrote:
>
> Yeah, I am a big user of vvvv <https://vvvv.org/>, and would love to
>> <mailto:analog-box+...@googlegroups.com>.
>> To post to this group, send email to
>> analo...@googlegroups.com <mailto:analo...@googlegroups.com>.
>> Visit this group at https://groups.google.com/group/analog-box.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Analog Box" group.
>> To unsubscribe from this group and stop receiving emails from it, send
>> an email to analog-box+...@googlegroups.com
>> <mailto:analog-box+...@googlegroups.com>.
>> To post to this group, send email to analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>.

John Paul Burtell

unread,
Mar 16, 2019, 4:41:42 PM3/16/19
to analo...@googlegroups.com
Andy,

You are wonderful! I like the idea of boolean values, but I can be flexible for sure.

Let me know how I can help.

Thanks!

Lorne Covington

unread,
Mar 16, 2019, 5:41:19 PM3/16/19
to analo...@googlegroups.com

Awreeet!  That's certainly a start.  Big thing for me would be sync and control from the host - which could be handled through virtual MIDI devices I guess, but it would be swell to have tighter programmatic integration, like the ability to expose I/O pins to the host for arbitrary control in the ABox graph.

Happy to try out anything you come up with!

- Lorne

Keith Blackwell

unread,
Mar 18, 2019, 9:19:54 PM3/18/19
to analo...@googlegroups.com, Lorne Covington
On 3/16/2019 3:41 PM, Lorne Covington wrote:
> Big thing for me would be sync and control from the host - which could be handled through virtual MIDI devices I guess, but it would be swell to have tighter programmatic integration, like the ability to expose I/O pins to the host for arbitrary control in the ABox graph.

Indeed, I/O pins at top level (or of modules defined at top level) -- that would be ideal.  There may be some details to work out about how the ins and outs are synch'ed, and it might be nice to designate ins or outs as lower-sample-rate-in-the-calling-environment controls (input pins could auto-fill the last value provided by default).  That raises a question about how ABox does not bother computing anything that doesn't "go" anywhere -- surely if you provide a way to programmatically patch some output pins into an external (calling) environment, then those would need to be seen as those pins demanding their inputs, and so on up the chain, just to ensure they get their streaming data.  And it would be nice to have convenience functions in the API for expressing the commonly-needed unit types in standard ABox values (typically between -1 and +1).

But even without any of this, perhaps just faking a default stereo output when invoked this way, even that would allow a lot of integration, though at times it might require some manual adjustments to a file before using it that way.  It could allow for a quick-and-dirty experiment just to see how well the simplest form of integration could work.

As for graphic updates wasting cycles when not needed, what does ABox do today when it is iconized?  I am only assuming it runs a bit faster, but maybe not.  Maybe just using an invisible (and small) window and/or treating it is iconized would be sufficient for the no-UI option.

--
Keith W. Blackwell


Michael Grant

unread,
Mar 19, 2019, 1:42:21 AM3/19/19
to analo...@googlegroups.com

Many years ago, I asked Andy about being able to use ABox as a VST and slot into some digital audio workstation software like another synth.  The problem, if I recall correctly, was that ABox is in assembly, close to the hardware, and it didn’t have a good way to expose what was needed for a VST.  Is that still the case?  Has any progress been made here?

Andy Turner

unread,
Mar 20, 2019, 9:41:00 PM3/20/19
to analo...@googlegroups.com
Hi All!

Many thanks for feedback! It's great motivation knowing that even
though nothing has happened with ABox for 10 years, people are still
interested in it.

Yikes, after those ten years away from the ABox source code I get to
relearn a few things. So far progress is mired in upgrading to Visual
Studio 2017 Community Edition. It has all the tools, but needs gentle
words in order to build ABox ... maybe another day of muttering
incantations will get it to work.

On the bright side: Have already confirmed that ABox can be built as a
standalone .exe that has .dll capabilities built in. This makes
library distribution MUCH easier and has an added advantage of the end
user also gets a stand alone editor.

The current plan is to first implement the simple interface described
earlier. If all goes well it will allow an app to use ABox as its
sound engine. ... I'm expecting a few 'gotchas' and will bring those
to the forum's attention for recommendations.

After that, a serious look at VST capability. Using Pin Interfaces
might be the way to go: haven't really thought through how the user
would specify ... we'll tackle the details as we go. Two expected
gotchas are 1) ABox's fixed sample rate, 2) ABox is also a VST host:
so an ABox plugin could conceivably summon another ABox plugin, which
could then summon another, and so on.

By the time that's done I should be well (re)versed in creating new
ABox objects and can tackle the 'color' controller, 'for each',
'globals', 'object switching' and maybe even my much desired object
compiler language.

Hope you are all well!
Back in few days,
--A

John Paul Burtell

unread,
Mar 21, 2019, 8:35:56 AM3/21/19
to analo...@googlegroups.com
Andy,

I hope you feel a sense of pride in what you've created. Admittedly, most of what I make with ABox are in the realm of soundscapes and ambient pieces, but I still get a lot of compliments regarding what I've been able to achieve in the program. That being said, I'm very excited to see what's coming down the pike for ABox! Thanks, as always, for all of your efforts!

Andy Turner

unread,
Mar 25, 2019, 10:22:27 PM3/25/19
to analo...@googlegroups.com
Hi All,

Some progress, some answers, some questions, some pictures:

Have spent a few days getting an assembler dev environment working.
Met with more obstacles than one can shake a stick at. Having a
working symbol browser was the primary concern. VS2017 didn't pan out
too well. Had to go way back in time to VS2005+PSDK+DDK and finally
coerced it into browsing symbols. Now new source code can proceed at a
reasonable pace. YIPPEE!!

I've not yet decided on how to supply you all with new alpha
versions ... without a doubt they'll be broken in some way and
shouldn't be allowed to be archived on the web until the end of time
(ie I want to erase them after we've monkeyed with them). Maybe
there's a hidey-hole in this forum somewhere. Alternately, GitHub is
well equipped.
Does anyone have any preferences or suggestions ?

[Michael] Yep, you recall correctly -- ABox was developed to be a
stand alone program and takes control of the hardware for itself.
Which is (obviously) a very bad for a VST plugin to try to do. Another
big problem is ABox's graphical interface was never envisioned to be
run inside another host. I've thought about it many times over the
years, but real life kept getting in the way and no real progress was
made. Hopefully in the next few weeks we'll see some.

[John Paul] Thanks for the encouragement. Seeing/hearing ABox being
used is very satisfying.

[Lorne] Just took a quick survey of vvvv / vl -- very very cool. I've
a little experience with Pure Data and it looks like vvvv takes that
to an amazing extreme. vl says it supports VST (as well as many other
plugin formats) so we'll start there and see how it goes.
If I understand the vl docs correctly, a minimal VST has an audio
input, a midi input, and an audio output. It was unclear on whether
one is allowed to use the midi port to control audio going through.
Also was unclear if MIDI output is supported.

Regardless, using MIDI in ABox is a bit tedious -- would be far
better to expose 'parameter' pins that the host can set/automate as it
will. The currently existing ABox Group methodology might be the
easiest to port/develop/work with. The PinInterface could easily be
retrofitted with new settings on the order of VST_IN_L VST_IN_R,
VST_OUT_L etc.
One foreseeable problem is that of summoning the user interface and
seeing the parameter values change as the host automates them -- ie.
knobs should twirl, sliders slip and buttons toggle ... that will be
an interesting dev challenge :-)

[Keith] That's a neat idea to have a unit conversion helper function.
I'm imagining something on the order of
float ABox_ConvertValue( float from_value, enum UNIT from_unit, enum
UNIT to_unit ) ;
Although a bit wordy, such an incantation could convert in either
direction depending on the 'from' and 'to' units. To detect an error
the user would have to check for NaN.

Very good point about 'not computing that which goes nowhere'.
Which leads into a great number of VST 'connection' issues -- some of
which are touched on above. Using some new settings on the
PinInterface would allow ABox to detect 'external' data sinks and do
the right thing.
Related to that: ABox will need to detect how it's launched and
provide a proper default circuit. So far it appears that monitoring
the first function that gets called is enough. Ie app_Main if user
launches from the desktop, ABox_LoadFile if it's being used as the
sound/MIDI engine, and vst_Main if it's launched as a plugin.
In the case of a VST plugin, somehow the user has to give ABox the
name of a file to load. Looking at the VST 2.0 specs we see
effSetProgramName in the dispatcher ... maybe that can be enough ...
we'll find out.

I don't think windows or rendering will be much of an issue. ABox
only renders when it receives a WM_PAINT message. If the main window
flag WS_VISIBLE isn't set it will never get a paint message. A nice
side effect is that if the user summons the ABox user interface we
just make the window visible and all should be well.

As a VST, it doesn't seem like ABox should have any synchronization
issues. There is no internal time keeping inside ABox _except_ for the
hardware devices -- and we don't want to access those anyways. When
ABox receives vst_Process it will look at all inputs and treat those
as being synchronized. The outputs then follow suit.
The length of the buffers will be deciding factor. Currently ABox
uses a hard coded 1024 samples at 44100Hz -- both will have to change
in order be useful on modern hardware. ... that too will be an
interesting challenge.

Before I close, can I ask what software people are using ? It might
help in various decisions and certainly be of use for testing.
I'm currently using Abelton 9 on a Win10 box. For MIDI I have a
LaunchPad Pro and a wonderful device called a Buttar -- which was
built from a dime store GuitarHero 2 unit -- see attached pictures.

Hope all are well and HAPPY SPRING!
--A
buttar0_front.png
buttar1_guts.png
buttar2_schem.png
buttar3_mpu_src.PNG
buttar4_pc.PNG

Michael Grant

unread,
Mar 26, 2019, 6:51:13 AM3/26/19
to analo...@googlegroups.com

GitHub seems like a good choice.

 

I use Reaper.  You can use it for testing for free.  The reaper forums recommend installing asio4all which I did which seemed to reduce significantly (but not eliminate) the latency problems.

 

Will you be updating any of the user interface like the icons?  If so, maybe I can help here?  I’m afraid I haven’t done much assembly since the pdp-11.

 

I like the really minimalistic style of abox and I would vote to keep it that way but update it to be a bit more consistent and modern looking.  With the higher res displays, it either needs to be scalable (not sure if that’s even possible!) or at least with slightly larger icons. 

 

Michael

John Paul Burtell

unread,
Mar 26, 2019, 9:49:14 AM3/26/19
to analo...@googlegroups.com
I would agree with Michael regarding GitHub - and also on the matter of scalable or larger icons, if possible.

I run ABox on two systems - one with Windows10 and one with Windows7. I don't really use any hosts other than the Audacity audio editor, which can host VST's as well as Nyquist plug-ins. The only other software I use with ABox2 is Iannix which I use to occasionally send MIDI into the software.

My audio interface is a Focusrite Scarlett 2i4.

Let me know if you need any other specs. I do have the latest version of MASM, btw if that helps.

Thanks!

--

Eric Matchett

unread,
Mar 26, 2019, 6:30:17 PM3/26/19
to Analog Box
Currently run ABox on Win8.1 and would use it as a VST plugin with Reaper and Studio One 4. Don't have any programming skills related to this but totally willing to beta test. Thanks.

Andy Turner

unread,
Mar 28, 2019, 6:27:59 PM3/28/19
to analo...@googlegroups.com
Hi All,

Many thanks for all the replies!
Here's some decisions:

1) GitHub it is. I'll get one setup and clone William's (thanx William!).

2) Reaper came up a couple times - seems like it would be a good
reference platform for VST testing. Steinburg seems to have
discontinued the old VST2.0 in favor of 3.0 ... I hope I can keep up
:-)

3) Larger graphics (and fonts) may require a redesign -- but that's
not a bad thing. Going to vector graphics (like flash) would be ideal.
I'll have to study the new(er) Windows GDI documentation and see if
there's anything simplish that can be done in the mean time. I too
tire of having to use a magnifying glass :-)

In other news, I had to backtrack trying to use ABox.exe as a dll -
the newer Windows does not allow it without dubious trickery. So the
plan now is to create ABoxPlugin.dll that the user can drop into their
plugin or work folder. It will summon ABox.exe and do the right thing.

OK, time is so short :-) Be back mid next week,
--A
>>> email to analog-box+...@googlegroups.com <javascript:>.
>>> To post to this group, send email to analo...@googlegroups.com
>>> <javascript:>.

John Paul Burtell

unread,
Mar 28, 2019, 8:00:55 PM3/28/19
to analo...@googlegroups.com
I could definitely work with the idea of a plugin that would call the .exe.

Your efforts are immensely appreciated!

Robert Jarvis

unread,
Mar 29, 2019, 1:15:52 AM3/29/19
to analo...@googlegroups.com, Andy Turner
Hi Andy,
An update of ABox would be amazing....
These days, mostly, I am using Kyma with either a Linnstrument or my
very own Trombtwo  (attached, or: http://alturl.com/oroqz).  But when I
am on the move, and travelling light, I always have a copy of Abox close
by, as a sketchbook for experimenting and my continued learning.
I wonder, as ABox is so compact and well written, could it ever be
transported to the RaspberryPI platform?  I don't know so much about
this, but I understand that there is a huge potential audience there....
Wishing you every success,

Robert
trombtwo.jpg

Steve

unread,
Mar 29, 2019, 1:15:52 AM3/29/19
to analo...@googlegroups.com, John Paul Burtell

Andy-

I do a lot of noise work with Abox, and some ambient pieces. I'm always proud to mention your creation!

Cheers!

Andy Turner

unread,
Apr 4, 2019, 8:20:19 PM4/4/19
to analo...@googlegroups.com
Hi All,

Here is an initial offering of ABox251.
<https://github.com/andyt7844>
ABox251_ALPHA_1.7z

This initial version is primarily for application developers. Nothing
really new inside beyond the ability to use ABox inside another app.
There are still rough edges ... it might not even run at your end. On
the bright side, when the bugs are zapped it will be a much smoother
ride into VST capability.

Enjoy,
--A
>> <jpnul...@gmail.com <mailto:jpnul...@gmail.com>>
>> > wrote:
>> > Thanks for the additional information, William. That certainly
>> helps to put
>> > my mind at ease. :)
>> >
>> > On Sun, Apr 29, 2018 at 2:07 PM, William Croft
>> <wjc...@gmail.com <mailto:wjc...@gmail.com>> wrote:
>> > And this update from March 2018, it appears that in 2019, "10 S"
>> will become
>> > a 'mode' of 10, and no longer be a standalone product. This
>> implies that 10
>> > S installations have been complaining or not selling well. So
>> much for the
>> > idea of Microsoft killing Win32...  ;-)
>> >
>> > https://www.engadget.com/2018/03/07/microsoft-windows-10-s-mode/
>> >
>>
>> https://gizmodo.com/microsoft-is-going-to-stop-cramming-windows-10s-down-pe-1823578944
>> > --
>> > You received this message because you are subscribed to the
>> Google Groups
>> > "Analog Box" group.
>> > To unsubscribe from this group and stop receiving emails from
>> it, send an
>> > email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>.
>> > To post to this group, send email to analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>.
>> > Visit this group at https://groups.google.com/group/analog-box.
>> > For more options, visit https://groups.google.com/d/optout.
>> >
>> > --
>> > You received this message because you are subscribed to the
>> Google Groups
>> > "Analog Box" group.
>> > To unsubscribe from this group and stop receiving emails from
>> it, send an
>> > email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>.
>> > To post to this group, send email to analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>.
>> > Visit this group at https://groups.google.com/group/analog-box.
>> > For more options, visit https://groups.google.com/d/optout.
>> >
>> > --
>> > You received this message because you are subscribed to the
>> Google Groups
>> > "Analog Box" group.
>> > To unsubscribe from this group and stop receiving emails from
>> it, send an
>> > email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>.
>> > To post to this group, send email to analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>.
>> > Visit this group at https://groups.google.com/group/analog-box.
>> > For more options, visit https://groups.google.com/d/optout.
>> >
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Analog Box" group.
>> To unsubscribe from this group and stop receiving emails from it,
>> send an email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>.
>> To post to this group, send email to analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>.
>> Visit this group at https://groups.google.com/group/analog-box.
>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Analog Box" group.
>> To unsubscribe from this group and stop receiving emails from it, send
>> an email to analog-box+...@googlegroups.com
>> <mailto:analog-box+...@googlegroups.com>.
>> To post to this group, send email to analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>.

John Paul Burtell

unread,
Apr 5, 2019, 8:51:29 AM4/5/19
to analo...@googlegroups.com
Wow, that was quicker than I expected! Can't wait to dig into this and let you know how it goes.

Thanks again, Andy!

John Paul Burtell

unread,
Apr 5, 2019, 9:44:03 AM4/5/19
to analo...@googlegroups.com
So, right off the bat, on a Windows 7 x32-bit computer, the dll_test_00.exe app crashes as soon as I click a button - any button. I made sure to run ABox251.exe first per the _readme instructions. Based on the crash you experienced on the Windows 7 laptop, I'm wondering if it has something to do with this particular version of Windows.

I'll be testing it on a Windows 10 x64 laptop later this evening and let you know how it goes.

Thanks! :)

Lorne Covington

unread,
Apr 5, 2019, 11:20:45 AM4/5/19
to analo...@googlegroups.com

On Win 7 Enterprise x64, ABox runs and works fine, and dll_test_0.exe runs and does not crash, but the load buttons do not do anything - no name appears at the top, and Play and Show do nothing.

Perhaps a library dependency is missing or wrong version?  Could you post the dll_test build files?

Thanks a ton, very exciting!

- Lorne

Andy Turner

unread,
Apr 5, 2019, 2:09:15 PM4/5/19
to analo...@googlegroups.com
Thanks tons guys!

Looks like there are two different issues: 'crashes' and 'does nothing'.

All of the outright 'crashes' _might_ be the same problem. Here is how to tell:
When the Windows panel 'dll_test ... has stopped working' comes up,
select 'view problem details'. In the drop down list, the relevant
fields are:
1) "Fault Module Name" Mine says ABox251.exe which tells us that ABox
crashed, not the dll.
2) "Exception Code" Mine says C0000005, which means fatal error (C)
and memory access violation (5). So the debug (assert) traps didn't
see the error - would have been (3) instead of (5).
3) "Exception Offset" Mine says 000036c8, which can be back traced
into the source code as _ABox_InitializeDLLInterface@4, which is newly
added source code.

I'll set up VS2005 on the laptop and hunt that down. If your crash
codes are different please let me know.

For the 'does nothing' ... hmm, it very well might be due to the
hastily composed dll_test program being built
incorrectly/insufficiently. Here are some details:
1) dll_test_00 is the only source file -- beyond the usually required
Windows headers and libraries.
2) Project was built in VS2005 lite - but _should_ be buildable with
newer versions. I'll try porting and building in VS2017 community as
time permits.
3) Attached is the VS2005 .vcproj file used on my system - you'll have
to point 'Additional Include Directories' to where your windows
headers are. Likewise, repoint 'Additional Library Directories'.
4) Be sure that the linker can see the ABoxPlugin32.lib file.

I'm planning to put the full source codes and build files up on GitHub
... but need to study a little bit beforehand - there are a lot of
source files and build tools that need to work harmoniously. The goal
is to have that up by Monday.

Thanks again for the quick responses! I too am getting excited about
taking ABox into the present and much appreciate the extra eyes on the
scene.

Cheers!
--A
>> <mailto:news...@gmail.com>> wrote:
>> > Andy-
>> >
>> > I do a lot of noise work with Abox, and some ambient pieces.
>> I'm always
>> > proud to mention your creation!
>> >
>> > Cheers!
>> >
>> >
>> > On 3/21/2019 5:35 AM, John Paul Burtell wrote:
>> >> Andy,
>> >>
>> >> I hope you feel a sense of pride in what you've created.
>> Admittedly,
>> >> most of what I make with ABox are in the realm of
>> soundscapes and
>> >> ambient pieces, but I still get a lot of compliments
>> regarding what
>> >> I've been able to achieve in the program. That being said,
>> I'm very
>> >> excited to see what's coming down the pike for ABox! Thanks,
>> as
>> >> always, for all of your efforts!
>> >>
>> >> On Wed, Mar 20, 2019 at 9:41 PM Andy Turner
>> <andy...@gmail.com <mailto:andy...@gmail.com>
>> >> <mailto:andy...@gmail.com <mailto:andy...@gmail.com>>>
>> >> <mailto:michae...@gmail.com
>> <mailto:jpnul...@gmail.com <mailto:jpnul...@gmail.com>>>
>> >> > wrote:
>> >> > Thanks for the additional information, William. That
>> certainly
>> >> helps to put
>> >> > my mind at ease. :)
>> >> >
>> >> > On Sun, Apr 29, 2018 at 2:07 PM, William Croft
>> >> <wjc...@gmail.com <mailto:wjc...@gmail.com>
>> <mailto:wjc...@gmail.com <mailto:wjc...@gmail.com>>> wrote:
>> >> > And this update from March 2018, it appears that in
>> 2019, "10 S"
>> >> will become
>> >> > a 'mode' of 10, and no longer be a standalone
>> product. This
>> >> implies that 10
>> >> > S installations have been complaining or not selling
>> well. So
>> >> much for the
>> >> > idea of Microsoft killing Win32... ;-)
>> >> >
>> >> >
>> https://www.engadget.com/2018/03/07/microsoft-windows-10-s-mode/
>> >> >
>> >>
>> >>
>>
>> https://gizmodo.com/microsoft-is-going-to-stop-cramming-windows-10s-down-pe-1823578944
>> >> > --
>> >> > You received this message because you are subscribed
>> to the
>> >> Google Groups
>> >> > "Analog Box" group.
>> >> > To unsubscribe from this group and stop receiving
>> emails from
>> >> it, send an
>> >> > email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>
>> >> <mailto:analog-box%2Bunsu...@googlegroups.com
>> <mailto:analog-box%252Buns...@googlegroups.com>>.
>> >> > To post to this group, send email to
>> analo...@googlegroups.com <mailto:analo...@googlegroups.com>
>> >> <mailto:analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>>.
>> >> > Visit this group at
>> https://groups.google.com/group/analog-box.
>> >> > For more options, visit
>> https://groups.google.com/d/optout.
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed
>> to the
>> >> Google Groups
>> >> > "Analog Box" group.
>> >> > To unsubscribe from this group and stop receiving
>> emails from
>> >> it, send an
>> >> > email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>
>> >> <mailto:analog-box%2Bunsu...@googlegroups.com
>> <mailto:analog-box%252Buns...@googlegroups.com>>.
>> >> > To post to this group, send email to
>> analo...@googlegroups.com <mailto:analo...@googlegroups.com>
>> >> <mailto:analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>>.
>> >> > Visit this group at
>> https://groups.google.com/group/analog-box.
>> >> > For more options, visit
>> https://groups.google.com/d/optout.
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed
>> to the
>> >> Google Groups
>> >> > "Analog Box" group.
>> >> > To unsubscribe from this group and stop receiving
>> emails from
>> >> it, send an
>> >> > email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>
>> >> <mailto:analog-box%2Bunsu...@googlegroups.com
>> <mailto:analog-box%252Buns...@googlegroups.com>>.
>> >> > To post to this group, send email to
>> analo...@googlegroups.com <mailto:analo...@googlegroups.com>
>> >> <mailto:analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>>.
>> >> > Visit this group at
>> https://groups.google.com/group/analog-box.
>> >> > For more options, visit
>> https://groups.google.com/d/optout.
>> >> >
>> >>
>> >> --
>> >> You received this message because you are subscribed to
>> the Google
>> >> Groups "Analog Box" group.
>> >> To unsubscribe from this group and stop receiving
>> emails from it,
>> >> send an email to
>> analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>
>> >> <mailto:analog-box%2Bunsu...@googlegroups.com
>> <mailto:analog-box%252Buns...@googlegroups.com>>.
>> >> To post to this group, send email to
>> analo...@googlegroups.com <mailto:analo...@googlegroups.com>
>> >> <mailto:analo...@googlegroups.com
>> <mailto:analo...@googlegroups.com>>.
>> >> Visit this group at
>> https://groups.google.com/group/analog-box.
>> >> For more options, visit
>> https://groups.google.com/d/optout.
>> >>
>> >> --
>> >> You received this message because you are subscribed to the
>> Google
>> >> Groups "Analog Box" group.
>> >> To unsubscribe from this group and stop receiving emails
>> from it, send
>> >> an email to analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>
>> >> <mailto:analog-box+...@googlegroups.com
>> <mailto:analog-box%2Bunsu...@googlegroups.com>>.
>> >> To post to this group, send email to
>> analo...@googlegroups.com <mailto:analo...@googlegroups.com>
>> >> <mailto:analo...@googlegroups.com
dll_test_00.vcproj

John Paul Burtell

unread,
Apr 6, 2019, 7:37:53 AM4/6/19
to analo...@googlegroups.com
Quick update, everything worked as expected on my Windows 10 x64 laptop.

Lorne Covington

unread,
Apr 6, 2019, 10:19:36 AM4/6/19
to analo...@googlegroups.com

This project file built happily under VS Pro 2017 on Win7 x64, but acts
the same - nothing happens. Expect it's the lib that needs to be rebuilt.

Just so's ya know, thanks!

- Lorne

Andy Turner

unread,
Apr 6, 2019, 12:09:45 PM4/6/19
to analo...@googlegroups.com
Thanks!

I've traced the Win7 problems down to loader relocation. Solution(s)
are in progress.

John Paul: Good news about it working on the Win 10 laptop. Does that
set of interface functions (ie. load,play,show) work for your project
?

Lorne: Good news that it builds in VS Pro 2017. Strange news that it
doesn't just crash when running on Win7. ... Maybe the Pro version is
doing something strange. I've attached the source and project file for
ABoxPlugin32. Maybe that would let you single step into at least the
plugin part of the code.

Cheers!
--A
ABoxPlugin32.cpp
ABoxPlugin32.vcproj

Andy Turner

unread,
Apr 6, 2019, 5:05:30 PM4/6/19
to analo...@googlegroups.com
Hi All,

OK, this should work a little better -- tested on two Win7 x64 machines.
<https://github.com/andyt7844/>
ABox251_ALPHA_1a.7z

The problem was pre Win10 not performing the 'relocation' step when
loading ABox.EXE as a DLL. The initial solution was to add a manual
'relocator' to the ABoxPlugin32.DLL. New source code for ABoxPlugin32
will be posted along the full source.

Also added the VS2005 .vcproj file for dll_test_00 to the 7Z archive.

Enjoy,
--A

John Paul Burtell

unread,
Apr 6, 2019, 8:41:48 PM4/6/19
to analo...@googlegroups.com
Andy,

Yes, these functions are exactly what I was looking for. Thank you!

Keith Blackwell

unread,
Apr 8, 2019, 3:01:53 AM4/8/19
to analo...@googlegroups.com
Thanks, Andy.  I wanted to work with this in VS2019 a bit this weekend, got the files all set up, but then got caught up in some other weekend projects and didn't get back to it.  So unfortunately I have nothing to add except that the executables also seem to work alright on an old 32-bit Windows XP system.  :-)
--
Keith

Robert Jarvis

unread,
Apr 8, 2019, 11:18:54 AM4/8/19
to analo...@googlegroups.com
Hi,
Runs fine on Win10Pro (v.1809).
Running the dll_test_00, after clicking 'Load 0', I have to click 'Play'
in order to hear anything.  If I click 'Load 1' I hear the result
immediately.
Saving a separate aBox sound as dll_test_02, and running, works as well.
Thanks!
Robert

Andy Turner

unread,
Apr 8, 2019, 2:10:28 PM4/8/19
to analo...@googlegroups.com
Excellent! I was worried that my manual re-base loader hack would run
into numerous security issues - especially on Win7 and 10. But it
looks as if all is OK ... so far. Long live XP :-)

One addition to ABoxPlugin32.dll might be a callback interface or
(eqiv) a message posted to an HWND. The purpose would be to tell the
host (your program) that some state has changed in ABox -- I.E. 'the
circuit is now playing'. The code in dll_test currently polls for such
information (and is somewhat lacking at that.)

Am still getting up to speed on how to have GitHub host several
varieties of Visual Studio projects. Have briefly surveyed a couple of
other projects and they have separate folders for VS2005, VS2017 etc
-- seems like a workable solution. Initially I'll gitpost the VS2005
project - which I need for its ability to symbol browse .asm code.
More versions can be added as desired.

Yes, dll_test_00.ABox2 is without AutoPlay (so you have to press
Play), whereas dll_test_01.ABox2 has the AutoPlay on and will start as
soon as it loads. dll_test_02 and 03 were purposely omitted in order
to test the 'file not found' behavior.
Please feel free to add/replace dll_test_0x.ABox2 circuits with
your own. dll_test_00.exe has 4 hardwired circuit names
"dll_test_0[0,1,2,3].ABox2" -- I was too lazy to do a directory scan
and fill in a list box :-)

OK, am currently re-exploring ABox's graphics engine .. what a mess
:-) ... hope to post a report on that soon(ish). Then implementable
work on incorporating new graphics can move forward.

Thanks for the feedback!

Happy Spring to All,
--A

Keith Blackwell

unread,
Apr 12, 2019, 10:04:30 AM4/12/19
to analo...@googlegroups.com
On 4/8/2019 12:10 PM, Andy Turner wrote:
> other projects and they have separate folders for VS2005, VS2017 etc

BTW, VS2019 is now available. 

And as for graphics, the architecture is set up right now for fixed sized objects, so you might just want to allow switching the scale of such fixed sizes among just a few (2 or 3) fixed sizes.  Integer multiples would probably be pretty easy to get to work correctly (original 1x, plus new 2x and 5x, or even just 2x alone, and I'll venture to guess that the result would be plenty good enough to satisfy the need). 

Honestly, if it's too much of a mess, I would certainly prefer that you find inspiration/motivation for working on some other sort of improvement than to spend a lot of energy on that.  Your willingness to do any work in there (on anything) is very valuable to us all!  Of course, you have to tinker with whatever you fancy tinkering with, so we'll take whatever.  :-) 

For me, other ideas we've bantered around in the past would be much more coveted.  Some bulk operations across all group objects with the same name and pin-out would be great (even just "replace all similar objects with a copy of this one" would do wonders).  But it's your baby, and your investment of loving effort into it, so ya gotta go where your heart takes you.

--
Keith

Andy Turner

unread,
Apr 12, 2019, 5:02:12 PM4/12/19
to analo...@googlegroups.com
Ya, I'm spending a little more time on the graphics than I had thought
... but I think it will be well worth it -- especially if real artists
and graphic designers are able to contribute.
Windows and CPUs are SO much more capable today than when the
graphics system was first designed. Much of the code I wrote by hand
is now built into the operating system AND the dev tools are freely
available. On the down side, one of ABox's build tools (GBUILD) has
fallen into an 'instant crash' mode. So this initial push is to get
GBUILD working again. Re-development is going well using nothing but
GdiPlus -- still a few days of work and testing needed.
With a working GBUILD, new graphics (or even just larger graphics)
can be imported into ABox with only a small amount of toil (and a
rebuild of ABox). Graphics will need to be in BMP format and
(probably) have some obnoxious color mandates -- much more about that
later. The behavior of the objects will be same, as will the general
look and color schemes.
But that too will change: SVG is a VERY capable format. So much so
that large portions of the user interface could be specified from an
SVG object. Neat!! I'm hoping to tackle that (rewriting the graphics
system for svg) later this year. Before that, there are many bugs,
smaller features, and a VST interface to write.

Happy Friday All!
--A

JP Burtell

unread,
Feb 14, 2020, 1:50:35 PM2/14/20
to analo...@googlegroups.com
Greetings,

Anyone happen to have a copy of this file hanging around:
ABox251_ALPHA_1a.7z

I can't find it anywhere on my machine. Any help would be appreciated immensely!

Thanks, all!

Happy "V" Day!

John

Catalin C.

unread,
Feb 16, 2020, 1:45:51 PM2/16/20
to Analog Box


On Friday, 14 February 2020 20:50:35 UTC+2, John Paul Burtell wrote:
Greetings,

Anyone happen to have a copy of this file hanging around:
ABox251_ALPHA_1a.7z

I can't find it anywhere on my machine. Any help would be appreciated immensely!

Thanks, all!

Happy "V" Day!

John

Hello,

Here is the link to a folder in my Drive where I uploaded it:

Again, I had to repack and encrypt it to avoid Google blocking it (most probably it was because of the .exe).

Password is: analogbox

(On a side note, I can't figure why my Drive folder Circuit Repository isn't publicly available although I've marked it, and all of its contents, as such. I think about mirroring it on Mediafire.)

All the best,

-

Catalin

JP Burtell

unread,
Feb 24, 2020, 10:43:37 AM2/24/20
to analo...@googlegroups.com
I have been able to download the file. Thank you, everyone, for all of your help!

John

--
You received this message because you are subscribed to the Google Groups "Analog Box" group.
To unsubscribe from this group and stop receiving emails from it, send an email to analog-box+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages