Skip to content

dict_dump

Abstract

Dumps the contents of this dict as a string

Description

dict_dump serializes the contents of a dict to a string which can be used to reconstruct such dict. Here is an example of such a string definition:

"keyA: 10, keyB: string value, keyC: 'quoted string'"

This string can be used to load the contents of a dict via dict_loadstr. At the moment only dicts with string keys can be dumped.

The motivation behind this opcode is to be able to save a dict to a string, for example in a textfile or in the metadata of a soundfile, and be able to retrieve that as a dict later, in csound or in anothe software.

Syntax

Sdump dict_dump idict

Arguments

  • idict: the dict handle
  • Sdump: the string defining the key:value pairs

Execution Time

  • Init

Examples

<CsoundSynthesizer>
<CsOptions>
--nosound
</CsOptions>

<CsInstruments>

/*
  # Example file for dict_dump

  ## dict_dump

    Sdump dict_dump idict

  Dump the contents of the dict to a string, in the following format:

    "keyA: valueA, keyB: valueB, ..."

  This string can be used to load the contents of a dict via 
  dict_loadstr. At the moment only dicts with string keys
  can be dumped.

  The motivation behind this opcode is to be able to save a dict
  to a string, for example in a textfile or in the metadata of a 
  soundfile, and be able to retrieve that as a dict later, in
  csound or in anothe software.

*/

instr example1
  ; Uncomment to test with different dict types
  ; idict dict_new "str:float", "foo", 10.1, "bar", 0.5, "baz", 0.12345678
  idict dict_new "str:any", "foo", 10.1, "baz", 0.12345678, "bar", "barvalue" 
  ; idict dict_new "str:str", "foo", "fooval", "bar", "barval"

  Sdump dict_dump idict
  prints "\ndump: <\n%s\n>\n\n", Sdump

  prints "\n--- idict ---\n"
  dict_print idict

  idict2 dict_loadstr Sdump
  prints "\n--- idict2 ---\n"
  dict_print idict2
  prints "\n"
  turnoff
endin


</CsInstruments>

<CsScore>
i "example1" 0 0.1
</CsScore>
</CsoundSynthesizer>

See also

Credits

Eduardo Moguillansky, 2021